faiss 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/faiss/version.rb +1 -1
  4. data/vendor/faiss/faiss/AutoTune.cpp +292 -291
  5. data/vendor/faiss/faiss/AutoTune.h +55 -56
  6. data/vendor/faiss/faiss/Clustering.cpp +334 -195
  7. data/vendor/faiss/faiss/Clustering.h +88 -35
  8. data/vendor/faiss/faiss/IVFlib.cpp +171 -195
  9. data/vendor/faiss/faiss/IVFlib.h +48 -51
  10. data/vendor/faiss/faiss/Index.cpp +85 -103
  11. data/vendor/faiss/faiss/Index.h +54 -48
  12. data/vendor/faiss/faiss/Index2Layer.cpp +139 -164
  13. data/vendor/faiss/faiss/Index2Layer.h +22 -22
  14. data/vendor/faiss/faiss/IndexBinary.cpp +45 -37
  15. data/vendor/faiss/faiss/IndexBinary.h +140 -132
  16. data/vendor/faiss/faiss/IndexBinaryFlat.cpp +73 -53
  17. data/vendor/faiss/faiss/IndexBinaryFlat.h +29 -24
  18. data/vendor/faiss/faiss/IndexBinaryFromFloat.cpp +46 -43
  19. data/vendor/faiss/faiss/IndexBinaryFromFloat.h +16 -15
  20. data/vendor/faiss/faiss/IndexBinaryHNSW.cpp +215 -232
  21. data/vendor/faiss/faiss/IndexBinaryHNSW.h +25 -24
  22. data/vendor/faiss/faiss/IndexBinaryHash.cpp +182 -177
  23. data/vendor/faiss/faiss/IndexBinaryHash.h +41 -34
  24. data/vendor/faiss/faiss/IndexBinaryIVF.cpp +489 -461
  25. data/vendor/faiss/faiss/IndexBinaryIVF.h +97 -68
  26. data/vendor/faiss/faiss/IndexFlat.cpp +116 -147
  27. data/vendor/faiss/faiss/IndexFlat.h +35 -46
  28. data/vendor/faiss/faiss/IndexHNSW.cpp +372 -348
  29. data/vendor/faiss/faiss/IndexHNSW.h +57 -41
  30. data/vendor/faiss/faiss/IndexIVF.cpp +474 -454
  31. data/vendor/faiss/faiss/IndexIVF.h +146 -113
  32. data/vendor/faiss/faiss/IndexIVFFlat.cpp +248 -250
  33. data/vendor/faiss/faiss/IndexIVFFlat.h +48 -51
  34. data/vendor/faiss/faiss/IndexIVFPQ.cpp +457 -516
  35. data/vendor/faiss/faiss/IndexIVFPQ.h +74 -66
  36. data/vendor/faiss/faiss/IndexIVFPQFastScan.cpp +406 -372
  37. data/vendor/faiss/faiss/IndexIVFPQFastScan.h +82 -57
  38. data/vendor/faiss/faiss/IndexIVFPQR.cpp +104 -102
  39. data/vendor/faiss/faiss/IndexIVFPQR.h +33 -28
  40. data/vendor/faiss/faiss/IndexIVFSpectralHash.cpp +125 -133
  41. data/vendor/faiss/faiss/IndexIVFSpectralHash.h +19 -21
  42. data/vendor/faiss/faiss/IndexLSH.cpp +75 -96
  43. data/vendor/faiss/faiss/IndexLSH.h +21 -26
  44. data/vendor/faiss/faiss/IndexLattice.cpp +42 -56
  45. data/vendor/faiss/faiss/IndexLattice.h +11 -16
  46. data/vendor/faiss/faiss/IndexNNDescent.cpp +231 -0
  47. data/vendor/faiss/faiss/IndexNNDescent.h +72 -0
  48. data/vendor/faiss/faiss/IndexNSG.cpp +303 -0
  49. data/vendor/faiss/faiss/IndexNSG.h +85 -0
  50. data/vendor/faiss/faiss/IndexPQ.cpp +405 -464
  51. data/vendor/faiss/faiss/IndexPQ.h +64 -67
  52. data/vendor/faiss/faiss/IndexPQFastScan.cpp +143 -170
  53. data/vendor/faiss/faiss/IndexPQFastScan.h +46 -32
  54. data/vendor/faiss/faiss/IndexPreTransform.cpp +120 -150
  55. data/vendor/faiss/faiss/IndexPreTransform.h +33 -36
  56. data/vendor/faiss/faiss/IndexRefine.cpp +115 -131
  57. data/vendor/faiss/faiss/IndexRefine.h +22 -23
  58. data/vendor/faiss/faiss/IndexReplicas.cpp +147 -153
  59. data/vendor/faiss/faiss/IndexReplicas.h +62 -56
  60. data/vendor/faiss/faiss/IndexResidual.cpp +291 -0
  61. data/vendor/faiss/faiss/IndexResidual.h +152 -0
  62. data/vendor/faiss/faiss/IndexScalarQuantizer.cpp +120 -155
  63. data/vendor/faiss/faiss/IndexScalarQuantizer.h +41 -45
  64. data/vendor/faiss/faiss/IndexShards.cpp +256 -240
  65. data/vendor/faiss/faiss/IndexShards.h +85 -73
  66. data/vendor/faiss/faiss/MatrixStats.cpp +112 -97
  67. data/vendor/faiss/faiss/MatrixStats.h +7 -10
  68. data/vendor/faiss/faiss/MetaIndexes.cpp +135 -157
  69. data/vendor/faiss/faiss/MetaIndexes.h +40 -34
  70. data/vendor/faiss/faiss/MetricType.h +7 -7
  71. data/vendor/faiss/faiss/VectorTransform.cpp +652 -474
  72. data/vendor/faiss/faiss/VectorTransform.h +61 -89
  73. data/vendor/faiss/faiss/clone_index.cpp +77 -73
  74. data/vendor/faiss/faiss/clone_index.h +4 -9
  75. data/vendor/faiss/faiss/gpu/GpuAutoTune.cpp +33 -38
  76. data/vendor/faiss/faiss/gpu/GpuAutoTune.h +11 -9
  77. data/vendor/faiss/faiss/gpu/GpuCloner.cpp +197 -170
  78. data/vendor/faiss/faiss/gpu/GpuCloner.h +53 -35
  79. data/vendor/faiss/faiss/gpu/GpuClonerOptions.cpp +12 -14
  80. data/vendor/faiss/faiss/gpu/GpuClonerOptions.h +27 -25
  81. data/vendor/faiss/faiss/gpu/GpuDistance.h +116 -112
  82. data/vendor/faiss/faiss/gpu/GpuFaissAssert.h +1 -2
  83. data/vendor/faiss/faiss/gpu/GpuIndex.h +134 -137
  84. data/vendor/faiss/faiss/gpu/GpuIndexBinaryFlat.h +76 -73
  85. data/vendor/faiss/faiss/gpu/GpuIndexFlat.h +173 -162
  86. data/vendor/faiss/faiss/gpu/GpuIndexIVF.h +67 -64
  87. data/vendor/faiss/faiss/gpu/GpuIndexIVFFlat.h +89 -86
  88. data/vendor/faiss/faiss/gpu/GpuIndexIVFPQ.h +150 -141
  89. data/vendor/faiss/faiss/gpu/GpuIndexIVFScalarQuantizer.h +101 -103
  90. data/vendor/faiss/faiss/gpu/GpuIndicesOptions.h +17 -16
  91. data/vendor/faiss/faiss/gpu/GpuResources.cpp +116 -128
  92. data/vendor/faiss/faiss/gpu/GpuResources.h +182 -186
  93. data/vendor/faiss/faiss/gpu/StandardGpuResources.cpp +433 -422
  94. data/vendor/faiss/faiss/gpu/StandardGpuResources.h +131 -130
  95. data/vendor/faiss/faiss/gpu/impl/InterleavedCodes.cpp +468 -456
  96. data/vendor/faiss/faiss/gpu/impl/InterleavedCodes.h +25 -19
  97. data/vendor/faiss/faiss/gpu/impl/RemapIndices.cpp +22 -20
  98. data/vendor/faiss/faiss/gpu/impl/RemapIndices.h +9 -8
  99. data/vendor/faiss/faiss/gpu/perf/IndexWrapper-inl.h +39 -44
  100. data/vendor/faiss/faiss/gpu/perf/IndexWrapper.h +16 -14
  101. data/vendor/faiss/faiss/gpu/perf/PerfClustering.cpp +77 -71
  102. data/vendor/faiss/faiss/gpu/perf/PerfIVFPQAdd.cpp +109 -88
  103. data/vendor/faiss/faiss/gpu/perf/WriteIndex.cpp +75 -64
  104. data/vendor/faiss/faiss/gpu/test/TestCodePacking.cpp +230 -215
  105. data/vendor/faiss/faiss/gpu/test/TestGpuIndexBinaryFlat.cpp +80 -86
  106. data/vendor/faiss/faiss/gpu/test/TestGpuIndexFlat.cpp +284 -277
  107. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFFlat.cpp +416 -416
  108. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFPQ.cpp +611 -517
  109. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFScalarQuantizer.cpp +166 -164
  110. data/vendor/faiss/faiss/gpu/test/TestGpuMemoryException.cpp +61 -53
  111. data/vendor/faiss/faiss/gpu/test/TestUtils.cpp +274 -238
  112. data/vendor/faiss/faiss/gpu/test/TestUtils.h +73 -57
  113. data/vendor/faiss/faiss/gpu/test/demo_ivfpq_indexing_gpu.cpp +47 -50
  114. data/vendor/faiss/faiss/gpu/utils/DeviceUtils.h +79 -72
  115. data/vendor/faiss/faiss/gpu/utils/StackDeviceMemory.cpp +140 -146
  116. data/vendor/faiss/faiss/gpu/utils/StackDeviceMemory.h +69 -71
  117. data/vendor/faiss/faiss/gpu/utils/StaticUtils.h +21 -16
  118. data/vendor/faiss/faiss/gpu/utils/Timer.cpp +25 -29
  119. data/vendor/faiss/faiss/gpu/utils/Timer.h +30 -29
  120. data/vendor/faiss/faiss/impl/AdditiveQuantizer.cpp +270 -0
  121. data/vendor/faiss/faiss/impl/AdditiveQuantizer.h +115 -0
  122. data/vendor/faiss/faiss/impl/AuxIndexStructures.cpp +90 -120
  123. data/vendor/faiss/faiss/impl/AuxIndexStructures.h +81 -65
  124. data/vendor/faiss/faiss/impl/FaissAssert.h +73 -58
  125. data/vendor/faiss/faiss/impl/FaissException.cpp +56 -48
  126. data/vendor/faiss/faiss/impl/FaissException.h +41 -29
  127. data/vendor/faiss/faiss/impl/HNSW.cpp +595 -611
  128. data/vendor/faiss/faiss/impl/HNSW.h +179 -200
  129. data/vendor/faiss/faiss/impl/LocalSearchQuantizer.cpp +672 -0
  130. data/vendor/faiss/faiss/impl/LocalSearchQuantizer.h +172 -0
  131. data/vendor/faiss/faiss/impl/NNDescent.cpp +487 -0
  132. data/vendor/faiss/faiss/impl/NNDescent.h +154 -0
  133. data/vendor/faiss/faiss/impl/NSG.cpp +682 -0
  134. data/vendor/faiss/faiss/impl/NSG.h +199 -0
  135. data/vendor/faiss/faiss/impl/PolysemousTraining.cpp +484 -454
  136. data/vendor/faiss/faiss/impl/PolysemousTraining.h +52 -55
  137. data/vendor/faiss/faiss/impl/ProductQuantizer-inl.h +26 -47
  138. data/vendor/faiss/faiss/impl/ProductQuantizer.cpp +469 -459
  139. data/vendor/faiss/faiss/impl/ProductQuantizer.h +76 -87
  140. data/vendor/faiss/faiss/impl/ResidualQuantizer.cpp +448 -0
  141. data/vendor/faiss/faiss/impl/ResidualQuantizer.h +130 -0
  142. data/vendor/faiss/faiss/impl/ResultHandler.h +96 -132
  143. data/vendor/faiss/faiss/impl/ScalarQuantizer.cpp +648 -701
  144. data/vendor/faiss/faiss/impl/ScalarQuantizer.h +48 -46
  145. data/vendor/faiss/faiss/impl/ThreadedIndex-inl.h +129 -131
  146. data/vendor/faiss/faiss/impl/ThreadedIndex.h +61 -55
  147. data/vendor/faiss/faiss/impl/index_read.cpp +547 -479
  148. data/vendor/faiss/faiss/impl/index_write.cpp +497 -407
  149. data/vendor/faiss/faiss/impl/io.cpp +75 -94
  150. data/vendor/faiss/faiss/impl/io.h +31 -41
  151. data/vendor/faiss/faiss/impl/io_macros.h +40 -29
  152. data/vendor/faiss/faiss/impl/lattice_Zn.cpp +137 -186
  153. data/vendor/faiss/faiss/impl/lattice_Zn.h +40 -51
  154. data/vendor/faiss/faiss/impl/platform_macros.h +29 -8
  155. data/vendor/faiss/faiss/impl/pq4_fast_scan.cpp +77 -124
  156. data/vendor/faiss/faiss/impl/pq4_fast_scan.h +39 -48
  157. data/vendor/faiss/faiss/impl/pq4_fast_scan_search_1.cpp +41 -52
  158. data/vendor/faiss/faiss/impl/pq4_fast_scan_search_qbs.cpp +80 -117
  159. data/vendor/faiss/faiss/impl/simd_result_handlers.h +109 -137
  160. data/vendor/faiss/faiss/index_factory.cpp +269 -218
  161. data/vendor/faiss/faiss/index_factory.h +6 -7
  162. data/vendor/faiss/faiss/index_io.h +23 -26
  163. data/vendor/faiss/faiss/invlists/BlockInvertedLists.cpp +67 -75
  164. data/vendor/faiss/faiss/invlists/BlockInvertedLists.h +22 -24
  165. data/vendor/faiss/faiss/invlists/DirectMap.cpp +96 -112
  166. data/vendor/faiss/faiss/invlists/DirectMap.h +29 -33
  167. data/vendor/faiss/faiss/invlists/InvertedLists.cpp +307 -364
  168. data/vendor/faiss/faiss/invlists/InvertedLists.h +151 -151
  169. data/vendor/faiss/faiss/invlists/InvertedListsIOHook.cpp +29 -34
  170. data/vendor/faiss/faiss/invlists/InvertedListsIOHook.h +17 -18
  171. data/vendor/faiss/faiss/invlists/OnDiskInvertedLists.cpp +257 -293
  172. data/vendor/faiss/faiss/invlists/OnDiskInvertedLists.h +50 -45
  173. data/vendor/faiss/faiss/python/python_callbacks.cpp +23 -26
  174. data/vendor/faiss/faiss/python/python_callbacks.h +9 -16
  175. data/vendor/faiss/faiss/utils/AlignedTable.h +79 -44
  176. data/vendor/faiss/faiss/utils/Heap.cpp +40 -48
  177. data/vendor/faiss/faiss/utils/Heap.h +186 -209
  178. data/vendor/faiss/faiss/utils/WorkerThread.cpp +67 -76
  179. data/vendor/faiss/faiss/utils/WorkerThread.h +32 -33
  180. data/vendor/faiss/faiss/utils/distances.cpp +301 -310
  181. data/vendor/faiss/faiss/utils/distances.h +133 -118
  182. data/vendor/faiss/faiss/utils/distances_simd.cpp +456 -516
  183. data/vendor/faiss/faiss/utils/extra_distances-inl.h +117 -0
  184. data/vendor/faiss/faiss/utils/extra_distances.cpp +113 -232
  185. data/vendor/faiss/faiss/utils/extra_distances.h +30 -29
  186. data/vendor/faiss/faiss/utils/hamming-inl.h +260 -209
  187. data/vendor/faiss/faiss/utils/hamming.cpp +375 -469
  188. data/vendor/faiss/faiss/utils/hamming.h +62 -85
  189. data/vendor/faiss/faiss/utils/ordered_key_value.h +16 -18
  190. data/vendor/faiss/faiss/utils/partitioning.cpp +393 -318
  191. data/vendor/faiss/faiss/utils/partitioning.h +26 -21
  192. data/vendor/faiss/faiss/utils/quantize_lut.cpp +78 -66
  193. data/vendor/faiss/faiss/utils/quantize_lut.h +22 -20
  194. data/vendor/faiss/faiss/utils/random.cpp +39 -63
  195. data/vendor/faiss/faiss/utils/random.h +13 -16
  196. data/vendor/faiss/faiss/utils/simdlib.h +4 -2
  197. data/vendor/faiss/faiss/utils/simdlib_avx2.h +88 -85
  198. data/vendor/faiss/faiss/utils/simdlib_emulated.h +226 -165
  199. data/vendor/faiss/faiss/utils/simdlib_neon.h +832 -0
  200. data/vendor/faiss/faiss/utils/utils.cpp +304 -287
  201. data/vendor/faiss/faiss/utils/utils.h +53 -48
  202. metadata +20 -2
