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 often ships more binaries than NumPy 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 350 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 float64, float32, float16, and bfloat16 real & complex vectors.
  • handles int8 integral, int4 sub-byte, and b8 binary vectors.
  • handles sparse uint32 and uint16 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

NumPy C 99 SimSIMD
cosine distances between 1536d vectors in int8
🚧 overflows
x86: 10,548,600 ops/s
arm: 11,379,300 ops/s
x86: 16,151,800 ops/s
arm: 13,524,000 ops/s
cosine distances between 1536d vectors in bfloat16
🚧 not supported
x86: 119,835 ops/s
arm: 403,909 ops/s
x86: 9,738,540 ops/s
arm: 4,881,900 ops/s
cosine distances between 1536d vectors in float16
x86: 40,481 ops/s
arm: 21,451 ops/s
x86: 501,310 ops/s
arm: 871,963 ops/s
x86: 7,627,600 ops/s
arm: 3,316,810 ops/s
cosine distances between 1536d vectors in float32
x86: 253,902 ops/s
arm: 46,394 ops/s
x86: 882,484 ops/s
arm: 399,661 ops/s
x86: 8,202,910 ops/s
arm: 3,400,620 ops/s
cosine distances between 1536d vectors in float64
x86: 212,421 ops/s
arm: 52,904 ops/s
x86: 839,301 ops/s
arm: 837,126 ops/s
x86: 1,538,530 ops/s
arm: 1,678,920 ops/s
euclidean distance between 1536d vectors in int8
x86: 252,113 ops/s
arm: 177,443 ops/s
x86: 6,690,110 ops/s
arm: 4,114,160 ops/s
x86: 18,989,000 ops/s
arm: 18,878,200 ops/s
euclidean distance between 1536d vectors in bfloat16
🚧 not supported
x86: 119,842 ops/s
arm: 1,049,230 ops/s
x86: 9,727,210 ops/s
arm: 4,233,420 ops/s
euclidean distance between 1536d vectors in float16
x86: 54,621 ops/s
arm: 71,793 ops/s
x86: 196,413 ops/s
arm: 911,370 ops/s
x86: 19,466,800 ops/s
arm: 3,522,760 ops/s
euclidean distance between 1536d vectors in float32
x86: 424,944 ops/s
arm: 292,629 ops/s
x86: 1,295,210 ops/s
arm: 1,055,940 ops/s
x86: 8,924,100 ops/s
arm: 3,602,650 ops/s
euclidean distance between 1536d vectors in float64
x86: 334,929 ops/s
arm: 237,505 ops/s
x86: 1,215,190 ops/s
arm: 905,782 ops/s
x86: 1,701,740 ops/s
arm: 1,735,840 ops/s

For benchmarks we mostly use 1536-dimensional vectors, like the embeddings produced by the OpenAI Ada API. The code was compiled with GCC 12, using glibc v2.35. The benchmarks performed on Arm-based Graviton3 AWS c7g instances and r7iz Intel Sapphire Rapids. Most modern Arm-based 64-bit CPUs will have similar relative speedups. Variance withing x86 CPUs will be larger.

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 int8, uint8 or float16 vectors, will use the same types for accumulators, while SimSIMD can combine int8 enumeration, int16 multiplication, and int32 accumulation to avoid overflows entirely. The same applies to processing float16 and bfloat16 values with float32 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. The dtype argument can be passed both by name and as a positional argument:

dist = simsimd.cosine(vec1, vec2, "int8")
dist = simsimd.cosine(vec1, vec2, "float16")
dist = simsimd.cosine(vec1, vec2, "float32")
dist = simsimd.cosine(vec1, vec2, "float64")
dist = simsimd.hamming(vec1, vec2, "bin8")

Binary distance functions are computed at a bit-level. Meaning a vector of 10x 8-bit integers will be treated as a sequence of 80 individual bits or dimensions. This differs from NumPy, that can't handle smaller-than-byte types, but you can still avoid the bin8 argument by reinterpreting the vector as booleans:

vec1 = np.random.randint(2, size=80).astype(np.uint8).packbits().view(np.bool_)
vec2 = np.random.randint(2, size=80).astype(np.uint8).packbits().view(np.bool_)
hamming_distance = simsimd.hamming(vec1, vec2)
jaccard_distance = simsimd.jaccard(vec1, vec2)

With other frameworks, like PyTorch, one can get a richer type-system than NumPy, but the lack of good CPython interoperability makes it hard to pass data without copies. Here is an example of using SimSIMD with PyTorch to compute the cosine similarity between two bfloat16 vectors:

import numpy as np
buf1 = np.empty(8, dtype=np.uint16)
buf2 = np.empty(8, dtype=np.uint16)

# View the same memory region with PyTorch and randomize it
import torch
vec1 = torch.asarray(memoryview(buf1), copy=False).view(torch.bfloat16)
vec2 = torch.asarray(memoryview(buf2), copy=False).view(torch.bfloat16)
torch.randn(8, out=vec1)
torch.randn(8, out=vec2)

# Both libs will look into the same memory buffers and report the same results
dist_slow = 1 - torch.nn.functional.cosine_similarity(vec1, vec2, dim=0)
dist_fast = simsimd.cosine(buf1, buf2, "bfloat16")

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.sort(np.random.randint(0, 1000, length1).astype(np.uint16))
vec2 = np.sort(np.random.randint(0, 1000, length2).astype(np.uint16))

