Skip to main content

Portable mixed-precision BLAS-like vector math library for x86 and ARM

Project description

SimSIMD banner

Computing dot-products, similarity measures, and distances between low- and high-dimensional vectors is ubiquitous in Machine Learning, Scientific Computing, Geo-Spatial Analysis, and Information Retrieval. These algorithms generally have linear complexity in time, constant or linear complexity in space, and are data-parallel. In other words, it is easily parallelizable and vectorizable and often available in packages like BLAS (level 1) and LAPACK, as well as higher-level numpy and scipy Python libraries. Ironically, even with decades of evolution in compilers and numerical computing, most libraries can be 3-200x slower than hardware potential even on the most popular hardware, like 64-bit x86 and Arm CPUs. Moreover, most lack mixed-precision support, which is crucial for modern AI! The rare few that support minimal mixed precision, run only on one platform, and are vendor-locked, by companies like Intel and Nvidia. SimSIMD provides an alternative. 1️⃣ SimSIMD functions are practically as fast as memcpy. 2️⃣ Unlike BLAS, most kernels are designed for mixed-precision and bit-level operations. 3️⃣ SimSIMD compiles to more platforms than NumPy (105 vs 35) and has more backends than most BLAS implementations, and more high-level interfaces than most libraries.

Features

SimSIMD (Arabic: "سيمسيم دي") is a mixed-precision math library of over 200 SIMD-optimized kernels extensively used in AI, Search, and DBMS workloads. Named after the iconic "Open Sesame" command that opened doors to treasure in Ali Baba and the Forty Thieves, SimSimd can help you 10x the cost-efficiency of your computational pipelines. Implemented distance functions include:

  • Euclidean (L2) and Cosine (Angular) spatial distances for Vector Search. docs
  • Dot-Products for real & complex vectors for DSP & Quantum computing. docs
  • Hamming (~ Manhattan) and Jaccard (~ Tanimoto) bit-level distances. docs
  • Set Intersections for Sparse Vectors and Text Analysis. docs
  • Mahalanobis distance and Quadratic forms for Scientific Computing. docs
  • Kullback-Leibler and Jensen–Shannon divergences for probability distributions. docs
  • Fused-Multiply-Add (FMA) and Weighted Sums to replace BLAS level 1 functions. docs
  • For Levenshtein, Needleman–Wunsch, and Smith-Waterman, check StringZilla.
  • 🔜 Haversine and Vincenty's formulae for Geospatial Analysis.

Moreover, SimSIMD...

  • handles f64, f32, f16, and bf16 real & complex vectors.
  • handles i8 integral, i4 sub-byte, and b8 binary vectors.
  • handles sparse u32 and u16 sets, and weighted sparse vectors.
  • is a zero-dependency header-only C 99 library.
  • has Python, Rust, JS, and Swift bindings.
  • has Arm backends for NEON, Scalable Vector Extensions (SVE), and SVE2.
  • has x86 backends for Haswell, Skylake, Ice Lake, Genoa, and Sapphire Rapids.
  • with both compile-time and runtime CPU feature detection easily integrates anywhere!

Due to the high-level of fragmentation of SIMD support in different x86 CPUs, SimSIMD generally uses the names of select Intel CPU generations for its backends. They, however, also work on AMD CPUs. Intel Haswell is compatible with AMD Zen 1/2/3, while AMD Genoa Zen 4 covers AVX-512 instructions added to Intel Skylake and Ice Lake. You can learn more about the technical implementation details in the following blog-posts:

Benchmarks

For reference, we use 1536-dimensional vectors, like the embeddings produced by the OpenAI Ada API. Comparing the serial code throughput produced by GCC 12 to hand-optimized kernels in SimSIMD, we see the following single-core improvements for the two most common vector-vector similarity metrics - the Cosine similarity and the Euclidean distance:

Type Apple M2 Pro Intel Sapphire Rapids AWS Graviton 4
f64 18.5 → 28.8 GB/s
+ 56 %
21.9 → 41.4 GB/s
+ 89 %
20.7 → 41.3 GB/s
+ 99 %
f32 9.2 → 29.6 GB/s
+ 221 %
10.9 → 95.8 GB/s
+ 779 %
4.9 → 41.9 GB/s
+ 755 %
f16 4.6 → 14.6 GB/s
+ 217 %
3.1 → 108.4 GB/s
+ 3,397 %
5.4 → 39.3 GB/s
+ 627 %
bf16 4.6 → 26.3 GB/s
+ 472 %
0.8 → 59.5 GB/s
+7,437 %
2.5 → 29.9 GB/s
+ 1,096 %
i8 25.8 → 47.1 GB/s
+ 83 %
33.1 → 65.3 GB/s
+ 97 %
35.2 → 43.5 GB/s
+ 24 %
u8 32.5 → 66.5 GB/s
+ 105 %

Similar speedups are often observed even when compared to BLAS and LAPACK libraries underlying most numerical computing libraries, including NumPy and SciPy in Python. Broader benchmarking results:

Using SimSIMD in Python

The package is intended to replace the usage of numpy.inner, numpy.dot, and scipy.spatial.distance. Aside from drastic performance improvements, SimSIMD significantly improves accuracy in mixed precision setups. NumPy and SciPy, processing i8, u8 or f16 vectors, will use the same types for accumulators, while SimSIMD can combine i8 enumeration, i16 multiplication, and i32 accumulation to avoid overflows entirely. The same applies to processing f16 and bf16 values with f32 precision.

Installation

Use the following snippet to install SimSIMD and list available hardware acceleration options available on your machine:

pip install simsimd
python -c "import simsimd; print(simsimd.get_capabilities())"   # for hardware introspection
python -c "import simsimd; help(simsimd)"                       # for documentation

With precompiled binaries, SimSIMD ships .pyi interface files for type hinting and static analysis. You can check all the available functions in python/annotations/__init__.pyi.

One-to-One Distance

import simsimd
import numpy as np

vec1 = np.random.randn(1536).astype(np.float32)
vec2 = np.random.randn(1536).astype(np.float32)
dist = simsimd.cosine(vec1, vec2)

Supported functions include cosine, inner, sqeuclidean, hamming, jaccard, kulbackleibler, jensenshannon, and intersect. Dot products are supported for both real and complex numbers:

vec1 = np.random.randn(768).astype(np.float64) + 1j * np.random.randn(768).astype(np.float64)
vec2 = np.random.randn(768).astype(np.float64) + 1j * np.random.randn(768).astype(np.float64)

dist = simsimd.dot(vec1.astype(np.complex128), vec2.astype(np.complex128))
dist = simsimd.dot(vec1.astype(np.complex64), vec2.astype(np.complex64))
dist = simsimd.vdot(vec1.astype(np.complex64), vec2.astype(np.complex64)) # conjugate, same as `np.vdot`

Unlike SciPy, SimSIMD allows explicitly stating the precision of the input vectors, which is especially useful for mixed-precision setups.

dist = simsimd.cosine(vec1, vec2, "i8")
dist = simsimd.cosine(vec1, vec2, "f16")
dist = simsimd.cosine(vec1, vec2, "f32")
dist = simsimd.cosine(vec1, vec2, "f64")
dist = simsimd.hamming(vec1, vec2, "bits")
dist = simsimd.jaccard(vec1, vec2, "bits")

It also allows using SimSIMD for half-precision complex numbers, which NumPy does not support. For that, view data as continuous even-length np.float16 vectors and override type-resolution with complex32 string.

vec1 = np.random.randn(1536).astype(np.float16)
vec2 = np.random.randn(1536).astype(np.float16)
simd.dot(vec1, vec2, "complex32")
simd.vdot(vec1, vec2, "complex32")

When dealing with sparse representations and integer sets, you can apply the intersect function to two 1-dimensional arrays of uint16 or uint32 integers:

from random import randint
import numpy as np
import simsimd as simd

length1, length2 = randint(1, 100), randint(1, 100)
vec1 = np.random.randint(0, 1000, length1).astype(np.uint16)
vec2 = np.random.randint(0, 1000, length2).astype(np.uint16)

slow_result = np.intersect1d(vec1, vec2)
fast_result = simd.intersect(vec1, vec2)
assert slow_result == fast_result

One-to-Many Distances

Every distance function can be used not only for one-to-one but also one-to-many and many-to-many distance calculations. For one-to-many:

vec1 = np.random.randn(1536).astype(np.float32) # rank 1 tensor
batch1 = np.random.randn(1, 1536).astype(np.float32) # rank 2 tensor
batch2 = np.random.randn(100, 1536).astype(np.float32)

dist_rank1 = simsimd.cosine(vec1, batch2)
dist_rank2 = simsimd.cosine(batch1, batch2)

Many-to-Many Distances

All distance functions in SimSIMD can be used to compute many-to-many distances. For two batches of 100 vectors to compute 100 distances, one would call it like this:

batch1 = np.random.randn(100, 1536).astype(np.float32)
batch2 = np.random.randn(100, 1536).astype(np.float32)
dist = simsimd.cosine(batch1, batch2)

Input matrices must have identical shapes. This functionality isn't natively present in NumPy or SciPy, and generally requires creating intermediate arrays, which is inefficient and memory-consuming.

Many-to-Many All-Pairs Distances

One can use SimSIMD to compute distances between all possible pairs of rows across two matrices (akin to scipy.spatial.distance.cdist). The resulting object will have a type DistancesTensor, zero-copy compatible with NumPy and other libraries. For two arrays of 10 and 1,000 entries, the resulting tensor will have 10,000 cells:

import numpy as np
from simsimd import cdist, DistancesTensor

matrix1 = np.random.randn(1000, 1536).astype(np.float32)
matrix2 = np.random.randn(10, 1536).astype(np.float32)
distances: DistancesTensor = simsimd.cdist(matrix1, matrix2, metric="cosine")   # zero-copy, managed by SimSIMD
distances_array: np.ndarray = np.array(distances, copy=True)                    # now managed by NumPy

Multithreading and Memory Usage

By default, computations use a single CPU core. To override this behavior, use the threads argument. Set it to 0 to use all available CPU cores. Here is an example of dealing with large sets of binary vectors:

ndim = 1536 # OpenAI Ada embeddings
matrix1 = np.packbits(np.random.randint(2, size=(10_000, ndim)).astype(np.uint8))
matrix2 = np.packbits(np.random.randint(2, size=(1_000, ndim)).astype(np.uint8))

distances = simsimd.cdist(matrix1, matrix2, 
    metric="hamming", # Unlike SciPy, SimSIMD doesn't divide by the number of dimensions
    out_dtype="u8",   # so we can use `u8` instead of `f64` to save memory.
    threads=0,        # Use all CPU cores with OpenMP.
    dtype="b8",       # Override input argument type to `b8` eight-bit words.
)