@@ -17,6 +17,7 @@
17
17
  #define FAISS_utils_h
18
18
 
19
19
  #include <stdint.h>
20
+ #include <string>
20
21
 
21
22
  #ifdef _MSC_VER
22
23
  #define strtok_r strtok_s
@@ -24,29 +25,31 @@
24
25
 
25
26
  #include <faiss/utils/Heap.h>
26
27
 
27
-
28
28
  namespace faiss {
29
29
 
30
+ /****************************************************************************
31
+ * Get compile specific variables
32
+ ***************************************************************************/
33
+
34
+ /// get compile options
35
+ std::string get_compile_options();
30
36
 
31
37
  /**************************************************
32
38
  * Get some stats about the system
33
- **************************************************/
34
-
39
+ **************************************************/
35
40
 
36
41
  /// ms elapsed since some arbitrary epoch
37
- double getmillisecs ();
42
+ double getmillisecs();
38
43
 
39
44
  /// get current RSS usage in kB
40
- size_t get_mem_usage_kb ();
45
+ size_t get_mem_usage_kb();
41
46
 
42
-
43
- uint64_t get_cycles ();
47
+ uint64_t get_cycles();
44
48
 
45
49
  /***************************************************************************
46
50
  * Misc matrix and vector manipulation functions
47
51
  ***************************************************************************/
48
52
 
49
-
50
53
  /** compute c := a + bf * b for a, b and c tables
51
54
  *
52
55
  * @param n size of the tables
@@ -54,34 +57,37 @@ uint64_t get_cycles ();
54
57
  * @param b size n
55
58
  * @param c restult table, size n
56
59
  */
57
- void fvec_madd (size_t n, const float *a,
58
- float bf, const float *b, float *c);
59
-
60
+ void fvec_madd(size_t n, const float* a, float bf, const float* b, float* c);
60
61
 
61
62
  /** same as fvec_madd, also return index of the min of the result table
62
63
  * @return index of the min of table c
63
64
  */
64
- int fvec_madd_and_argmin (size_t n, const float *a,
65
- float bf, const float *b, float *c);
66
-
65
+ int fvec_madd_and_argmin(
66
+ size_t n,
67
+ const float* a,
68
+ float bf,
69
+ const float* b,
70
+ float* c);
67
71
 
68
72
  /* perform a reflection (not an efficient implementation, just for test ) */
69
- void reflection (const float * u, float * x, size_t n, size_t d, size_t nu);
70
-
73
+ void reflection(const float* u, float* x, size_t n, size_t d, size_t nu);
71
74
 
72
75
  /** compute the Q of the QR decomposition for m > n
73
76
  * @param a size n * m: input matrix and output Q
74
77
  */
75
- void matrix_qr (int m, int n, float *a);
78
+ void matrix_qr(int m, int n, float* a);
76
79
 
77
80
  /** distances are supposed to be sorted. Sorts indices with same distance*/
78
- void ranklist_handle_ties (int k, int64_t *idx, const float *dis);
81
+ void ranklist_handle_ties(int k, int64_t* idx, const float* dis);
79
82
 
80
83
  /** count the number of comon elements between v1 and v2
81
84
  * algorithm = sorting + bissection to avoid double-counting duplicates
82
85
  */
83
- size_t ranklist_intersection_size (size_t k1, const int64_t *v1,
84
- size_t k2, const int64_t *v2);
86
+ size_t ranklist_intersection_size(
87
+ size_t k1,
88
+ const int64_t* v1,
89
+ size_t k2,
90
+ const int64_t* v2);
85
91
 
86
92
  /** merge a result table into another one
87
93
  *
@@ -91,41 +97,38 @@ size_t ranklist_intersection_size (size_t k1, const int64_t *v1,
91
97
  * @param translation add this value to all I1's indexes
92
98
  * @return nb of values that were taken from the second table
93
99
  */
94
- size_t merge_result_table_with (size_t n, size_t k,
95
- int64_t *I0, float *D0,
96
- const int64_t *I1, const float *D1,
97
- bool keep_min = true,
98
- int64_t translation = 0);
99
-
100
+ size_t merge_result_table_with(
101
+ size_t n,
102
+ size_t k,
103
+ int64_t* I0,
104
+ float* D0,
105
+ const int64_t* I1,
106
+ const float* D1,
107
+ bool keep_min = true,
108
+ int64_t translation = 0);
100
109
 
101
110
  /// a balanced assignment has a IF of 1
102
- double imbalance_factor (int n, int k, const int64_t *assign);
111
+ double imbalance_factor(int n, int k, const int64_t* assign);
103
112
 
104
113
  /// same, takes a histogram as input
105
- double imbalance_factor (int k, const int *hist);
106
-
107
-
108
- void fvec_argsort (size_t n, const float *vals,
109
- size_t *perm);
114
+ double imbalance_factor(int k, const int* hist);
110
115
 
111
- void fvec_argsort_parallel (size_t n, const float *vals,
112
- size_t *perm);
116
+ void fvec_argsort(size_t n, const float* vals, size_t* perm);
113
117
 
118
+ void fvec_argsort_parallel(size_t n, const float* vals, size_t* perm);
114
119
 
115
120
  /// compute histogram on v
116
- int ivec_hist (size_t n, const int * v, int vmax, int *hist);
121
+ int ivec_hist(size_t n, const int* v, int vmax, int* hist);
117
122
 
118
123
  /** Compute histogram of bits on a code array
119
124
  *
120
125
  * @param codes size(n, nbits / 8)
121
126
  * @param hist size(nbits): nb of 1s in the array of codes
122
127
  */
123
- void bincode_hist(size_t n, size_t nbits, const uint8_t *codes, int *hist);
124
-
128
+ void bincode_hist(size_t n, size_t nbits, const uint8_t* codes, int* hist);
125
129
 
126
130
  /// compute a checksum on a table.
127
- size_t ivec_checksum (size_t n, const int *a);
128
-
131
+ size_t ivec_checksum(size_t n, const int* a);
129
132
 
130
133
  /** random subsamples a set of vectors if there are too many of them
131
134
  *
@@ -136,9 +139,13 @@ size_t ivec_checksum (size_t n, const int *a);
136
139
  * @param seed random seed to use for sampling
137
140
  * @return x or an array allocated with new [] with *n vectors
138
141
  */
139
- const float *fvecs_maybe_subsample (
140
- size_t d, size_t *n, size_t nmax, const float *x,
141
- bool verbose = false, int64_t seed = 1234);
142
+ const float* fvecs_maybe_subsample(
143
+ size_t d,
144
+ size_t* n,
145
+ size_t nmax,
146
+ const float* x,
147
+ bool verbose = false,
148
+ int64_t seed = 1234);
142
149
 
143
150
  /** Convert binary vector to +1/-1 valued float vector.
144
151
  *
@@ -146,7 +153,7 @@ const float *fvecs_maybe_subsample (
146
153
  * @param x_in input binary vector (uint8_t table of size d / 8)
147
154
  * @param x_out output float vector (float table of size d)
148
155
  */
149
- void binary_to_real(size_t d, const uint8_t *x_in, float *x_out);
156
+ void binary_to_real(size_t d, const uint8_t* x_in, float* x_out);
150
157
 
151
158
  /** Convert float vector to binary vector. Components > 0 are converted to 1,
152
159
  * others to 0.
@@ -155,16 +162,14 @@ void binary_to_real(size_t d, const uint8_t *x_in, float *x_out);
155
162
  * @param x_in input float vector (float table of size d)
156
163
  * @param x_out output binary vector (uint8_t table of size d / 8)
157
164
  */
158
- void real_to_binary(size_t d, const float *x_in, uint8_t *x_out);
159
-
165
+ void real_to_binary(size_t d, const float* x_in, uint8_t* x_out);
160
166
 
161
167
  /** A reasonable hashing function */
162
- uint64_t hash_bytes (const uint8_t *bytes, int64_t n);
168
+ uint64_t hash_bytes(const uint8_t* bytes, int64_t n);
163
169
 
164
170
  /** Whether OpenMP annotations were respected. */
165
171
  bool check_openmp();
166
172
 
167
- } // namspace faiss
168
-
173
+ } // namespace faiss
169
174
 
