usearch 2.9.2 → 2.10.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 (172) hide show
  1. package/README.md +39 -38
  2. package/javascript/{types → dist/cjs}/usearch.d.ts +90 -115
  3. package/javascript/dist/cjs/usearch.js +531 -0
  4. package/javascript/dist/esm/usearch.d.ts +212 -0
  5. package/javascript/{usearch.js → dist/esm/usearch.js} +199 -153
  6. package/package.json +25 -23
  7. package/prebuilds/darwin-arm64+x64/usearch.node +0 -0
  8. package/prebuilds/linux-arm64/usearch.node +0 -0
  9. package/prebuilds/linux-x64/usearch.node +0 -0
  10. package/prebuilds/win32-ia32/usearch.node +0 -0
  11. package/prebuilds/win32-x64/usearch.node +0 -0
  12. package/.clang-format +0 -10
  13. package/.clang-tidy +0 -60
  14. package/.cmake-format.py +0 -19
  15. package/.dockerignore +0 -93
  16. package/.gitattributes +0 -9
  17. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -90
  18. package/.github/ISSUE_TEMPLATE/config.yml +0 -5
  19. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -64
  20. package/.github/workflows/Dockerfile.libs +0 -36
  21. package/.github/workflows/prerelease.yml +0 -331
  22. package/.github/workflows/release.yml +0 -722
  23. package/.github/workflows/update_version.sh +0 -15
  24. package/.gitmodules +0 -9
  25. package/.releaserc +0 -90
  26. package/CITATION.cff +0 -11
  27. package/CMakeLists.txt +0 -324
  28. package/CODE_OF_CONDUCT.md +0 -128
  29. package/CONTRIBUTING.md +0 -361
  30. package/Cargo.toml +0 -19
  31. package/Dockerfile +0 -16
  32. package/VERSION +0 -1
  33. package/assets/unum.png +0 -0
  34. package/assets/usearch-approaches-transparent.png +0 -0
  35. package/assets/usearch-approaches-white.png +0 -0
  36. package/assets/usearch-neighbor-types.png +0 -0
  37. package/binding.gyp +0 -87
  38. package/build.gradle +0 -204
  39. package/build.rs +0 -18
  40. package/c/CMakeLists.txt +0 -25
  41. package/c/README.md +0 -34
  42. package/c/lib.cpp +0 -358
  43. package/c/test.c +0 -382
  44. package/c/usearch.h +0 -311
  45. package/cmake/clipp.cmake +0 -7
  46. package/cmake/config.cmake.in +0 -15
  47. package/cmake/emscripten.cmake +0 -8
  48. package/cmake/jemalloc.cmake +0 -62
  49. package/cmake/pkg-config.pc.in +0 -4
  50. package/cmake/usearchConfigVersion.cmake.in +0 -20
  51. package/conanfile.py +0 -26
  52. package/cpp/CMakeLists.txt +0 -14
  53. package/cpp/README.md +0 -161
  54. package/cpp/bench.cpp +0 -618
  55. package/cpp/test.cpp +0 -323
  56. package/fp16/CMakeLists.txt +0 -176
  57. package/fp16/LICENSE +0 -11
  58. package/fp16/README.md +0 -20
  59. package/fp16/bench/alt-element.cc +0 -89
  60. package/fp16/bench/from-alt-array.cc +0 -175
  61. package/fp16/bench/from-ieee-array.cc +0 -399
  62. package/fp16/bench/ieee-element.cc +0 -272
  63. package/fp16/bench/to-alt-array.cc +0 -91
  64. package/fp16/bench/to-ieee-array.cc +0 -303
  65. package/fp16/cmake/DownloadGoogleBenchmark.cmake +0 -15
  66. package/fp16/cmake/DownloadGoogleTest.cmake +0 -15
  67. package/fp16/cmake/DownloadPSimd.cmake +0 -15
  68. package/fp16/configure.py +0 -65
  69. package/fp16/confu.yaml +0 -8
  70. package/fp16/include/fp16/__init__.py +0 -0
  71. package/fp16/include/fp16/avx.py +0 -50
  72. package/fp16/include/fp16/avx2.py +0 -53
  73. package/fp16/include/fp16/bitcasts.h +0 -92
  74. package/fp16/include/fp16/fp16.h +0 -451
  75. package/fp16/include/fp16/psimd.h +0 -131
  76. package/fp16/include/fp16.h +0 -11
  77. package/fp16/jni/Android.mk +0 -6
  78. package/fp16/jni/Application.mk +0 -4
  79. package/fp16/test/alt-from-fp32-value.cc +0 -498
  80. package/fp16/test/alt-to-fp32-bits.cc +0 -263
  81. package/fp16/test/alt-to-fp32-psimd.cc +0 -145
  82. package/fp16/test/alt-to-fp32-value.cc +0 -348
  83. package/fp16/test/alt-to-fp32x2-psimd.cc +0 -245
  84. package/fp16/test/bitcasts.cc +0 -56
  85. package/fp16/test/ieee-from-fp32-value.cc +0 -523
  86. package/fp16/test/ieee-to-fp32-bits.cc +0 -333
  87. package/fp16/test/ieee-to-fp32-psimd.cc +0 -312
  88. package/fp16/test/ieee-to-fp32-value.cc +0 -420
  89. package/fp16/test/ieee-to-fp32x2-psimd.cc +0 -541
  90. package/fp16/test/peachpy/alt-xmm-to-fp32-xmm-avx.cc +0 -96
  91. package/fp16/test/peachpy/alt-xmm-to-fp32-ymm-avx2.cc +0 -96
  92. package/fp16/test/peachpy/stubs.py +0 -38
  93. package/fp16/test/tables.cc +0 -530
  94. package/fp16/test/tables.h +0 -13
  95. package/fp16/third-party/THHalf.h +0 -92
  96. package/fp16/third-party/eigen-half.h +0 -170
  97. package/fp16/third-party/float16-compressor.h +0 -80
  98. package/fp16/third-party/half.hpp +0 -2916
  99. package/fp16/third-party/npy-halffloat.h +0 -328
  100. package/include/usearch/index.hpp +0 -3836
  101. package/include/usearch/index_dense.hpp +0 -2004
  102. package/include/usearch/index_plugins.hpp +0 -2213
  103. package/javascript/lib.cpp +0 -341
  104. package/javascript/types/usearch.d.ts.map +0 -1
  105. package/javascript/usearch.test.js +0 -74
  106. package/package-ci.json +0 -10
  107. package/pyproject.toml +0 -51
  108. package/setup.py +0 -201
  109. package/simsimd/.releaserc +0 -86
  110. package/simsimd/CONTRIBUTING.md +0 -88
  111. package/simsimd/Cargo.lock +0 -709
  112. package/simsimd/Cargo.toml +0 -44
  113. package/simsimd/LICENSE +0 -201
  114. package/simsimd/README.md +0 -317
  115. package/simsimd/binding.gyp +0 -36
  116. package/simsimd/build.rs +0 -20
  117. package/simsimd/include/simsimd/binary.h +0 -245
  118. package/simsimd/include/simsimd/complex.h +0 -174
  119. package/simsimd/include/simsimd/probability.h +0 -548
  120. package/simsimd/include/simsimd/simsimd.h +0 -465
  121. package/simsimd/include/simsimd/spatial.h +0 -1267
  122. package/simsimd/include/simsimd/types.h +0 -208
  123. package/simsimd/javascript/bench.js +0 -127
  124. package/simsimd/javascript/fallback.ts +0 -193
  125. package/simsimd/javascript/lib.c +0 -102
  126. package/simsimd/javascript/node-gyp-build.d.ts +0 -1
  127. package/simsimd/javascript/simsimd.ts +0 -124
  128. package/simsimd/javascript/test.mjs +0 -153
  129. package/simsimd/javascript/tsconfig-base.json +0 -25
  130. package/simsimd/javascript/tsconfig-cjs.json +0 -8
  131. package/simsimd/javascript/tsconfig-esm.json +0 -8
  132. package/simsimd/package-lock.json +0 -1688
  133. package/simsimd/package.json +0 -61
  134. package/simsimd/rust/benches/cosine.rs +0 -27
  135. package/simsimd/rust/benches/native.rs +0 -30
  136. package/simsimd/rust/benches/sqeuclidean.rs +0 -27
  137. package/simsimd/rust/lib.c +0 -45
  138. package/simsimd/rust/lib.rs +0 -550
  139. package/sqlite/README.md +0 -178
  140. package/sqlite/lib.cpp +0 -325
  141. package/stringzilla/CONTRIBUTING.md +0 -446
  142. package/stringzilla/Cargo.lock +0 -25
  143. package/stringzilla/Cargo.toml +0 -26
  144. package/stringzilla/LICENSE +0 -201
  145. package/stringzilla/README.md +0 -1422
  146. package/stringzilla/VERSION +0 -1
  147. package/stringzilla/assets/cover-strinzilla.jpeg +0 -0
  148. package/stringzilla/assets/meme-stringzilla-v2.jpeg +0 -0
  149. package/stringzilla/assets/meme-stringzilla-v3.jpeg +0 -0
  150. package/stringzilla/binding.gyp +0 -16
  151. package/stringzilla/build.rs +0 -87
  152. package/stringzilla/c/lib.c +0 -337
  153. package/stringzilla/cli/README.md +0 -65
  154. package/stringzilla/cli/__init__.py +0 -0
  155. package/stringzilla/cli/split.py +0 -105
  156. package/stringzilla/cli/wc.py +0 -117
  157. package/stringzilla/include/stringzilla/experimental.h +0 -845
  158. package/stringzilla/include/stringzilla/module.modulemap +0 -9
  159. package/stringzilla/include/stringzilla/stringzilla.h +0 -5370
  160. package/stringzilla/include/stringzilla/stringzilla.hpp +0 -3838
  161. package/stringzilla/javascript/lib.c +0 -125
  162. package/stringzilla/javascript/stringzilla.js +0 -22
  163. package/stringzilla/package-ci.json +0 -10
  164. package/stringzilla/package.json +0 -32
  165. package/stringzilla/rust/lib.rs +0 -873
  166. package/stringzilla/swift/StringProtocol+StringZilla.swift +0 -280
  167. package/stringzilla/swift/Test.swift +0 -60
  168. package/tsconfig.json +0 -21
  169. package/wasmer.toml +0 -12
  170. package/winlibinstaller.bat +0 -42
  171. /package/{simsimd/javascript/dist-package-cjs.json → javascript/dist/cjs/package.json} +0 -0
  172. /package/{simsimd/javascript/dist-package-esm.json → javascript/dist/esm/package.json} +0 -0