slow_result = len(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

Element-wise Kernels

SimSIMD also provides mixed-precision element-wise kernels, where the input vectors and the output have the same numeric type, but the intermediate accumulators are of a higher precision.

import numpy as np
from simsimd import fma, wsum

# Let's take two FullHD video frames
first_frame = np.random.randn(1920 * 1024).astype(np.uint8)  
second_frame = np.random.randn(1920 * 1024).astype(np.uint8)
average_frame = np.empty_like(first_frame)
wsum(first_frame, second_frame, alpha=0.5, beta=0.5, out=average_frame)

# Slow analog with NumPy:
slow_average_frame = (0.5 * first_frame + 0.5 * second_frame).astype(np.uint8)

Similarly, the fma takes three arguments and computes the fused multiply-add operation. In applications like Machine Learning you may also benefit from using the "brain-float" format not natively supported by NumPy. In 3D Graphics, for example, we can use FMA to compute the Phong shading model:

# Assume a FullHD frame with random values for simplicity
light_intensity = np.random.rand(1920 * 1080).astype(np.float16)  # Intensity of light on each pixel
diffuse_component = np.random.rand(1920 * 1080).astype(np.float16)  # Diffuse reflectance on the surface
specular_component = np.random.rand(1920 * 1080).astype(np.float16)  # Specular reflectance for highlights
output_color = np.empty_like(light_intensity)  # Array to store the resulting color intensity

# Define the scaling factors for diffuse and specular contributions
alpha = 0.7  # Weight for the diffuse component
beta = 0.3   # Weight for the specular component

# Formula: color = alpha * light_intensity * diffuse_component + beta * specular_component
fma(light_intensity, diffuse_component, specular_component, 
    dtype="float16", # Optional, unless it can't be inferred from the input
    alpha=alpha, beta=beta, out=output_color)

# Slow analog with NumPy for comparison
slow_output_color = (alpha * light_intensity * diffuse_component + beta * specular_component).astype(np.float16)

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="uint8",  # so we can use `uint8` instead of `float64` to save memory.
    threads=0,          # Use all CPU cores with OpenMP.
    dtype="bin8",       # Override input argument type to `bin8` eight-bit words.
)

By default, the output distances will be stored in double-precision float64 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 uint8 or uint16 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 Swift

To install, simply add the following dependency to your 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_flush_denormals(); // Optional, to avoid performance penalties on denormal numbers

    simsimd_f32_t vector_a[1536];
    simsimd_f32_t vector_b[1536];
    simsimd_kernel_punned_t metric_punned = 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;
    simsimd_metric_dense_punned_t metric = (simsimd_metric_dense_punned_t)metric_punned;
    metric(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_i8_t i8[1536];
    simsimd_i8_t u8[1536];
    simsimd_f64_t f64s[1536];
    simsimd_f32_t f32s[1536];
    simsimd_f16_t f16s[1536];
    simsimd_bf16_t bf16s[1536];
    simsimd_distance_t distance;

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

    return 0;
}

Dot-Products: Inner and Complex Inner Products

#include <simsimd/simsimd.h>