170
175
  #endif /* FAISS_utils_h */
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faiss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-23 00:00:00.000000000 Z
11
+ date: 2021-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice
@@ -103,6 +103,10 @@ files:
103
103
  - vendor/faiss/faiss/IndexLSH.h
104
104
  - vendor/faiss/faiss/IndexLattice.cpp
105
105
  - vendor/faiss/faiss/IndexLattice.h
106
+ - vendor/faiss/faiss/IndexNNDescent.cpp
107
+ - vendor/faiss/faiss/IndexNNDescent.h
108
+ - vendor/faiss/faiss/IndexNSG.cpp
109
+ - vendor/faiss/faiss/IndexNSG.h
106
110
  - vendor/faiss/faiss/IndexPQ.cpp
107
111
  - vendor/faiss/faiss/IndexPQ.h
108
112
  - vendor/faiss/faiss/IndexPQFastScan.cpp
@@ -113,6 +117,8 @@ files:
113
117
  - vendor/faiss/faiss/IndexRefine.h
114
118
  - vendor/faiss/faiss/IndexReplicas.cpp
115
119
  - vendor/faiss/faiss/IndexReplicas.h
120
+ - vendor/faiss/faiss/IndexResidual.cpp
121
+ - vendor/faiss/faiss/IndexResidual.h
116
122
  - vendor/faiss/faiss/IndexScalarQuantizer.cpp