By default, the output distances will be stored in double-precision f64 floating-point numbers. That behavior may not be space-efficient, especially if you are computing the hamming distance between short binary vectors, that will generally fit into 8x smaller u8 or u16 types. To override this behavior, use the dtype argument.

Helper Functions

You can turn specific backends on or off depending on the exact environment. A common case may be avoiding AVX-512 on older AMD CPUs and Intel Ice Lake CPUs to ensure the CPU doesn't change the frequency license and throttle performance.

$ simsimd.get_capabilities()
> {'serial': True, 'neon': False, 'sve': False, 'neon_f16': False, 'sve_f16': False, 'neon_bf16': False, 'sve_bf16': False, 'neon_i8': False, 'sve_i8': False, 'haswell': True, 'skylake': True, 'ice': True, 'genoa': True, 'sapphire': True, 'turin': True}
$ simsimd.disable_capability("sapphire")
$ simsimd.enable_capability("sapphire")

Using Python API with USearch

Want to use it in Python with USearch? You can wrap the raw C function pointers SimSIMD backends into a CompiledMetric and pass it to USearch, similar to how it handles Numba's JIT-compiled code.

from usearch.index import Index, CompiledMetric, MetricKind, MetricSignature
from simsimd import pointer_to_sqeuclidean, pointer_to_cosine, pointer_to_inner

metric = CompiledMetric(
    pointer=pointer_to_cosine("f16"),
    kind=MetricKind.Cos,
    signature=MetricSignature.ArrayArraySize,
)

index = Index(256, metric=metric)

Using SimSIMD in Rust

To install, add the following to your Cargo.toml:

[dependencies]
simsimd = "..."

Before using the SimSIMD library, ensure you have imported the necessary traits and types into your Rust source file. The library provides several traits for different distance/similarity kinds - SpatialSimilarity, BinarySimilarity, and ProbabilitySimilarity.

Spatial Similarity: Cosine and Euclidean Distances

use simsimd::SpatialSimilarity;

fn main() {
    let vector_a: Vec<f32> = vec![1.0, 2.0, 3.0];
    let vector_b: Vec<f32> = vec![4.0, 5.0, 6.0];

    // Compute the cosine similarity between vector_a and vector_b
    let cosine_similarity = f32::cosine(&vector_a, &vector_b)
        .expect("Vectors must be of the same length");

    println!("Cosine Similarity: {}", cosine_similarity);

    // Compute the squared Euclidean distance between vector_a and vector_b
    let sq_euclidean_distance = f32::sqeuclidean(&vector_a, &vector_b)
        .expect("Vectors must be of the same length");

    println!("Squared Euclidean Distance: {}", sq_euclidean_distance);
}

Spatial similarity functions are available for f64, f32, f16, and i8 types.

Dot-Products: Inner and Complex Inner Products

use simsimd::SpatialSimilarity;
use simsimd::ComplexProducts;

fn main() {
    let vector_a: Vec<f32> = vec![1.0, 2.0, 3.0, 4.0];
    let vector_b: Vec<f32> = vec![5.0, 6.0, 7.0, 8.0];

    // Compute the inner product between vector_a and vector_b
    let inner_product = SpatialSimilarity::dot(&vector_a, &vector_b)
        .expect("Vectors must be of the same length");

    println!("Inner Product: {}", inner_product);

    // Compute the complex inner product between complex_vector_a and complex_vector_b
    let complex_inner_product = ComplexProducts::dot(&vector_a, &vector_b)
        .expect("Vectors must be of the same length");

    let complex_conjugate_inner_product = ComplexProducts::vdot(&vector_a, &vector_b)
        .expect("Vectors must be of the same length");

    println!("Complex Inner Product: {:?}", complex_inner_product); // -18, 69
    println!("Complex C. Inner Product: {:?}", complex_conjugate_inner_product); // 70, -8
}

Complex inner products are available for f64, f32, and f16 types.

Probability Distributions: Jensen-Shannon and Kullback-Leibler Divergences

use simsimd::SpatialSimilarity;

fn main() {
    let vector_a: Vec<f32> = vec![1.0, 2.0, 3.0];
    let vector_b: Vec<f32> = vec![4.0, 5.0, 6.0];

    let cosine_similarity = f32::jensenshannon(&vector_a, &vector_b)
        .expect("Vectors must be of the same length");

    println!("Cosine Similarity: {}", cosine_similarity);

    let sq_euclidean_distance = f32::kullbackleibler(&vector_a, &vector_b)
        .expect("Vectors must be of the same length");

    println!("Squared Euclidean Distance: {}", sq_euclidean_distance);
}

Probability similarity functions are available for f64, f32, and f16 types.

Binary Similarity: Hamming and Jaccard Distances

Similar to spatial distances, one can compute bit-level distance functions between slices of unsigned integers:

use simsimd::BinarySimilarity;

fn main() {
    let vector_a = &[0b11110000, 0b00001111, 0b10101010];
    let vector_b = &[0b11110000, 0b00001111, 0b01010101];

    // Compute the Hamming distance between vector_a and vector_b
    let hamming_distance = u8::hamming(&vector_a, &vector_b)
        .expect("Vectors must be of the same length");

    println!("Hamming Distance: {}", hamming_distance);

    // Compute the Jaccard distance between vector_a and vector_b
    let jaccard_distance = u8::jaccard(&vector_a, &vector_b)
        .expect("Vectors must be of the same length");

    println!("Jaccard Distance: {}", jaccard_distance);
}

Binary similarity functions are available only for u8 types.

Half-Precision Floating-Point Numbers

Rust has no native support for half-precision floating-point numbers, but SimSIMD provides a f16 type. It has no functionality - it is a transparent wrapper around u16 and can be used with half or any other half-precision library.

use simsimd::SpatialSimilarity;
use simsimd::f16 as SimF16;
use half::f16 as HalfF16;

fn main() {
    let vector_a: Vec<HalfF16> = ...
    let vector_b: Vec<HalfF16> = ...

    let buffer_a: &[SimF16] = unsafe { std::slice::from_raw_parts(a_half.as_ptr() as *const SimF16, a_half.len()) };
    let buffer_b: &[SimF16] = unsafe { std::slice::from_raw_parts(b_half.as_ptr() as *const SimF16, b_half.len()) };

    // Compute the cosine similarity between vector_a and vector_b
    let cosine_similarity = SimF16::cosine(&vector_a, &vector_b)
        .expect("Vectors must be of the same length");

    println!("Cosine Similarity: {}", cosine_similarity);
}

Half-Precision Brain-Float Numbers

The "brain-float-16" is a popular machine learning format. It's broadly supported in hardware and is very machine-friendly, but software support is still lagging behind. Unlike NumPy, you can already use bf16 datatype in SimSIMD. Luckily, to downcast f32 to bf16 you only have to drop the last 16 bits:

import numpy as np
import simsimd as simd

a = np.random.randn(ndim).astype(np.float32)
b = np.random.randn(ndim).astype(np.float32)

# NumPy doesn't natively support brain-float, so we need a trick!
# Luckily, it's very easy to reduce the representation accuracy
# by simply masking the low 16-bits of our 32-bit single-precision
# numbers. We can also add `0x8000` to round the numbers.
a_f32rounded = ((a.view(np.uint32) + 0x8000) & 0xFFFF0000).view(np.float32)
b_f32rounded = ((b.view(np.uint32) + 0x8000) & 0xFFFF0000).view(np.float32)

# To represent them as brain-floats, we need to drop the second half
a_bf16 = np.right_shift(a_f32rounded.view(np.uint32), 16).astype(np.uint16)
b_bf16 = np.right_shift(b_f32rounded.view(np.uint32), 16).astype(np.uint16)

# Now we can compare the results
expected = np.inner(a_f32rounded, b_f32rounded)
result = simd.inner(a_bf16, b_bf16, "bf16")

Dynamic Dispatch in Rust

SimSIMD provides a dynamic dispatch mechanism to select the most advanced micro-kernel for the current CPU. You can query supported backends and use the SimSIMD::capabilities function to select the best one.

println!("uses neon: {}", capabilities::uses_neon());
println!("uses sve: {}", capabilities::uses_sve());
println!("uses haswell: {}", capabilities::uses_haswell());
println!("uses skylake: {}", capabilities::uses_skylake());
println!("uses ice: {}", capabilities::uses_ice());
println!("uses genoa: {}", capabilities::uses_genoa());
println!("uses sapphire: {}", capabilities::uses_sapphire());
println!("uses turin: {}", capabilities::uses_turin());

Using SimSIMD in JavaScript

To install, choose one of the following options depending on your environment:

  • npm install --save simsimd
  • yarn add simsimd
  • pnpm add simsimd
  • bun install simsimd

The package is distributed with prebuilt binaries, but if your platform is not supported, you can build the package from the source via npm run build. This will automatically happen unless you install the package with the --ignore-scripts flag or use Bun. After you install it, you will be able to call the SimSIMD functions on various TypedArray variants:

const { sqeuclidean, cosine, inner, hamming, jaccard } = require('simsimd');

const vectorA = new Float32Array([1.0, 2.0, 3.0]);
const vectorB = new Float32Array([4.0, 5.0, 6.0]);

const distance = sqeuclidean(vectorA, vectorB);
console.log('Squared Euclidean Distance:', distance);

Other numeric types and precision levels are supported as well. For double-precision floating-point numbers, use Float64Array:

const vectorA = new Float64Array([1.0, 2.0, 3.0]);
const vectorB = new Float64Array([4.0, 5.0, 6.0]);
const distance = cosine(vectorA, vectorB);

When doing machine learning and vector search with high-dimensional vectors you may want to quantize them to 8-bit integers. You may want to project values from the $[-1, 1]$ range to the $[-127, 127]$ range and then cast them to Int8Array:

const quantizedVectorA = new Int8Array(vectorA.map(v => (v * 127)));
const quantizedVectorB = new Int8Array(vectorB.map(v => (v * 127)));
const distance = cosine(quantizedVectorA, quantizedVectorB);

A more extreme quantization case would be to use binary vectors. You can map all positive values to 1 and all negative values and zero to 0, packing eight values into a single byte. After that, Hamming and Jaccard distances can be computed.

const { toBinary, hamming } = require('simsimd');

const binaryVectorA = toBinary(vectorA);
const binaryVectorB = toBinary(vectorB);
const distance = hamming(binaryVectorA, binaryVectorB);

Using SimSIMD in Sift

To install, simply add the following dependency to you Package.swift:

dependencies: [
    .package(url: "https://github.com/ashvardanian/simsimd")
]

The package provides the most common spatial metrics for Int8, Float16, Float32, and Float64 vectors.

