faiss 0.1.7 → 0.2.3

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 (219) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +7 -7
  4. data/ext/faiss/ext.cpp +1 -1
  5. data/ext/faiss/extconf.rb +8 -2
  6. data/ext/faiss/index.cpp +102 -69
  7. data/ext/faiss/index_binary.cpp +24 -30
  8. data/ext/faiss/kmeans.cpp +20 -16
  9. data/ext/faiss/numo.hpp +867 -0
  10. data/ext/faiss/pca_matrix.cpp +13 -14
  11. data/ext/faiss/product_quantizer.cpp +23 -24
  12. data/ext/faiss/utils.cpp +10 -37
  13. data/ext/faiss/utils.h +2 -13
  14. data/lib/faiss/version.rb +1 -1
  15. data/lib/faiss.rb +0 -5
  16. data/vendor/faiss/faiss/AutoTune.cpp +292 -291
  17. data/vendor/faiss/faiss/AutoTune.h +55 -56
  18. data/vendor/faiss/faiss/Clustering.cpp +334 -195
  19. data/vendor/faiss/faiss/Clustering.h +88 -35
  20. data/vendor/faiss/faiss/IVFlib.cpp +171 -195
  21. data/vendor/faiss/faiss/IVFlib.h +48 -51
  22. data/vendor/faiss/faiss/Index.cpp +85 -103
  23. data/vendor/faiss/faiss/Index.h +54 -48
  24. data/vendor/faiss/faiss/Index2Layer.cpp +139 -164
  25. data/vendor/faiss/faiss/Index2Layer.h +22 -22
  26. data/vendor/faiss/faiss/IndexBinary.cpp +45 -37
  27. data/vendor/faiss/faiss/IndexBinary.h +140 -132
  28. data/vendor/faiss/faiss/IndexBinaryFlat.cpp +73 -53
  29. data/vendor/faiss/faiss/IndexBinaryFlat.h +29 -24
  30. data/vendor/faiss/faiss/IndexBinaryFromFloat.cpp +46 -43
  31. data/vendor/faiss/faiss/IndexBinaryFromFloat.h +16 -15
  32. data/vendor/faiss/faiss/IndexBinaryHNSW.cpp +215 -232
  33. data/vendor/faiss/faiss/IndexBinaryHNSW.h +25 -24
  34. data/vendor/faiss/faiss/IndexBinaryHash.cpp +182 -177
  35. data/vendor/faiss/faiss/IndexBinaryHash.h +41 -34
  36. data/vendor/faiss/faiss/IndexBinaryIVF.cpp +489 -461
  37. data/vendor/faiss/faiss/IndexBinaryIVF.h +97 -68
  38. data/vendor/faiss/faiss/IndexFlat.cpp +116 -147
  39. data/vendor/faiss/faiss/IndexFlat.h +35 -46
  40. data/vendor/faiss/faiss/IndexHNSW.cpp +372 -348
  41. data/vendor/faiss/faiss/IndexHNSW.h +57 -41
  42. data/vendor/faiss/faiss/IndexIVF.cpp +474 -454
  43. data/vendor/faiss/faiss/IndexIVF.h +146 -113
  44. data/vendor/faiss/faiss/IndexIVFFlat.cpp +248 -250
  45. data/vendor/faiss/faiss/IndexIVFFlat.h +48 -51
  46. data/vendor/faiss/faiss/IndexIVFPQ.cpp +457 -516
  47. data/vendor/faiss/faiss/IndexIVFPQ.h +74 -66
  48. data/vendor/faiss/faiss/IndexIVFPQFastScan.cpp +406 -372
  49. data/vendor/faiss/faiss/IndexIVFPQFastScan.h +82 -57
  50. data/vendor/faiss/faiss/IndexIVFPQR.cpp +104 -102
  51. data/vendor/faiss/faiss/IndexIVFPQR.h +33 -28
  52. data/vendor/faiss/faiss/IndexIVFSpectralHash.cpp +125 -133
  53. data/vendor/faiss/faiss/IndexIVFSpectralHash.h +19 -21
  54. data/vendor/faiss/faiss/IndexLSH.cpp +75 -96
  55. data/vendor/faiss/faiss/IndexLSH.h +21 -26
  56. data/vendor/faiss/faiss/IndexLattice.cpp +42 -56
  57. data/vendor/faiss/faiss/IndexLattice.h +11 -16
  58. data/vendor/faiss/faiss/IndexNNDescent.cpp +231 -0
  59. data/vendor/faiss/faiss/IndexNNDescent.h +72 -0
  60. data/vendor/faiss/faiss/IndexNSG.cpp +303 -0
  61. data/vendor/faiss/faiss/IndexNSG.h +85 -0
  62. data/vendor/faiss/faiss/IndexPQ.cpp +405 -464
  63. data/vendor/faiss/faiss/IndexPQ.h +64 -67
  64. data/vendor/faiss/faiss/IndexPQFastScan.cpp +143 -170
  65. data/vendor/faiss/faiss/IndexPQFastScan.h +46 -32
  66. data/vendor/faiss/faiss/IndexPreTransform.cpp +120 -150
  67. data/vendor/faiss/faiss/IndexPreTransform.h +33 -36
  68. data/vendor/faiss/faiss/IndexRefine.cpp +115 -131
  69. data/vendor/faiss/faiss/IndexRefine.h +22 -23
  70. data/vendor/faiss/faiss/IndexReplicas.cpp +147 -153
  71. data/vendor/faiss/faiss/IndexReplicas.h +62 -56
  72. data/vendor/faiss/faiss/IndexResidual.cpp +291 -0
  73. data/vendor/faiss/faiss/IndexResidual.h +152 -0
  74. data/vendor/faiss/faiss/IndexScalarQuantizer.cpp +120 -155
  75. data/vendor/faiss/faiss/IndexScalarQuantizer.h +41 -45
  76. data/vendor/faiss/faiss/IndexShards.cpp +256 -240
  77. data/vendor/faiss/faiss/IndexShards.h +85 -73
  78. data/vendor/faiss/faiss/MatrixStats.cpp +112 -97
  79. data/vendor/faiss/faiss/MatrixStats.h +7 -10
  80. data/vendor/faiss/faiss/MetaIndexes.cpp +135 -157
  81. data/vendor/faiss/faiss/MetaIndexes.h +40 -34
  82. data/vendor/faiss/faiss/MetricType.h +7 -7
  83. data/vendor/faiss/faiss/VectorTransform.cpp +652 -474
  84. data/vendor/faiss/faiss/VectorTransform.h +61 -89
  85. data/vendor/faiss/faiss/clone_index.cpp +77 -73
  86. data/vendor/faiss/faiss/clone_index.h +4 -9
  87. data/vendor/faiss/faiss/gpu/GpuAutoTune.cpp +33 -38
  88. data/vendor/faiss/faiss/gpu/GpuAutoTune.h +11 -9
  89. data/vendor/faiss/faiss/gpu/GpuCloner.cpp +197 -170
  90. data/vendor/faiss/faiss/gpu/GpuCloner.h +53 -35
  91. data/vendor/faiss/faiss/gpu/GpuClonerOptions.cpp +12 -14
  92. data/vendor/faiss/faiss/gpu/GpuClonerOptions.h +27 -25
  93. data/vendor/faiss/faiss/gpu/GpuDistance.h +116 -112
  94. data/vendor/faiss/faiss/gpu/GpuFaissAssert.h +1 -2
  95. data/vendor/faiss/faiss/gpu/GpuIndex.h +134 -137
  96. data/vendor/faiss/faiss/gpu/GpuIndexBinaryFlat.h +76 -73
  97. data/vendor/faiss/faiss/gpu/GpuIndexFlat.h +173 -162
  98. data/vendor/faiss/faiss/gpu/GpuIndexIVF.h +67 -64
  99. data/vendor/faiss/faiss/gpu/GpuIndexIVFFlat.h +89 -86
  100. data/vendor/faiss/faiss/gpu/GpuIndexIVFPQ.h +150 -141
  101. data/vendor/faiss/faiss/gpu/GpuIndexIVFScalarQuantizer.h +101 -103
  102. data/vendor/faiss/faiss/gpu/GpuIndicesOptions.h +17 -16
  103. data/vendor/faiss/faiss/gpu/GpuResources.cpp +116 -128
  104. data/vendor/faiss/faiss/gpu/GpuResources.h +182 -186
  105. data/vendor/faiss/faiss/gpu/StandardGpuResources.cpp +433 -422
  106. data/vendor/faiss/faiss/gpu/StandardGpuResources.h +131 -130
  107. data/vendor/faiss/faiss/gpu/impl/InterleavedCodes.cpp +468 -456
  108. data/vendor/faiss/faiss/gpu/impl/InterleavedCodes.h +25 -19
  109. data/vendor/faiss/faiss/gpu/impl/RemapIndices.cpp +22 -20
  110. data/vendor/faiss/faiss/gpu/impl/RemapIndices.h +9 -8
  111. data/vendor/faiss/faiss/gpu/perf/IndexWrapper-inl.h +39 -44
  112. data/vendor/faiss/faiss/gpu/perf/IndexWrapper.h +16 -14
  113. data/vendor/faiss/faiss/gpu/perf/PerfClustering.cpp +77 -71
  114. data/vendor/faiss/faiss/gpu/perf/PerfIVFPQAdd.cpp +109 -88
  115. data/vendor/faiss/faiss/gpu/perf/WriteIndex.cpp +75 -64
  116. data/vendor/faiss/faiss/gpu/test/TestCodePacking.cpp +230 -215
  117. data/vendor/faiss/faiss/gpu/test/TestGpuIndexBinaryFlat.cpp +80 -86
  118. data/vendor/faiss/faiss/gpu/test/TestGpuIndexFlat.cpp +284 -277
  119. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFFlat.cpp +416 -416
  120. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFPQ.cpp +611 -517
  121. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFScalarQuantizer.cpp +166 -164
  122. data/vendor/faiss/faiss/gpu/test/TestGpuMemoryException.cpp +61 -53
  123. data/vendor/faiss/faiss/gpu/test/TestUtils.cpp +274 -238
  124. data/vendor/faiss/faiss/gpu/test/TestUtils.h +73 -57
  125. data/vendor/faiss/faiss/gpu/test/demo_ivfpq_indexing_gpu.cpp +47 -50
  126. data/vendor/faiss/faiss/gpu/utils/DeviceUtils.h +79 -72
  127. data/vendor/faiss/faiss/gpu/utils/StackDeviceMemory.cpp +140 -146
  128. data/vendor/faiss/faiss/gpu/utils/StackDeviceMemory.h +69 -71
  129. data/vendor/faiss/faiss/gpu/utils/StaticUtils.h +21 -16
  130. data/vendor/faiss/faiss/gpu/utils/Timer.cpp +25 -29
  131. data/vendor/faiss/faiss/gpu/utils/Timer.h +30 -29
  132. data/vendor/faiss/faiss/impl/AdditiveQuantizer.cpp +270 -0
  133. data/vendor/faiss/faiss/impl/AdditiveQuantizer.h +115 -0
  134. data/vendor/faiss/faiss/impl/AuxIndexStructures.cpp +90 -120
  135. data/vendor/faiss/faiss/impl/AuxIndexStructures.h +81 -65
  136. data/vendor/faiss/faiss/impl/FaissAssert.h +73 -58
  137. data/vendor/faiss/faiss/impl/FaissException.cpp +56 -48
  138. data/vendor/faiss/faiss/impl/FaissException.h +41 -29
  139. data/vendor/faiss/faiss/impl/HNSW.cpp +595 -611
  140. data/vendor/faiss/faiss/impl/HNSW.h +179 -200
  141. data/vendor/faiss/faiss/impl/LocalSearchQuantizer.cpp +672 -0
  142. data/vendor/faiss/faiss/impl/LocalSearchQuantizer.h +172 -0
  143. data/vendor/faiss/faiss/impl/NNDescent.cpp +487 -0
  144. data/vendor/faiss/faiss/impl/NNDescent.h +154 -0
  145. data/vendor/faiss/faiss/impl/NSG.cpp +682 -0
  146. data/vendor/faiss/faiss/impl/NSG.h +199 -0
  147. data/vendor/faiss/faiss/impl/PolysemousTraining.cpp +484 -454
  148. data/vendor/faiss/faiss/impl/PolysemousTraining.h +52 -55
  149. data/vendor/faiss/faiss/impl/ProductQuantizer-inl.h +26 -47
  150. data/vendor/faiss/faiss/impl/ProductQuantizer.cpp +469 -459
  151. data/vendor/faiss/faiss/impl/ProductQuantizer.h +76 -87
  152. data/vendor/faiss/faiss/impl/ResidualQuantizer.cpp +448 -0
  153. data/vendor/faiss/faiss/impl/ResidualQuantizer.h +130 -0
  154. data/vendor/faiss/faiss/impl/ResultHandler.h +96 -132
  155. data/vendor/faiss/faiss/impl/ScalarQuantizer.cpp +648 -701
  156. data/vendor/faiss/faiss/impl/ScalarQuantizer.h +48 -46
  157. data/vendor/faiss/faiss/impl/ThreadedIndex-inl.h +129 -131
  158. data/vendor/faiss/faiss/impl/ThreadedIndex.h +61 -55
  159. data/vendor/faiss/faiss/impl/index_read.cpp +547 -479
  160. data/vendor/faiss/faiss/impl/index_write.cpp +497 -407
  161. data/vendor/faiss/faiss/impl/io.cpp +75 -94
  162. data/vendor/faiss/faiss/impl/io.h +31 -41
  163. data/vendor/faiss/faiss/impl/io_macros.h +40 -29
  164. data/vendor/faiss/faiss/impl/lattice_Zn.cpp +137 -186
  165. data/vendor/faiss/faiss/impl/lattice_Zn.h +40 -51
  166. data/vendor/faiss/faiss/impl/platform_macros.h +29 -8
  167. data/vendor/faiss/faiss/impl/pq4_fast_scan.cpp +77 -124
  168. data/vendor/faiss/faiss/impl/pq4_fast_scan.h +39 -48
  169. data/vendor/faiss/faiss/impl/pq4_fast_scan_search_1.cpp +41 -52
  170. data/vendor/faiss/faiss/impl/pq4_fast_scan_search_qbs.cpp +80 -117
  171. data/vendor/faiss/faiss/impl/simd_result_handlers.h +109 -137
  172. data/vendor/faiss/faiss/index_factory.cpp +269 -218
  173. data/vendor/faiss/faiss/index_factory.h +6 -7
  174. data/vendor/faiss/faiss/index_io.h +23 -26
  175. data/vendor/faiss/faiss/invlists/BlockInvertedLists.cpp +67 -75
  176. data/vendor/faiss/faiss/invlists/BlockInvertedLists.h +22 -24
  177. data/vendor/faiss/faiss/invlists/DirectMap.cpp +96 -112
  178. data/vendor/faiss/faiss/invlists/DirectMap.h +29 -33
  179. data/vendor/faiss/faiss/invlists/InvertedLists.cpp +307 -364
  180. data/vendor/faiss/faiss/invlists/InvertedLists.h +151 -151
  181. data/vendor/faiss/faiss/invlists/InvertedListsIOHook.cpp +29 -34
  182. data/vendor/faiss/faiss/invlists/InvertedListsIOHook.h +17 -18
  183. data/vendor/faiss/faiss/invlists/OnDiskInvertedLists.cpp +257 -293
  184. data/vendor/faiss/faiss/invlists/OnDiskInvertedLists.h +50 -45
  185. data/vendor/faiss/faiss/python/python_callbacks.cpp +23 -26
  186. data/vendor/faiss/faiss/python/python_callbacks.h +9 -16
  187. data/vendor/faiss/faiss/utils/AlignedTable.h +79 -44
  188. data/vendor/faiss/faiss/utils/Heap.cpp +40 -48
  189. data/vendor/faiss/faiss/utils/Heap.h +186 -209
  190. data/vendor/faiss/faiss/utils/WorkerThread.cpp +67 -76
  191. data/vendor/faiss/faiss/utils/WorkerThread.h +32 -33
  192. data/vendor/faiss/faiss/utils/distances.cpp +301 -310
  193. data/vendor/faiss/faiss/utils/distances.h +133 -118
  194. data/vendor/faiss/faiss/utils/distances_simd.cpp +456 -516
  195. data/vendor/faiss/faiss/utils/extra_distances-inl.h +117 -0
  196. data/vendor/faiss/faiss/utils/extra_distances.cpp +113 -232
  197. data/vendor/faiss/faiss/utils/extra_distances.h +30 -29
  198. data/vendor/faiss/faiss/utils/hamming-inl.h +260 -209
  199. data/vendor/faiss/faiss/utils/hamming.cpp +375 -469
  200. data/vendor/faiss/faiss/utils/hamming.h +62 -85
  201. data/vendor/faiss/faiss/utils/ordered_key_value.h +16 -18
  202. data/vendor/faiss/faiss/utils/partitioning.cpp +393 -318
  203. data/vendor/faiss/faiss/utils/partitioning.h +26 -21
  204. data/vendor/faiss/faiss/utils/quantize_lut.cpp +78 -66
  205. data/vendor/faiss/faiss/utils/quantize_lut.h +22 -20
  206. data/vendor/faiss/faiss/utils/random.cpp +39 -63
  207. data/vendor/faiss/faiss/utils/random.h +13 -16
  208. data/vendor/faiss/faiss/utils/simdlib.h +4 -2
  209. data/vendor/faiss/faiss/utils/simdlib_avx2.h +88 -85
  210. data/vendor/faiss/faiss/utils/simdlib_emulated.h +226 -165
  211. data/vendor/faiss/faiss/utils/simdlib_neon.h +832 -0
  212. data/vendor/faiss/faiss/utils/utils.cpp +304 -287
  213. data/vendor/faiss/faiss/utils/utils.h +53 -48
  214. metadata +26 -12
  215. data/lib/faiss/index.rb +0 -20
  216. data/lib/faiss/index_binary.rb +0 -20
  217. data/lib/faiss/kmeans.rb +0 -15
  218. data/lib/faiss/pca_matrix.rb +0 -15
  219. data/lib/faiss/product_quantizer.rb +0 -22