117
123
  - vendor/faiss/faiss/IndexScalarQuantizer.h
118
124
  - vendor/faiss/faiss/IndexShards.cpp
@@ -171,6 +177,8 @@ files:
171
177
  - vendor/faiss/faiss/gpu/utils/StaticUtils.h
172
178
  - vendor/faiss/faiss/gpu/utils/Timer.cpp
173
179
  - vendor/faiss/faiss/gpu/utils/Timer.h
180
+ - vendor/faiss/faiss/impl/AdditiveQuantizer.cpp
181
+ - vendor/faiss/faiss/impl/AdditiveQuantizer.h
174
182
  - vendor/faiss/faiss/impl/AuxIndexStructures.cpp
175
183
  - vendor/faiss/faiss/impl/AuxIndexStructures.h
176
184
  - vendor/faiss/faiss/impl/FaissAssert.h
@@ -178,11 +186,19 @@ files:
178
186
  - vendor/faiss/faiss/impl/FaissException.h
179
187
  - vendor/faiss/faiss/impl/HNSW.cpp
180
188
  - vendor/faiss/faiss/impl/HNSW.h
189
+ - vendor/faiss/faiss/impl/LocalSearchQuantizer.cpp
190
+ - vendor/faiss/faiss/impl/LocalSearchQuantizer.h
191
+ - vendor/faiss/faiss/impl/NNDescent.cpp
192
+ - vendor/faiss/faiss/impl/NNDescent.h
193
+ - vendor/faiss/faiss/impl/NSG.cpp
194
+ - vendor/faiss/faiss/impl/NSG.h
181
195
  - vendor/faiss/faiss/impl/PolysemousTraining.cpp
