faiss 0.3.4 → 0.4.0

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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/lib/faiss/version.rb +1 -1
  4. data/vendor/faiss/faiss/AutoTune.cpp +11 -8
  5. data/vendor/faiss/faiss/Clustering.cpp +0 -16
  6. data/vendor/faiss/faiss/IVFlib.cpp +213 -0
  7. data/vendor/faiss/faiss/IVFlib.h +42 -0
  8. data/vendor/faiss/faiss/Index.h +1 -1
  9. data/vendor/faiss/faiss/IndexBinaryFlat.cpp +9 -7
  10. data/vendor/faiss/faiss/IndexBinaryFlat.h +2 -1
  11. data/vendor/faiss/faiss/IndexFlatCodes.cpp +1 -1
  12. data/vendor/faiss/faiss/IndexFlatCodes.h +4 -2
  13. data/vendor/faiss/faiss/IndexHNSW.cpp +13 -20
  14. data/vendor/faiss/faiss/IndexHNSW.h +1 -1
  15. data/vendor/faiss/faiss/IndexIVF.cpp +20 -3
  16. data/vendor/faiss/faiss/IndexIVF.h +5 -2
  17. data/vendor/faiss/faiss/IndexIVFAdditiveQuantizer.cpp +2 -1
  18. data/vendor/faiss/faiss/IndexIVFAdditiveQuantizer.h +2 -1
  19. data/vendor/faiss/faiss/IndexIVFFlat.cpp +2 -1
  20. data/vendor/faiss/faiss/IndexIVFFlat.h +2 -1
  21. data/vendor/faiss/faiss/IndexIVFPQ.cpp +2 -1
  22. data/vendor/faiss/faiss/IndexIVFPQ.h +2 -1
  23. data/vendor/faiss/faiss/IndexIVFRaBitQ.cpp +277 -0
  24. data/vendor/faiss/faiss/IndexIVFRaBitQ.h +70 -0
  25. data/vendor/faiss/faiss/IndexIVFSpectralHash.cpp +2 -1
  26. data/vendor/faiss/faiss/IndexIVFSpectralHash.h +2 -1
  27. data/vendor/faiss/faiss/IndexRaBitQ.cpp +148 -0
  28. data/vendor/faiss/faiss/IndexRaBitQ.h +65 -0
  29. data/vendor/faiss/faiss/IndexScalarQuantizer.cpp +2 -1
  30. data/vendor/faiss/faiss/IndexScalarQuantizer.h +2 -1
  31. data/vendor/faiss/faiss/clone_index.cpp +38 -3
  32. data/vendor/faiss/faiss/cppcontrib/factory_tools.cpp +19 -0
  33. data/vendor/faiss/faiss/cppcontrib/factory_tools.h +4 -11
  34. data/vendor/faiss/faiss/gpu/GpuAutoTune.cpp +2 -1
  35. data/vendor/faiss/faiss/gpu/GpuIndexCagra.h +13 -3
  36. data/vendor/faiss/faiss/gpu/StandardGpuResources.cpp +1 -1
  37. data/vendor/faiss/faiss/gpu/StandardGpuResources.h +1 -1
  38. data/vendor/faiss/faiss/gpu/test/TestGpuIcmEncoder.cpp +112 -0
  39. data/vendor/faiss/faiss/impl/HNSW.cpp +35 -13
  40. data/vendor/faiss/faiss/impl/HNSW.h +5 -4
  41. data/vendor/faiss/faiss/impl/NNDescent.cpp +1 -1
  42. data/vendor/faiss/faiss/impl/RaBitQuantizer.cpp +519 -0
  43. data/vendor/faiss/faiss/impl/RaBitQuantizer.h +78 -0
  44. data/vendor/faiss/faiss/impl/ResultHandler.h +2 -2
  45. data/vendor/faiss/faiss/impl/code_distance/code_distance-sve.h +3 -4
  46. data/vendor/faiss/faiss/impl/index_read.cpp +220 -25
  47. data/vendor/faiss/faiss/impl/index_write.cpp +29 -0
  48. data/vendor/faiss/faiss/impl/io.h +2 -2
  49. data/vendor/faiss/faiss/impl/io_macros.h +2 -0
  50. data/vendor/faiss/faiss/impl/mapped_io.cpp +313 -0
  51. data/vendor/faiss/faiss/impl/mapped_io.h +51 -0
  52. data/vendor/faiss/faiss/impl/maybe_owned_vector.h +316 -0
  53. data/vendor/faiss/faiss/impl/platform_macros.h +7 -3
  54. data/vendor/faiss/faiss/impl/simd_result_handlers.h +1 -1
  55. data/vendor/faiss/faiss/impl/zerocopy_io.cpp +67 -0
  56. data/vendor/faiss/faiss/impl/zerocopy_io.h +32 -0
  57. data/vendor/faiss/faiss/index_factory.cpp +16 -5
  58. data/vendor/faiss/faiss/index_io.h +4 -0
  59. data/vendor/faiss/faiss/invlists/InvertedLists.cpp +3 -3
  60. data/vendor/faiss/faiss/invlists/InvertedLists.h +5 -3
  61. data/vendor/faiss/faiss/invlists/InvertedListsIOHook.cpp +3 -3
  62. data/vendor/faiss/faiss/python/python_callbacks.cpp +24 -0
  63. data/vendor/faiss/faiss/python/python_callbacks.h +22 -0
  64. data/vendor/faiss/faiss/utils/approx_topk_hamming/approx_topk_hamming.h +30 -12
  65. data/vendor/faiss/faiss/utils/hamming.cpp +45 -21
  66. data/vendor/faiss/faiss/utils/hamming.h +7 -3
  67. data/vendor/faiss/faiss/utils/hamming_distance/avx512-inl.h +1 -1
  68. data/vendor/faiss/faiss/utils/utils.cpp +4 -4
  69. data/vendor/faiss/faiss/utils/utils.h +3 -3
  70. metadata +16 -4
