GENERAL ======= This is a modified version of GiST library plus an implementation of an new R-tree index that uses k-means algorithm for node splitting. The modification of the core libgist library was necessary in order to support splitting in more than two nodes. The new indexing method has been integrated into the GiST package. This means that you can manipulate the new index through both gist command line and amdb environments. INSTALLATION ISSUES =================== There shouldn't be any special issue concerning the installation, compilation and execution of the modified package. Just follow the original GiST instructions in GiST User manual, Gistcmdline reference, Guide to writing libgist extensions supplied with the original package. Note that the HMETIS package is needed for the amdb analysis functions. MODIFICATION DETAILS ==================== The name of the new indexing method as seen in the command line and amdb environments is rclustms. The files relevant to the index implementation are libgist\include\gist_rclustms.h libgist\src\librtree\gist_rclustms.cc libgist\src\librtree\kmeans.h libgist\src\librtree\kmeans.cc Changes were made to the rectangle predicate class. We added distance fuctions for rectngles. So, these were modified: libgist\include\gist_rtpred_rect.h libgist\src\librtree\gist_rtpred_rect.cc The files modified in order to "make visible" the rclustms index to gist command line and amdb environments are: libgist\include\gist_ext.h libgist\src\cmdline\cmdline.cc libgist\src\librtree\amdb_rtree.cc In order to support multisplitting we declared the insert() method of the gist class virtual. We subclassed class gist and made gist_ms where we provided new versions of _apply_update(), _split(), _split_node(), and _update_parent() methods. The files relevant to the core library modifications are: libgist\include\gist.h libgist\include\gist_ms.h libgist\include\gist_defs.h libgist\src\libgist\gist.cc libgist\src\libgist\gist_ms.cc _