faiss 0.2.0 → 0.2.4

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 (215) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +7 -7
  5. data/ext/faiss/extconf.rb +6 -3
  6. data/ext/faiss/numo.hpp +4 -4
  7. data/ext/faiss/utils.cpp +1 -1
  8. data/ext/faiss/utils.h +1 -1
  9. data/lib/faiss/version.rb +1 -1
  10. data/vendor/faiss/faiss/AutoTune.cpp +292 -291
  11. data/vendor/faiss/faiss/AutoTune.h +55 -56
  12. data/vendor/faiss/faiss/Clustering.cpp +365 -194
  13. data/vendor/faiss/faiss/Clustering.h +102 -35
  14. data/vendor/faiss/faiss/IVFlib.cpp +171 -195
  15. data/vendor/faiss/faiss/IVFlib.h +48 -51
  16. data/vendor/faiss/faiss/Index.cpp +85 -103
  17. data/vendor/faiss/faiss/Index.h +54 -48
  18. data/vendor/faiss/faiss/Index2Layer.cpp +126 -224
  19. data/vendor/faiss/faiss/Index2Layer.h +22 -36
  20. data/vendor/faiss/faiss/IndexAdditiveQuantizer.cpp +407 -0
  21. data/vendor/faiss/faiss/IndexAdditiveQuantizer.h +195 -0
  22. data/vendor/faiss/faiss/IndexBinary.cpp +45 -37
  23. data/vendor/faiss/faiss/IndexBinary.h +140 -132
  24. data/vendor/faiss/faiss/IndexBinaryFlat.cpp +73 -53
  25. data/vendor/faiss/faiss/IndexBinaryFlat.h +29 -24
  26. data/vendor/faiss/faiss/IndexBinaryFromFloat.cpp +46 -43
  27. data/vendor/faiss/faiss/IndexBinaryFromFloat.h +16 -15
  28. data/vendor/faiss/faiss/IndexBinaryHNSW.cpp +215 -232
  29. data/vendor/faiss/faiss/IndexBinaryHNSW.h +25 -24
  30. data/vendor/faiss/faiss/IndexBinaryHash.cpp +182 -177
  31. data/vendor/faiss/faiss/IndexBinaryHash.h +41 -34
  32. data/vendor/faiss/faiss/IndexBinaryIVF.cpp +489 -461
  33. data/vendor/faiss/faiss/IndexBinaryIVF.h +97 -68
  34. data/vendor/faiss/faiss/IndexFlat.cpp +115 -176
  35. data/vendor/faiss/faiss/IndexFlat.h +42 -59
  36. data/vendor/faiss/faiss/IndexFlatCodes.cpp +67 -0
  37. data/vendor/faiss/faiss/IndexFlatCodes.h +47 -0
  38. data/vendor/faiss/faiss/IndexHNSW.cpp +372 -348
  39. data/vendor/faiss/faiss/IndexHNSW.h +57 -41
  40. data/vendor/faiss/faiss/IndexIVF.cpp +545 -453
  41. data/vendor/faiss/faiss/IndexIVF.h +169 -118
  42. data/vendor/faiss/faiss/IndexIVFAdditiveQuantizer.cpp +316 -0
  43. data/vendor/faiss/faiss/IndexIVFAdditiveQuantizer.h +121 -0
  44. data/vendor/faiss/faiss/IndexIVFFlat.cpp +247 -252
  45. data/vendor/faiss/faiss/IndexIVFFlat.h +48 -51
  46. data/vendor/faiss/faiss/IndexIVFPQ.cpp +459 -517
  47. data/vendor/faiss/faiss/IndexIVFPQ.h +75 -67
  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 +163 -150
  53. data/vendor/faiss/faiss/IndexIVFSpectralHash.h +38 -25
  54. data/vendor/faiss/faiss/IndexLSH.cpp +66 -113
  55. data/vendor/faiss/faiss/IndexLSH.h +20 -38
  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 +229 -0
  59. data/vendor/faiss/faiss/IndexNNDescent.h +72 -0
  60. data/vendor/faiss/faiss/IndexNSG.cpp +301 -0
  61. data/vendor/faiss/faiss/IndexNSG.h +85 -0
  62. data/vendor/faiss/faiss/IndexPQ.cpp +387 -495
  63. data/vendor/faiss/faiss/IndexPQ.h +64 -82
  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 +139 -127
  69. data/vendor/faiss/faiss/IndexRefine.h +32 -23
  70. data/vendor/faiss/faiss/IndexReplicas.cpp +147 -153
  71. data/vendor/faiss/faiss/IndexReplicas.h +62 -56
  72. data/vendor/faiss/faiss/IndexScalarQuantizer.cpp +111 -172
  73. data/vendor/faiss/faiss/IndexScalarQuantizer.h +41 -59
  74. data/vendor/faiss/faiss/IndexShards.cpp +256 -240
  75. data/vendor/faiss/faiss/IndexShards.h +85 -73
  76. data/vendor/faiss/faiss/MatrixStats.cpp +112 -97
  77. data/vendor/faiss/faiss/MatrixStats.h +7 -10
  78. data/vendor/faiss/faiss/MetaIndexes.cpp +135 -157
  79. data/vendor/faiss/faiss/MetaIndexes.h +40 -34
  80. data/vendor/faiss/faiss/MetricType.h +7 -7
  81. data/vendor/faiss/faiss/VectorTransform.cpp +654 -475
  82. data/vendor/faiss/faiss/VectorTransform.h +64 -89
  83. data/vendor/faiss/faiss/clone_index.cpp +78 -73
  84. data/vendor/faiss/faiss/clone_index.h +4 -9
  85. data/vendor/faiss/faiss/gpu/GpuAutoTune.cpp +33 -38
  86. data/vendor/faiss/faiss/gpu/GpuAutoTune.h +11 -9
  87. data/vendor/faiss/faiss/gpu/GpuCloner.cpp +198 -171
  88. data/vendor/faiss/faiss/gpu/GpuCloner.h +53 -35
  89. data/vendor/faiss/faiss/gpu/GpuClonerOptions.cpp +12 -14
  90. data/vendor/faiss/faiss/gpu/GpuClonerOptions.h +27 -25
  91. data/vendor/faiss/faiss/gpu/GpuDistance.h +116 -112
  92. data/vendor/faiss/faiss/gpu/GpuFaissAssert.h +1 -2
  93. data/vendor/faiss/faiss/gpu/GpuIcmEncoder.h +60 -0
  94. data/vendor/faiss/faiss/gpu/GpuIndex.h +134 -137
  95. data/vendor/faiss/faiss/gpu/GpuIndexBinaryFlat.h +76 -73
  96. data/vendor/faiss/faiss/gpu/GpuIndexFlat.h +173 -162
  97. data/vendor/faiss/faiss/gpu/GpuIndexIVF.h +67 -64
  98. data/vendor/faiss/faiss/gpu/GpuIndexIVFFlat.h +89 -86
  99. data/vendor/faiss/faiss/gpu/GpuIndexIVFPQ.h +150 -141
  100. data/vendor/faiss/faiss/gpu/GpuIndexIVFScalarQuantizer.h +101 -103
  101. data/vendor/faiss/faiss/gpu/GpuIndicesOptions.h +17 -16
  102. data/vendor/faiss/faiss/gpu/GpuResources.cpp +116 -128
  103. data/vendor/faiss/faiss/gpu/GpuResources.h +182 -186
  104. data/vendor/faiss/faiss/gpu/StandardGpuResources.cpp +433 -422
  105. data/vendor/faiss/faiss/gpu/StandardGpuResources.h +131 -130
  106. data/vendor/faiss/faiss/gpu/impl/InterleavedCodes.cpp +468 -456
  107. data/vendor/faiss/faiss/gpu/impl/InterleavedCodes.h +25 -19
  108. data/vendor/faiss/faiss/gpu/impl/RemapIndices.cpp +22 -20
  109. data/vendor/faiss/faiss/gpu/impl/RemapIndices.h +9 -8
  110. data/vendor/faiss/faiss/gpu/perf/IndexWrapper-inl.h +39 -44
  111. data/vendor/faiss/faiss/gpu/perf/IndexWrapper.h +16 -14
  112. data/vendor/faiss/faiss/gpu/perf/PerfClustering.cpp +77 -71
  113. data/vendor/faiss/faiss/gpu/perf/PerfIVFPQAdd.cpp +109 -88
  114. data/vendor/faiss/faiss/gpu/perf/WriteIndex.cpp +75 -64
  115. data/vendor/faiss/faiss/gpu/test/TestCodePacking.cpp +230 -215
  116. data/vendor/faiss/faiss/gpu/test/TestGpuIndexBinaryFlat.cpp +80 -86
  117. data/vendor/faiss/faiss/gpu/test/TestGpuIndexFlat.cpp +284 -277
  118. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFFlat.cpp +416 -416
  119. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFPQ.cpp +611 -517
  120. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFScalarQuantizer.cpp +166 -164
  121. data/vendor/faiss/faiss/gpu/test/TestGpuMemoryException.cpp +61 -53
  122. data/vendor/faiss/faiss/gpu/test/TestUtils.cpp +274 -238
  123. data/vendor/faiss/faiss/gpu/test/TestUtils.h +73 -57
  124. data/vendor/faiss/faiss/gpu/test/demo_ivfpq_indexing_gpu.cpp +47 -50
  125. data/vendor/faiss/faiss/gpu/utils/DeviceUtils.h +79 -72
  126. data/vendor/faiss/faiss/gpu/utils/StackDeviceMemory.cpp +140 -146
  127. data/vendor/faiss/faiss/gpu/utils/StackDeviceMemory.h +69 -71
  128. data/vendor/faiss/faiss/gpu/utils/StaticUtils.h +21 -16
  129. data/vendor/faiss/faiss/gpu/utils/Timer.cpp +25 -29
  130. data/vendor/faiss/faiss/gpu/utils/Timer.h +30 -29
  131. data/vendor/faiss/faiss/impl/AdditiveQuantizer.cpp +503 -0
  132. data/vendor/faiss/faiss/impl/AdditiveQuantizer.h +175 -0
  133. data/vendor/faiss/faiss/impl/AuxIndexStructures.cpp +90 -120
  134. data/vendor/faiss/faiss/impl/AuxIndexStructures.h +81 -65
  135. data/vendor/faiss/faiss/impl/FaissAssert.h +73 -58
  136. data/vendor/faiss/faiss/impl/FaissException.cpp +56 -48
  137. data/vendor/faiss/faiss/impl/FaissException.h +41 -29
  138. data/vendor/faiss/faiss/impl/HNSW.cpp +606 -617
  139. data/vendor/faiss/faiss/impl/HNSW.h +179 -200
  140. data/vendor/faiss/faiss/impl/LocalSearchQuantizer.cpp +855 -0
  141. data/vendor/faiss/faiss/impl/LocalSearchQuantizer.h +244 -0
  142. data/vendor/faiss/faiss/impl/NNDescent.cpp +487 -0
  143. data/vendor/faiss/faiss/impl/NNDescent.h +154 -0
  144. data/vendor/faiss/faiss/impl/NSG.cpp +679 -0
  145. data/vendor/faiss/faiss/impl/NSG.h +199 -0
  146. data/vendor/faiss/faiss/impl/PolysemousTraining.cpp +484 -454
  147. data/vendor/faiss/faiss/impl/PolysemousTraining.h +52 -55
  148. data/vendor/faiss/faiss/impl/ProductQuantizer-inl.h +26 -47
  149. data/vendor/faiss/faiss/impl/ProductQuantizer.cpp +469 -459
  150. data/vendor/faiss/faiss/impl/ProductQuantizer.h +76 -87
  151. data/vendor/faiss/faiss/impl/ResidualQuantizer.cpp +758 -0
  152. data/vendor/faiss/faiss/impl/ResidualQuantizer.h +188 -0
  153. data/vendor/faiss/faiss/impl/ResultHandler.h +96 -132
  154. data/vendor/faiss/faiss/impl/ScalarQuantizer.cpp +647 -707
  155. data/vendor/faiss/faiss/impl/ScalarQuantizer.h +48 -46
  156. data/vendor/faiss/faiss/impl/ThreadedIndex-inl.h +129 -131
  157. data/vendor/faiss/faiss/impl/ThreadedIndex.h +61 -55
  158. data/vendor/faiss/faiss/impl/index_read.cpp +631 -480
  159. data/vendor/faiss/faiss/impl/index_write.cpp +547 -407
  160. data/vendor/faiss/faiss/impl/io.cpp +76 -95
  161. data/vendor/faiss/faiss/impl/io.h +31 -41
  162. data/vendor/faiss/faiss/impl/io_macros.h +60 -29
  163. data/vendor/faiss/faiss/impl/kmeans1d.cpp +301 -0
  164. data/vendor/faiss/faiss/impl/kmeans1d.h +48 -0
  165. data/vendor/faiss/faiss/impl/lattice_Zn.cpp +137 -186
  166. data/vendor/faiss/faiss/impl/lattice_Zn.h +40 -51
  167. data/vendor/faiss/faiss/impl/platform_macros.h +29 -8
  168. data/vendor/faiss/faiss/impl/pq4_fast_scan.cpp +77 -124
  169. data/vendor/faiss/faiss/impl/pq4_fast_scan.h +39 -48
  170. data/vendor/faiss/faiss/impl/pq4_fast_scan_search_1.cpp +41 -52
  171. data/vendor/faiss/faiss/impl/pq4_fast_scan_search_qbs.cpp +80 -117
  172. data/vendor/faiss/faiss/impl/simd_result_handlers.h +109 -137
  173. data/vendor/faiss/faiss/index_factory.cpp +619 -397
  174. data/vendor/faiss/faiss/index_factory.h +8 -6
  175. data/vendor/faiss/faiss/index_io.h +23 -26
  176. data/vendor/faiss/faiss/invlists/BlockInvertedLists.cpp +67 -75
  177. data/vendor/faiss/faiss/invlists/BlockInvertedLists.h +22 -24
  178. data/vendor/faiss/faiss/invlists/DirectMap.cpp +96 -112
  179. data/vendor/faiss/faiss/invlists/DirectMap.h +29 -33
  180. data/vendor/faiss/faiss/invlists/InvertedLists.cpp +307 -364
  181. data/vendor/faiss/faiss/invlists/InvertedLists.h +151 -151
  182. data/vendor/faiss/faiss/invlists/InvertedListsIOHook.cpp +29 -34
  183. data/vendor/faiss/faiss/invlists/InvertedListsIOHook.h +17 -18
  184. data/vendor/faiss/faiss/invlists/OnDiskInvertedLists.cpp +257 -293
  185. data/vendor/faiss/faiss/invlists/OnDiskInvertedLists.h +50 -45
  186. data/vendor/faiss/faiss/python/python_callbacks.cpp +23 -26
  187. data/vendor/faiss/faiss/python/python_callbacks.h +9 -16
  188. data/vendor/faiss/faiss/utils/AlignedTable.h +79 -44
  189. data/vendor/faiss/faiss/utils/Heap.cpp +40 -48
  190. data/vendor/faiss/faiss/utils/Heap.h +186 -209
  191. data/vendor/faiss/faiss/utils/WorkerThread.cpp +67 -76
  192. data/vendor/faiss/faiss/utils/WorkerThread.h +32 -33
  193. data/vendor/faiss/faiss/utils/distances.cpp +305 -312
  194. data/vendor/faiss/faiss/utils/distances.h +170 -122
  195. data/vendor/faiss/faiss/utils/distances_simd.cpp +498 -508
  196. data/vendor/faiss/faiss/utils/extra_distances-inl.h +117 -0
  197. data/vendor/faiss/faiss/utils/extra_distances.cpp +113 -232
  198. data/vendor/faiss/faiss/utils/extra_distances.h +30 -29
  199. data/vendor/faiss/faiss/utils/hamming-inl.h +260 -209
  200. data/vendor/faiss/faiss/utils/hamming.cpp +375 -469
  201. data/vendor/faiss/faiss/utils/hamming.h +62 -85
  202. data/vendor/faiss/faiss/utils/ordered_key_value.h +16 -18
  203. data/vendor/faiss/faiss/utils/partitioning.cpp +393 -318
  204. data/vendor/faiss/faiss/utils/partitioning.h +26 -21
  205. data/vendor/faiss/faiss/utils/quantize_lut.cpp +78 -66
  206. data/vendor/faiss/faiss/utils/quantize_lut.h +22 -20
  207. data/vendor/faiss/faiss/utils/random.cpp +39 -63
  208. data/vendor/faiss/faiss/utils/random.h +13 -16
  209. data/vendor/faiss/faiss/utils/simdlib.h +4 -2
  210. data/vendor/faiss/faiss/utils/simdlib_avx2.h +88 -85
  211. data/vendor/faiss/faiss/utils/simdlib_emulated.h +226 -165
  212. data/vendor/faiss/faiss/utils/simdlib_neon.h +832 -0
  213. data/vendor/faiss/faiss/utils/utils.cpp +304 -287
  214. data/vendor/faiss/faiss/utils/utils.h +54 -49
  215. metadata +29 -4
@@ -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