diff --git a/faiss/IndexFlatCodes.h b/faiss/IndexFlatCodes.h index b02da73..e33d1b8 100644 --- a/faiss/IndexFlatCodes.h +++ b/faiss/IndexFlatCodes.h @@ -12,6 +12,9 @@ #include #include #include +#ifdef MYSCALE_MODE +#include +#endif namespace faiss { @@ -21,7 +24,11 @@ struct IndexFlatCodes : Index { size_t code_size; /// encoded dataset, size ntotal * code_size +#ifdef MYSCALE_MODE + std::vector> codes; +#else std::vector codes; +#endif IndexFlatCodes(); diff --git a/faiss/impl/HNSW.h b/faiss/impl/HNSW.h index ef8df31..a2438c7 100644 --- a/faiss/impl/HNSW.h +++ b/faiss/impl/HNSW.h @@ -21,6 +21,10 @@ #include #include +#ifdef MYSCALE_MODE +#include +#endif + #define ENABLE_STAT #ifdef ENABLE_STAT #define IF_STATISTIC(stat, inc_stat) \ @@ -113,22 +117,42 @@ struct HNSW { }; /// assignment probability to each layer (sum=1) +#ifdef MYSCALE_MODE + std::vector> assign_probas; +#else std::vector assign_probas; +#endif /// number of neighbors stored per layer (cumulative), should not /// be changed after first add +#ifdef MYSCALE_MODE + std::vector> cum_nneighbor_per_level; +#else std::vector cum_nneighbor_per_level; +#endif /// level of each vector (base level = 1), size = ntotal +#ifdef MYSCALE_MODE + std::vector> levels; +#else std::vector levels; +#endif /// offsets[i] is the offset in the neighbors array where vector i is stored /// size ntotal + 1 +#ifdef MYSCALE_MODE + std::vector> offsets; +#else std::vector offsets; +#endif /// neighbors[offsets[i]:offsets[i+1]] is the list of neighbors of vector i /// for all levels. this is where all storage goes. +#ifdef MYSCALE_MODE + std::vector> neighbors; +#else std::vector neighbors; +#endif /// entry point in the search structure (one of the points with maximum /// level diff --git a/faiss/impl/HNSWfast.h b/faiss/impl/HNSWfast.h index d29e37b..e22609a 100644 --- a/faiss/impl/HNSWfast.h +++ b/faiss/impl/HNSWfast.h @@ -17,6 +17,9 @@ #include #include #include +#ifdef MYSCALE_MODE +#include +#endif namespace faiss { @@ -160,7 +163,11 @@ class HNSWfast { }; /// level of each vector (base level = 1), size = ntotal +#ifdef MYSCALE_MODE + std::vector> levels; +#else std::vector levels; +#endif /// entry point in the search structure (one of the points with maximum /// level @@ -172,10 +179,16 @@ class HNSWfast { /// maximum level int max_level; int M; +#ifdef MYSCALE_MODE + std::vector> level0_storage; + std::vector>> link_storage; + std::vector> linkLists; +#else std::vector level0_storage; std::vector> link_storage; - char* level0_links; std::vector linkLists; +#endif + char* level0_links; size_t level0_link_size; size_t link_size; double level_constant;