usearch 2.15.2 → 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 (54) hide show
  1. package/README.md +1 -1
  2. package/binding.gyp +1 -1
  3. package/c/CMakeLists.txt +10 -3
  4. package/cpp/README.md +1 -1
  5. package/cpp/bench.cpp +2 -2
  6. package/cpp/test.cpp +16 -0
  7. package/include/usearch/index.hpp +44 -17
  8. package/include/usearch/index_dense.hpp +51 -89
  9. package/include/usearch/index_plugins.hpp +468 -43
  10. package/javascript/lib.cpp +17 -5
  11. package/javascript/usearch.test.js +205 -34
  12. package/package.json +1 -1
  13. package/prebuilds/darwin-arm64+x64/usearch.node +0 -0
  14. package/prebuilds/linux-arm64/usearch.node +0 -0
  15. package/prebuilds/linux-x64/usearch.node +0 -0
  16. package/simsimd/.git-blame-ignore-revs +2 -0
  17. package/simsimd/CODE_OF_CONDUCT.md +128 -0
  18. package/simsimd/CONTRIBUTING.md +84 -26
  19. package/simsimd/Cargo.lock +1 -1
  20. package/simsimd/Cargo.toml +4 -4
  21. package/simsimd/MANIFEST.in +3 -0
  22. package/simsimd/Package.swift +15 -3
  23. package/simsimd/README.md +534 -177
  24. package/simsimd/binding.gyp +6 -2
  25. package/simsimd/build.rs +13 -1
  26. package/simsimd/c/lib.c +266 -53
  27. package/simsimd/include/simsimd/binary.h +321 -112
  28. package/simsimd/include/simsimd/curved.h +803 -0
  29. package/simsimd/include/simsimd/dot.h +694 -521
  30. package/simsimd/include/simsimd/elementwise.h +1437 -0
  31. package/simsimd/include/simsimd/geospatial.h +9 -3
  32. package/simsimd/include/simsimd/mesh.h +69 -0
  33. package/simsimd/include/simsimd/probability.h +234 -206
  34. package/simsimd/include/simsimd/simsimd.h +1476 -617
  35. package/simsimd/include/simsimd/sparse.h +1428 -0
  36. package/simsimd/include/simsimd/spatial.h +1556 -742
  37. package/simsimd/include/simsimd/types.h +276 -132
  38. package/simsimd/javascript/lib.c +1 -2
  39. package/simsimd/javascript/simsimd.ts +4 -4
  40. package/simsimd/package.json +4 -4
  41. package/simsimd/rust/lib.rs +179 -1
  42. package/simsimd/scripts/bench.cxx +1070 -0
  43. package/simsimd/scripts/bench.ipynb +187 -0
  44. package/simsimd/{javascript → scripts}/bench.js +1 -1
  45. package/simsimd/{rust/benches/sqeuclidean.rs → scripts/bench_sqeuclidean.rs} +6 -6
  46. package/simsimd/scripts/bench_vectors.py +700 -0
  47. package/simsimd/scripts/bench_vectors_live.py +213 -0
  48. package/simsimd/scripts/test.c +155 -0
  49. package/simsimd/{javascript → scripts}/test.mjs +2 -2
  50. package/simsimd/scripts/test.py +1410 -0
  51. package/simsimd/swift/{source/SimSIMD.swift → SimSIMD.swift} +6 -2
  52. package/simsimd/swift/{tests/SimSIMDTests.swift → Test.swift} +1 -1
  53. /package/simsimd/{rust/benches/cosine.rs → scripts/bench_cosine.rs} +0 -0
  54. /package/simsimd/{rust/benches/native.rs → scripts/bench_native.rs} +0 -0
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  name = "simsimd"
3
- description = "Fastest SIMD-Accelerated Vector Similarity Functions for x86 and Arm"
4
- version = "5.0.0"
3
+ description = "Portable mixed-precision BLAS-like vector math library for x86 and ARM"
4
+ version = "5.9.6"
5
5
  edition = "2021"
6
6
  license = "Apache-2.0"
7
7
  authors = ["Ash Vardanian <1983160+ashvardanian@users.noreply.github.com>"]
@@ -30,12 +30,12 @@ cc = "1.0.83"
30
30
  [[bench]]
31
31
  name = "cosine"
32
32
  harness = false
33
- path = "rust/benches/cosine.rs"
33
+ path = "scripts/bench_cosine.rs"
34
34
 
35
35
  [[bench]]
36
36
  name = "sqeuclidean"
37
37
  harness = false
38
- path = "rust/benches/sqeuclidean.rs"
38
+ path = "scripts/bench_sqeuclidean.rs"
39
39
 
40
40
  [profile.bench]
41
41
  opt-level = 3 # Corresponds to -O3
@@ -0,0 +1,3 @@
1
+ include include/simsimd/*.h
2
+ include include/*
3
+ include VERSION
@@ -9,8 +9,20 @@ let package = Package(
9
9
  .library(name: "SimSIMD", targets: ["SimSIMD"]),
10
10
  ],
11
11
  targets: [
12
- .testTarget(name: "SimSIMDTests", dependencies: ["SimSIMD"], path: "swift/tests"),
13
- .target(name: "SimSIMD", dependencies: ["CSimSIMD"], path: "swift/source"),
14
- .systemLibrary(name: "CSimSIMD", path: "include")
12
+ .testTarget(name: "Test", dependencies: ["SimSIMD"], path: "swift", exclude:["SimSIMD.swift"]),
13
+ .target(name: "SimSIMD", dependencies: ["CSimSIMD"], path: "swift", exclude:["Test.swift"]),
14
+ .target(
15
+ name: "CSimSIMD",
16
+ path: "include/simsimd/", // Adjust the path to include your C source files
17
+ sources: ["../../c/lib.c"], // Include the source file here
18
+ publicHeadersPath: ".",
19
+ cSettings: [
20
+ .define("SIMSIMD_DYNAMIC_DISPATCH", to: "1"), // Define a C macro
21
+ .define("SIMSIMD_NATIVE_F16", to: "0"), // Define a C macro
22
+ .define("SIMSIMD_NATIVE_BF16", to: "0"), // Define a C macro
23
+ .headerSearchPath("include/"), // Specify header search paths
24
+ .unsafeFlags(["-Wall"]) // Use with caution: specify custom compiler flags
25
+ ]
26
+ ),
15
27
  ]
16
28
  )