SimSIMD icon indicating copy to clipboard operation
SimSIMD copied to clipboard

Up to 200x Faster Inner Products and Vector Similarity — for Python, JavaScript, Rust, C, and Swift, supporting f64, f32, f16 real & complex, i8, and binary vectors using SIMD for both x86 AVX2 & AVX-...

Results 33 SimSIMD issues
Sort by recently updated
recently updated
newest added

Hey, Is there any chance to have Mahalanobis distance in SimSIMD? https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.mahalanobis.html It's useful for measuring the distance between a point and a distribution. Thanks!

Binary representations are becoming increasingly popular in Machine Learning and I'd love to explore the opportunity for faster Hamming and Jaccard distance calculations. I've looked into several benchmarks, most importantly...

help wanted

The vdot serial functions were missing so I added them.

Rust has a crate half that has an f16 and bf16 we could be using. Users would probably be using this? - https://docs.rs/half/latest/half/index.html Rust will be adding f16 into the...

Most of your code for x86_64 under skylake ifdef Not all servers have very modern CPU, haswell and westmere overloads exists for simdjson and simdutf for an example Examples under...

**not bit** If we have vector of floats with only non-negative (or non-positive) values. It's better to convert it to uint8 instead of int8 Examples under Apache 2.0: https://github.com/google-research/google-research/tree/master/scann/scann/distance_measures/one_to_one https://github.com/ydb-platform/ydb/tree/main/library/cpp/dot_product...

low priority

Manhattan distance sometimes useful https://github.com/google-research/google-research/tree/master/scann/scann/distance_measures/one_to_one https://github.com/ydb-platform/ydb/tree/main/library/cpp/l1_distance Already done for bit (hamming)

low priority

We have the following warnings. I can replace _Float16 with simsimd_f16_t ``` /home/ch/code/mr/SimSIMD/include/simsimd/probability.h:485:35: warning: ISO C does not support the ‘_Float16’ type [-Wpedantic] 485 | __m512h one = _mm512_set1_ph((_Float16)1); |...

The new `f64` kernels don't benefit much from NEON, given the small 128-bit register size, but instead leverage the `rsqrt` approximations already used in SimSIMD for lower-precision inputs.