import SimSIMD

let vectorA: [Int8] = [1, 2, 3]
let vectorB: [Int8] = [4, 5, 6]

let cosineSimilarity = vectorA.cosine(vectorB)  // Computes the cosine similarity
let dotProduct = vectorA.dot(vectorB)           // Computes the dot product
let sqEuclidean = vectorA.sqeuclidean(vectorB)  // Computes the squared Euclidean distance

Using SimSIMD in C

For integration within a CMake-based project, add the following segment to your CMakeLists.txt:

FetchContent_Declare(
    simsimd
    GIT_REPOSITORY https://github.com/ashvardanian/simsimd.git
    GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(simsimd)

After that, you can use the SimSIMD library in your C code in several ways. Simplest of all, you can include the headers, and the compiler will automatically select the most recent CPU extensions that SimSIMD will use.

#include <simsimd/simsimd.h>

int main() {
    simsimd_f32_t vector_a[1536];
    simsimd_f32_t vector_b[1536];
    simsimd_metric_punned_t distance_function = simsimd_metric_punned(
        simsimd_metric_cos_k,   // Metric kind, like the angular cosine distance
        simsimd_datatype_f32_k, // Data type, like: f16, f32, f64, i8, b8, and complex variants
        simsimd_cap_any_k);     // Which CPU capabilities are we allowed to use
    simsimd_distance_t distance;
    distance_function(vector_a, vector_b, 1536, &distance);
    return 0;
}

Dynamic Dispatch in C

To avoid hard-coding the backend, you can rely on c/lib.c to prepackage all possible backends in one binary, and select the most recent CPU features at runtime. That feature of the C library is called dynamic dispatch and is extensively used in the Python, JavaScript, and Rust bindings. To test which CPU features are available on the machine at runtime, use the following APIs:

int uses_dynamic_dispatch = simsimd_uses_dynamic_dispatch(); // Check if dynamic dispatch was enabled
simsimd_capability_t capabilities = simsimd_capabilities();  // Returns a bitmask

int uses_neon = simsimd_uses_neon();
int uses_sve = simsimd_uses_sve();
int uses_haswell = simsimd_uses_haswell();
int uses_skylake = simsimd_uses_skylake();
int uses_ice = simsimd_uses_ice();
int uses_genoa = simsimd_uses_genoa();
int uses_sapphire = simsimd_uses_sapphire();

To override compilation settings and switch between runtime and compile-time dispatch, define the following macro:

#define SIMSIMD_DYNAMIC_DISPATCH 1 // or 0

Spatial Distances: Cosine and Euclidean Distances

#include <simsimd/simsimd.h>

int main() {
    simsimd_f64_t f64s[1536];
    simsimd_f32_t f32s[1536];
    simsimd_f16_t f16s[1536];
    simsimd_i8_t i8[1536];
    simsimd_distance_t distance;

    // Cosine distance between two vectors
    simsimd_cos_i8(i8s, i8s, 1536, &distance);
    simsimd_cos_f16(f16s, f16s, 1536, &distance);
    simsimd_cos_f32(f32s, f32s, 1536, &distance);
    simsimd_cos_f64(f64s, f64s, 1536, &distance);
    
    // Euclidean distance between two vectors
    simsimd_l2sq_i8(i8s, i8s, 1536, &distance);
    simsimd_l2sq_f16(f16s, f16s, 1536, &distance);
    simsimd_l2sq_f32(f32s, f32s, 1536, &distance);
    simsimd_l2sq_f64(f64s, f64s, 1536, &distance);

    return 0;
}

Dot-Products: Inner and Complex Inner Products

#include <simsimd/simsimd.h>

int main() {
    simsimd_f64_t f64s[1536];
    simsimd_f32_t f32s[1536];
    simsimd_f16_t f16s[1536];
    simsimd_distance_t distance;

    // Inner product between two vectors
    simsimd_dot_f16(f16s, f16s, 1536, &distance);
    simsimd_dot_f32(f32s, f32s, 1536, &distance);
    simsimd_dot_f64(f64s, f64s, 1536, &distance);

    // Complex inner product between two vectors
    simsimd_dot_f16c(f16s, f16s, 1536, &distance);
    simsimd_dot_f32c(f32s, f32s, 1536, &distance);
    simsimd_dot_f64c(f64s, f64s, 1536, &distance);

    // Complex conjugate inner product between two vectors
    simsimd_vdot_f16c(f16s, f16s, 1536, &distance);
    simsimd_vdot_f32c(f32s, f32s, 1536, &distance);
    simsimd_vdot_f64c(f64s, f64s, 1536, &distance);

    return 0;
}

Binary Distances: Hamming and Jaccard Distances

#include <simsimd/simsimd.h>

int main() {
    simsimd_b8_t b8s[1536 / 8]; // 8 bits per word
    simsimd_distance_t distance;

    // Hamming distance between two vectors
    simsimd_hamming_b8(b8s, b8s, 1536 / 8, &distance);

    // Jaccard distance between two vectors
    simsimd_jaccard_b8(b8s, b8s, 1536 / 8, &distance);

    return 0;
}

Probability Distributions: Jensen-Shannon and Kullback-Leibler Divergences

#include <simsimd/simsimd.h>

int main() {
    simsimd_f64_t f64s[1536];
    simsimd_f32_t f32s[1536];
    simsimd_f16_t f16s[1536];
    simsimd_distance_t distance;

    // Jensen-Shannon divergence between two vectors
    simsimd_js_f16(f16s, f16s, 1536, &distance);
    simsimd_js_f32(f32s, f32s, 1536, &distance);
    simsimd_js_f64(f64s, f64s, 1536, &distance);

    // Kullback-Leibler divergence between two vectors
    simsimd_kl_f16(f16s, f16s, 1536, &distance);
    simsimd_kl_f32(f32s, f32s, 1536, &distance);
    simsimd_kl_f64(f64s, f64s, 1536, &distance);

    return 0;
}

Half-Precision Floating-Point Numbers

If you aim to utilize the _Float16 functionality with SimSIMD, ensure your development environment is compatible with C 11. For other SimSIMD functionalities, C 99 compatibility will suffice. To explicitly disable half-precision support, define the following macro before imports:

#define SIMSIMD_NATIVE_F16 0 // or 1
#define SIMSIMD_NATIVE_BF16 0 // or 1
#include <simsimd/simsimd.h>

Compilation Settings and Debugging

SIMSIMD_DYNAMIC_DISPATCH:

By default, SimSIMD is a header-only library. But if you are running on different generations of devices, it makes sense to pre-compile the library for all supported generations at once, and dispatch at runtime. This flag does just that and is used to produce the simsimd.so shared library, as well as the Python and other bindings.

For Arm: SIMSIMD_TARGET_NEON, SIMSIMD_TARGET_SVE, SIMSIMD_TARGET_SVE2, SIMSIMD_TARGET_NEON_F16, SIMSIMD_TARGET_SVE_F16, SIMSIMD_TARGET_NEON_BF16, SIMSIMD_TARGET_SVE_BF16. For x86: (SIMSIMD_TARGET_HASWELL, SIMSIMD_TARGET_SKYLAKE, SIMSIMD_TARGET_ICE, SIMSIMD_TARGET_GENOA, SIMSIMD_TARGET_SAPPHIRE, SIMSIMD_TARGET_TURIN, SIMSIMD_TARGET_SIERRA.

By default, SimSIMD automatically infers the target architecture and pre-compiles as many kernels as possible. In some cases, you may want to explicitly disable some of the kernels. Most often it's due to compiler support issues, like the lack of some recent intrinsics or low-precision numeric types. In other cases, you may want to disable some kernels to speed up the compilation process and trim the binary size.

SIMSIMD_SQRT, SIMSIMD_RSQRT, SIMSIMD_LOG:

By default, for non-SIMD backends, SimSIMD may use libc functions like sqrt and log. Those are generally very accurate, but slow, and introduce a dependency on the C standard library. To avoid that you can override those definitions with your custom implementations, like: #define SIMSIMD_RSQRT(x) (1 / sqrt(x)).

Algorithms & Design Decisions 📚

In general there are a few principles that SimSIMD follows:

  • Avoid loop unrolling.
  • Never allocate memory.
  • Never throw exceptions or set errno.
  • Keep all function arguments the size of the pointer.
  • Avoid returning from public interfaces, use out-arguments instead.
  • Don't over-optimize for old CPUs and single- and double-precision floating-point numbers.
  • Prioritize mixed-precision and integer operations, and new ISA extensions.
  • Prefer saturated arithmetic and avoid overflows.

Possibly, in the future:

  • Best effort computation silencing NaN components in low-precision inputs.
  • Detect overflows and report the distance with a "signaling" NaN.

Last, but not the least - don't build unless there is a demand for it. So if you have a specific use-case, please open an issue or a pull request, and ideally, bring in more users with similar needs.

Cosine Similarity, Reciprocal Square Root, and Newton-Raphson Iteration

The cosine similarity is the most common and straightforward metric used in machine learning and information retrieval. Interestingly, there are multiple ways to shoot yourself in the foot when computing it. The cosine similarity is the inverse of the cosine distance, which is the cosine of the angle between two vectors.

\text{CosineSimilarity}(a, b) = \frac{a \cdot b}{\|a\| \cdot \|b\|}
\text{CosineDistance}(a, b) = 1 - \frac{a \cdot b}{\|a\| \cdot \|b\|}

In NumPy terms, SimSIMD implementation is similar to:

import numpy as np

def cos_numpy(a: np.ndarray, b: np.ndarray) -> float:
    ab, a2, b2 = np.dot(a, b), np.dot(a, a), np.dot(b, b) # Fused in SimSIMD
    if a2 == 0 and b2 == 0: result = 0                    # Same in SciPy
    elif ab == 0: result = 1                              # Division by zero error in SciPy
    else: result = 1 - ab / (sqrt(a2) * sqrt(b2))         # Bigger rounding error in SciPy
    return result

In SciPy, however, the cosine distance is computed as 1 - ab / np.sqrt(a2 * b2). It handles the edge case of a zero and non-zero argument pair differently, resulting in a division by zero error. It's not only less efficient, but also less accurate, given how the reciprocal square roots are computed. The C standard library provides the sqrt function, which is generally very accurate, but slow. The rsqrt in-hardware implementations are faster, but have different accuracy characteristics.

  • SSE rsqrtps and AVX vrsqrtps: $1.5 \times 2^{-12}$ maximal relative error.
  • AVX-512 vrsqrt14pd instruction: $2^{-14}$ maximal relative error.
  • NEON frsqrte instruction has no documented error bounds, but can be $2^{-3}$.

To overcome the limitations of the rsqrt instruction, SimSIMD uses the Newton-Raphson iteration to refine the initial estimate for high-precision floating-point numbers. It can be defined as:

x_{n+1} = x_n \cdot (3 - x_n \cdot x_n) / 2

On 1536-dimensional inputs on Intel Sapphire Rapids CPU a single such iteration can result in a 2-3 orders of magnitude relative error reduction:

Datatype NumPy Error SimSIMD w/out Iteration SimSIMD
bfloat16 1.89e-08 ± 1.59e-08 3.07e-07 ± 3.09e-07 3.53e-09 ± 2.70e-09
float16 1.67e-02 ± 1.44e-02 2.68e-05 ± 1.95e-05 2.02e-05 ± 1.39e-05
float32 2.21e-08 ± 1.65e-08 3.47e-07 ± 3.49e-07 3.77e-09 ± 2.84e-09
float64 0.00e+00 ± 0.00e+00 3.80e-07 ± 4.50e-07 1.35e-11 ± 1.85e-11

Curved Spaces, Mahalanobis Distance, and Bilinear Quadratic Forms

The Mahalanobis distance is a generalization of the Euclidean distance, which takes into account the covariance of the data. It's very similar in its form to the bilinear form, which is a generalization of the dot product.

\text{BilinearForm}(a, b, M) = a^T M b
\text{Mahalanobis}(a, b, M) = \sqrt{(a - b)^T M^{-1} (a - b)}

Bilinear Forms can be seen as one of the most important linear algebraic operations, surprisingly missing in BLAS and LAPACK. They are versatile and appear in various domains:

  • In Quantum Mechanics, the expectation value of an observable $A$ in a state $\psi$ is given by $\langle \psi | A | \psi \rangle$, which is a bilinear form.
  • In Machine Learning, in Support Vector Machines (SVMs), bilinear forms define kernel functions that measure similarity between data points.
  • In Differential Geometry, the metric tensor, which defines distances and angles on a manifold, is a bilinear form on the tangent space.
  • In Economics, payoff functions in certain Game Theoretic problems can be modeled as bilinear forms of players' strategies.
  • In Physics, interactions between electric and magnetic fields can be expressed using bilinear forms.

Broad applications aside, the lack of a specialized primitive for bilinear forms in BLAS and LAPACK means significant performance overhead. A $vector * matrix * vector$ product is a scalar, whereas its constituent parts ($vector * matrix$ and $matrix * vector$) are vectors:

  • They need memory to be stored in: $O(n)$ allocation.
  • The data will be written to memory and read back, wasting CPU cycles.

SimSIMD doesn't produce intermediate vector results, like a @ M @ b, but computes the bilinear form directly.

Set Intersection, Galloping, and Binary Search

The set intersection operation is generally defined as the number of elements that are common between two sets, represented as sorted arrays of integers. The most common way to compute it is a linear scan:

size_t intersection_size(int *a, int *b, size_t n, size_t m) {
    size_t i = 0, j = 0, count = 0;
    while (i < n && j < m) {
        if (a[i] < b[j]) i++;
        else if (a[i] > b[j]) j++;
        else i++, j++, count++;
    }
    return count;
}

Alternatively, one can use the binary search to find the elements in the second array that are present in the first one. On every step the checked region of the second array is halved, which is called the galloping search. It's faster, but only when large arrays of very different sizes are intersected. Third approach is to use the SIMD instructions to compare multiple elements at once:

  • Using string-intersection instructions on x86, like pcmpestrm.
  • Using integer-intersection instructions in AVX-512, like vp2intersectd.
  • Using vanilla equality checks present in all SIMD instruction sets.

After benchmarking, the last approach was chosen, as it's the most flexible and often the fastest.

Complex Dot Products, Conjugate Dot Products, and Complex Numbers

Complex dot products are a generalization of the dot product to complex numbers. They are supported by most BLAS packages, but almost never in mixed precision. SimSIMD defines dot and vdot kernels as:

\text{dot}(a, b) = \sum_{i=0}^{n-1} a_i \cdot b_i
\text{vdot}(a, b) = \sum_{i=0}^{n-1} a_i \cdot \bar{b_i}

Where $\bar{b_i}$ is the complex conjugate of $b_i$. Putting that into Python code for scalar arrays:

def dot(a: List[number], b: List[number]) -> number:
    a_real, a_imaginary = a[0::2], a[1::2]
    b_real, b_imaginary = b[0::2], b[1::2]
    ab_real, ab_imaginary = 0, 0
    for ar, ai, br, bi in zip(a_real, a_imaginary, b_real, b_imaginary):
        ab_real += ar * br - ai * bi
        ab_imaginary += ar * bi + ai * br
    return ab_real, ab_imaginary

def vdot(a: List[number], b: List[number]) -> number:
    a_real, a_imaginary = a[0::2], a[1::2]
    b_real, b_imaginary = b[0::2], b[1::2]
    ab_real, ab_imaginary = 0, 0
    for ar, ai, br, bi in zip(a_real, a_imaginary, b_real, b_imaginary):
        ab_real += ar * br + ai * bi
        ab_imaginary += ar * bi - ai * br
    return ab_real, ab_imaginary

Logarithms in Kullback-Leibler & Jensen–Shannon Divergences

The Kullback-Leibler divergence is a measure of how one probability distribution diverges from a second, expected probability distribution. Jensen-Shannon divergence is a symmetrized and smoothed version of the Kullback-Leibler divergence, which can be used as a distance metric between probability distributions.

\text{KL}(P || Q) = \sum_{i} P(i) \log \frac{P(i)}{Q(i)}
\text{JS}(P, Q) = \frac{1}{2} \text{KL}(P || M) + \frac{1}{2} \text{KL}(Q || M), M = \frac{P + Q}{2}

Both functions are defined for non-negative numbers, and the logarithm is a key part of their computation.

Mixed Precision in Fused-Multiply-Add and Weighted Sums

The Fused-Multiply-Add (FMA) operation is a single operation that combines element-wise multiplication and addition with different scaling factors. The Weighted Sum is it's simplified variant without element-wise multiplication.

\text{FMA}_i(A, B, C, \alpha, \beta) = \alpha \cdot A_i \cdot B_i + \beta \cdot C_i
\text{WSum}_i(A, B, \alpha, \beta) = \alpha \cdot A_i + \beta \cdot B_i

In NumPy terms, the implementation may look like:

import numpy as np
def wsum(A: np.ndarray, B: np.ndarray, Alpha: float, Beta: float) -> np.ndarray:
    assert A.dtype == B.dtype, "Input types must match and affect the output style"
    return (Alpha * A + Beta * B).astype(A.dtype)
def fma(A: np.ndarray, B: np.ndarray, C: np.ndarray, Alpha: float, Beta: float) -> np.ndarray:
    assert A.dtype == B.dtype and A.dtype == C.dtype, "Input types must match and affect the output style"
    return (Alpha * A * B + Beta * C).astype(A.dtype)

The tricky part is implementing those operations in mixed precision, where the scaling factors are of different precision than the input and output vectors. SimSIMD uses double-precision floating-point scaling factors for any input and output precision, including i8 and u8 integers and f16 and bf16 floats. Depending on the generation of the CPU, given native support for f16 addition and multiplication, the f16 temporaries are used for i8 and u8 multiplication, scaling, and addition. For bf16, native support is generally limited to dot-products with subsequent partial accumulation, which is not enough for the FMA and WSum operations, so f32 is used as a temporary.

Auto-Vectorization & Loop Unrolling

On the Intel Sapphire Rapids platform, SimSIMD was benchmarked against auto-vectorized code using GCC 12. GCC handles single-precision float but might not be the best choice for int8 and _Float16 arrays, which have been part of the C language since 2011.

Kind GCC 12 f32 GCC 12 f16 SimSIMD f16 f16 improvement
Inner Product 3,810 K/s 192 K/s 5,990 K/s 31 x
Cosine Distance 3,280 K/s 336 K/s 6,880 K/s 20 x
Euclidean Distance ² 4,620 K/s 147 K/s 5,320 K/s 36 x
Jensen-Shannon Divergence 1,180 K/s 18 K/s 2,140 K/s 118 x

Dynamic Dispatch

Most popular software is precompiled and distributed with fairly conservative CPU optimizations, to ensure compatibility with older hardware. Database Management platforms, like ClickHouse, and Web Browsers, like Google Chrome,need to run on billions of devices, and they can't afford to be picky about the CPU features. For such users SimSIMD provides a dynamic dispatch mechanism, which selects the most advanced micro-kernel for the current CPU at runtime.

Subset F CD ER PF 4FMAPS 4VNNIW VPOPCNTDQ VL DQ BW IFMA VBMI VNNI BF16 VBMI2 BITALG VPCLMULQDQ GFNI VAES VP2INTERSECT FP16
Knights Landing (Xeon Phi x200, 2016) Yes Yes No
Knights Mill (Xeon Phi x205, 2017) Yes No
Skylake-SP, Skylake-X (2017) No No Yes No
Cannon Lake (2018) Yes No
Cascade Lake (2019) No Yes No
Cooper Lake (2020) Yes No
Ice Lake (2019) Yes No Yes No
Tiger Lake (2020) Yes No
Rocket Lake (2021) No
Alder Lake (2021) Partial Partial
Zen 4 (2022) Yes Yes No
Sapphire Rapids (2023) No Yes
Zen 5 (2024) Yes No

You can compile SimSIMD on an old CPU, like Intel Haswell, and run it on a new one, like AMD Genoa, and it will automatically use the most advanced instructions available. Reverse is also true, you can compile on a new CPU and run on an old one, and it will automatically fall back to the most basic instructions. Moreover, the very first time you prove for CPU capabilities with simsimd_capabilities(), it initializes the dynamic dispatch mechanism, and all subsequent calls will be faster and won't face race conditions in multi-threaded environments.

Target Specific Backends

SimSIMD exposes all kernels for all backends, and you can select the most advanced one for the current CPU without relying on built-in dispatch mechanisms. That's handy for testing and benchmarking, but also in case you want to dispatch a very specific kernel for a very specific CPU, bypassing SimSIMD assignment logic. All of the function names follow the same pattern: simsimd_{function}_{type}_{backend}.

  • The backend can be serial, haswell, skylake, ice, genoa, sapphire, turin, neon, or sve.
  • The type can be f64, f32, f16, bf16, f64c, f32c, f16c, bf16c, i8, or b8.
  • The function can be dot, vdot, cos, l2sq, hamming, jaccard, kl, js, or intersect.

To avoid hard-coding the backend, you can use the simsimd_metric_punned_t to pun the function pointer and the simsimd_capabilities function to get the available backends at runtime. To match all the function names, consider a RegEx:

SIMSIMD_PUBLIC void simsimd_\w+_\w+_\w+\(

On Linux, you can use the following command to list all unique functions:

$ grep -oP 'SIMSIMD_PUBLIC void simsimd_\w+_\w+_\w+\(' include/simsimd/*.h | sort | uniq
> include/simsimd/binary.h:SIMSIMD_PUBLIC void simsimd_hamming_b8_haswell(
> include/simsimd/binary.h:SIMSIMD_PUBLIC void simsimd_hamming_b8_ice(
> include/simsimd/binary.h:SIMSIMD_PUBLIC void simsimd_hamming_b8_neon(
> include/simsimd/binary.h:SIMSIMD_PUBLIC void simsimd_hamming_b8_serial(
> include/simsimd/binary.h:SIMSIMD_PUBLIC void simsimd_hamming_b8_sve(
> include/simsimd/binary.h:SIMSIMD_PUBLIC void simsimd_jaccard_b8_haswell(
> include/simsimd/binary.h:SIMSIMD_PUBLIC void simsimd_jaccard_b8_ice(
> include/simsimd/binary.h:SIMSIMD_PUBLIC void simsimd_jaccard_b8_neon(
> include/simsimd/binary.h:SIMSIMD_PUBLIC void simsimd_jaccard_b8_serial(
> include/simsimd/binary.h:SIMSIMD_PUBLIC void simsimd_jaccard_b8_sve(

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simsimd-5.9.4.tar.gz (150.1 kB view details)

Uploaded Source

Built Distributions

simsimd-5.9.4-cp312-cp312-win_arm64.whl (53.8 kB view details)

Uploaded CPython 3.12 Windows ARM64

simsimd-5.9.4-cp312-cp312-win_amd64.whl (78.0 kB view details)

Uploaded CPython 3.12 Windows x86-64

simsimd-5.9.4-cp312-cp312-win32.whl (51.8 kB view details)

Uploaded CPython 3.12 Windows x86

simsimd-5.9.4-cp312-cp312-musllinux_1_2_x86_64.whl (576.4 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

simsimd-5.9.4-cp312-cp312-musllinux_1_2_s390x.whl (306.0 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ s390x

simsimd-5.9.4-cp312-cp312-musllinux_1_2_ppc64le.whl (362.2 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ppc64le

simsimd-5.9.4-cp312-cp312-musllinux_1_2_i686.whl (318.6 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

simsimd-5.9.4-cp312-cp312-musllinux_1_2_armv7l.whl (259.0 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARMv7l

simsimd-5.9.4-cp312-cp312-musllinux_1_2_aarch64.whl (421.7 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

simsimd-5.9.4-cp312-cp312-manylinux_2_28_x86_64.whl (635.9 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

simsimd-5.9.4-cp312-cp312-manylinux_2_28_aarch64.whl (382.9 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

simsimd-5.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (216.7 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

simsimd-5.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (271.6 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

simsimd-5.9.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (227.4 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

simsimd-5.9.4-cp312-cp312-macosx_11_0_arm64.whl (79.1 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

simsimd-5.9.4-cp312-cp312-macosx_10_13_x86_64.whl (85.0 kB view details)

Uploaded CPython 3.12 macOS 10.13+ x86-64

simsimd-5.9.4-cp312-cp312-macosx_10_13_universal2.whl (140.4 kB view details)

Uploaded CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)

simsimd-5.9.4-cp311-cp311-win_arm64.whl (53.8 kB view details)

Uploaded CPython 3.11 Windows ARM64

simsimd-5.9.4-cp311-cp311-win_amd64.whl (77.7 kB view details)

Uploaded CPython 3.11 Windows x86-64

simsimd-5.9.4-cp311-cp311-win32.whl (51.7 kB view details)

Uploaded CPython 3.11 Windows x86

simsimd-5.9.4-cp311-cp311-musllinux_1_2_x86_64.whl (576.2 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

simsimd-5.9.4-cp311-cp311-musllinux_1_2_s390x.whl (305.8 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ s390x

simsimd-5.9.4-cp311-cp311-musllinux_1_2_ppc64le.whl (362.0 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ppc64le

simsimd-5.9.4-cp311-cp311-musllinux_1_2_i686.whl (318.5 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

simsimd-5.9.4-cp311-cp311-musllinux_1_2_armv7l.whl (258.7 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARMv7l

simsimd-5.9.4-cp311-cp311-musllinux_1_2_aarch64.whl (421.7 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

simsimd-5.9.4-cp311-cp311-manylinux_2_28_x86_64.whl (635.6 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

simsimd-5.9.4-cp311-cp311-manylinux_2_28_aarch64.whl (382.7 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

simsimd-5.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (216.1 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

simsimd-5.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (271.1 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

simsimd-5.9.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (226.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

simsimd-5.9.4-cp311-cp311-macosx_11_0_arm64.whl (79.1 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

simsimd-5.9.4-cp311-cp311-macosx_10_9_x86_64.whl (86.6 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

simsimd-5.9.4-cp311-cp311-macosx_10_9_universal2.whl (141.8 kB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

simsimd-5.9.4-cp310-cp310-win_arm64.whl (53.8 kB view details)

Uploaded CPython 3.10 Windows ARM64

simsimd-5.9.4-cp310-cp310-win_amd64.whl (77.7 kB view details)

Uploaded CPython 3.10 Windows x86-64

simsimd-5.9.4-cp310-cp310-win32.whl (51.7 kB view details)

Uploaded CPython 3.10 Windows x86

simsimd-5.9.4-cp310-cp310-musllinux_1_2_x86_64.whl (576.2 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

simsimd-5.9.4-cp310-cp310-musllinux_1_2_s390x.whl (305.8 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ s390x

simsimd-5.9.4-cp310-cp310-musllinux_1_2_ppc64le.whl (362.0 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ppc64le

simsimd-5.9.4-cp310-cp310-musllinux_1_2_i686.whl (318.5 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

simsimd-5.9.4-cp310-cp310-musllinux_1_2_armv7l.whl (258.8 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARMv7l

simsimd-5.9.4-cp310-cp310-musllinux_1_2_aarch64.whl (421.6 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

simsimd-5.9.4-cp310-cp310-manylinux_2_28_x86_64.whl (635.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

simsimd-5.9.4-cp310-cp310-manylinux_2_28_aarch64.whl (382.7 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

simsimd-5.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (216.1 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

simsimd-5.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (271.1 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

simsimd-5.9.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (226.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

simsimd-5.9.4-cp310-cp310-macosx_11_0_arm64.whl (79.1 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

simsimd-5.9.4-cp310-cp310-macosx_10_9_x86_64.whl (86.6 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

simsimd-5.9.4-cp310-cp310-macosx_10_9_universal2.whl (141.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

simsimd-5.9.4-cp39-cp39-win_arm64.whl (53.8 kB view details)

Uploaded CPython 3.9 Windows ARM64

simsimd-5.9.4-cp39-cp39-win_amd64.whl (77.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

simsimd-5.9.4-cp39-cp39-win32.whl (51.7 kB view details)

Uploaded CPython 3.9 Windows x86

simsimd-5.9.4-cp39-cp39-musllinux_1_2_x86_64.whl (576.0 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

simsimd-5.9.4-cp39-cp39-musllinux_1_2_s390x.whl (305.6 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ s390x

simsimd-5.9.4-cp39-cp39-musllinux_1_2_ppc64le.whl (361.8 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ppc64le

simsimd-5.9.4-cp39-cp39-musllinux_1_2_i686.whl (318.3 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

simsimd-5.9.4-cp39-cp39-musllinux_1_2_armv7l.whl (258.6 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARMv7l

simsimd-5.9.4-cp39-cp39-musllinux_1_2_aarch64.whl (421.5 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

simsimd-5.9.4-cp39-cp39-manylinux_2_28_x86_64.whl (635.5 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

simsimd-5.9.4-cp39-cp39-manylinux_2_28_aarch64.whl (382.5 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

simsimd-5.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (215.9 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

simsimd-5.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (270.9 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

simsimd-5.9.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (226.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

simsimd-5.9.4-cp39-cp39-macosx_11_0_arm64.whl (79.1 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

simsimd-5.9.4-cp39-cp39-macosx_10_9_x86_64.whl (86.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

simsimd-5.9.4-cp39-cp39-macosx_10_9_universal2.whl (141.8 kB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

simsimd-5.9.4-cp38-cp38-win_amd64.whl (77.7 kB view details)

Uploaded CPython 3.8 Windows x86-64

simsimd-5.9.4-cp38-cp38-win32.whl (51.7 kB view details)

Uploaded CPython 3.8 Windows x86

simsimd-5.9.4-cp38-cp38-musllinux_1_2_x86_64.whl (576.2 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

simsimd-5.9.4-cp38-cp38-musllinux_1_2_s390x.whl (305.8 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ s390x

simsimd-5.9.4-cp38-cp38-musllinux_1_2_ppc64le.whl (362.0 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ppc64le

simsimd-5.9.4-cp38-cp38-musllinux_1_2_i686.whl (318.5 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

simsimd-5.9.4-cp38-cp38-musllinux_1_2_armv7l.whl (258.8 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARMv7l

simsimd-5.9.4-cp38-cp38-musllinux_1_2_aarch64.whl (421.6 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

simsimd-5.9.4-cp38-cp38-manylinux_2_28_x86_64.whl (636.1 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

simsimd-5.9.4-cp38-cp38-manylinux_2_28_aarch64.whl (383.3 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

simsimd-5.9.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (216.7 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

simsimd-5.9.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (271.8 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

simsimd-5.9.4-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (227.3 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

simsimd-5.9.4-cp38-cp38-macosx_11_0_arm64.whl (79.1 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

simsimd-5.9.4-cp38-cp38-macosx_10_9_x86_64.whl (86.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

simsimd-5.9.4-cp38-cp38-macosx_10_9_universal2.whl (141.8 kB view details)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

simsimd-5.9.4-cp37-cp37m-win_amd64.whl (77.8 kB view details)

Uploaded CPython 3.7m Windows x86-64

simsimd-5.9.4-cp37-cp37m-win32.whl (51.7 kB view details)

Uploaded CPython 3.7m Windows x86

simsimd-5.9.4-cp37-cp37m-musllinux_1_2_x86_64.whl (575.7 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ x86-64

simsimd-5.9.4-cp37-cp37m-musllinux_1_2_s390x.whl (305.3 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ s390x

simsimd-5.9.4-cp37-cp37m-musllinux_1_2_ppc64le.whl (361.4 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ ppc64le

simsimd-5.9.4-cp37-cp37m-musllinux_1_2_i686.whl (318.0 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ i686

simsimd-5.9.4-cp37-cp37m-musllinux_1_2_armv7l.whl (258.3 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ ARMv7l

simsimd-5.9.4-cp37-cp37m-musllinux_1_2_aarch64.whl (421.3 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ ARM64

simsimd-5.9.4-cp37-cp37m-manylinux_2_28_x86_64.whl (635.6 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.28+ x86-64

simsimd-5.9.4-cp37-cp37m-manylinux_2_28_aarch64.whl (382.7 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.28+ ARM64

simsimd-5.9.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (216.2 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ s390x

simsimd-5.9.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (271.3 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64le

simsimd-5.9.4-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (227.0 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

simsimd-5.9.4-cp37-cp37m-macosx_10_9_x86_64.whl (86.6 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file simsimd-5.9.4.tar.gz.

File metadata

  • Download URL: simsimd-5.9.4.tar.gz
  • Upload date:
  • Size: 150.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4.tar.gz
Algorithm Hash digest
SHA256 f75115884854e4576130031636288294ff7045ec9812482d6a01f4f32702482b
MD5 60ca2012b448c4baf1292a88afe8bcd8
BLAKE2b-256 b52dd46e9230088888a013fee7bc1ddd8392680bddd55af45f4ff7ca0e9a8f46

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 53.8 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 e740219884f3a602726ecd88e58afcdc1a5d475e9eb5c5780d90e120a91599b2
MD5 1de4775f887841ae1143ef5a807e54ce
BLAKE2b-256 eb91cbda9072aab3bc7f668a7bd270dfdd0b038a302904f3bdd549a1bd3aac34

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 78.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 99fa8a36faa904382e23b4f5c92410809ea73cc6977bdab6db7aa263c03af45c
MD5 fbae962661e04401ff50192def6e892f
BLAKE2b-256 cea559ad2667e50908337f5f9012dc1fc624c50ded57ff0479f434eb5fb56861

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-win32.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp312-cp312-win32.whl
  • Upload date:
  • Size: 51.8 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 ebe8b0fe9fe68b95f7068cc533a00a6bace8390d6fa69757524b52ce3e94d3a8
MD5 782b997961a2f1203fce4e47d95c368d
BLAKE2b-256 87ddd1df6a73542a1d1bf9775999c3b9b9cac01142e4c2d2f8c16bc2e60d9183

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 761c30ee3f250013ba6c0a98ae043c3df372593acefd9a88d205a50104613860
MD5 301cc88cd5ff81c50319ace98f06f012
BLAKE2b-256 9fc5daa5abfaa98d7d05fc301fe5ccd48290bae16d5d4796241109539fbaef0d

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 988b116ca7664615b8af80ef8c7d50e5aee8239792af84c7a0236cbfb506b8f0
MD5 0459a99ef2ede9cd3a5535245d97393d
BLAKE2b-256 8893c3cb34392fb1df75f2930ba082602279299f5d9106c168958669aeb6f203

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 7ab6ba0bb0616ac8103ff51f580aeece31967ecc481000ca3e4b119ce4981bdc
MD5 155be1987799c806f525cc889421c724
BLAKE2b-256 45083f90531ebdbdc83eba5e9a00f80c89689888bc3dc40f04ab56163abd1987

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c7894bb8d476cbe6bd216dac86be2d39b589a5f69306e4d30df1d49cc55da83e
MD5 f47b1a2f9552b8e66e7cfdd586874bd6
BLAKE2b-256 ea65e44807a8d4fe52234d19d855c7e0535eeee1fe402d9a6c843b630eb85b62

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 08820f1380696adb04709d6e59ab89dd1402419eb894f3d6742bf13f52c3d532
MD5 185e155df635403087754ae6a895d07f
BLAKE2b-256 19b61d334bbe5b6f588441deead1228c56498a51d778c5e3dd65bf7ce27183ba

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1820794cf0070b67579a7868b63f209d3de6ad5e23beabe84f6f1d97d2eee9ff
MD5 3c33a5684b76bab655538639569a291a
BLAKE2b-256 2bc7183c76f49ae2504a1292b8bb5174687ee352b6a194e8d6f368092c7cc3f2

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7072ba69894e212756f1ff2304d89972c2d49d7cb524426abdac6551c5d29a07
MD5 1ad9db1e86109d6094b12ccf22102693
BLAKE2b-256 ada018e1b0da8ae2cf6e9fa0054d63bb1c6881c4e10f659c29b5b5828c07b6d0

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 94422a3c723303b79a0ab75cb64ab07e3d9d9f3e376b1eda7a0ffd9de75f32a7
MD5 756b5fb0f403a63f8c21ccf5920190e7
BLAKE2b-256 70e60efa93ae6d5879ad3ca67ca65e9e070f521c396c6c97e99066bef8e10772

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 cc0412d6b238bba6be3719361d04b22a3e98e9b7cd0e24d5e810f7643db79513
MD5 5ffdb17175a75c3a3e56f4786489f8ca
BLAKE2b-256 48cbd61543c5decc0574a2142c80774a0e78ede85fd8d15687c0f3c0efb14d2f

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 afef7ec944dfb27c997d26e6c4bf3f76b2d211f2e644765025fbaeb108cef609
MD5 aae4438b98f0e36248c207c87bddd904
BLAKE2b-256 8d2372d2b9778bdb9601aa4b1743bed7e7bf6ab2f6bcc24ea3919b67a2801ba5

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b7be7482084d836d90384b818a37299591569811351548348b4d60c1d90cee4a
MD5 429762e62ee07cdb0782dfb0bd27c3a1
BLAKE2b-256 3b46e55f2768afc36c6e162602149a4d4d0f51986f10fd00efc4b5da858b2569

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 704138b45d54ae95db6ec7b239b6fc410c93f28af9e0a1e31469225c26aa59a8
MD5 126d28b9778fb6b2c26e60799bfed068
BLAKE2b-256 95d8a0a857c9b2ad64d8530d08961ea445f7fda1684d4f5a0118b38d4a6a3eaa

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 83813b3e325fcb69c81c2b2cdb08fc0e1b78479eea3b134b07e6cf216c9b954d
MD5 0d86a83fc8e96c741eabeb2efa216ecc
BLAKE2b-256 301dcea0ba0aaf1b8bfaf9a3958b84c355d403b707c72ae5c92ceb106431a5f9

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 20041c10750feb69d6d62ed6010e6357ccec7cb8e1eb97a8d2518c23965d1a1b
MD5 f183c7ffbdc9b1978052cb5772b58d89
BLAKE2b-256 281db25f6146498b7f1c9d411553a0b3ae3f4a3daff5b79ef3f8eb7f7e763492

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 53.8 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 e418f756a2eebcadf983c24dbf4f68b0c9200aafddad864022ed15c1b2feaf85
MD5 069afaf21c4d9919c56f4d4fe1ea9f7e
BLAKE2b-256 d869781db6bbec2bd3061e03e1fadd294bf861d2404d999aaa26dc13c8ccd3c7

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 77.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 52cb4e52f248b84db641bd92d6a5f16fd1c085ab194e8f003a65a69d52905b5e
MD5 a3fdb977d975de30674e4d9aa585e0e5
BLAKE2b-256 1ecbd95440350789f97f78d701a8a44a89fd327efa5abeee490cdf8793917586

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-win32.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp311-cp311-win32.whl
  • Upload date:
  • Size: 51.7 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 5b89e5536cc357cc4fb08839467b5b63ab3671c564e52bca463e7615852cc0ad
MD5 603b577c2bb0d00277152d37ee30c3ff
BLAKE2b-256 9c2d32e6134113c223024f81f42902cb77884d52e4941bc126878ca50c992e8d

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4dd2a95c7ffbc04e6cd0833985b80ac8fa8b040f3b619616b542e931b83313b3
MD5 d56b7335d722acf782ba2faf8c860330
BLAKE2b-256 d51a1e56256b10ce56af24d2214fde26ae23f2efe4b6aaed0fa0341b722193e5

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 2d63f37571baaea25fce9fa4973ff307e88969c7ef04717361d99cb844308c98
MD5 99b2e9a93835f61bc181e383f135a90b
BLAKE2b-256 c7bae33dfbf46c901a0bd660a4a9ae0534d00889415b48160c33e623ea0316de

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 ae7139168667c3f8ca89fbba2af3df9250dc6f49ad40272c3bbb5924304b3d84
MD5 08218e3b72165293074dc6b3770ce1ad
BLAKE2b-256 df9e69f328b5da7b4bb0274d8c460dbe29cc6045ac98bc2e95153318f15d1c6d

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 702b18ee287d734c746bf8977040cd89873e19331dff31000e928c0409f93042
MD5 0cb38ffdf3da0fab1e0790de9416652f
BLAKE2b-256 429db92bc2bee01474c707281aa5185743a49c356510fe9384c6499a21e263ce

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 6bef5a36743bf9d6f6976c0e7e889a6b44773d944d70b15223f69786ea5e2364
MD5 73a84ef0ed2bb9c26096bf4375bca821
BLAKE2b-256 6cb2e4b36eb5e85f135cac88cd0e0687e0d524c6feb19a03119cc46c770e76f7

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3f55a79f049a6d468540b313e6c5bf3e741e9b1de931aeb278372d2ff29f35ca
MD5 bc156de229b4ee7dacd01a23ddf44ba7
BLAKE2b-256 4d8809666bc1f0119e59fbddb54b8c0fd5cd5fc296330703e5335153f48fd1b4

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d292270207d564f8071b07301cce4c3b1c88c28141ac2839e30c415686ec66d6
MD5 876b5be82f3268895cd3e186a6fb2372
BLAKE2b-256 b6f3d1118160fc9e573b1e3c624ff5cd11301650c63d4402282523b2700f5a36

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f155926c01c22684da74cf63290b72fa8b8e01d04ae07e95c080900b35c48896
MD5 f626190221075ab00370e16059937ba1
BLAKE2b-256 24fade554d208c48c3e68575eecb867669d1163f329a1af1eb9d9ea28eef1e7b

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3af1c689e5cc520d583648d796cbf839329b96e1d476bef2cbb9812c095fa6b1
MD5 5db6b36fd4c80f85f73b1023a4577578
BLAKE2b-256 8a407ae3117ac4ea4a9c3f5a2c68d3e94f4b2b56844bc33db2e1b9d359c12a0b

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 689523f10440bb4f9c9c18618e5fa57516747b5c4b0786401c197604f9ae9e1e
MD5 7a4e6fb988d5008e9c9e65df6a9df30e
BLAKE2b-256 c05200bf251710b77ddf4f560e2d9438dcae9d472c323f276c4e4b18a21d55ae

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 088d06f8c4afb8cb7e7f174774253f8d970c68db92a06de6007f24ea7c98886e
MD5 3b2a45e60c815145e1f2d91f3e6a9a1c
BLAKE2b-256 18ec80abb6bf2e453cea0e11f7cecc12e87e508af7fea0d5d5ada130ac6855ea

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f4a4a0c472fff6c631af0d8b43b1e99e5ec8c8b9e3bfb7ac7d0e4fada0efa25b
MD5 182a3ea83a795cdd6814da0882c75289
BLAKE2b-256 d9142c083c85ab956b13e00040a842b76ae813f9c301d40343dd45c1e91b2176

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fc707a98ea34c51c7982145b830548a4af3902efec7bb0b42a4fc650f3567d46
MD5 199ba5370a2be571380728e7a91964ee
BLAKE2b-256 0fee9ad9dd09a365953262c83d2eac5d00b5bc856e9724397518b890ada08327

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6d4cc3bdf78380ebd7eb4da45b83b80f5c5b5ae0538de36574f7fa36069466e5
MD5 941cc1c2e2cafc2949be5fc737c78626
BLAKE2b-256 5f6645c0f7de6c41dceb054dff5a9c02dc88a0fee2030f3c6490c3c8e9354cbc

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 53.8 kB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 f335d91cae89f633b44469128dfe7f4b2c7cdbe4f46538eecb59019dd538f067
MD5 39e12aa5e98841efee1d5a4f09e64050
BLAKE2b-256 3cb47441965dfb45f40280a1875de54592dc8f33a2c5d17d654f36dfd85e6284

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 77.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e57b292964db34521d3803d6eae8f51fca5e1c76d1c16bd28aa50102c0ce93aa
MD5 f40f431459cb759a3997b09a5401ed6b
BLAKE2b-256 3352ae47ef8f516889efcd20bccc12955ddbf4c0eb9cd4e738a5cc5742449657

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-win32.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp310-cp310-win32.whl
  • Upload date:
  • Size: 51.7 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 5244a0409121d4caf13d1eb2dd017ae5106a92119368a7e67e5860c443faec23
MD5 2f17ce6071691b6b13621216714d1192
BLAKE2b-256 3caa781a25e16b93861c685187d4a7a713c4ff4da7e9c50cb39084a7526ba6b8

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9b0f1ff1cf35e84a52a506ab23d1ed3800dbfe9ceb4f3c2f9e88627abcbf01fe
MD5 ea45d978b3b8c482a153d8022a19972d
BLAKE2b-256 8cdc4368536f66bddcfef15cf004760dd4183506ce8cc26db6e58f664a2ea6ff

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 8b6697b66144273203696c5b9f8af475da9a1967b048de931c8238426edb6d47
MD5 c73400fec79825b3fc036d27fdf6d99d
BLAKE2b-256 700264d24fdf70e2e3609b800422b0b0f75e93ac7684e34b7d21c44f6bc6b56e

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 148a4a698d694aa5c27cdf48cc15bd7ed7c3fc62b85d1e69ccd5171955112cf5
MD5 b607cb092ea1256e14f2c7bc30cbab0e
BLAKE2b-256 85fc7e1265868f609ecd2da17aa3bf17e34db4acbf26e66358ae998e8f437a93

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1d275e9ab98e652b5f9d50ef0a8191dd6a7cd15a900afc477ecd8d9267efa416
MD5 6b7735d360a42e0a6b5ad6da1ec0e157
BLAKE2b-256 3b7358a2597a59a61e8e4bd2fa68ba383a2c18a44602570fd5c76e51c6b897f5

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 070b50f3beee90ec842392b8fb888247987053235bebf046b160e2491c315699
MD5 9a08be7ac98c081ba46d0e69ba8ac090
BLAKE2b-256 86cd9960b343e4036db33e0337e42b070f99486382fe0f47c5afbe9a83e2f959

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6559e437f4351664d46e51ca9e692850c7102e301431e78a2580ffc1f5693c22
MD5 6710b3ebcf6a0d4c425c5adaf552d4bc
BLAKE2b-256 244a07959d8257de19558767adee4a8fa813de8766b8e3363d90fff4e7c3eb76

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6a68f3c549d7c9bad134c39dd0186ee43943ace80f20e1f433b4a0e85af6158
MD5 67bedb37eca2067595227c59f854f6c2
BLAKE2b-256 d782c3a029ac7ee577fbf0ed493cde270e8f3068108f92e936e0a4404caa13db

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e45e095fef614a73b66c24b96f7c93de33c8d62ce756d9b2dc0c181c8ee57ca7
MD5 d8b68997a0de000a56557359d21a5558
BLAKE2b-256 cac428a59a32112e7371830a97f4c68a6e3805a4444b1f8874f67aac24b391fd

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7ba24d583542bfea4d7b70eafdd528d774486df3667101f280b5d6c89e848a32
MD5 21ed6cdc7bd72008b0c4970b90506203
BLAKE2b-256 5f126929e7c8a20927bb18b130eb540a3e66ecea09e5743612417a7b03375d22

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7d8c493ebbba65bd8305f2d5d7046b520bf39d020720700b23162eb8ba47b040
MD5 154f179b87deb9eaa9f9b1e90845d2a6
BLAKE2b-256 d7820ccac5bbc6c3984138fc2ae97bdd1133a12d1f3b039c859c3c50da31c5e0

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fc20c854bba8c9b6f1bcae41f46c8ff81402d80bba4658226c45f254d97d393b
MD5 9ce0b4bbd8ddc459144690ccb13ea185
BLAKE2b-256 610c4226c5303a0dc00d95c459165169821d4631523597744d3c3d96906b57ae

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 604b3d2622b37713a7adcfd7e2d0d432968ba988ec7bcd9ed3f631eacfc9be0e
MD5 d4707d6f5fbc828c7574277073b3a0f4
BLAKE2b-256 895b8dc288474675fa95de5f6b5dc04bef13abf4350ba13541eb8681e57143ad

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2e580b93b82fa60b6c54aabfe7cfac7a4e5bdee4556a99c77cf51f8a35849ad9
MD5 df214b958648b6259be43b9eebf8dbd3
BLAKE2b-256 33da6ae7521ec5da5c707cda60f4149ba7510768624db833f1a0f2c62ec5323a

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 9aa3bb197bea5bf92ff7cbb33d4b5eea10f37d5122599142555eb556714ee542
MD5 f22fb27be0e5e76b014353efc2919e7d
BLAKE2b-256 73b81deddd04c3e26368e1bc51269dfbd0592ac4477faeeb2f2b16be496779e2

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-win_arm64.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp39-cp39-win_arm64.whl
  • Upload date:
  • Size: 53.8 kB
  • Tags: CPython 3.9, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 def1b28b4520dc304f29ab1dd8cd5d16dd6f7ee0aec1a15e3e9a3dca736cd7dd
MD5 6cf07f59878d035c4857843a89b1ac83
BLAKE2b-256 908626445dd057adafe8c465197946f802db04aa3a39950e67cfd450a0a24da4

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 77.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 32d484a86aef01aa17bbde89d690319fe204399eab0120b719b7aefaea1f7a45
MD5 10c33c21f0ea83500980d2002cfa51c3
BLAKE2b-256 b50b0c303d408595dd63cad3f80d513ebd1e0666c835b6eb1ed304dc8742c9bf

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-win32.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp39-cp39-win32.whl
  • Upload date:
  • Size: 51.7 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 3c60915dfbf21a7c68e409dc159a29c3a74adbdecd1961d89206fc8d86ac9000
MD5 95bdc541d1b790566885af7c44a41e5d
BLAKE2b-256 c87f7263a773caa83ff5257323652f7c650dc7a990a0b425f10c66419982d0c2

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 89fd6e3a4453b6068e6ca43801c407fc8d5320ef6eda654ca2b470986f423855
MD5 0aa63b620d9e3aa225fa724e1b29a08e
BLAKE2b-256 45475f214ac6c4d97b95d626df638050d0c2822f753cf8a24435b59f173416bf

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 e5e1961a04a2365b4d5cfdab8463729aa8765e49f3c59cd098fdffce8402c15e
MD5 68443519f3b4d394c0d38538dbe403e1
BLAKE2b-256 e531cf5706f9294876fb73929c74f60d50b5cd58d42359c809c2601fe8e9a355

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 0fa47f8b255f7c02ec2d22a58a1300026ae4e875791cd2696f1201ac3da00e93
MD5 35e1ee98e16acb1057410c75753bb1fb
BLAKE2b-256 a018532658ee1e386067138316aa49417b5f9b636be3eacbd707de9ee81d970a

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ea76107e145e3317c7f72a906a80e4714b07ecaeb69f1b2e373e31db0c85be1e
MD5 2e86414daffbb571fedaa98e1fd45ec4
BLAKE2b-256 4141d28efa5e63fc661578a01a011f7e9724ad03252850be05be7c241b98b3bb

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 d3fac32be9f6cb4b989a5c6ca79852f3731286a2ef2b65128350d7218cb84258
MD5 2a06796e98fb87b76daf8ca68f87f6db
BLAKE2b-256 c1a4a0664cb9427bdb374b225685e808bae30c00e8981debf84c7d0dfcfb99be

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a6b575b7d6a74cef9e87a3f3901fd7147891bdce130d655ff498eadb9b3d49bb
MD5 14058ff6ac7885e891ed18a80f0237cc
BLAKE2b-256 14cadcfb9bac209d3ca92718a04cb629ecd1d6197bb0503c5e051a6064e93e71

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8abd16873080c0fade2057cf371d02aa73e04cc1d1f5c16169dcd8a9cdbdadbc
MD5 a469f2b195322ab60f196f13049a44a6
BLAKE2b-256 5cc0a8b12c667552a9d20227701d40c34d813f10be705de6c1231028d0896d63

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 808df09687e2cb8844b74539ca807a7aa3e1475ed030e5214bf1038bdfabdc9d
MD5 aa5934bbf572e4a47327f292d9c8ebcc
BLAKE2b-256 cfa2f23d65d74e70c459cd72581fda07d87a50dcb948012310ab30eced0d4f3a

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 342affe60887f546edad4e2788d6fb9208b81f35f465f84045ab779846847731
MD5 8e50d705ed2501e7119dc2ef742ced97
BLAKE2b-256 392ff024e0f62b698a948ccd4df32d06e290a41094575c959acad267b81cabc0

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e64c5893b8ac5ca8ff3b109b7715f4e3653b5d3993281c3ceea3acb9e041011e
MD5 09a7c6a394511ef1a38894080bffc586
BLAKE2b-256 0fbc773cb5286d670741c9cee31ae4669972255ef7dd0e0587b8503b9710fb50

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b2d737e8bbe39ffd56ba9628b84567c63dd8b659e66c397fd80e3f63222a150d
MD5 e9c5b78c2ee70561c3ef5bd2b6ef4601
BLAKE2b-256 896cd48395c674d17c28199e42c293079d2412e34bbd826af4eb2d1508853687

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d243ad10f9a3785971953c0a1580fddd507150baa65efd9ccd794a3e4922792
MD5 faadf4ea4350021a4708c470622915d3
BLAKE2b-256 7ed5997f5a93d2cb01b4cabb4e9c1ebd91ba5c0befeeefc8f1f13ff8188e093e

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 02537903ba4a06e0bc5a918aaeb01cf482de3d2e3b56be594307e7b79db22e52
MD5 a8d4c2bdae4260dc6a84ea22a018dff5
BLAKE2b-256 b0374ac8e0bf7f524aa27ec6020b6ed65d28fb3d4e1b17470be2844748bc56bd

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 19d3fb232401509b07a544fdb3d2e58f9d2f40ece682af75295f2ef2eaa9da83
MD5 e5adff3c186634a68ac3f0a09b9ad788
BLAKE2b-256 4ff6d0bb6eaf4cb1423709b310504b5bed2336c7b3fb9fd97730e792f3707d5f

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 77.7 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ecc47cb003fc59fb25806500b70555d5aafaee02f8b1f827e290b455eaed60f3
MD5 79c48fcbdfb2ec86070c0d0e9db22ad8
BLAKE2b-256 5651ebf2c52c35776d8e0ae4f58f4ee8da7dffdd64a59b60e135395dab7973a0

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-win32.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp38-cp38-win32.whl
  • Upload date:
  • Size: 51.7 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 06f32e34440240a491abad5859f46a316811664d117364e71fa392151a17b7b5
MD5 b5c85a18bdf621b20aee778a1008f942
BLAKE2b-256 e87521fdd3f055bb7057d66434ae39a4b75b970a4da7aaefd3ce7806ceb4de4d

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1c2064e42534ad094cc22c0e052d4bac364e29937d52ff6fda0560b81db7ac9d
MD5 e16f684547d9449d33ac61a95534e7ef
BLAKE2b-256 37b233508a3538600c17beac8699ac32c2ec3614afe739cbbbca252ca829b0b8

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 81ad083a65d6a4db620d8c0c70b40301d56338e49cc60ed76f3e13df1ce85a91
MD5 1118c523e8e809bb76b7bfab3ed86f46
BLAKE2b-256 a6684d46b65bdbc3e84c9585e139098eddb5a5e4544ac7e52e6d652953812a75

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 ff2ab1cff5a830ec98400d39c6781e3897556702bf8b92ba10d58d292498103c
MD5 ae93b1c1b92c56b665fb521f3806ae84
BLAKE2b-256 8f74c03c85ea35971d84f5af5c8ea6d9e33fb049bca608ccc5a665d9abf4b2cc

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 336005c695576a3d075a8d2850bb7aacdaabff972580c7a6a34bd99ea7c81328
MD5 18921dfde457a61e4eb7051611c0e1fe
BLAKE2b-256 65f4fe42f1a13c4d8e3fedd6b0fc7f15eac920c76187f29645fa91b075d42eba

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 522451990de7c9882ff725ddd07e97908bcb1b9717b8cf4d91863d756538a9a0
MD5 5e6bc9b97f1fb135f05843755c799f88
BLAKE2b-256 993c9eca0a4bfef01d8be08fa191b518c299451ee8be5b97b3331b7e51a6caa8

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ba40d83fc876f340a8e3dea63300c312e79969b708ac0821e97cdb32ada63fb1
MD5 b5c6830fc77797c94f7417d02dc4dc2e
BLAKE2b-256 b33f74d139431ea30e4b18ff513584822f127ef724e7ce7afc9f805aee6b02dc

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 af30676f5e4fbbc019d01ffe81a2f13408fb06ac00093b609dfa290cbed2c49b
MD5 442f63452a686a28dfe2d649b3ff643d
BLAKE2b-256 b27b3362ecf2352ef232eb57d152733b6002b23b4fa19aafa3b49348ee40db25

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d0c544f904ee49c1b09ae57243eb5b65322cbcafd97f90d1387a701abb7992fe
MD5 07201380b0eff308bdb808cc2ce15b22
BLAKE2b-256 f1e6ba19b553623a0c8bc833e0876bdcdd0ecd8756ba5a440bf87f2a226625d7

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 1bedd64a05d15f1484c51d301508036f8b273bf27853c3ab46bb48ab5c8866c0
MD5 5d1da241b64fa4856b66af065b59006b
BLAKE2b-256 81b88e7e22c8c689f192343760263de9c537ba375936482203133cb387b49ee9

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 64babccde5c772cb70e1bc181350c7410a09a3b74d8d4c75a80c9b3c58f23fac
MD5 8d3c940df04e400a1e285f6f3fa8569c
BLAKE2b-256 d8529e1b1b6f50904ed547c2e8486fa3b4d16d0e456b96fe24749bcde2baf913

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9f4c33ea0d63669d4f0274490fe3d8a1bfc38e63fffbdb2cc278413ec7cb2fa8
MD5 fe86e21e2a37afd08e841ba44e229eb4
BLAKE2b-256 be3d017d06cb5a132905d8eeccebb3abd9baa73da76de4ead9f9d544fb959920

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a60b8b082d395a33f2598689f9becd6d76a7c99ce6265cfdac9770e78074129d
MD5 5ba5bd4a3ebd27c1a602c5074506ced6
BLAKE2b-256 3de857ab6a54702f82e3273fe5c7196be99869370f4404cfaf4622f03d7b3ebb

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0d072d0447ea391862e1f4b73fa252e05a50a5b521a054f038e5176ee226d6c9
MD5 40a0ea83a86d123dfc1fa8842fb02498
BLAKE2b-256 6c4b538f5e94d20e79e8b784e3070bd218fdf9ea90936250f4844802a40b6b95

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e52a9ffca8d369d6896b17ef146510dd245bb75183d4cd9853c5b798bcc54cd6
MD5 d60f8893187944c471633d01eb80e677
BLAKE2b-256 6474f3f0f231663308490535bf89782734b4d0b2aca10bda8c30df10ef53da42

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 77.8 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 b049767596826931f603f7dd7078deb4df6e5f5c72e781f120b9e39d29da1d7c
MD5 51c23d060c2c82fb559a4bdd56454f69
BLAKE2b-256 3a314ee973599f41b1f674edfa1cb394cb514ef15d851a4d7479cf216bc56af6

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-win32.whl.

File metadata

  • Download URL: simsimd-5.9.4-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 51.7 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 bd576d41b4c34f982950d12e0e44cd1c3a036e68ef64a502bd77575f1e9cb133
MD5 242f13061dcacce0a9ebf6e8112d3266
BLAKE2b-256 2b1f3e55c6608cca86c7b2a6ad64a914fa48b851edd4b11bb3d2a81cc5037981

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2f891052a796b329a1b9524b291e46ed27d3c15263e28af1beb71709b3dcdbde
MD5 8f6d0d63f39749a41f932517bf26e413
BLAKE2b-256 463b904c185275522bab165d4fd8561eaecadb0151f30fe946d237a15b04befd

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 77d00679f537127f3ae81a5be8cec59e2dd646b4f038962a5e51c6b5fc8ff638
MD5 52d49d97bc068b5d1f4e5014a26648ed
BLAKE2b-256 321915db32c674f4c13286a1d3d2443cd97758be141287216854ad016e56c40f

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 1854d7bd381cd784f0eba401d3c7a473f215907c69ceba37ff33d849c906c294
MD5 bd28e50b9bc778773aef338b582dded0
BLAKE2b-256 6d2565cb3e988ac55d84bc429f780cabbbe138c1b9e26bb408a7b2c6895f3d9e

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 eefba8563e819f9498cdb99d0955547d34c743404b9b6e77324f5996ba6fac69
MD5 0e5ece8abb8daac256924df946eb5210
BLAKE2b-256 60caedd7fc63bace81b333299612b8046976251df26636666b4f56fed2a9d91d

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 dff91aedba35410c956c0f58bc7fac3dbb857c2de0da7fe7462922767f1f752d
MD5 e54dee41c37db43270c4a43488b65091
BLAKE2b-256 c85b0375dbb25f521962b488d456e10c113bc591a9fa7036b947230251d8f0fe

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 95da968cf47c28ede55c1117182227c3feaae14e69236a93f88ac4ebf0164dbb
MD5 3303c7f7c846e4ccbada5d848723d492
BLAKE2b-256 4fcb973a8466de5d6cb4e4241fd324d0db7f453b88c5914b37ce6190c1b23b4f

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8dccd6843294ed5af3b3b3f1e105af79913537caf13fb66bf0286c8edc37cabc
MD5 791a526a7fb63714f4820d5c2d73badf
BLAKE2b-256 1a0343761b513610ce0ed69f269eb384858716633f8329e492549fd46f3a1596

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0206b4a5941e9cf3fe6c13cdb368810bceecfbd925699a039cfaa0186bf880f0
MD5 2dd842a75c6abbf3803b3b877d12f765
BLAKE2b-256 a885b72661393656c75d44cccc6c585b0ef790b705665c12300d6f38d2caa45a

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e19db5973c8ab88462d366eba1a3355986963e154cf404cd997c5bfd61f545b7
MD5 939601699cdf4ebaebf42e29acc5207b
BLAKE2b-256 7f60fb0242bb8b697fa8bc3c2782610930291eee40db2e6ce530aa82b457ff55

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 1bba3e2740fe17117ea06314c8c8b2e0ce2802d24b9c3d609feaddbd18b45ea3
MD5 f565d6cb1eada3d6a4eb1897fadcb0fe
BLAKE2b-256 591d5f32b1d96a417d13d9d0004b318e268c0aa71959169780c80b28ba892e09

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cfbaeb368186628f3b028308f5e7e76a4508eb3ff6ec5dcd378f9502a0068a99
MD5 4e0180c9c1d2d907e6b007d48cd65076
BLAKE2b-256 a355b8846b194095d65d8d555ab7a41792a871cd312aa568fa69474b0fbe65b2

See more details on using hashes here.

Provenance

File details

Details for the file simsimd-5.9.4-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-5.9.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6ddb59bbd3060b2c266274a62279da8f49766e2e89a690d0b0f26b7dc384c171
MD5 fda02ce84c9399228e83d44d073f03fa
BLAKE2b-256 7795744cdd7ebe6e0ff7583200d27f3d7610904796684896fc64c17245043582

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page