@@ -1,96 +0,0 @@
1
- #include <gtest/gtest.h>
2
-
3
- #include <cstdint>
4
-
5
- #include <fp16.h>
6
-
7
-
8
- extern "C" void fp16_alt_xmm_to_fp32_ymm_peachpy__avx2(const uint16_t* fp16, uint32_t* fp32);
9
- const size_t vector_elements = 8;
10
-
11
-
12
- TEST(FP16_ALT_XMM_TO_FP32_YMM, positive_normalized_values) {
13
- const uint32_t exponentBias = 15;
14
- for (int32_t e = -14; e <= 16; e++) {
15
- for (uint16_t h = 0; h < 0x0400; h += vector_elements) {
16
- uint16_t fp16[vector_elements];
17
- for (size_t i = 0; i < vector_elements; i++) {
18
- fp16[i] = h + ((e + exponentBias) << 10) + i;
19
- }
20
- uint32_t fp32[vector_elements];
21
- fp16_alt_xmm_to_fp32_ymm_peachpy__avx2(fp16, fp32);
22
-
23
- for (size_t i = 0; i < vector_elements; i++) {
24
- EXPECT_EQ(fp16_alt_to_fp32_bits(fp16[i]), fp32[i]) <<
25
- std::hex << std::uppercase << std::setfill('0') <<
26
- "F16 = 0x" << std::setw(4) << fp16[i] << ", " <<
27
- "F32(F16) = 0x" << std::setw(8) << fp32[i] << ", " <<
28
- "F32 = 0x" << std::setw(8) << fp16_alt_to_fp32_bits(fp16[i]) <<
29
- ", lane " << i << "/" << vector_elements;
30
- }
31
- }
32
- }
33
- }
34
-
35
- TEST(FP16_ALT_XMM_TO_FP32_YMM, negative_normalized_values) {
36
- const uint32_t exponentBias = 15;
37
- for (int32_t e = -14; e <= 16; e++) {
38
- for (uint16_t h = 0; h < 0x0400; h += vector_elements) {
39
- uint16_t fp16[vector_elements];
40
- for (size_t i = 0; i < vector_elements; i++) {
41
- fp16[i] = 0x8000 + h + ((e + exponentBias) << 10) + i;
42
- }
43
- uint32_t fp32[vector_elements];
44
- fp16_alt_xmm_to_fp32_ymm_peachpy__avx2(fp16, fp32);
45
-
46
- for (size_t i = 0; i < vector_elements; i++) {
47
- EXPECT_EQ(fp16_alt_to_fp32_bits(fp16[i]), fp32[i]) <<
48
- std::hex << std::uppercase << std::setfill('0') <<
49
- "F16 = 0x" << std::setw(4) << fp16[i] << ", " <<
50
- "F32(F16) = 0x" << std::setw(8) << fp32[i] << ", " <<
51
- "F32 = 0x" << std::setw(8) << fp16_alt_to_fp32_bits(fp16[i]) <<
52
- ", lane " << i << "/" << vector_elements;
53
- }
54
- }
55
- }
56
- }
57
-
58
- TEST(FP16_ALT_XMM_TO_FP32_YMM, positive_denormalized_values) {
59
- for (uint16_t h = 0; h < 0x0400; h += vector_elements) {
60
- uint16_t fp16[vector_elements];
61
- for (size_t i = 0; i < vector_elements; i++) {
62
- fp16[i] = h + i;
63
- }
64
- uint32_t fp32[vector_elements];
65
- fp16_alt_xmm_to_fp32_ymm_peachpy__avx2(fp16, fp32);
66
-
67
- for (size_t i = 0; i < vector_elements; i++) {
68
- EXPECT_EQ(fp16_alt_to_fp32_bits(fp16[i]), fp32[i]) <<
69
- std::hex << std::uppercase << std::setfill('0') <<
70
- "F16 = 0x" << std::setw(4) << fp16[i] << ", " <<
71
- "F32(F16) = 0x" << std::setw(8) << fp32[i] << ", " <<
72
- "F32 = 0x" << std::setw(8) << fp16_alt_to_fp32_bits(fp16[i]) <<
73
- ", lane " << i << "/" << vector_elements;
74
- }
75
- }
76
- }
77
-
78
- TEST(FP16_ALT_XMM_TO_FP32_YMM, negative_denormalized_values) {
79
- for (uint16_t h = 0; h < 0x0400; h += vector_elements) {
80
- uint16_t fp16[vector_elements];
81
- for (size_t i = 0; i < vector_elements; i++) {
82
- fp16[i] = 0x8000 + h + i;
83
- }
84
- uint32_t fp32[vector_elements];
85
- fp16_alt_xmm_to_fp32_ymm_peachpy__avx2(fp16, fp32);
86
-
87
- for (size_t i = 0; i < vector_elements; i++) {
88
- EXPECT_EQ(fp16_alt_to_fp32_bits(fp16[i]), fp32[i]) <<
89
- std::hex << std::uppercase << std::setfill('0') <<
90
- "F16 = 0x" << std::setw(4) << fp16[i] << ", " <<
91
- "F32(F16) = 0x" << std::setw(8) << fp32[i] << ", " <<
92
- "F32 = 0x" << std::setw(8) << fp16_alt_to_fp32_bits(fp16[i]) <<
93
- ", lane " << i << "/" << vector_elements;
94
- }
95
- }
96
- }
@@ -1,38 +0,0 @@
1
- from peachpy import *
2
- from peachpy.x86_64 import *
3
-
4
- import fp16.avx, fp16.avx2
5
-
6
-
7
- arg_fp16 = Argument(ptr(const_uint16_t), name="fp16")
8
- arg_fp32 = Argument(ptr(uint32_t), name="fp32")
9
-
10
- with Function("fp16_alt_xmm_to_fp32_ymm_peachpy__avx2", (arg_fp16, arg_fp32), target=uarch.default + isa.avx2):
11
-
12
- reg_fp16 = GeneralPurposeRegister64()
13
- LOAD.ARGUMENT(reg_fp16, arg_fp16)
14
-
15
- reg_fp32 = GeneralPurposeRegister64()
16
- LOAD.ARGUMENT(reg_fp32, arg_fp32)
17
-
18
- xmm_fp16 = XMMRegister()
19
- VMOVUPS(xmm_fp16, [reg_fp16])
20
- ymm_fp32 = fp16.avx2.fp16_alt_xmm_to_fp32_ymm(xmm_fp16)
21
- VMOVUPS([reg_fp32], ymm_fp32)
22
-
23
- RETURN()
24
-
25
- with Function("fp16_alt_xmm_to_fp32_xmm_peachpy__avx", (arg_fp16, arg_fp32), target=uarch.default + isa.avx):
26
-
27
- reg_fp16 = GeneralPurposeRegister64()
28
- LOAD.ARGUMENT(reg_fp16, arg_fp16)
29
-
30
- reg_fp32 = GeneralPurposeRegister64()
31
- LOAD.ARGUMENT(reg_fp32, arg_fp32)
32
-
33
- xmm_fp16 = XMMRegister()
34
- VMOVUPS(xmm_fp16, [reg_fp16])
35
- xmm_fp32 = fp16.avx.fp16_alt_xmm_to_fp32_xmm(xmm_fp16)
36
- VMOVUPS([reg_fp32], xmm_fp32)
37
-
38
- RETURN()