int main() {
    // SimSIMD provides "sized" type-aliases without relying on `stdint.h`
    simsimd_i8_t i8[1536];
    simsimd_i8_t u8[1536];
    simsimd_f16_t f16s[1536];
    simsimd_f32_t f32s[1536];
    simsimd_f64_t f64s[1536];
    simsimd_bf16_t bf16s[1536];
    simsimd_distance_t product;

    // Inner product between two real vectors
    simsimd_dot_i8(i8s, i8s, 1536, &product);
    simsimd_dot_u8(u8s, u8s, 1536, &product);
    simsimd_dot_f16(f16s, f16s, 1536, &product);
    simsimd_dot_f32(f32s, f32s, 1536, &product);
    simsimd_dot_f64(f64s, f64s, 1536, &product);
    simsimd_dot_bf16(bf16s, bf16s, 1536, &product);

    // SimSIMD provides complex types with `real` and `imag` fields
    simsimd_f64c_t f64s[768];
    simsimd_f32c_t f32s[768];
    simsimd_f16c_t f16s[768];
    simsimd_bf16c_t bf16s[768];
    simsimd_distance_t products[2]; // real and imaginary parts

    // Complex inner product between two vectors
    simsimd_dot_f16c(f16cs, f16cs, 768, &products[0]);
    simsimd_dot_f32c(f32cs, f32cs, 768, &products[0]);
    simsimd_dot_f64c(f64cs, f64cs, 768, &products[0]);
    simsimd_dot_bf16c(bf16cs, bf16cs, 768, &products[0]);

    // Complex conjugate inner product between two vectors
    simsimd_vdot_f16c(f16cs, f16cs, 768, &products[0]);
    simsimd_vdot_f32c(f32cs, f32cs, 768, &products[0]);
    simsimd_vdot_f64c(f64cs, f64cs, 768, &products[0]);
    simsimd_vdot_bf16c(bf16cs, bf16cs, 768, &products[0]);
    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;
    simsimd_hamming_b8(b8s, b8s, 1536 / 8, &distance);
    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 divergence;

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

    // Kullback-Leibler divergence between two vectors
    simsimd_kl_f16(f16s, f16s, 1536, &divergence);
    simsimd_kl_f32(f32s, f32s, 1536, &divergence);
    simsimd_kl_f64(f64s, f64s, 1536, &divergence);
    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_kernel_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(

License

Feel free to use the project under Apache 2.0 or the Three-clause BSD license at your preference.

Release history Release notifications | RSS feed

This version

6.4.9

Download files

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

Source Distribution

simsimd-6.4.9.tar.gz (169.1 kB view details)

Uploaded Source

Built Distributions

simsimd-6.4.9-cp313-cp313-win_arm64.whl (58.3 kB view details)

Uploaded CPython 3.13Windows ARM64

simsimd-6.4.9-cp313-cp313-win_amd64.whl (95.3 kB view details)

Uploaded CPython 3.13Windows x86-64

simsimd-6.4.9-cp313-cp313-musllinux_1_2_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

simsimd-6.4.9-cp313-cp313-musllinux_1_2_s390x.whl (380.3 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ s390x

simsimd-6.4.9-cp313-cp313-musllinux_1_2_ppc64le.whl (531.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ppc64le

simsimd-6.4.9-cp313-cp313-musllinux_1_2_i686.whl (422.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

simsimd-6.4.9-cp313-cp313-musllinux_1_2_aarch64.whl (650.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

simsimd-6.4.9-cp313-cp313-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

simsimd-6.4.9-cp313-cp313-manylinux_2_28_aarch64.whl (607.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

simsimd-6.4.9-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (273.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390x

simsimd-6.4.9-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (413.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64le

simsimd-6.4.9-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (334.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

simsimd-6.4.9-cp313-cp313-macosx_11_0_arm64.whl (132.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

simsimd-6.4.9-cp313-cp313-macosx_10_13_x86_64.whl (176.3 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

simsimd-6.4.9-cp312-cp312-win_arm64.whl (58.3 kB view details)

Uploaded CPython 3.12Windows ARM64

simsimd-6.4.9-cp312-cp312-win_amd64.whl (95.2 kB view details)

Uploaded CPython 3.12Windows x86-64

simsimd-6.4.9-cp312-cp312-musllinux_1_2_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

simsimd-6.4.9-cp312-cp312-musllinux_1_2_s390x.whl (380.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ s390x

simsimd-6.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl (531.2 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ppc64le

simsimd-6.4.9-cp312-cp312-musllinux_1_2_i686.whl (422.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

simsimd-6.4.9-cp312-cp312-musllinux_1_2_aarch64.whl (650.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

simsimd-6.4.9-cp312-cp312-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

simsimd-6.4.9-cp312-cp312-manylinux_2_28_aarch64.whl (607.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

simsimd-6.4.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (273.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

simsimd-6.4.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (413.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

simsimd-6.4.9-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (334.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

simsimd-6.4.9-cp312-cp312-macosx_11_0_arm64.whl (132.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

simsimd-6.4.9-cp312-cp312-macosx_10_13_x86_64.whl (176.3 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

simsimd-6.4.9-cp311-cp311-win_arm64.whl (58.1 kB view details)

Uploaded CPython 3.11Windows ARM64

simsimd-6.4.9-cp311-cp311-win_amd64.whl (95.0 kB view details)

Uploaded CPython 3.11Windows x86-64

simsimd-6.4.9-cp311-cp311-musllinux_1_2_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

simsimd-6.4.9-cp311-cp311-musllinux_1_2_s390x.whl (380.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ s390x

simsimd-6.4.9-cp311-cp311-musllinux_1_2_ppc64le.whl (531.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ppc64le

simsimd-6.4.9-cp311-cp311-musllinux_1_2_i686.whl (421.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

simsimd-6.4.9-cp311-cp311-musllinux_1_2_aarch64.whl (650.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

simsimd-6.4.9-cp311-cp311-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

simsimd-6.4.9-cp311-cp311-manylinux_2_28_aarch64.whl (607.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

simsimd-6.4.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (272.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

simsimd-6.4.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (413.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

simsimd-6.4.9-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (333.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

simsimd-6.4.9-cp311-cp311-macosx_11_0_arm64.whl (132.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

simsimd-6.4.9-cp311-cp311-macosx_10_9_x86_64.whl (177.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

simsimd-6.4.9-cp310-cp310-win_arm64.whl (58.1 kB view details)

Uploaded CPython 3.10Windows ARM64

simsimd-6.4.9-cp310-cp310-win_amd64.whl (95.0 kB view details)

Uploaded CPython 3.10Windows x86-64

simsimd-6.4.9-cp310-cp310-musllinux_1_2_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

simsimd-6.4.9-cp310-cp310-musllinux_1_2_s390x.whl (380.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ s390x

simsimd-6.4.9-cp310-cp310-musllinux_1_2_ppc64le.whl (531.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ppc64le

simsimd-6.4.9-cp310-cp310-musllinux_1_2_i686.whl (421.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

simsimd-6.4.9-cp310-cp310-musllinux_1_2_aarch64.whl (650.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

simsimd-6.4.9-cp310-cp310-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

simsimd-6.4.9-cp310-cp310-manylinux_2_28_aarch64.whl (607.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

simsimd-6.4.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (272.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

simsimd-6.4.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (413.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

simsimd-6.4.9-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (333.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

simsimd-6.4.9-cp310-cp310-macosx_11_0_arm64.whl (132.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

simsimd-6.4.9-cp310-cp310-macosx_10_9_x86_64.whl (177.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

simsimd-6.4.9-cp39-cp39-win_arm64.whl (58.1 kB view details)

Uploaded CPython 3.9Windows ARM64

simsimd-6.4.9-cp39-cp39-win_amd64.whl (95.0 kB view details)

Uploaded CPython 3.9Windows x86-64

simsimd-6.4.9-cp39-cp39-musllinux_1_2_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

simsimd-6.4.9-cp39-cp39-musllinux_1_2_s390x.whl (379.7 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ s390x

simsimd-6.4.9-cp39-cp39-musllinux_1_2_ppc64le.whl (530.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ppc64le

simsimd-6.4.9-cp39-cp39-musllinux_1_2_i686.whl (421.6 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ i686

simsimd-6.4.9-cp39-cp39-musllinux_1_2_aarch64.whl (649.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

simsimd-6.4.9-cp39-cp39-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

simsimd-6.4.9-cp39-cp39-manylinux_2_28_aarch64.whl (607.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

simsimd-6.4.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (272.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

simsimd-6.4.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (412.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

simsimd-6.4.9-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (333.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

simsimd-6.4.9-cp39-cp39-macosx_11_0_arm64.whl (132.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

simsimd-6.4.9-cp39-cp39-macosx_10_9_x86_64.whl (177.7 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

simsimd-6.4.9-cp38-cp38-win_amd64.whl (94.9 kB view details)

Uploaded CPython 3.8Windows x86-64

simsimd-6.4.9-cp38-cp38-musllinux_1_2_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

simsimd-6.4.9-cp38-cp38-musllinux_1_2_s390x.whl (379.8 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ s390x

simsimd-6.4.9-cp38-cp38-musllinux_1_2_ppc64le.whl (530.8 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ppc64le

simsimd-6.4.9-cp38-cp38-musllinux_1_2_i686.whl (421.6 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ i686

simsimd-6.4.9-cp38-cp38-musllinux_1_2_aarch64.whl (649.8 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

simsimd-6.4.9-cp38-cp38-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

simsimd-6.4.9-cp38-cp38-manylinux_2_28_aarch64.whl (607.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

simsimd-6.4.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (272.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ s390x

simsimd-6.4.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (413.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ppc64le

simsimd-6.4.9-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (333.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686

simsimd-6.4.9-cp38-cp38-macosx_11_0_arm64.whl (126.7 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

simsimd-6.4.9-cp38-cp38-macosx_10_9_x86_64.whl (177.5 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

simsimd-6.4.9-cp37-cp37m-win_amd64.whl (94.9 kB view details)

Uploaded CPython 3.7mWindows x86-64

simsimd-6.4.9-cp37-cp37m-musllinux_1_2_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.7mmusllinux: musl 1.2+ x86-64

simsimd-6.4.9-cp37-cp37m-musllinux_1_2_s390x.whl (379.3 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.2+ s390x

simsimd-6.4.9-cp37-cp37m-musllinux_1_2_ppc64le.whl (530.2 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.2+ ppc64le

simsimd-6.4.9-cp37-cp37m-musllinux_1_2_i686.whl (421.2 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.2+ i686

simsimd-6.4.9-cp37-cp37m-musllinux_1_2_aarch64.whl (649.3 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.2+ ARM64

simsimd-6.4.9-cp37-cp37m-manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.28+ x86-64

simsimd-6.4.9-cp37-cp37m-manylinux_2_28_aarch64.whl (606.9 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.28+ ARM64

simsimd-6.4.9-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (272.4 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ s390x

simsimd-6.4.9-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (413.0 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ppc64le

simsimd-6.4.9-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (333.4 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ i686

simsimd-6.4.9-cp37-cp37m-macosx_10_9_x86_64.whl (177.5 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: simsimd-6.4.9.tar.gz
  • Upload date:
  • Size: 169.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9.tar.gz
Algorithm Hash digest
SHA256 80c194f4bc5ad2cd22d793471a5775189d503e7bea3ce5bc5d6362381abe1cd2
MD5 e6579049abd0b22db9f3675ea45005a0
BLAKE2b-256 0e2885d7aa0524d0f0c277404435d8d190dafb2af96e90ac262eeddab94485e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9.tar.gz:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: simsimd-6.4.9-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 58.3 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 c42dc27ad738712d667b4c2401bc701993ef4333887dcdbb5afa3ad33091526b
MD5 1c0be1a35b69342e0df8e2ee8b1f6047
BLAKE2b-256 81fce17ef18b29816f338e557778959e8bc377d87e076568a43c43ea183ba92c

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-win_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: simsimd-6.4.9-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 95.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f09223931707c6fd0828e76daee43e286134d7a9c50d2fc8e9a0ff595519e756
MD5 6e3f89436ec3635decb6c6da2a0a9c83
BLAKE2b-256 ed2b5bd42b570dd78d342f53936855f3d721a109df8fdd3207a4b536cd4b8756

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-win_amd64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e368b5f697412d6879df26260e5baee866c534a8aa5cdc83ec664d41b846fa9e
MD5 747dd368d2b9f5fc3736eedd0be4457f
BLAKE2b-256 bfe41f3088497eabc1d528970eae8ffa0d0a573f413ee35c183a2cba2dbbfaef

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 54f7f845ed218ccdb2ede1df50d46ec4df0ed40721b729ddf906da17af388ed4
MD5 c199cc9bcce57a75dddd16bd7280910d
BLAKE2b-256 a110d99c3ee3c5ccb578e5802821862c79924b3b410e8348fdc9c03c45262f82

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-musllinux_1_2_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 47357b759a1357d7112ae3c4d84e58bddd12dd3442c92a21303c4fc48e3582d4
MD5 c419b7551bf78ed60e2e6236a83c2c09
BLAKE2b-256 75c0ecf841dd626350f6e71788771b29d188b95aef039480d1493141a59372de

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-musllinux_1_2_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 59e3dd3587d6f7ad40cc7aadbd6ea2f953f7bc3fb1c3c606da8c1b832b0d64df
MD5 f99a02043b5f52e06cc3350a1573dac8
BLAKE2b-256 14c49a34b3ef213d25c4b91bd0a6f17aa8c7114ddfff2b2a5b60924fcdc66f62

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-musllinux_1_2_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c2ff0c205e61740af7bf7e572e8f650dc6a80ee1a277cc672db82923a42cd4a2
MD5 7f0bd190c950d9d4fe405ebaedf47779
BLAKE2b-256 fbcfdf8aad6282c59bd419b23eee933a4f5ee1ed4f6db88b1a74972bc830ae23

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1f14a5ca3bae1db22b1eff2c2179de8658d2a56cfecd6eeeb19d3b80c155f33
MD5 d1fab90ea3df70a3582cd8f818d3c1bb
BLAKE2b-256 15580979a6ccd70fabaf594f3067c0aee0ee9bf03d496875cbc25cdf61ff1ff6

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 61453bbce274e3e0b25d8d65c5f83f1a760c154da4a6aa82a47085c25015ff85
MD5 ee8a449a50d7fecd6a6eeb2d8689623d
BLAKE2b-256 66d0e24c93332a90ca1b844ab291f18a9529c788b379a4defef94e466165eae3

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7cfb387ac2c9bb27aa7d2d319a976071af3f34e5ad7bc9f9d1ba2a91fda0caa6
MD5 abcfc218842351cf755aff28760783f4
BLAKE2b-256 d53563a1eacb40a03cb91552e15f024624b590b4b1f35176a778ee878a7a3c5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8baf2f1a1f3886ef5c3fdaa7586a923b71e1e730db81cb5f63fcb185e1541e62
MD5 54e2adfea09489dde6f71af7c7c63439
BLAKE2b-256 890f44b39e12eef2291cd305b48d39889b84d396128063ab20e8cc84b4061b75

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 681beed1c44098b17e83adb3e3f356be1353eaa1b5a21de6bcafbfd3e847c069
MD5 a435a43f8e88fec395c6056b2457c2eb
BLAKE2b-256 838f9f82547557f5d8ec51a48c92b4df3632b32bffc6788ceed9c3b698acf875

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 718cf185822b6b89f2caca01253fc55a50a40fc99fcd8cb32d4bcd0da18e4ed2
MD5 96234144b468875597b0bfb71ca754ad
BLAKE2b-256 a968957341fafe359649d6f0decb56872d7aed79c7b8496efde977469eb0e5a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simsimd-6.4.9-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for simsimd-6.4.9-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ef95d7976e844105752f2b8882215d1a08af829d7467000072674396d9f703f3
MD5 1f1da930828751b5357f0a7163dd27f4
BLAKE2b-256 4c6efd8648b7fe7759575e9aa619010fca9ee7d6de02c1271c5bb1569d2fdecb

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: simsimd-6.4.9-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 58.3 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 f17797f73dae9132612d5a42bc90f585dabc15cafdf7e6a96a25a815c9f63a57
MD5 48d76a0b8f2e1b1968239426f9de5b3f
BLAKE2b-256 9929ef71257d7f8519a332dd3645fda0bc23c5dc8f53c2c5b4f6d38e71f64396

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-win_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: simsimd-6.4.9-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 95.2 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 35c80be64a30c3c07826957ba66357227b808ea4ccc06a447ef3ca6f347715bb
MD5 ae74fa2474634616083260649da6ee94
BLAKE2b-256 47c03799e43c59726332ca9e5215f7794627d96aff75f37eabc9f2fb48b733c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-win_amd64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 20ba1b58612ddfde05e8372d203d98920f954c75926c3c4cc962bcee4724a3d3
MD5 50118ae5d6a61bb3abe2e88560ed3b36
BLAKE2b-256 4100a10a8d891dc42a54e7a8ee6dc7aefb793d2bdaacc87c096b76cccb69f9a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 7452c4fd76ecde1b35aa972e5d5db77e9c673e0df9d15553ce5c166f48def392
MD5 3c4f17dd08fbed135b81b7e33ef0b4bf
BLAKE2b-256 fc282ac37c80483dcb54b1b5f51feb1f59996ce3831d7959bf35a41b5bb7393f

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-musllinux_1_2_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 2d8448082f5fb33efb20a41236aa6bdb1b6dc061b2ac78016857582ea06d6abb
MD5 386ddbb142b290e204db50b458d6c190
BLAKE2b-256 35fdf96fa5172c9633ab45d46e4f4560a459626b31026c0a8147c3064851f7dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 bc7780dacbe535240e6b4a6ad8f2517a5512a0d04490b045d42bd98cfd7917f4
MD5 018606b682fe7ef4889440ce6aa2d040
BLAKE2b-256 144d879b93feccf96b8ab2fd54260c9fa40a62a5d0e0cf9391016476fce06eff

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-musllinux_1_2_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a26b626dc27040bd307c7b62ee714159d7fbb396ee000e1edc7874705b1444e1
MD5 0155fc03121bef7b321f3214297ce116
BLAKE2b-256 9ba6ad9357c2371f231c6cdbaf350de4b8b84a238e846c7f0790b8f874707790

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7da3e71c4b635c94da85f1933a19a1f9890eeb38387f0584f83a266064303bb1
MD5 4f84f8d27c44a3da240522c2a6232a1b
BLAKE2b-256 40c586ba69dcd5d53a1f846230d7ba2a1c414ec7000759e2fd80ae8d9d257bb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 960e9e111f71b3e7eb28abe37c42680533b4aded1b7faccdfe91ebe9bebe106b
MD5 d92d5f29b94916b42612c9820f0a38b4
BLAKE2b-256 8bdc82c5346e2e6b8912670345d92551740b5123c56b63820d82906d59bd1dcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 db26511c3bf22e287053746c1ec1186047986479d6694244b55fca8524dda337
MD5 edf1bcb2ac82a96e785c82814980ea54
BLAKE2b-256 2cf6b1ceabd4fe3fbf6894088ffa03e757d40d85ca29a5a80e8e738948f2836a

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a43c01a1a975813c2e8afe64a93799336a64f27913c7fe9eb85f69f48399a9b9
MD5 36a5b44a1beea57de359b02a61ca08f4
BLAKE2b-256 dbed1c3ee63381c1fb309e52393783baa95e5511978bb97bf8d53fb6d3b3b49a

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9c181a71cbdce4884e074d31c3b4c272df5617f34f37328ead7a0e24c80eb7ba
MD5 c055450fd90db22e4d8738f62f147d69
BLAKE2b-256 93788b22ee99709e77c88c44755475ada7300f20ce84e53176fc4384c60b0f56

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4721c34e1947627b690828dc70a4a9a3305aeb35702b9cdbf81a7e3069b04271
MD5 3171c64d0f9c43ba563eaf6048b015e8
BLAKE2b-256 28f2512fb83f9fbfb3b0370621c0dba577086a970096cf42ed33525ccdf7169f

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 cfdc1f37e37bd8bf18e0759d19652f6fc2aea7ff943e3b7346bc7d696caacca0
MD5 87fb6a6ebb6b9e8837087c0f212a3ac8
BLAKE2b-256 aa9eab8374840916dd4888842b68372c4337edc61374e3df21b37f4eb985747f

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: simsimd-6.4.9-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 58.1 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 eab0730ef99193f7b2b0aeebe8eb57d0634705904b2a169d37937c09502316fd
MD5 d519f8911174dad09b70af9b8474b184
BLAKE2b-256 ef3d160482c578fc18d13bb4755a615139cd47617caf0e11fc028f0a04c2f11e

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-win_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: simsimd-6.4.9-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 95.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d4ca57003aae965b0ca31ed7695709475208e5cc31a5ba43fa0e49571df317a5
MD5 0d41c74e7864d77897e073ddd6b27778
BLAKE2b-256 27a875b3a36f2af8f5b5c3c5c783122571c618375837441e8eaa964134c0807f

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-win_amd64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 26645fd5c8d4b922abd6da39704f8e91e45f08c36f802e1d1012442a6a85405f
MD5 ff909e81998472e180f5071eb3f618de
BLAKE2b-256 488451b560254273eadec57d210d5c3ed5ec8f04b1c26e935731d37a02d3bdb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 f254b842b761f1786466e71f89a346f364c9af2f12207cc6277b9c6616544025
MD5 6fe4caa9242995a959c5f0f4a91095fe
BLAKE2b-256 dc49a2c3ef816b4bf949635f500deb9713c030760926baeb61aae9aa5096b063

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-musllinux_1_2_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 2a8992120e19054f4569d5214bea569802390baa6bba23e0622f9d1bc47bb6ae
MD5 e142a0b6b83c2e5e6d3963f4b68a086b
BLAKE2b-256 eb566add93efc6a778e3e0b1145d3b7b6aa40d63008d77a74d4bbfea219fdf46

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-musllinux_1_2_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d2eeef1bfc2df1767fdd64141718b78d01eb1d8f5278d5fcfd226c1c577e76ca
MD5 e47373dfdcac4674c0cc8eeda6bffa54
BLAKE2b-256 32299085c535ee152b50b0a68f2da384dc8c97c5d90411f2c037a9b42c8a4b09

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-musllinux_1_2_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fbddc1a553793b0afd9f350cffe9d06dfc493695d4bf1308fa1ebe84639e3ca0
MD5 454c4cc244e646e13e24e74f4c79615e
BLAKE2b-256 5e8539b0790112e840efedbd06cfbc46f8c622f86ff33dbc1753fc97ddbd1624

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 20ff187fcd78246907769ae920ce69586c628672a8b4a100f05ce6e61940424d
MD5 cc3794c9fe36155b8a4c00a6f82fee47
BLAKE2b-256 b2cfb37cf76a0c32fce85f100c0f35025f57f4bcae84b8436960774418b7d266

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a08a7b2f58763d1477f3e67007c2e4deda9793efdb80b6905f35a324c01f9fc3
MD5 993ac117e610c3a5d65d56584963ea1f
BLAKE2b-256 9d9b908b146d89e7cfc9879e74b36eb59fbd43562ddc1ba4bec33def6e369052

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 fa7837de739d9654d708536db60afd1e5cc1dad727e32e2ee7de74564ddc642f
MD5 c30fac926403482d5c648fa41c918ff6
BLAKE2b-256 3c48fa95c11f3b042df6ad479439f0325d3a8e8567346909b4e5f5d6201f4b0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0a9c98420944edc41350129c53c13b5b127ed3240d551c4c6a691684ca575f7a
MD5 472fa472e1731a798c14a8b89412add1
BLAKE2b-256 9556d0d7b203709e033beb51e7f79ff7089d8dc2ee7752f83a2694661f23fed6

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 71925a967b02f6945523d4b42d5f9f528d81a53dbb04da3f322218bf06443021
MD5 bf7af3346b2c0f66daee88aad56489d6
BLAKE2b-256 13104a30334e54d659bd13269363067abb5ca860f4f409911129a7470ba45103

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7771ef90a2c144b77ff71fcf7e88aebca429f9af1a2517c66766898764bf81b2
MD5 39f26b56cb7c1d209f04e5bc63fa5f4e
BLAKE2b-256 d47a90ce868080d4bc0e53505900c7ac391ee812ef83f00566357d9db93a7eac

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 276eba8b3d5451d3e2f88f94d886b13c1530cffe870221970f23aa7b64118fa8
MD5 c510c2589a3f6278d4339dbc5bee68a7
BLAKE2b-256 7359d8dc90461100eab2dbeae5c99f988c5c112b9a0fee3eee3873f6cd71727f

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: simsimd-6.4.9-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 58.1 kB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 8ff701acd0841f9ad1bfd00811d66d04559698e07a3080ae7d6c3c85ec4a62d9
MD5 d56523bd752b6edb3b40453319eba7f0
BLAKE2b-256 dbeb8338ce28017f99ca7a75466341a6b8f0b5f6917cf1d77ea3055cd34bf1a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-win_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: simsimd-6.4.9-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 95.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f88dd11a9661a36815a419f563354b09cfab82fa5de973279c87a43a84423d93
MD5 31407a822675c33a8f1831b45300e85f
BLAKE2b-256 abce9d2c303890aa6060dce7a404d69f9a03c01500955c701c262fcdda62dc61

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-win_amd64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6b2bfd5a586e2d2de7012f02402aac172064c8dec5193cc551b0e26df0a1f100
MD5 909de66d963ed9c175bd655eed5dde68
BLAKE2b-256 260dd2dc2282fd5152b9de4b474f78e4deb268989b9c872593e0a3e086d53c24

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 28b62945195124b07b0d4b2ce1318551c7df253b5e783fa7a88a84a36c419fb1
MD5 8b42f89634b3209fdb1646d6a48b48d4
BLAKE2b-256 d23c7abaa9e825b58aa3cdffa2011c2667f4bb5ccb1697d361a90ebba6d43feb

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-musllinux_1_2_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 14d9a422c15912ab56868329150d685e6589cf60e1f0fe5c2253dda6fa73b03a
MD5 a38969aaa5e5a400d66ad1899704ab52
BLAKE2b-256 eda7db454e80a40eaf642b0532583d649d5e6db08c413fc1d18b975d465b93b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-musllinux_1_2_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 105888809d0de489066831b48d5a38baa4849e48b265b4e23f5beb65c0860ce1
MD5 6e7ec7d0e8e43fce83015a1557bd21a2
BLAKE2b-256 960e309eb479fe8ef2f1d5a1c731e4d8b8321d2c16c682be81ceebb60cdb6f5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-musllinux_1_2_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2914e271e228ddf29dcf633824e7030b9d533d7a73d47b4a2764d1d965dbbc6f
MD5 acf2ea09f18deeef941431abce3329b9
BLAKE2b-256 e485e9ab3861ff3946064f9f7d1e5edb8989780b16aaf9b872edc2060df06cb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 616583257c09977024b30e1c588294b49a7cd2e18647e97738eed91d3252e006
MD5 61a088c0219f8e1c1299f2dc6ef2bd8f
BLAKE2b-256 b2aef28b4ec854833c6f1335a74a7b4166182ab479da0269246713ae98ab920e

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 09516dbebc9e1d909e50ff6ac57c09dce1b02402a8155a21f87ca732daa07600
MD5 e0f222ab9a4d60d0215fd8a57d4be184
BLAKE2b-256 d7488cbc44e34e3efd18cdbff901ca252a54f0e62d68f668d586583ef83c7402

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 66a99ab29f8849484e525588b75b1238b3e5b83eb91decc57c295a806836f4bb
MD5 1960d0d3c940baca00d5fc66699a3eef
BLAKE2b-256 d13f2eced8c5a6976014e036cef980b5616b0b724c0c338b7d791c7bf0709d0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e64425fc9f0099f853fa921fd94491c6877971c435eeb7cfc45028efc9db2995
MD5 9e35d0dea88f5003270ac45f888fb230
BLAKE2b-256 45a57639a2e0f965a23f1fa843d57ac88062212ec7a93fa8bd2ac2828fcf89ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 49ce9e58bcb678a69bcb1e6f3059e2e926dcab274a3b554f46865a5fdba2b9b4
MD5 37cc13ddc61634108c165d94cabf38f0
BLAKE2b-256 74787d0ef530fd8e8cb72356d8e8c68ff14833f1f5102713bc29db949d1ffac9

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc21497555d95640c12e32cec30fa9d8d66f8712710852f97303e397ab3ceba5
MD5 d361a9a59a47ea3a8b101ad55598e64e
BLAKE2b-256 a62cb4380495f168dad919a1b7579ed4b56e841b4afef59eeef96d3cfc85c665

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d45df3dc53da6614d8776252048c9adf8a5cad4d60eb0b40057a15e62c161376
MD5 421f18057c35dbaf024e32e964817d8c
BLAKE2b-256 1ae1ceaaba953c93250b10d0a2c259166f22a5accbd338a9317adcb66ec3a5e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: simsimd-6.4.9-cp39-cp39-win_arm64.whl
  • Upload date:
  • Size: 58.1 kB
  • Tags: CPython 3.9, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 cd9d1232e69df15662d88be911ce1200dcbe721a762bf5d1ce506b1e7c0439c1
MD5 3788c0f6275f82843a238460b1a26832
BLAKE2b-256 3c17309a374c515c695026a566d6f8c45981c8e1cbe5f56624fc6989509eb5c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-win_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: simsimd-6.4.9-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 95.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a1754aecda1ea141a1889f545ee889c7a7a2645e7b990448bdd06b9951d1723c
MD5 72ee8505a1ca45bb02967b4a2b6ccbbc
BLAKE2b-256 c853f4d7cfcdd2d82f3ceec224ca59a6d992367f25e86f6c4758208565459c1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-win_amd64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8789d722e05324134f079db11f9c7f1f88d75f0a8c6d0a633b5b0453ea7d455e
MD5 6cd9fcc2a48348355f79b84330bd115d
BLAKE2b-256 cb92c274690ae6d63cef738fe9b42f3e3ce9ba14a349b1308203d8998f622146

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 4cdae9644d596128a915c79cb988ec9f725b64640eaf0d73baf8eca071802daa
MD5 33c36a9dc8e844e4f8045dec5e3ade69
BLAKE2b-256 dc0b67dad447aaf1bbabf0ac1ec0050440686928d5f8c50dba6b373b43f48920

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-musllinux_1_2_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 8587c27d899ec618334eba3ffa9230e5087592464fa8e35300759b6c8db3ab9d
MD5 a1bfe6a0c8f25fb0588b7bb401921734
BLAKE2b-256 178a5a56c13d915edbfe5c2d76c98a839f89d1179afc261e93a28e92d75345ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-musllinux_1_2_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ddbbc755feb08e6c2925aa9656c8d38812c530395642324d74417089d2da431d
MD5 af3e2a8016ed5e39929e5ef0b47f9926
BLAKE2b-256 68896d2806d7c6074eccce2791e63119ec98141342e55b0607b1475709cbc46d

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-musllinux_1_2_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f33cdb5e0c9bd7ecff70c919c3b3ac9e5c63c55a8458220c0822be1f187ed735
MD5 c314c2412fe1201a6613aa4b9192e092
BLAKE2b-256 e6900fc3992cd660847c7c2b8131da5b6299e457ae45f99ec129d59827992d78

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f2276f3258686dfbdedce33c8e38b6c0da4a47769fcb49d382a68316ff79994d
MD5 71f58ae90da5bd75c428c123728fb2d9
BLAKE2b-256 24bd6638b3a4c94c7b1218f6f3ad89b341e15c3206b6676dd3613ed5047cb656

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b7125264cb394aabb7b3b85e10544714c9ad21693ea86518c0e66ec85c0220dc
MD5 c31189eec9ac6dfa0efa9645c6325508
BLAKE2b-256 f4e45d982c398fc6d9d10163959e96e7f6ef30b82f440c5ea76f16e721620cbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-manylinux_2_28_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 1ab1d74132a0ec8f57d214c7a376a44c3bd285f281fe89867cdb5f6531640dd9
MD5 05d2783f1ff2c8d4e9f74260b8015e2f
BLAKE2b-256 902b7ea25f0adffe5f7d44adb6a6abd39afcfa913f3ade35201f098e1a115069

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 59244536e9e0d0e27ca982e8ba0eca442f3126f2d5778b822297abcfb4d15f1a
MD5 5ddc8415b3b434b7a26d175d7f0b8c73
BLAKE2b-256 66dde1a1c858801b4a40eec77a5344757ae1104890ddcbd526ad9fab4465ef25

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4ef0f69825cf4814268f33d076dc7ee5026929d9517d3c82f3116aecad2a794c
MD5 1ea21d6f0b12a1eb3c241b616acbdf94
BLAKE2b-256 da41af78ce00a68151a44f97860197d2afa2f172df55f303740192b4aff41070

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b59fd19a970352c93cb91589b1c170b4d1a4a386ab22508744f2bf22d97f42ab
MD5 4207ecff448374f1c448c79136dbb446
BLAKE2b-256 b89b7b1d3f7326f75149584664a79e3febca04a8b4f675e0f40e3958860335d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a7de425a5bf9ebc405ac03b92f8e40cda70a4dc294d48e9b626cd3a0e42b913e
MD5 11aec6ff18d24acaa9b0d7930330f7f7
BLAKE2b-256 6e854d06143556f78f5abfbcef33719cba881d6ce004f4b523a458de984a6e2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: simsimd-6.4.9-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 94.9 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2bc2a6a7c75206fb92172e26af149e17789f4729c7c7069308c7d5c7a1b8b246
MD5 bf20ac23125a80844481aa0bce96ee5d
BLAKE2b-256 740fdf36051d237e05c08eea66561ef0a53e05de5dc54d16e54b59a5f7a9b79a

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-win_amd64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 250109d29ff10a1315ebd6de048919ac6f3ddbff34c8f4a3bc396c893b256eaf
MD5 de645fd3068132192adcd59da199bb94
BLAKE2b-256 e064211f95255a0bbb5c92a661dcc57c55fffb77c93cdd55c550e9db9cc3ef62

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-musllinux_1_2_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 bb8e72ee7f4260bf54e8cbd8c490ae4610c9f0bc63502ee81fcf4d9f13440530
MD5 96d1a17544c2992e4ed92d6be63619b0
BLAKE2b-256 3ec48061cd4a5416af035fb9afe86acabb051c926a1266c2594be9d516faaf18

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-musllinux_1_2_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 2ebdb45a1d5c429c9d5900ff42e1a1e9d5fd6fc1cdfcd6686c657d21fe1c0823
MD5 16ea4e879ca06e2c09626dc9d18b8d6c
BLAKE2b-256 742fa08c7db83f90a8dc0663fe86f7391f2e370a76bcef4fd257b2e250221696

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-musllinux_1_2_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b6501f99a4daf4733cf3fd8868ee9f15d7f144c6e97ff21e53404d82faae2e68
MD5 221e4a82c0dc34cdb871a11a65ef2478
BLAKE2b-256 64acb372717eb429181fd0083906e71bf06d24cd566a6f3ffab50336c0ba7af5

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-musllinux_1_2_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aa7949476b86d69cdbb025b6c91d2814dacfa7ebb30ddd628ee7735f77b8bec5
MD5 cc3c1b4bb74b2f43a748c4f363bc37c8
BLAKE2b-256 5e34443d40a7f3c3fb07a36af1274f1b8be98b8ab3e9abd4d999f9b1dfaf02fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-musllinux_1_2_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 66d4775bd9339872dcc21da422d9830c9e2998260a4ea5f335f70e944e89a832
MD5 a286bd78581d3de2bf0cd2e932649a22
BLAKE2b-256 471385d0b57258817024d4c604acd25416833a6b0ea9f58a5d365496a5a3a51c

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-manylinux_2_28_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 07e2e70ca916f758b229394164f5d9f087fd65307a9e12959750756670ed843f
MD5 a5e58065c9f169fc6decdba6479fc382
BLAKE2b-256 3c919277b222f8934665e63dfec96b91d6b366fc9370cf2728217f1083a9a3d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-manylinux_2_28_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ead52bf5234ee4149b660eb4f06ccc8c0aada71b3d17c920c9b8b62e1eb1922b
MD5 215a6d60993606aaf69d9bb0f9f58f2e
BLAKE2b-256 de3ed55379440b9add707f9c3c59952d0e250cfd8ecc0c6609d32a50a8072bce

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b54e4fee271e7f2bd1c82de20bbe652d4e943b1b4a1b2e37b87471fc03e3fffd
MD5 ad28431ee14084c0cf8c44befa3c4121
BLAKE2b-256 5fe6e7772361974d1a121031ac8183aa3d4ae49eb627b8c8d1823740d2ed8f83

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 acda7c27595c85ac6366a2b3910aedb0f86df4128264bdfe308a20ccffe90877
MD5 6d12c381114435b780334e1a25583b53
BLAKE2b-256 481f9ce978cae47c7d4ce0da8b6e504c8315ec58cad594936ab3e5e63f891816

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb6ca828c05dc0d39e235d69711ee64f0825b22cbdfa9c10b8244cd9aff2acd6
MD5 ca9b9b4f4f4a42b3748bb9cb1316cac4
BLAKE2b-256 6ae62f6939cd76d3fa204266ca298a2a1836e8801b31096fe20fa4af271ce685

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 70acb1035c2c077b2924125be111c1004343f2aea3c370945a4d8673ab9576a6
MD5 89670c40a10d9f2c3fbcc25bfc442026
BLAKE2b-256 de71e100add21f1892dea9e751b4fe86b6d8d4908ce041c48cc73e12c070b21b

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp38-cp38-macosx_10_9_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

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

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 40cbb81585c9dcff50178840791b0c0c358da57728127658987bc585aa3bd3bc
MD5 4b85edc7484b78d5a9b5bb5bd8d64f21
BLAKE2b-256 e84bda7b318db416e0e8b01d28aef2c6a60a51abb43fb920acfb1c8265965a78

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-win_amd64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f0c3b2eda785f71e43dc6879ace932295bf027bd8f0eb14c4a74d64250683991
MD5 93f93cbad99a6aaf94bda194107794b4
BLAKE2b-256 d5d9f277541fd34341a6369df6376932df401f7a148b1347d9a2ad6e1e8f178c

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-musllinux_1_2_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 76fb5f22435403668c9e7b516d2fab82e41d12263527909ab651765eacc4df34
MD5 a6d1a5bdd9398fa58f5e2faa3d255df0
BLAKE2b-256 1c60e0b623dd28323bcf22679e4887b98fd369c48c3501dea40c0232725d01dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-musllinux_1_2_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 efda28d2491a833f080b79c15880381cfeb00fd37ba4b12c4f72b5c8e5a1a127
MD5 6ff00f3e31609659d76e570a94eaff8c
BLAKE2b-256 61eb186824ef33d413d145a4e75e41824ca1e50f7e01550ce57dddf9e32b6afd

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-musllinux_1_2_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ae75a92504e2c13e4af705b6b4edc7e776b04b462c2e7d4eb75db4c103125ede
MD5 f3456148031d970cc9c0b0a1c2b50401
BLAKE2b-256 fece5327cb54ad9b0b40096ad8bcf335252cf4ed5fa43a26a08d8b40a685fa22

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-musllinux_1_2_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3751d0ff19aa1e9a091edb1409cd3f4ede72c85bfcf7e6041b0e24c97f762f66
MD5 eaf664584396c2903508469dd4d42deb
BLAKE2b-256 e8dbe397f7e3c13b077d378c4691577b2988b5ff48c016d76a3b5fbf5bd18aad

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-musllinux_1_2_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef9fcbdc715943cae42849c453418157929468d76920f17dba5d81c648b1e8ce
MD5 404604a04db16a6b430eea64c3796bfc
BLAKE2b-256 510c21b7d0ec27bef6bb954e4c22e94f32e1948388081b6c21f13e3f00897025

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-manylinux_2_28_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 df5318c8b500a1faebacc625f9dd1513b1667119bf0d76d8dda5dd76e1f907b3
MD5 d4ac57178fb9062c05a4ca5c04688c89
BLAKE2b-256 d56719b24648ae257243ad2c8245298a454ae1539d4e4701e13aa246f9a78769

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-manylinux_2_28_aarch64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c63b13347c23c4fc32955a2deed147a951474d55f5f1d92481818eec52d19e74
MD5 1e0197550dd6befd83262c7c8a919516
BLAKE2b-256 719f0a7b06f1ae560317227242a3bf1a7b5ccede81fa7cc3adfbf63918a2b218

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7c8a0b95223924df3937e4545e2bb728acaf5ced7117c3602356a61a5214fd21
MD5 123cdb726e1e167cf7dfca33c78219e1
BLAKE2b-256 de95b1f5a7aa9644a9e0d089c8e232e2f4c44a197e75cb9a5a9a5b8ad807b954

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5aa157f6048dbc5a5e2d6e01bea00acdf955a6a1f97dbd330db4fbd11cffe19f
MD5 5a38b8844377110ee712f3309ec0766c
BLAKE2b-256 d809f526ce9a1e58c104e1221348b01081d94d2eb80830aaa3bcef9de6e9cd79

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for simsimd-6.4.9-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fd1bc3faf47a7187470476203e9670ecbd18c719717257a9f82fd4ac4ab5c160
MD5 651863b91175992dbcaf6469cc2786dd
BLAKE2b-256 2a3f3630e759c64bcdb583e84194c93e43e2276811282859be3bb968479a2f18

See more details on using hashes here.

Provenance

The following attestation bundles were made for simsimd-6.4.9-cp37-cp37m-macosx_10_9_x86_64.whl:

Publisher: release.yml on ashvardanian/SimSIMD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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