@@ -387,7 +387,7 @@ size_t ranklist_intersection_size(
387
387
  return count;
388
388
  }
389
389
 
390
- double imbalance_factor(int k, const int* hist) {
390
+ double imbalance_factor(int k, const int64_t* hist) {
391
391
  double tot = 0, uf = 0;
392
392
 
393
393
  for (int i = 0; i < k; i++) {
@@ -399,9 +399,9 @@ double imbalance_factor(int k, const int* hist) {
399
399
  return uf;
400
400
  }
401
401
 
402
- double imbalance_factor(int n, int k, const int64_t* assign) {
403
- std::vector<int> hist(k, 0);
404
- for (int i = 0; i < n; i++) {
402
+ double imbalance_factor(int64_t n, int k, const int64_t* assign) {
403
+ std::vector<int64_t> hist(k, 0);
404
+ for (int64_t i = 0; i < n; i++) {
405
405
  hist[assign[i]]++;
406
406
  }
407
407
 
@@ -37,7 +37,7 @@ std::string get_compile_options();
37
37
  * Get some stats about the system
38
38
  **************************************************/
39
39
 
40
- // Expose FAISS version as a string
40
+ // Expose Faiss version as a string
41
41
  std::string get_version();
42
42
 
43
43
  /// ms elapsed since some arbitrary epoch
@@ -92,10 +92,10 @@ size_t merge_result_table_with(
92
92
 
93
93
  /// a balanced assignment has a IF of 1, a completely unbalanced assignment has
94
94
  /// an IF = k.
95
- double imbalance_factor(int n, int k, const int64_t* assign);
95
+ double imbalance_factor(int64_t n, int k, const int64_t* assign);
96
96
 
97
97
  /// same, takes a histogram as input
98
- double imbalance_factor(int k, const int* hist);
98
+ double imbalance_factor(int k, const int64_t* hist);
99
99
 
100
100
  /// compute histogram on v
101
101
  int ivec_hist(size_t n, const int* v, int vmax, int* hist);
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faiss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-02-10 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rice
@@ -113,6 +113,8 @@ files:
113
113
  - vendor/faiss/faiss/IndexIVFPQFastScan.h
114
114
  - vendor/faiss/faiss/IndexIVFPQR.cpp
115
115
  - vendor/faiss/faiss/IndexIVFPQR.h
116
+ - vendor/faiss/faiss/IndexIVFRaBitQ.cpp
117
+ - vendor/faiss/faiss/IndexIVFRaBitQ.h
116
118
  - vendor/faiss/faiss/IndexIVFSpectralHash.cpp
117
119
  - vendor/faiss/faiss/IndexIVFSpectralHash.h
118
120
  - vendor/faiss/faiss/IndexLSH.cpp
@@ -131,6 +133,8 @@ files:
131
133
  - vendor/faiss/faiss/IndexPQFastScan.h
132
134
  - vendor/faiss/faiss/IndexPreTransform.cpp
133
135
  - vendor/faiss/faiss/IndexPreTransform.h
136
+ - vendor/faiss/faiss/IndexRaBitQ.cpp
137
+ - vendor/faiss/faiss/IndexRaBitQ.h
134
138
  - vendor/faiss/faiss/IndexRefine.cpp
135
139
  - vendor/faiss/faiss/IndexRefine.h
136
140
  - vendor/faiss/faiss/IndexReplicas.cpp
@@ -197,6 +201,7 @@ files:
197
201
  - vendor/faiss/faiss/gpu/perf/PerfIVFPQAdd.cpp
198
202
  - vendor/faiss/faiss/gpu/perf/WriteIndex.cpp
199
203
  - vendor/faiss/faiss/gpu/test/TestCodePacking.cpp
204
+ - vendor/faiss/faiss/gpu/test/TestGpuIcmEncoder.cpp
200
205
  - vendor/faiss/faiss/gpu/test/TestGpuIndexBinaryFlat.cpp
201
206
  - vendor/faiss/faiss/gpu/test/TestGpuIndexFlat.cpp
202
207
  - vendor/faiss/faiss/gpu/test/TestGpuIndexIVFFlat.cpp
@@ -243,6 +248,8 @@ files:
243
248
  - vendor/faiss/faiss/impl/ProductQuantizer.cpp
244
249
  - vendor/faiss/faiss/impl/ProductQuantizer.h
245
250
  - vendor/faiss/faiss/impl/Quantizer.h
251
+ - vendor/faiss/faiss/impl/RaBitQuantizer.cpp
252
+ - vendor/faiss/faiss/impl/RaBitQuantizer.h
246
253
  - vendor/faiss/faiss/impl/ResidualQuantizer.cpp
247
254
  - vendor/faiss/faiss/impl/ResidualQuantizer.h
248
255
  - vendor/faiss/faiss/impl/ResultHandler.h
@@ -265,6 +272,9 @@ files:
265
272
  - vendor/faiss/faiss/impl/kmeans1d.h
266
273
  - vendor/faiss/faiss/impl/lattice_Zn.cpp
267
274
  - vendor/faiss/faiss/impl/lattice_Zn.h
275
+ - vendor/faiss/faiss/impl/mapped_io.cpp
276
+ - vendor/faiss/faiss/impl/mapped_io.h
277
+ - vendor/faiss/faiss/impl/maybe_owned_vector.h
268
278
  - vendor/faiss/faiss/impl/platform_macros.h
269
279
  - vendor/faiss/faiss/impl/pq4_fast_scan.cpp
270
280
  - vendor/faiss/faiss/impl/pq4_fast_scan.h
@@ -273,6 +283,8 @@ files:
273
283
  - vendor/faiss/faiss/impl/residual_quantizer_encode_steps.cpp
274
284
  - vendor/faiss/faiss/impl/residual_quantizer_encode_steps.h
275
285
  - vendor/faiss/faiss/impl/simd_result_handlers.h
286
+ - vendor/faiss/faiss/impl/zerocopy_io.cpp
287
+ - vendor/faiss/faiss/impl/zerocopy_io.h
276
288
  - vendor/faiss/faiss/index_factory.cpp
277
289
  - vendor/faiss/faiss/index_factory.h
278
290
  - vendor/faiss/faiss/index_io.h
@@ -357,14 +369,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
357
369
  requirements:
358
370
  - - ">="
359
371
  - !ruby/object:Gem::Version
360
- version: '3'
372
+ version: '3.2'
361
373
  required_rubygems_version: !ruby/object:Gem::Requirement
362
374
  requirements:
363
375
  - - ">="
364
376
  - !ruby/object:Gem::Version
365
377
  version: '0'
366
378
  requirements: []
367
- rubygems_version: 3.6.2
379
+ rubygems_version: 3.6.7
368
380
  specification_version: 4
369
381
  summary: Efficient similarity search and clustering for Ruby
370
382
  test_files: []