@@ -10,38 +10,39 @@
10
10
  #ifndef FAISS_AUTO_TUNE_H
11
11
  #define FAISS_AUTO_TUNE_H
12
12
 
13
- #include <vector>
14
- #include <unordered_map>
15
13
  #include <stdint.h>
14
+ #include <unordered_map>
15
+ #include <vector>
16
16
 
17
17
  #include <faiss/Index.h>
18
18
  #include <faiss/IndexBinary.h>
19
19
 
20
20
  namespace faiss {
21
21
 
22
-
23
22
  /**
24
23
  * Evaluation criterion. Returns a performance measure in [0,1],
25
24
  * higher is better.
26
25
  */
27
26
  struct AutoTuneCriterion {
28
27
  typedef Index::idx_t idx_t;
29
- idx_t nq; ///< nb of queries this criterion is evaluated on
30
- idx_t nnn; ///< nb of NNs that the query should request
31
- idx_t gt_nnn; ///< nb of GT NNs required to evaluate crterion
28
+ idx_t nq; ///< nb of queries this criterion is evaluated on
29
+ idx_t nnn; ///< nb of NNs that the query should request
30
+ idx_t gt_nnn; ///< nb of GT NNs required to evaluate criterion
32
31
 
33
- std::vector<float> gt_D; ///< Ground-truth distances (size nq * gt_nnn)
34
- std::vector<idx_t> gt_I; ///< Ground-truth indexes (size nq * gt_nnn)
32
+ std::vector<float> gt_D; ///< Ground-truth distances (size nq * gt_nnn)
33
+ std::vector<idx_t> gt_I; ///< Ground-truth indexes (size nq * gt_nnn)
35
34
 
36
- AutoTuneCriterion (idx_t nq, idx_t nnn);
35
+ AutoTuneCriterion(idx_t nq, idx_t nnn);
37
36
 
38
37
  /** Intitializes the gt_D and gt_I vectors. Must be called before evaluating
39
38
  *
40
39
  * @param gt_D_in size nq * gt_nnn
41
40
  * @param gt_I_in size nq * gt_nnn
42
41
  */
43
- void set_groundtruth (int gt_nnn, const float *gt_D_in,
44
- const idx_t *gt_I_in);
42
+ void set_groundtruth(
43
+ int gt_nnn,
44
+ const float* gt_D_in,
45
+ const idx_t* gt_I_in);
45
46
 
46
47
  /** Evaluate the criterion.
47
48
  *
@@ -49,29 +50,25 @@ struct AutoTuneCriterion {
49
50
  * @param I size nq * nnn
50
51
  * @return the criterion, between 0 and 1. Larger is better.
51
52
  */
52
- virtual double evaluate (const float *D, const idx_t *I) const = 0;
53
-
54
- virtual ~AutoTuneCriterion () {}
53
+ virtual double evaluate(const float* D, const idx_t* I) const = 0;
55
54
 
55
+ virtual ~AutoTuneCriterion() {}
56
56
  };
57
57
 
58
- struct OneRecallAtRCriterion: AutoTuneCriterion {
59
-
58
+ struct OneRecallAtRCriterion : AutoTuneCriterion {
60
59
  idx_t R;
61
60
 
62
- OneRecallAtRCriterion (idx_t nq, idx_t R);
61
+ OneRecallAtRCriterion(idx_t nq, idx_t R);
63
62
 
64
63
  double evaluate(const float* D, const idx_t* I) const override;
65
64
 
66
65
  ~OneRecallAtRCriterion() override {}
67
66
  };
68
67
 
69
-
70
- struct IntersectionCriterion: AutoTuneCriterion {
71
-
68
+ struct IntersectionCriterion : AutoTuneCriterion {
72
69
  idx_t R;
73
70
 
74
- IntersectionCriterion (idx_t nq, idx_t R);
71
+ IntersectionCriterion(idx_t nq, idx_t R);
75
72
 
76
73
  double evaluate(const float* D, const idx_t* I) const override;
77
74
 
@@ -91,7 +88,7 @@ struct OperatingPoint {
91
88
  double perf; ///< performance measure (output of a Criterion)
92
89
  double t; ///< corresponding execution time (ms)
93
90
  std::string key; ///< key that identifies this op pt
94
- int64_t cno; ///< integer identifer
91
+ int64_t cno; ///< integer identifer
95
92
  };
96
93
 
97
94
  struct OperatingPoints {
@@ -102,27 +99,27 @@ struct OperatingPoints {
102
99
  std::vector<OperatingPoint> optimal_pts;
103
100
 
104
101
  // begins with a single operating point: t=0, perf=0
105
- OperatingPoints ();
102
+ OperatingPoints();
106
103
 
107
104
  /// add operating points from other to this, with a prefix to the keys
108
- int merge_with (const OperatingPoints &other,
109
- const std::string & prefix = "");
105
+ int merge_with(
106
+ const OperatingPoints& other,
107
+ const std::string& prefix = "");
110
108
 
111
- void clear ();
109
+ void clear();
112
110
 
113
111
  /// add a performance measure. Return whether it is an optimal point
114
- bool add (double perf, double t, const std::string & key, size_t cno = 0);
112
+ bool add(double perf, double t, const std::string& key, size_t cno = 0);
115
113
 
116
114
  /// get time required to obtain a given performance measure
117
- double t_for_perf (double perf) const;
115
+ double t_for_perf(double perf) const;
118
116
 
119
117
  /// easy-to-read output
120
- void display (bool only_optimal = true) const;
118
+ void display(bool only_optimal = true) const;
121
119
 
122
120
  /// output to a format easy to digest by gnuplot
123
- void all_to_gnuplot (const char *fname) const;
124
- void optimal_to_gnuplot (const char *fname) const;
125
-
121
+ void all_to_gnuplot(const char* fname) const;
122
+ void optimal_to_gnuplot(const char* fname) const;
126
123
  };
127
124
 
128
125
  /// possible values of a parameter, sorted from least to most expensive/accurate
@@ -156,41 +153,45 @@ struct ParameterSpace {
156
153
  /// duration (to avoid jittering in MT mode)
157
154
  double min_test_duration;
158
155
 
159
- ParameterSpace ();
156
+ ParameterSpace();
160
157
 
161
158
  /// nb of combinations, = product of values sizes
162
- size_t n_combinations () const;
159
+ size_t n_combinations() const;
163
160
 
164
161
  /// returns whether combinations c1 >= c2 in the tuple sense
165
- bool combination_ge (size_t c1, size_t c2) const;
162
+ bool combination_ge(size_t c1, size_t c2) const;
166
163
 
167
164
  /// get string representation of the combination
168
- std::string combination_name (size_t cno) const;
165
+ std::string combination_name(size_t cno) const;
169
166
 
170
167
  /// print a description on stdout
171
- void display () const;
168
+ void display() const;
172
169
 
173
170
  /// add a new parameter (or return it if it exists)
174
- ParameterRange &add_range(const std::string & name);
171
+ ParameterRange& add_range(const std::string& name);
175
172
 
176
173
  /// initialize with reasonable parameters for the index
177
- virtual void initialize (const Index * index);
174
+ virtual void initialize(const Index* index);
178
175
 
179
176
  /// set a combination of parameters on an index
180
- void set_index_parameters (Index *index, size_t cno) const;
177
+ void set_index_parameters(Index* index, size_t cno) const;
181
178
 
182
179
  /// set a combination of parameters described by a string
183
- void set_index_parameters (Index *index, const char *param_string) const;
180
+ void set_index_parameters(Index* index, const char* param_string) const;
184
181
 
185
182
  /// set one of the parameters, returns whether setting was successful
186
- virtual void set_index_parameter (
187
- Index * index, const std::string & name, double val) const;
183
+ virtual void set_index_parameter(
184
+ Index* index,
185
+ const std::string& name,
186
+ double val) const;
188
187
 
189
188
  /** find an upper bound on the performance and a lower bound on t
190
189
  * for configuration cno given another operating point op */
191
- void update_bounds (size_t cno, const OperatingPoint & op,
192
- double *upper_bound_perf,
193
- double *lower_bound_t) const;
190
+ void update_bounds(
191
+ size_t cno,
192
+ const OperatingPoint& op,
193
+ double* upper_bound_perf,
194
+ double* lower_bound_t) const;
194
195
 
195
196
  /** explore operating points
196
197
  * @param index index to run on
@@ -198,18 +199,16 @@ struct ParameterSpace {
198
199
  * @param crit selection criterion
199
200
  * @param ops resulting operating points
200
201
  */
201
- void explore (Index *index,
202
- size_t nq, const float *xq,
203
- const AutoTuneCriterion & crit,
204
- OperatingPoints * ops) const;
205
-
206
- virtual ~ParameterSpace () {}
202
+ void explore(
203
+ Index* index,
204
+ size_t nq,
205
+ const float* xq,
206
+ const AutoTuneCriterion& crit,
207
+ OperatingPoints* ops) const;
208
+
209
+ virtual ~ParameterSpace() {}
207
210
  };
208
211
 
209
-
210
-
211
212
  } // namespace faiss
212
213
 
213
-
214
-
215
214
  #endif