182
196
  - vendor/faiss/faiss/impl/PolysemousTraining.h
183
197
  - vendor/faiss/faiss/impl/ProductQuantizer-inl.h
184
198
  - vendor/faiss/faiss/impl/ProductQuantizer.cpp
185
199
  - vendor/faiss/faiss/impl/ProductQuantizer.h
200
+ - vendor/faiss/faiss/impl/ResidualQuantizer.cpp
201
+ - vendor/faiss/faiss/impl/ResidualQuantizer.h
186
202
  - vendor/faiss/faiss/impl/ResultHandler.h
187
203
  - vendor/faiss/faiss/impl/ScalarQuantizer.cpp
188
204
  - vendor/faiss/faiss/impl/ScalarQuantizer.h
@@ -224,6 +240,7 @@ files:
224
240
  - vendor/faiss/faiss/utils/distances.cpp
225
241
  - vendor/faiss/faiss/utils/distances.h
226
242
  - vendor/faiss/faiss/utils/distances_simd.cpp
243
+ - vendor/faiss/faiss/utils/extra_distances-inl.h
227
244
  - vendor/faiss/faiss/utils/extra_distances.cpp
228
245
  - vendor/faiss/faiss/utils/extra_distances.h
229
246
  - vendor/faiss/faiss/utils/hamming-inl.h
@@ -239,6 +256,7 @@ files:
239
256
  - vendor/faiss/faiss/utils/simdlib.h
240
257
  - vendor/faiss/faiss/utils/simdlib_avx2.h
241
258
  - vendor/faiss/faiss/utils/simdlib_emulated.h
259
+ - vendor/faiss/faiss/utils/simdlib_neon.h
242
260
  - vendor/faiss/faiss/utils/utils.cpp
243
261
  - vendor/faiss/faiss/utils/utils.h
244
262
  homepage: https://github.com/ankane/faiss