usearch 2.15.3 → 2.16.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 (48) hide show
  1. package/README.md +1 -1
  2. package/cpp/test.cpp +16 -0
  3. package/include/usearch/index.hpp +21 -5
  4. package/include/usearch/index_dense.hpp +6 -1
  5. package/include/usearch/index_plugins.hpp +345 -8
  6. package/javascript/lib.cpp +17 -5
  7. package/javascript/usearch.test.js +190 -21
  8. package/package.json +1 -1
  9. package/prebuilds/darwin-arm64+x64/usearch.node +0 -0
  10. package/prebuilds/linux-arm64/usearch.node +0 -0
  11. package/prebuilds/linux-x64/usearch.node +0 -0
  12. package/simsimd/.git-blame-ignore-revs +2 -0
  13. package/simsimd/CONTRIBUTING.md +71 -23
  14. package/simsimd/Cargo.lock +1 -1
  15. package/simsimd/Cargo.toml +4 -4
  16. package/simsimd/MANIFEST.in +2 -1
  17. package/simsimd/Package.swift +15 -3
  18. package/simsimd/README.md +104 -35
  19. package/simsimd/binding.gyp +6 -2
  20. package/simsimd/build.rs +2 -0
  21. package/simsimd/c/lib.c +180 -99
  22. package/simsimd/include/simsimd/binary.h +311 -102
  23. package/simsimd/include/simsimd/curved.h +134 -135
  24. package/simsimd/include/simsimd/dot.h +448 -274
  25. package/simsimd/include/simsimd/elementwise.h +1437 -0
  26. package/simsimd/include/simsimd/geospatial.h +2 -2
  27. package/simsimd/include/simsimd/mesh.h +2 -2
  28. package/simsimd/include/simsimd/probability.h +88 -88
  29. package/simsimd/include/simsimd/simsimd.h +1157 -772
  30. package/simsimd/include/simsimd/sparse.h +768 -147
  31. package/simsimd/include/simsimd/spatial.h +955 -376
  32. package/simsimd/include/simsimd/types.h +145 -71
  33. package/simsimd/javascript/lib.c +1 -2
  34. package/simsimd/package.json +4 -4
  35. package/simsimd/rust/lib.rs +14 -1
  36. package/simsimd/scripts/bench.cxx +1070 -0
  37. package/simsimd/scripts/bench.ipynb +187 -0
  38. package/simsimd/{javascript → scripts}/bench.js +1 -1
  39. package/simsimd/{rust/benches/sqeuclidean.rs → scripts/bench_sqeuclidean.rs} +6 -6
  40. package/simsimd/scripts/bench_vectors.py +700 -0
  41. package/simsimd/scripts/bench_vectors_live.py +213 -0
  42. package/simsimd/scripts/test.c +155 -0
  43. package/simsimd/{javascript → scripts}/test.mjs +2 -2
  44. package/simsimd/scripts/test.py +1410 -0
  45. package/simsimd/swift/{source/SimSIMD.swift → SimSIMD.swift} +6 -2
  46. package/simsimd/swift/{tests/SimSIMDTests.swift → Test.swift} +1 -1
  47. /package/simsimd/{rust/benches/cosine.rs → scripts/bench_cosine.rs} +0 -0
  48. /package/simsimd/{rust/benches/native.rs → scripts/bench_native.rs} +0 -0
@@ -95,8 +95,10 @@ extension simsimd_capability_t: OptionSet, CustomStringConvertible {
95
95
  if contains(.haswell) { components.append(".haswell") }
96
96
  if contains(.skylake) { components.append(".skylake") }
97
97
  if contains(.ice) { components.append(".ice") }
98
- if contains(.sapphire) { components.append(".sapphire") }
99
98
  if contains(.genoa) { components.append(".genoa") }
99
+ if contains(.sapphire) { components.append(".sapphire") }
100
+ if contains(.turin) { components.append(".turin") }
101
+ if contains(.sierra) { components.append(".sierra") }
100
102
  return "[\(components.joined(separator: ", "))]"
101
103
  }
102
104
 
@@ -109,8 +111,10 @@ extension simsimd_capability_t: OptionSet, CustomStringConvertible {
109
111
  public static let haswell = simsimd_cap_haswell_k
110
112
  public static let skylake = simsimd_cap_skylake_k
111
113
  public static let ice = simsimd_cap_ice_k
112
- public static let sapphire = simsimd_cap_sapphire_k
113
114
  public static let genoa = simsimd_cap_genoa_k
115
+ public static let sapphire = simsimd_cap_sapphire_k
116
+ public static let turin = simsimd_cap_turin_k
117
+ public static let sierra = simsimd_cap_sierra_k
114
118
  }
115
119
 
116
120
  @inline(__always)
@@ -38,7 +38,7 @@ class SimSIMDTests: XCTestCase {
38
38
  let a: [Int8] = [1, 2, 3]
39
39
  let b: [Int8] = [4, 5, 6]
40
40
  let result = try XCTUnwrap(a.dot(b))
41
- XCTAssertEqual(result, 0.029403687, accuracy: 0.01)
41
+ XCTAssertEqual(result, 32.0, accuracy: 0.01)
42
42
  }
43
43
 
44
44
  func testDotFloat16() throws {