Skip to main content

Portable mixed-precision math, linear-algebra, & retrieval library with 2000+ SIMD kernels for x86, Arm, RISC-V, LoongArch, Power, & WebAssembly

Project description

NumKong for Python

NumKong for Python is the main high-level SDK in the project. It targets the gap between numpy and low-level native kernels: you keep buffer-protocol interoperability and shape-aware outputs, but you stop giving up mixed precision, widened accumulators, packed reuse, and backend-specific optimizations every time you leave float64. It combines NumPy-friendly buffers with native mixed-precision kernels, zero-copy tensor views, packed and symmetric matrix operations, sparse helpers, geometric mesh alignment, and MaxSim. The API feels NumPy-shaped with familiar scalar, batched, and all-pairs entrypoints, while Tensor keeps shape, dtype, and strides visible through a memoryview-backed container. Low-precision dtypes (BFloat16, Float8, Float6, packed bits) flow through the same API, and dense, packed, and symmetric kernels release the GIL around native work.

Ecosystem Comparison

Feature NumKong NumPy/SciPy PyTorch
Operation families dots, distances, binary, probability, geospatial, curved, mesh, sparse, MaxSim, elementwise, reductions, cast, trig dots, distances, elementwise, reductions, some probability via cdist dots, distances, elementwise, reductions
Precision BFloat16 through sub-byte — Float8, Float6, Int4, packed bits; automatic widening; Kahan summation; 0 ULP in Float32/Float64 Float16, partial BFloat16; no auto-widening; standard accuracy Float16, BFloat16, partial Float8; explicit AMP required; standard accuracy
Runtime SIMD dispatch auto-selects best ISA per-thread at runtime on x86, ARM, RISC-V compile-time only CPU: compile-time; CUDA: runtime
Packed matrix, GEMM-like pack once, reuse across query batches np.dot/@ — no persistent packing torch.mm — no persistent distance-oriented packing
Symmetric kernels, SYRK-like skip duplicate pairs, up to 2x speedup for self-distance pdist computes one triangle; cdist recomputes both X @ X.T recomputes both triangles
Output parameter out= Yes — all major entrypoints Yes — most ufuncs and functions; SciPy: some functions only Yes for torch.mm, torch.matmul; No for torch.cdist
Fast CPython calling convention Yes — direct METH_FASTCALL Yes — vectorcall in 2.0+ No — tensor dispatch overhead
GIL release batched, packed, and symmetric kernels some ops only most ops

Quickstart

import numpy as np
import numkong as nk

a, b = np.random.randn(1536).astype(np.float32), np.random.randn(1536).astype(np.float32)
dot = nk.dot(a, b)  # widened accumulation, not same-dtype
print(dot)

Installation

From PyPI:

python -m pip install numkong

From a local checkout:

python -m pip install .

Quick runtime check:

python -c "import numkong as nk; print(nk.get_capabilities())"

Wheel Compatibility and Building from Source

Pre-built wheels are available on PyPI for Linux (x86_64, aarch64, riscv64, plus i686, ppc64le, s390x), macOS (x86_64, arm64), and Windows (AMD64, ARM64). Python 3.9 through 3.14 is supported, including free-threading variants (3.13t, 3.14t). Every wheel is built with NK_DYNAMIC_DISPATCH=1, so a single wheel covers all CPU generations on a given architecture.

When building from source, the compiler requirements depend on the platform. On macOS x86 only AVX2 is available; on macOS ARM NEON is always present, but SME requires Apple M4+ with Xcode 16+ (AppleClang 16+). RISC-V builds require Clang and LLD because GCC lacks zvfh, zvfbfwma, and zvbb support. On Windows, MSVC 19.44+ (Visual Studio 2022 17.14+) is recommended for full AVX-512 with FP16/BF16/VNNI. Build parallelism is controlled by NK_BUILD_PARALLEL, which defaults to min(cpu_count, 4) and should be lowered in memory-constrained containers. There is no OpenMP dependency. Python-side parallelism uses concurrent.futures with GIL-free kernels.

NK_BUILD_PARALLEL=2 pip install . --no-build-isolation

Dot Products

Dot products are their own family because storage type, conjugation rules, and output widening matter.

import numpy as np
import numkong as nk

a = (np.random.randn(256) + 1j * np.random.randn(256)).astype(np.complex64)
b = (np.random.randn(256) + 1j * np.random.randn(256)).astype(np.complex64)

dot = nk.dot(a, b)   # numpy.dot(a, b)
vdot = nk.vdot(a, b) # numpy.vdot(a, b)

print(dot, vdot)

Real low-precision inputs can also be routed through explicit dtype tags when the storage buffer itself is raw bytes.

Dense Distances

The dense distance entrypoints cover sqeuclidean, euclidean, and angular. The first important difference from NumPy or SciPy is that the accumulator policy is not forced to match the storage dtype.

import numpy as np
import numkong as nk

a = np.random.randn(768).astype(np.float16)
b = np.random.randn(768).astype(np.float16)

sqeuclidean = nk.sqeuclidean(a, b)
euclidean = nk.euclidean(a, b)
angular = nk.angular(a, b)

For float16, a naive same-dtype implementation is exactly the kind of path that loses precision or widens too late. NumKong's API makes the widening policy part of the kernel contract.

Output Control: out=, dtype=, and out_dtype=

Most distance and dot-product entrypoints accept out=, dtype=, and out_dtype= keyword arguments. Passing them avoids dynamic memory allocations for temporary objects.

import numpy as np
import numkong as nk

queries = np.random.randn(100, 768).astype(np.float32)
database = np.random.randn(100, 768).astype(np.float32)

# Pre-allocated output with out=
out = nk.zeros((100,), dtype="float32")
nk.sqeuclidean(queries, database[:100], out=out)  # writes in-place, returns None

# Explicit input dtype for raw byte buffers
raw = np.frombuffer(some_bytes, dtype=np.uint16)
nk.dot(raw, raw, dtype=nk.bfloat16)  # reinterpret uint16 as bf16

# Output dtype override
nk.euclidean(queries[0], database[0], out_dtype="float32")  # accumulate in f64, downcast result

When out= is provided, the function writes results in-place and returns None. The out array must be pre-allocated with the correct shape and a supported dtype. For custom float types (bfloat16, float16, float8_e4m3, float8_e5m2, float6_e2m3, float6_e3m2), type objects are preferred over strings — they are faster to dispatch and provide IDE autocomplete:

nk.dot(a, b, dtype=nk.bfloat16) # works faster
nk.dot(a, b, dtype="bfloat16")  # works a bit slower

Set Similarity

Packed-binary metrics operate on packed bits. That is why the right NumPy equivalent uses np.packbits, not bool arrays fed to scalar Python code.

import numpy as np
import numkong as nk

a_bits = np.random.randint(0, 2, size=256, dtype=np.uint8)
b_bits = np.random.randint(0, 2, size=256, dtype=np.uint8)
a, b = np.packbits(a_bits), np.packbits(b_bits)

hamming = nk.hamming(a, b, dtype="uint1")
jaccard = nk.jaccard(a, b, dtype="uint1")

Integer set Jaccard works on sorted ascending arrays of integer identifiers. Both inputs must be sorted in ascending order for correct results.

set_a = np.array([1, 3, 5, 7, 9], dtype=np.uint32)  # must be sorted ascending
set_b = np.array([3, 5, 8, 9, 10], dtype=np.uint32)  # must be sorted ascending
jaccard_sets = nk.jaccard(set_a, set_b) # |A ∩ B| / |A ∪ B|
assert 0.0 < jaccard_sets < 1.0, "|A ∩ B| / |A ∪ B| should be in (0, 1)"

Probability Metrics

Probability divergences deserve their own section because they are not just "one more distance".

import numpy as np
import numkong as nk

p = np.array([0.2, 0.3, 0.5], dtype=np.float32)
q = np.array([0.1, 0.3, 0.6], dtype=np.float32)

kl_forward, kl_reverse = nk.kullbackleibler(p, q), nk.kullbackleibler(q, p)
assert kl_forward != kl_reverse, "KLD is asymmetric"

js_forward, js_reverse = nk.jensenshannon(p, q), nk.jensenshannon(q, p)
np.testing.assert_allclose(js_forward, js_reverse, atol=1e-6)  # JSD is symmetric

Geospatial Metrics

Geospatial kernels take four coordinate arrays. Inputs are in radians. Outputs are in meters.

import numpy as np
import numkong as nk

# Statue of Liberty (40.6892°N, 74.0445°W) → Big Ben (51.5007°N, 0.1246°W)
liberty_lat, liberty_lon = np.array([0.7101605100], dtype=np.float64), np.array([-1.2923203180], dtype=np.float64)
big_ben_lat, big_ben_lon = np.array([0.8988567821], dtype=np.float64), np.array([-0.0021746802], dtype=np.float64)

vincenty = nk.vincenty(liberty_lat, liberty_lon, big_ben_lat, big_ben_lon)    # ≈ 5,589,857 m (ellipsoidal, baseline)
haversine = nk.haversine(liberty_lat, liberty_lon, big_ben_lat, big_ben_lon)  # ≈ 5,543,723 m (spherical, ~46 km less)

# Vincenty in f32 — drifts ~2 m from f64
liberty_lat32 = liberty_lat.astype(np.float32)
liberty_lon32 = liberty_lon.astype(np.float32)
big_ben_lat32 = big_ben_lat.astype(np.float32)
big_ben_lon32 = big_ben_lon.astype(np.float32)
vincenty_f32 = nk.vincenty(liberty_lat32, liberty_lon32, big_ben_lat32, big_ben_lon32)  # ≈ 5,589,859 m (+2 m drift)

Curved Metrics

Curved-space kernels use an extra metric tensor or inverse covariance and should not be mixed into the Euclidean section.

import numpy as np
import numkong as nk

# Complex bilinear form: aᴴ M b
a = (np.ones(16) + 1j * np.zeros(16)).astype(np.complex64)
b = (np.zeros(16) + 1j * np.ones(16)).astype(np.complex64)
m = np.eye(16, dtype=np.complex64)
bilinear = nk.bilinear(a, b, m)

# Real Mahalanobis distance: √((a−b)ᵀ M⁻¹ (a−b))
x = np.ones(32, dtype=np.float32)
y = np.full(32, 2.0, dtype=np.float32)
inv_cov = np.eye(32, dtype=np.float32)
mahalanobis = nk.mahalanobis(x, y, inv_cov)

Scalar Types and Low-Precision Formats

NumKong exposes two different low-precision stories in Python. It exposes Python scalar objects for a few formats. And it exposes tensor dtypes for the broader buffer-oriented path.

The six scalar types have stable payload sizes even though Python object headers are not:

Type Bits Bytes Range Inf NaN
nk.float16 1+5+10 2 ±65504 yes yes
nk.bfloat16 1+8+7 2 ±3.4×10³⁸ yes yes
nk.float8_e4m3 1+4+3 1 ±448 no yes
nk.float8_e5m2 1+5+2 1 ±57344 yes yes
nk.float6_e2m3 1+2+3 1 ±7.5 no no
nk.float6_e3m2 1+3+2 1 ±28 no no

The Bits column shows sign + exponent + mantissa bit counts. The Bytes column is the stable payload size; float8_* and float6_* both store 1 byte because the sub-byte formats are padded to byte alignment.

The full object footprint is interpreter-dependent. Use sys.getsizeof(nk.float16(1.0)) if you need the heap footprint of the Python wrapper object itself. Use Tensor.itemsize and Tensor.nbytes for the stable payload sizes of array storage.

ml_dtypes matters here because NumKong explicitly interoperates with the formats that NumPy still does not model well. The test suite compares bfloat16, float8_e4m3, float8_e5m2, float6_e2m3, and float6_e3m2 behavior against ml_dtypes where that comparison is meaningful.

Promotion is intentional. Mixed exotic floats are routed through wider compute types rather than pretending a same-width accumulator is good enough.

ml_dtypes Interoperability

NumKong accepts ml_dtypes arrays directly — no .view(np.uint8) workaround needed:

import ml_dtypes
a = np.random.randn(100, 768).astype(np.float32).astype(ml_dtypes.bfloat16)
b = np.random.randn(100, 768).astype(np.float32).astype(ml_dtypes.bfloat16)
result = nk.cdist(a, b, "dot")  # just works

NumKong scalars also work as NumPy dtype specifiers:

arr = np.array([1.0, 2.0, 3.0], dtype=nk.bfloat16)
float(arr[0])  # → 1.0

Type name mapping between the two libraries:

ml_dtypes NumKong Status
ml_dtypes.bfloat16 nk.bfloat16 / "bfloat16" Identical format
ml_dtypes.float8_e4m3 nk.float8_e4m3 / "e4m3" Identical (IEEE E4M3)
ml_dtypes.float8_e4m3fn nk.float8_e4m3 / "e4m3" Identical (E4M3FN = no inf)
ml_dtypes.float8_e5m2 nk.float8_e5m2 / "e5m2" Identical format
ml_dtypes.float6_e2m3fn nk.float6_e2m3 / "e2m3" Identical (MX E2M3)
ml_dtypes.float6_e3m2fn nk.float6_e3m2 / "e3m2" Identical (MX E3M2)
ml_dtypes.float8_e4m3fnuz Rejected: different bias, NaN, and zero
ml_dtypes.float8_e5m2fnuz Rejected: different NaN and zero encoding
ml_dtypes.float8_e4m3b11fnuz Rejected: bias=11, incompatible encoding
ml_dtypes.float8_e8m0fnu Not supported: exponent-only MX scale format
ml_dtypes.float8_e3m4 Not supported: no NumKong kernel
ml_dtypes.float4_e2m1fn Not supported: 4-bit MX float
ml_dtypes.int4 "int4" Compatible via buffer protocol
ml_dtypes.uint4 "uint4" Compatible via buffer protocol
ml_dtypes.int2 Not supported
ml_dtypes.uint2 Not supported

Tensor Objects and Buffer Interop

Tensor is a memoryview-backed object with NumPy-like metadata. It is the central container for strided views, transpose, reshape, flatten, and axis reductions.

import numpy as np
import numkong as nk

t = nk.Tensor(np.arange(12, dtype=np.float32).reshape(3, 4))

print(t.shape, t.dtype, t.ndim, t.strides, t.itemsize, t.nbytes)
print(np.asarray(t))      # zero-copy array view when layout allows it
print(t.T.shape)          # transposed Tensor view
print(t.reshape(2, 6).shape)
print(t.flatten().shape)

# Slicing — row, column, and scalar access
row0 = t[0, :]            # first row, shape (4,)
col2 = t[:, 2]            # third column, strided view, shape (3,)
val  = t[1, 2]            # scalar element access → 6.0

# Reductions compose with sliced views
idx = col2.argmin()        # index of the minimum in the third column
mn, i0, mx, i1 = col2.minmax()

The important layout rules are:

  • Tensor preserves shape and byte strides.
  • Transpose and slicing can produce non-contiguous views.
  • General reductions accept those views.
  • Matrix-style packed kernels require row-contiguous left operands.
  • Packed and symmetric outputs require C-contiguous out buffers.

Memory Layout Requirements

API family Input requirement Output requirement
Dense distances (dot, euclidean, etc.) Rows must be contiguous (strides[last] <= itemsize). Strided rows (sliced columns) are rejected. out= can have any stride along dim 0, but inner dim must be contiguous.
cdist Same as dense distances out= must be rank-2 with shape (a.count, b.count)
Elementwise (scale, blend, fma) Arbitrary strides (strided views are supported) out= must match input shape; strides are preserved
Packed matrix (dots_packed) Left operand: rank-2, contiguous rows, no negative strides Output: C-contiguous with expected dtype
Symmetric (dots_symmetric) Contiguous rows out=: C-contiguous square matrix
Tensor reductions (sum, min, argmin, etc.) Arbitrary strides (strided views supported) N/A (returns scalar or reduced tensor)

All-Pairs APIs and cdist

cdist is the NumPy/SciPy-shaped all-pairs entrypoint. It handles rectangular matrix pairs and symmetric self-distance cases.

import numpy as np
import numkong as nk

queries = np.random.randn(100, 768).astype(np.float32)
database = np.random.randn(10_000, 768).astype(np.float32)

pairwise = nk.angular(queries, database[:100])             # rectangular broadcasted pairwise call
all_pairs = nk.cdist(queries, database, metric="angular")  # scipy.spatial.distance.cdist analogue

assert np.asarray(pairwise).shape == (100, 100)
assert np.asarray(all_pairs).shape == (100, 10_000)

The intended large-scale parallel model for packed and symmetric kernels is external partitioning with row ranges, not a hidden threads= argument.

Elementwise Operations

Elementwise arithmetic and fused operations are their own family. They share the tensor infrastructure but should not be collapsed into the reduction or matrix sections.

import numpy as np
import numkong as nk

a = np.arange(8, dtype=np.float32)
b = np.arange(8, dtype=np.float32)[::-1].copy()

scaled = nk.scale(a, alpha=2.0, beta=1.0)     # 2 * a + 1
blended = nk.blend(a, b, alpha=0.25, beta=0.75)
fused = nk.fma(a, b, a, alpha=1.0, beta=1.0)  # a * b + a

assert np.asarray(scaled).shape == (8,)
assert np.asarray(fused).shape == (8,)

Moments Reductions

Moments reductions return (sum, sum_of_squares). The key property is that NumKong does not force you into same-storage accumulation.

import numpy as np
import numkong as nk

x = np.full(4096, 255, dtype=np.uint8)

nk_sum, nk_sumsq = nk.moments(nk.Tensor(x))
naive_sum = np.sum(x, dtype=np.uint8)      # overflows immediately
naive_sumsq = np.sum(x * x, dtype=np.uint8) # also overflows

print(nk_sum, nk_sumsq, naive_sum, naive_sumsq)
assert nk_sum > int(naive_sum)
assert nk_sumsq > int(naive_sumsq)

Same-width accumulation is a bad default for low-precision storage.

Min/Max Reductions

Min/max reductions are in a separate section because they cover strided reduction cases. NumKong provides SIMD-accelerated strided reductions that are not common in other libraries.

import numpy as np
import numkong as nk

matrix = nk.Tensor(np.array([
    [ 3.0,  0.0, 7.0],
    [ 1.0,  2.0, 5.0],
    [ 4.0, -1.0, 6.0],
], dtype=np.float32))

second_column = matrix[:, 1]  # strided view into a row-major Nx3 tensor

idx = second_column.argmin()
mn, i0, mx, i1 = second_column.minmax()

assert idx == 2
assert int(i0) == 2
assert float(np.asarray(mn)) == -1.0

Fresh measurement for the rewritten docs: on an Apple M2 Pro, np.argmin(matrix[:, 1]) on a row-major 2,000,000 x 3 float32 array took about 1.63 ms median. The equivalent NumKong Tensor(... )[:, 1].argmin() took about 0.67 ms median. That is about 2.45x faster on this strided reduction case.

Sparse Operations and Intersections

Sparse helpers cover both sorted-index intersections and weighted sparse dot products.

import numpy as np
import numkong as nk

idx_a, idx_b = np.array([1, 3, 5, 7], dtype=np.uint32), np.array([3, 4, 5, 8], dtype=np.uint32)
intersection_size = nk.intersect(idx_a, idx_b) # len(np.intersect1d(idx_a, idx_b))
assert intersection_size == 2, "indices 3 and 5"

val_a, val_b = np.array([1.0, 2.0, 3.0, 4.0], dtype=np.float32), np.array([5.0, 6.0, 7.0, 8.0], dtype=np.float32)
sparse_dot = nk.sparse_dot(idx_a, val_a, idx_b, val_b)
assert sparse_dot > 0, "weighted dot over shared indices"

Packed Matrix Kernels for GEMM-Like Workloads

Packed matrix kernels are the right tool when the right-hand side is reused across many query batches. This is the GEMM-like story.

import numpy as np
import numkong as nk

left = np.random.randn(128, 768).astype(np.float32)
right = np.random.randn(10_000, 768).astype(np.float32)

right_packed = nk.dots_pack(right, dtype="float32")  # pack once, reuse many times
scores = nk.dots_packed(left, right_packed)          # equivalent to left @ right.T

assert scores.shape == (128, 10_000)
assert right_packed.nbytes == nk.PackedMatrix.packed_size(10_000, 768, dtype="float32")

Important runtime rules from the current implementation:

  • a must be rank-2
  • a must have contiguous rows
  • negative strides are rejected for these matrix kernels
  • out, when provided, must be C-contiguous with the expected dtype
  • start_row and end_row split the left operand rows

The arithmetic advantages are:

  • one-time packing of B
  • one-time internal layout conversion and depth padding
  • norm reuse for angulars_packed and euclideans_packed
  • no repeated scan of the original right-hand-side layout

Packing itself does not require aligned caller buffers. The packed object owns its internal payload and handles the layout under the hood.

Tensor @ PackedMatrix is also supported and maps to the same packed dot-product path.

Symmetric Kernels for SYRK-Like Workloads

Symmetric kernels solve a different problem from packed cross-matrix kernels. They compute self-similarity or self-distance matrices. This is the SYRK-like story.

import numpy as np
import numkong as nk

vectors = np.random.randn(1024, 768).astype(np.float32)
out = nk.zeros((1024, 1024), dtype="float64")

nk.dots_symmetric(vectors, out=out, start_row=0, end_row=256)
nk.dots_symmetric(vectors, out=out, start_row=256, end_row=512)

assert out.shape == (1024, 1024)

This family has different economics from packed GEMM-like work. It avoids duplicate (i, j) and (j, i) evaluations. It is naturally partitioned by row windows of one square output.

angulars_symmetric and euclideans_symmetric also benefit from reuse of dot-product-derived work inside the symmetric sweep. That is why these APIs are faster than a nested Python loop over angular(a[i], a[j]).

Geometric Mesh Alignment

Mesh alignment returns a structured result object. The current implementation exposes rotation, scale, rmsd, a_centroid, and b_centroid.

import numpy as np
import numkong as nk

source = np.array(
    [[0.0, 0.0, 0.0],
     [1.0, 0.0, 0.0],
     [0.0, 1.0, 0.0]],
    dtype=np.float32,
)

result = nk.kabsch(source, source.copy())
assert np.asarray(result.rotation).shape == (3, 3)
assert float(np.asarray(result.scale)) == 1.0

# Umeyama with known 2x scaling
target = source * 2.0
result = nk.umeyama(source, target)
assert float(np.asarray(result.rmsd)) < 1e-6, "umeyama should recover exact alignment"
assert abs(float(np.asarray(result.scale)) - 2.0) < 0.01, "umeyama should recover 2x scale"

That field-level check is the right style for this API family. It tells the reader exactly what the result object owns.

MaxSim and ColBERT-Style Late Interaction

MaxSim is the late-interaction primitive used by systems such as ColBERT. It is not generic matrix multiplication.

import numpy as np
import numkong as nk

queries = np.random.randn(32, 128).astype(np.float32)
documents = np.random.randn(192, 128).astype(np.float32)

q = nk.maxsim_pack(queries, dtype="float32")
d = nk.maxsim_pack(documents, dtype="float32")
score = nk.maxsim_packed(q, d)

assert np.isfinite(score)
assert q.nbytes == nk.MaxSimPackedMatrix.packed_size(32, 128, dtype="float32")

Capabilities, GIL Behavior, and Parallel Partitioning

Capability detection is explicit:

import numkong as nk

caps = nk.get_capabilities()
print({k: v for k, v in caps.items() if v})

The current implementation releases the GIL around the native dense metric calls and around the packed and symmetric matrix kernels. The repository also has threading tests for packed and symmetric row-range partitioning.

GEMM-like packed work and SYRK-like symmetric work should be documented differently:

import concurrent.futures
import numpy as np
import numkong as nk

left = np.random.randn(4096, 768).astype(np.float32)
right = np.random.randn(8192, 768).astype(np.float32)
packed = nk.dots_pack(right, dtype="float32")
out = nk.zeros((4096, 8192), dtype="float64")  # out must be pre-allocated with correct shape and dtype

def packed_chunk(start, end):
    nk.dots_packed(left, packed, out=out, start_row=start, end_row=end) # split left rows against one shared packed RHS

with concurrent.futures.ThreadPoolExecutor(max_workers=4) as pool:
    for start in range(0, 4096, 1024):
        pool.submit(packed_chunk, start, min(start + 1024, 4096))
import concurrent.futures
import numpy as np
import numkong as nk

vectors = np.random.randn(4096, 768).astype(np.float32)
out = nk.zeros((4096, 4096), dtype="float64")  # out must be pre-allocated with correct shape and dtype

def symmetric_chunk(start, end):
    nk.dots_symmetric(vectors, out=out, start_row=start, end_row=end) # split row windows of one square output

with concurrent.futures.ThreadPoolExecutor(max_workers=4) as pool:
    for start in range(0, 4096, 1024):
        pool.submit(symmetric_chunk, start, min(start + 1024, 4096))

OpenMP and other native schedulers still matter in lower layers. For Python, the intended user-facing story is external partitioning around the GIL-free kernels you actually use.

Addressing External Memory

NumKong implements the Python buffer protocol for zero-copy interop with NumPy, PyTorch, and other buffer-aware libraries. Two additional primitives cover pointer-level workflows: data_ptr reads the integer address out of any Tensor, and from_pointer() wraps any integer address back into one.

data_ptr returns the raw address, suitable for passing into ctypes, CUDA, or any FFI boundary. from_pointer(address, shape, dtype, *, strides=None, owner=None) creates a non-owning Tensor view. The optional owner keeps the source object alive for the lifetime of the view.

import numpy as np
import numkong as nk

# Round-trip through an integer address
matrix = nk.zeros((3, 4), dtype='float32')
address = matrix.data_ptr
matrix_view = nk.from_pointer(address, (3, 4), 'float32', owner=matrix)

# Wrap a NumPy array with zero copies
embeddings = np.random.randn(1024).astype(np.float32)
embeddings_view = nk.from_pointer(embeddings.ctypes.data, (1024,), 'float32', owner=embeddings)
nk.dot(embeddings, embeddings_view)  # same underlying data

PyTorch tensors already implement the buffer protocol, so most functions accept them directly. For explicit pointer-level control, or to go the other direction, the same primitives apply:

import torch

query = torch.randn(512)
nk.dot(query, query)  # buffer protocol, zero copy

# Explicit pointer wrap
query_view = nk.from_pointer(query.data_ptr(), tuple(query.shape), 'float32', owner=query)

# NumKong → PyTorch: 1D via buffer protocol, N-D via numpy bridge
flat = torch.frombuffer(memoryview(nk_tensor), dtype=torch.float32)
shaped = torch.as_tensor(np.asarray(nk_tensor))

CUDA unified memory, pinned buffers, and mmap'd files all work the same way — any CPU-accessible pointer is valid.

import ctypes, mmap

# CUDA unified memory (ensure CPU accessibility first)
cudart = ctypes.CDLL("libcudart.so")
unified_ptr = ctypes.c_void_p()
cudart.cudaMallocManaged(ctypes.byref(unified_ptr), 4096, 1)
cudart.cudaDeviceSynchronize()
unified = nk.from_pointer(unified_ptr.value, (1024,), 'float32')

# Memory-mapped file
with open("data.bin", "r+b") as f:
    mapping = mmap.mmap(f.fileno(), 0)
    mapped = nk.from_pointer(ctypes.addressof(
        ctypes.c_char.from_buffer(mapping)),
        (1024,), 'float32', owner=mapping)

NumKong: Mixed Precision for All

Portable mixed-precision math, linear-algebra, & retrieval library with 2'000+ SIMD kernels for x86, Arm, RISC-V, LoongArch, Power, & WebAssembly, leveraging rare algebraic transforms with both 1D & 2D registers like AMX & SME, covering 15+ numeric types from 4-bit integers & 6-bit floats to 128-bit complex numbers, validated against 118-bit extended-precision baselines with saturation, casting, & rounding edge-case coverage, in a 5-100x smaller binary than other BLAS-like alternatives, co-designed with Tensor abstractions in C++, Python, Rust, JavaScript, GoLang, & Swift.

NumKong banner

Latency, Throughput, & Numerical Stability

Most libraries return dot products in the same type as the input — Float16 × Float16 → Float16, Int8 × Int8 → Int8. This leads to quiet overflow: a 2048-dimensional i8 dot product can reach ±10 million, but i8 maxes out at 127. NumKong promotes to wider accumulators — Float16 → Float32, BFloat16 → Float32, Int8 → Int32, Float32 → Float64 — so results stay in range.

Single 2048-d dot product on Intel Sapphire Rapids, single-threaded. Each cell shows gso/s, mean relative error vs higher-precision reference. gso/s = Giga Scalar Operations per Second — a more suitable name than GFLOP/s when counting both integer and floating-point work. NumPy 2.4, PyTorch 2.10, JAX 0.9.

Input NumPy + OpenBLAS PyTorch + MKL JAX NumKong
░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░
f64 2.0 gso/s, 1e-15 err 0.6 gso/s, 1e-15 err 0.4 gso/s, 1e-14 err 5.8 gso/s, 1e-16 err
f32 1.5 gso/s, 2e-6 err 0.6 gso/s, 2e-6 err 0.4 gso/s, 5e-6 err 7.1 gso/s, 2e-7 err
bf16 0.5 gso/s, 1.9% err 0.5 gso/s, 1.9% err 9.7 gso/s, 1.8% err
f16 0.2 gso/s, 0.25% err 0.5 gso/s, 0.25% err 0.4 gso/s, 0.25% err 11.5 gso/s, 0.24% err
e5m2 0.7 gso/s, 4.6% err 0.5 gso/s, 4.6% err 7.1 gso/s, 0% err
i8 1.1 gso/s, overflow 0.5 gso/s, overflow 0.5 gso/s, overflow 14.8 gso/s, 0% err

A fair objection: PyTorch and JAX are designed for throughput, not single-call latency. They lower execution graphs through XLA or vendored BLAS libraries like Intel MKL and Nvidia cuBLAS. So here's the same comparison on a throughput-oriented workload — matrix multiplication:

Matrix multiplication (2048 × 2048) × (2048 × 2048) on Intel Sapphire Rapids, single-threaded. gso/s = Giga Scalar Operations per Second, same format. NumPy 2.4, PyTorch 2.10, JAX 0.9, same versions.

Input NumPy + OpenBLAS PyTorch + MKL JAX NumKong
░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░
f64 65.5 gso/s, 1e-15 err 68.2 gso/s, 1e-15 err ~14.3 gso/s, 1e-15 err 8.6 gso/s, 1e-16 err
f32 140 gso/s, 9e-7 err 145 gso/s, 1e-6 err ~60.5 gso/s, 1e-6 err 37.7 gso/s, 4e-7 err
bf16 851 gso/s, 1.8% err ~25.8 gso/s, 3.4% err 458 gso/s, 3.6% err
f16 0.3 gso/s, 0.25% err 140 gso/s, 0.37% err ~26.1 gso/s, 0.35% err 103 gso/s, 0.26% err
e5m2 0.4 gso/s, 4.6% err ~26.4 gso/s, 4.6% err 398 gso/s, 0% err
i8 0.4 gso/s, overflow 50.0 gso/s, overflow ~0.0 gso/s, overflow 1279 gso/s, 0% err

For f64, compensated "Dot2" summation reduces error by 10–50× compared to naive Float64 accumulation, depending on vector length. For f32, widening to Float64 gives 5–10× lower error. The library ships as a relatively small binary:

Package Size Parallelism & Memory Available For
PyTorch + MKL 705 MB Vector & Tile SIMD, OpenMP Threads, Hidden Allocs Python, C++, Java
JAX + jaxlib 357 MB Vector SIMD, XLA Threads, Hidden Allocs Python
NumPy + OpenBLAS 30 MB Vector SIMD, Built-in Threads, Hidden Allocs Python
mathjs 9 MB No SIMD, No Threads, Many Allocs JS
NumKong 5 MB Vector & Tile SIMD, Your Threads, Your Allocs 7 languages

Every kernel is validated against 118-bit extended-precision baselines with per-type ULP budgets across log-normal, uniform, and Cauchy input distributions. Tests check triangle inequality, Cauchy-Schwarz bounds, NaN propagation, overflow detection, and probability-simplex constraints for each ISA variant. Results are cross-validated against OpenBLAS, Intel MKL, and Apple Accelerate. A broader throughput comparison is maintained in NumWars.

Quick Start

Language Install Compatible with Guide
C / C++ CMake, headers, & prebuilt Linux, macOS, Windows, Android include/README.md
Python pip install Linux, macOS, Windows python/README.md
Rust cargo add Linux, macOS, Windows rust/README.md
JS npm install & import Node.js, Bun, Deno & browsers javascript/README.md
Swift Swift Package Manager macOS, iOS, tvOS, watchOS swift/README.md
Go go get Linux, macOS, Windows via cGo golang/README.md

What's Inside

NumKong covers 17 numeric types — from 6-bit floats to 64-bit complex numbers — across dozens of operations and 30+ SIMD backends, with hardware-aware defaults: Arm prioritizes f16, x86 prioritizes bf16.

Language Bindings

Operation C and C++ Python Rust JavaScript Swift GoLang
Vector Ops
Dot Product
Spatial Metric
Set Similarity
Geospatial ·
Mesh Alignment · · ·
Sparse Products · · ·
Probability Divergences ·
Curved Spaces · · ·
Many-to-Many Vector Ops
"Dots" Products
"Spatials" Metrics
"Sets" Similarities ·
MaxSim Scoring ·
Scalar Ops
Cast · ·
Reduce · · ·
Each · · ·
Trigonometry · · ·

Design Decisions

  • Avoid loop unrolling and scalar tails.
  • Don't manage threads and be compatible with any parallelism models.
  • Don't manage memory and be compatible with arbitrary allocators & alignment.
  • Don't constrain ourselves to traditional BLAS-like Matrix Multiplication APIs.
  • Don't throw exceptions and pass values by pointers.
  • Prefer saturated arithmetic and avoid overflows, where needed.
  • Cover most modern CPUs with flexible dispatch and wait for them to converge with GPUs.

The rest of this document unpacks the functionality and the logic behind the design decisions.

Auto-Vectorization & Loop Unrolling

Most "optimized SIMD code" is a 2–4x unrolled data-parallel for-loop over f32 arrays with a serial scalar tail for the last few elements:

float boring_dot_product_f32(float const *a, float const *b, size_t n) {
    __m256 sum0 = _mm256_setzero_ps(), sum1 = _mm256_setzero_ps();
    size_t i = 0;
    for (; i + 16 <= n; i += 16) {
        sum0 = _mm256_fmadd_ps(_mm256_loadu_ps(a + i), _mm256_loadu_ps(b + i), sum0);
        sum1 = _mm256_fmadd_ps(_mm256_loadu_ps(a + i + 8), _mm256_loadu_ps(b + i + 8), sum1);
    }
    float result = _mm256_reduce_add_ps(_mm256_add_ps(sum0, sum1));
    for (; i < n; i++) result += a[i] * b[i]; // serial tail
    return result;
}

This kind of unrolling has been a common request for NumKong, but the library avoids it by design.

Modern CPUs already "unroll" in hardware. Out-of-order engines with reorder buffers of 320–630 entries (Zen 4: 320, Golden Cove: 512, Apple Firestorm: ~630) can keep a dozen of loop iterations in-flight simultaneously. The physical register file is much larger than the ISA-visible architectural registers — Skylake has ~180 physical integer registers behind 16 architectural GPRs, and ~168 physical vector registers behind 32 architectural ZMMs. The register renaming unit maps the same zmm0 in iteration N and iteration N+1 to different physical registers, extracting cross-iteration parallelism automatically — exactly the benefit that source-level unrolling was historically supposed to provide.

Unrolling works against NumKong's goals. Every unrolled copy is a distinct instruction in the binary. With 1,500+ kernel endpoints across 30+ backends, even 2x unrolling would inflate the .text section by megabytes — directly impacting install size for Python wheels, NPM packages, and Rust crates. Larger loop bodies also increase instruction-cache and micro-op-cache pressure; Agner Fog also recommends:

"avoid loop unrolling where possible in order to economize the use of the micro-op cache".

A loop that spills out of the uop cache falls back to the slower legacy decoder, making the "optimized" version slower than the compact original. For a header-only library, unrolling also compounds compilation time: register allocation is NP-hard (reducible to graph coloring), and unrolling multiplies the number of simultaneously live ranges the allocator must consider, increasing compile time super-linearly across every translation unit that includes the headers.

Serial tails are a correctness hazard. The leftover elements after the last full SIMD chunk run through a scalar loop that silently drops FMA fusion, compensated accumulation, and saturating arithmetic — producing results with different numerical properties than the SIMD body. NumKong often uses masked loads instead (_mm512_maskz_loadu_ps on AVX-512, predicated svld1_f32 on SVE), processing every element through the same arithmetic path regardless of alignment. It's not exactly orthogonal to loop-unrolling, but makes a different kernel layout more compatible.

The gains come from elsewhere. On Intel Sapphire Rapids, NumKong was benchmarked against auto-vectorized code compiled with GCC 12. GCC handles single-precision float well, but struggles with _Float16 and other mixed-precision paths:

Kind GCC 12 f32 GCC 12 f16 NumKong 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

NumKong's f16 kernels are faster than GCC's f32 output — not because of unrolling, but because they use F16C conversion instructions, widening FMA pipelines, and compensated accumulation that compilers do not synthesize from a plain for loop. The same story repeats for bf16, e4m3, i8, and i4: these types require algorithmic transformations — lookup tables, algebraic domain shifts, asymmetric VNNI tricks — that live beyond the reach of auto-vectorization.

Parallelism & Multi-Threading

BLAS libraries traditionally manage their own thread pools. OpenBLAS spawns threads controlled by OPENBLAS_NUM_THREADS, Intel MKL forks its own OpenMP runtime via MKL_NUM_THREADS, and Apple Accelerate delegates to GCD (Grand Central Dispatch). This works in isolation — but the moment your application adds its own parallelism (joblib, std::thread, Tokio, GCD, OpenMP), you get thread oversubscription: MKL spawns 8 threads inside each of your 8 joblib workers, producing 64 threads on 8 cores, thrashing caches and stalling on context switches. The Python ecosystem has built entire libraries just to work around this problem, and scikit-learn's documentation devotes a full page to managing the interaction between joblib parallelism and BLAS thread pools.

NumKong takes a different position: the numerics layer should not own threads. Modern hardware makes the "spawn N threads and split evenly" model increasingly untenable:

  • Server-grade CPUs have hundreds of cores split across sockets, chiplets, and tiles, resulting in dozens of physical NUMA domains with vastly different memory access latencies. A thread pool that ignores NUMA topology will spend more time on remote memory stalls than on arithmetic.
  • Consumer-grade CPUs pack heterogeneous Quality-of-Service core types on the same die — Intel P-cores and E-cores run at different frequencies and sometimes support different ISA extensions. A naive work-split gives equal chunks to fast and slow cores, and the whole task stalls waiting for the slowest partition.
  • Real-time operating systems in robotics and edge AI cannot afford to yield the main thread to a BLAS-managed pool. These systems need deterministic latency, not maximum throughput.

Instead, NumKong exposes row-range parameters that let the caller partition work across any threading model. For GEMM-shaped dots_packed, this is straightforward — pass a slice of A's rows and the full packed B to compute the corresponding slice of C. For SYRK-shaped dots_symmetric, explicit start_row / end_row parameters control which rows of the symmetric output matrix a given thread computes. The GIL (Global Interpreter Lock) is released around every kernel call, making NumKong compatible with concurrent.futures, multiprocessing, or any other parallelism model:

import concurrent.futures, numkong as nk, numpy as np

vectors, num_threads = np.random.randn(1000, 768).astype(np.float32), 4
output = nk.zeros((1000, 1000), dtype="float32")

def compute_slice(t):
    start = t * (len(vectors) // num_threads)
    end = start + len(vectors) // num_threads if t < num_threads - 1 else len(vectors)
    nk.dots_symmetric(vectors, out=output, start_row=start, end_row=end)

with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as pool:
    list(pool.map(compute_slice, range(num_threads)))

For users who want a ready-made low-latency thread pool without the oversubscription baggage of OpenMP, we built ForkUnion — a minimalist fork-join library for C, C++, and Rust that avoids mutexes, CAS atomics, and dynamic allocations on the critical path, with optional NUMA pinning on Linux.

Memory Allocation & Management

BLAS libraries typically allocate internal buffers during GEMM — OpenBLAS packs matrices into L2/L3-sized panels via per-thread buffer pools backed by mmap or shmget. This hidden allocation has caused real problems: 14 lock/unlock pairs per small GEMM call throttling 12-thread scaling to 2x, silently incorrect results from thread-unsafe allocation in np.dot, and deadlocks after fork() due to mutex state not being reset in child processes. The BLASFEO library was created specifically for embedded model-predictive control where malloc during computation is unacceptable.

NumKong never allocates memory. Following the same philosophy as Intel MKL's packed GEMM API (cblas_sgemm_pack_get_sizecblas_sgemm_packcblas_sgemm_compute), NumKong exposes typed three-phase interfaces — nk_dots_packed_size_*nk_dots_pack_*nk_dots_packed_* — where the caller owns the buffer and NumKong only fills it.

The reason GEMM libraries repack matrices at all is that every hardware target has a different preferred layout — Intel AMX expects B in a VNNI-interleaved tile format (pairs of BFloat16 values packed into DWORDs across the K dimension), while Arm SME wants column vectors for its FMOPA outer-product instructions. Since GEMM is $O(N^3)$ and repacking is $O(N^2)$, the cost is asymptotically free — but the allocation and locking overhead is not.

NumKong's nk_dots_pack_* family performs five transformations beyond simple reordering:

  • Type pre-conversion — mini-floats (E4M3, BFloat16, etc.) are upcast to the compute type once during packing, not on every GEMM call. This amortizes the conversion cost across all rows of A that will be multiplied against the packed B.
  • SIMD depth padding — rows are zero-padded to the SIMD vector width (16 for AVX-512 Float32, 64 for AVX-512 Int8), allowing inner loops to load without boundary checks.
  • Per-column norm precomputation — squared norms ($|b_j|^2$) are computed and stored alongside the packed data, so distance kernels (angulars_packed, euclideans_packed) can reuse them without a separate pass.
  • ISA-specific tile layout — AMX packing interleaves BFloat16 pairs into 16×32 tiles matching TDPBF16PS expectations; SME packing arranges vectors at SVE granularity for FMOPA outer products; generic backends use simple column-major with depth padding.
  • Power-of-2 stride breaking — when the padded row stride is a power of 2, one extra SIMD step of padding is added. Power-of-2 strides cause cache set aliasing where consecutive rows map to the same cache sets, effectively shrinking usable L1/L2 capacity — stride-256 traversals can be ~10x slower than stride-257.
import numkong as nk, numpy as np

right_matrix = np.random.randn(1000, 768).astype(np.float16)
right_packed = nk.dots_pack(right_matrix, dtype=nk.float16)                        # pack once
for query_batch in stream: results = nk.dots_packed(query_batch, right_packed)    # reuse many times

Why Not Just GEMM? The Evolution of Matrix Multiplication APIs

The classic BLAS GEMM computes $C = \alpha A B + \beta C$ for Float32/Float64 matrices. It covers many use cases, but LLM inference, vector search, and quantum simulation expose three ways in which the traditional interface falls short.

Frozen weights justify separating packing from computation. During LLM inference, a very large share of GEMM calls use a static weight matrix — weights don't change after loading. This makes offline repacking a one-time cost amortized over the entire serving lifetime: NVIDIA's TurboMind explicitly splits GEMM into offline weight packing (hardware-aware layout conversion) and online mixed-precision computation, and Intel MKL's packed GEMM API exposes the same two-phase pattern. NumKong's nk_dots_pack_*nk_dots_packed_* path follows this philosophy — pack the weight matrix once, reuse it across all queries.

Mixed precision demands more than an epilogue addition. Modern transformer layers operate in a precision sandwich: weights stored in BFloat16/Float8, GEMM accumulated in Float32, output downcast back to BFloat16 for the next layer. Between GEMM calls, LayerNorm or RMSNorm re-normalizes hidden states, so the next layer is often much closer to an angular or normalized similarity computation than to a plain raw dot product. nGPT takes this to its logical conclusion: all vectors live on the unit hypersphere, and every matrix-vector product is a pure angular distance. This means many "GEMM" workloads in production are semantically closer to many-to-many angular distance computation — which is exactly what NumKong's angulars_packed and euclideans_packed kernels compute directly, fusing norm handling and type conversion into a single pass.

The GEMM-for-distances trick has real costs. A common shortcut in vector search is to decompose pairwise Euclidean distance as $|a - b|^2 = |a|^2 + |b|^2 - 2 \langle a, b \rangle$, precompute norms, and call sgemm for the inner-product matrix. Both FAISS and scikit-learn use this approach — and both document its limitations. Scikit-learn's docs warn of "catastrophic cancellation" in the subtraction; this has caused real bugs with ~37% error on near-identical Float32 vectors. The $O(N^2)$ postprocessing pass (adding norms, square roots, divisions) is not free either — NVIDIA's RAFT measured a 20–25% speedup from fusing it into the GEMM epilogue. Even FAISS switches to direct SIMD when the query count drops below 20. The standard BLAS interface was never designed for sub-byte types either — no vendor supports Int4, and sub-byte types cannot even be strided without bit-level repacking.

Some operations need more than GEMM + postprocessing. NumKong implements several GEMM-shaped operations where the "epilogue" is too complex for a simple addition:

  • Bilinear forms ($a^T C b$) in quantum computing compute a scalar expectation value — the naive approach materializes an $N$-dimensional intermediate vector $Cb$, but NumKong's typed nk_bilinear_* kernels stream through rows of $C$ with nested compensated dot products, never allocating beyond registers. For complex-valued quantum states, where the intermediate would be a 2N-element complex vector, the savings double.
  • MaxSim scoring for ColBERT-style late-interaction retrieval computes $\sum_i \min_j \text{angular}(q_i, d_j)$ — a sum-of-min-distances across token pairs. A GEMM would produce the full $M \times N$ similarity matrix, but NumKong's typed nk_maxsim_packed_* kernels fuse a coarse Int8-quantized screening with full-precision angular refinement on winning pairs only, packing both query and document matrices to use all 4 SME tiles as accumulators. PLAID and maxsim-cpu have independently shown that dedicated MaxSim kernels can outperform the GEMM decomposition by 5–10x.

NumKong treats these as first-class operations — dots_packed, euclideans_packed, angulars_packed, typed nk_bilinear_* kernels, and typed nk_maxsim_packed_* kernels — rather than decomposing everything into GEMM + postprocessing.

Precision by Design: Saturation, Rounding, & Float6 Over Float8

Floating-point arithmetic on computers is not associative: $(a + b) + c \neq a + (b + c)$ in general, and upcasting to wider types is not always sufficient. NumKong makes operation-specific decisions about where to spend precision and where to economize, rather than applying one rule uniformly.

Saturation depends on the operation. A reduction over a 4 GB array of i8 values contains ~4 billion elements — but Int32 wrapping overflow occurs after just ~17 million Int8 summands ($127 \times 16.9\text{M} > 2^{31}$). Reductions in NumKong use saturating arithmetic because the input can be arbitrarily long. Matrix multiplications don't need saturation because GEMM depth rarely exceeds tens of thousands — well within Int32 range. x86 provides no saturating 32-bit SIMD add (only byte/word variants), so NumKong implements saturation via overflow detection with XOR-based unsigned comparison on platforms that lack native support.

Square roots & special math ops are platform-specific. Angular distance requires $1/\sqrt{|a|^2 \cdot |b|^2}$ — but the cost of computing this normalization varies dramatically across hardware. x86 VSQRTPS takes ~12 cycles, followed by VDIVPS at ~11 cycles — totalling ~23 cycles for a precise 1/sqrt(x). The VRSQRT14PS alternative starts with a 14-bit estimate in ~4 cycles, then one Newton-Raphson iteration ($y = y \cdot (1.5 - 0.5 x y^2)$, ~4 more cycles) reaches full Float32 precision — roughly 3x faster. ARM's FRSQRTE provides only ~8 bits, requiring two Newton-Raphson iterations to match. NumKong selects the iteration count per platform so the final ULP bound is consistent across ISAs, rather than exposing different precision to different users.

E2M3 and E3M2 can outperform E4M3 and E5M2. 6-bit MX formats can be scaled to exact integers, enabling integer accumulation that avoids E5M2's catastrophic cancellation risk. This works because E2M3's narrower exponent range means every representable value maps to an integer after a fixed shift — no rounding, no cancellation. See Mini-Floats for a worked example.

Every such decision — saturation thresholds, Newton-Raphson iteration counts, integer vs floating-point paths — is documented per operation and per type in the module-specific READMEs.

Calling Convention & Error Handling

NumKong never throws exceptions, never sets errno, and never calls setjmp/longjmpexceptions bloat call sites with unwind tables and are invisible to C, Python, Rust, Swift, Go, and JavaScript FFI; errno is thread-local state whose storage model varies across C runtimes. Instead, every function takes inputs as const pointers, writes outputs through caller-provided pointers, and returns void:

void nk_dot_f32(nk_f32_t const *a, nk_f32_t const *b, nk_size_t n, nk_f64_t *result);
void nk_dot_bf16(nk_bf16_t const *a, nk_bf16_t const *b, nk_size_t n, nk_f32_t *result);

Pointers eliminate implicit casts for types with platform-dependent storage — this is why they matter for half-precision types. nk_f16_t and nk_bf16_t resolve to native __fp16 / __bf16 when available but fall back to unsigned short otherwise — if passed by value, the compiler would silently apply integer promotion instead of preserving the bit pattern. Passing by pointer keeps the representation opaque: kernels read raw and convert explicitly when needed, so the same binary works regardless of whether the compiler understands _Float16.

The only place that requires error signaling is dynamic dispatch — looking up the best kernel for the current CPU at runtime. When no kernel matches, the dispatcher sets the capabilities mask to zero and fills the function pointer with a family-specific error stub such as nk_error_dense_ from c/dispatch.h and c/numkong.c that writes 0xFF into the output — NaN for floats, −1 for signed integers, TYPE_MAX for unsigned.

Compile-Time and Run-Time Dispatch

NumKong provides two dispatch mechanisms. Compile-time dispatch selects the fastest kernel supported by the target platform at build time — thinner binaries, no indirection overhead, but requires knowing your deployment hardware. Run-time dispatch compiles every supported kernel into the binary and picks the best one on the target machine via nk_capabilities() — one pointer indirection per call, but a single binary runs everywhere. The run-time path is common in DBMS products (ClickHouse), web browsers (Chromium), and other upstream projects that ship to heterogeneous fleets.

All kernel names follow the pattern nk_{operation}_{type}_{backend}. If you need to resolve the best kernel manually, use nk_find_kernel_punned with a nk_kernel_kind_t, nk_dtype_t, and a viable capabilities mask:

nk_metric_dense_punned_t angular = 0;
nk_capability_t used = nk_cap_serial_k;
nk_find_kernel_punned(
    nk_kernel_angular_k, nk_f32_k,            // what functionality? for which input type?
    nk_capabilities(),                        // which capabilities are viable?
    (nk_kernel_punned_t *)&angular, &used);   // the kernel found and capabilties used!

The first call to nk_capabilities() initializes the dispatch table; all subsequent calls are lock-free.

Numeric Types

Float64 & Float32: IEEE Precision

Float64 — NumKong uses compensated summation that tracks numerical errors separately. On serial paths, we use Neumaier's algorithm (1974), an improvement over Kahan-Babuška that correctly handles cases where added terms are larger than the running sum, achieving $O(1)$ error growth instead of $O(n)$. On SIMD paths with FMA support, we implement the Dot2 algorithm (Ogita-Rump-Oishi, 2005), maintaining separate error compensators for both multiplication and accumulation via TwoProd and TwoSum operations. The accuracy differences are visible in the benchmark tables above — compensated Float64 suits scientific computing where numerical stability matters more than raw speed.

Float32 — SIMD implementations load Float32 values, upcast to Float64 for full-precision multiplication and accumulation, then downcast only during finalization. This avoids catastrophic cancellation at minimal cost since modern CPUs have dedicated Float64 vector units operating at nearly the same throughput as Float32. The same compensated accumulation strategy applies to Mahalanobis distance, bilinear forms, and KL/JS divergences.

// Dot2 TwoProd: Capture multiplication rounding error
h = a * b;
r = fma(a, b, -h);  // Extracts rounding error

// Dot2 TwoSum: Capture addition rounding error
t = sum + product;
e = (sum - t) + product;  // Compensator term

BFloat16 & Float16: Half Precision

BFloat16 — not an IEEE 754 standard type, but widely adopted for AI workloads. BFloat16 shares Float32's 8-bit exponent but truncates the mantissa to 7 bits, prioritizing dynamic range over precision (±3.4×10³⁸ with coarser granularity). On old CPUs, upcasting BFloat16 to Float32 requires just an unpack and left-shift by 16 bits (essentially free); on newer CPUs, both Arm and x86 provide widening mixed-precision dot products via DPBF16PS (AVX-512 on Genoa/Sapphire Rapids) and BFDOT (NEON on ARMv8.6-A Graviton 3+). NumKong's Float8 types (E4M3/E5M2) upcast to BFloat16 before using DPBF16PS, creating a three-tier precision hierarchy: Float8 for storage, BFloat16 for compute, Float32 for accumulation.

Float16 — IEEE 754 half-precision with 1 sign bit, 5 exponent bits (bias=15), and 10 mantissa bits, giving a range of ±65504. Float16 prioritizes precision over range (10 vs 7 mantissa bits), making it better suited for values near zero and gradients during training. On x86, older CPUs use F16C extensions (Ivy Bridge+) for fast Float16 → Float32 conversion; Sapphire Rapids+ adds native AVX-512-FP16 with dedicated Float16 arithmetic. On Arm, ARMv8.4-A adds FMLAL/FMLAL2 instructions for fused Float16 → Float32 widening multiply-accumulate, reducing the total latency from 7 cycles to 4 cycles and achieving 20–48% speedup over the separate convert-then-FMA path.

Platform BFloat16 Path Elem/Op Float16 Path Elem/Op
x86
Diamond Rapids (2025) ↓ Genoa 32 VDPPHPS widening dot 32
Sapphire Rapids (2023) ↓ Genoa 32 ↓ Skylake 16
Genoa (2022) VDPBF16PS widening dot 32 ↓ Skylake 16
Skylake (2015) SLLI + VFMADD 16 VCVTPH2PS + VFMADD 16
Haswell (2013) SLLI + VFMADD 8 VCVTPH2PS + VFMADD 8
Arm
Graviton 3 (2021) SVBFDOT widening dot 4–32 SVCVTSVFMLA 4–32
Apple M2+ (2022) BFDOT widening dot 8 ↓ FP16FML 8
Apple M1 (2020) ↓ NEON 8 FMLAL widening FMA 8
Graviton 2 (2019) ↓ NEON 8 FCVTL + FMLA 4
Graviton 1 (2018) SHLL + FMLA 8 bit-manip → FMLA 8
RISC-V
RVV + Zvfbfwma VFWMACCBF16 widening FMA 4–32 ↓ RVV 4–32
RVV + Zvfh ↓ RVV 4–32 VFWMACC widening FMA 4–32
RVV shift + VFMACC 4–32 convert + VFMACC 4–32

BFloat16 shares Float32's 8-bit exponent, so upcasting is a 16-bit left shift (SLLI on x86, SHLL on Arm) that zero-pads the truncated mantissa — essentially free. Float16 has a different exponent width (5 vs 8 bits), requiring a dedicated convert: VCVTPH2PS (x86 F16C) or FCVTL (Arm NEON). Widening dot products (VDPBF16PS, BFDOT, FMLAL) fuse the conversion and multiply-accumulate into one instruction. Sapphire Rapids has native VFMADDPH for Float16 arithmetic, but NumKong does not use it for general dot products — Float16 accumulation loses precision. It is only used for mini-float (E2M3/E3M2) paths where periodic flush-to-Float32 windows keep error bounded. The table above covers only vector dot-product paths - GEMMs also leverage Arm SME and Intel AMX instructions. Beyond x86, Arm, and RISC-V, NumKong also ships LoongArch, WebAssembly, and PowerPC backends, also excluded from the table.

Mini-Floats: E4M3, E5M2, E3M2, & E2M3

Format Bits Range NumKong Promotion Rules Support in GPUs
E5M2FN 8 ±57344 BFloat16 → Float32 H100+, MI300+
E4M3FN 8 ±448 BFloat16 → Float32 H100+, MI300+
E3M2FN 6 → 8 ±28 BFloat16 & Float16 → Float32,
Int16 → Int32
only block-scaled
E2M3FN 6 → 8 ±7.5 BFloat16 & Float16 → Float32,
Int8 → Int32
only block-scaled
Block-scaled NVFP4 4 ±6 B200+
Block-scaled MXFP4 / E2M1 4 ±6 B200+, MI325+

Block scaling. NumKong does not implement block-scaled variants (MXFP4, NVFP4, or block-scaled E3M2/E2M3). Block scaling couples elements through a shared exponent per block, introducing structural bias into a fundamentally uniform operation. NumKong treats each element independently; block-scaled inputs should be dequantized before processing.

FNUZ variants. AMD MI300 (CDNA 3) uses FNUZ encoding (negative-zero-is-NaN) rather than the OCP standard. MI350+ and NVIDIA H100/B200 both use OCP-standard E4M3FN/E5M2FN. NumKong follows the OCP convention; FNUZ inputs require conversion before processing.

8-bit floats (E4M3 & E5M2) follow the OCP FP8 standard. E4M3FN (no infinities, NaN only) is preferred for training where precision near zero matters; E5M2FN (with infinities) provides wider dynamic range for inference. On x86 Genoa/Sapphire Rapids, E4M3/E5M2 values upcast to BFloat16 via lookup tables, then use native DPBF16PS for 2-per-lane dot products accumulating to Float32. On Arm Graviton 3+, the same BFloat16 upcast happens via NEON table lookups, then BFDOT instructions complete the computation.

Platform E5M2 Path Elem/Op E4M3 Path Elem/Op
x86
Diamond Rapids (2025) VCVTBF82PH → F16 + VDPPHPS 32 VCVTHF82PH → F16 + VDPPHPS 32
Genoa (2022) → BF16 + VDPBF16PS 32 ↓ Ice Lake 64
Ice Lake (2019) ↓ Skylake 16 octave LUT + VPDPBUSD 64
Skylake (2015) rebias → F32 FMA 16 rebias → F32 FMA 16
Haswell (2013) rebias → F32 FMA 8 rebias → F32 FMA 8
Arm
NEON + FP8DOT (Olympus) native FDOT 16 native FDOT 16
NEON + FP16FML (Apple M1+) SHL → F16 + FMLAL 16 LUT → F16 + FMLAL 16
NEON (Graviton 1+) SHL + FCVTL + FMA 8 → F16 + FCVTL + FMA 8
RISC-V
RVV + Zvfbfwma rebias → BF16 + VFWMACCBF16 4–32 LUT → BF16 + VFWMACCBF16 4–32
RVV + Zvfh SHL → F16 + VFWMACC 4–32 LUT → F16 + VFWMACC 4–32
RVV rebias → F32 + VFMACC 4–32 LUT → F32 + VFMACC 4–32

E5M2 shares Float16's exponent bias (15), so E5M2 → Float16 conversion is a single left-shift by 8 bits (SHL 8). E4M3 on Ice Lake uses "octave decomposition": the 4-bit exponent splits into 2 octave + 2 remainder bits, yielding 7 integer accumulators post-scaled by powers of 2.

6-bit floats (E3M2 & E2M3) follow the OCP MX v1.0 standard. Their smaller range allows scaling to exact integers that fit in i8/i16, enabling integer VPDPBUSD/SDOT accumulation instead of the floating-point pipeline. Float16 can also serve as an accumulator, accurately representing ~50 products of E3M2FN pairs or ~20 products of E2M3FN pairs before overflow. On Arm, NEON FHM extensions bring widening FMLAL dot-products for Float16 — both faster and more widely available than BFDOT for BFloat16.

Platform E3M2 Path Elem/Op E2M3 Path Elem/Op
x86
Ice Lake (2019) VPERMW LUT + VPMADDWD 32 VPERMB LUT + VPDPBUSD 64
Sierra Forest (2024) ↓ Haswell 32 VPSHUFB LUT + VPDPBSSD 32
Alder Lake (2021) ↓ Haswell 32 VPSHUFB LUT + VPDPBUSD 32
Skylake (2015) VPSHUFB LUT + VPMADDWD 64 VPSHUFB LUT + VPMADDUBSW 64
Haswell (2013) VPSHUFB LUT + VPMADDWD 32 VPSHUFB LUT + VPMADDUBSW 32
Arm
NEON + FP8DOT (Olympus) → E5M2 + FDOT 16 → E4M3 + FDOT 16
NEON + DotProd (Graviton 2+) VQTBL2 LUT + SMLAL 16 VQTBL2 LUT + SDOT 16
NEON (Graviton 1+) → F16 + FCVTL + FMA 16 → F16 + FCVTL + FMA 16
RISC-V
RVV I16 gather LUT + VWMACC 4–32 U8 gather LUT + VWMACC 4–32

E3M2/E2M3 values map to exact integers via 32-entry LUTs (magnitudes up to 448 for E3M2, 120 for E2M3), enabling integer accumulation with no rounding error. On NEON + FP8DOT, E3M2 is first promoted to E5M2 and E2M3 to E4M3 before the hardware FDOT instruction. Sierra Forest and Alder Lake use native VPDPBSSD (signed×signed) and VPDPBUSD (unsigned×signed) respectively for E2M3.

E4M3 and E5M2 cannot use the integer path. E4M3 scaled by 16 reaches 7,680 — too large for Int8, barely fitting Int16 with a 128-entry table. E5M2's range (±57,344) makes the scaled product exceed Int32 entirely. Without the integer path, E5M2 falls back to Float32 accumulation — where its 2-bit mantissa (only 4 values per binade) creates a catastrophic cancellation risk that E2M3's integer path avoids completely:

i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 i = 6
aᵢ 0.00122 20480 −0.00122 1.5 −3072 −640 0.00146
bᵢ −40 320 −1280 −7.63e⁻⁵ 0.000427 10240 −4.58e⁻⁵
aᵢ·bᵢ −0.04883 6553600 1.5625 −0.000114 −1.3125 −6553600 ≈ 0

Why Float32 accumulation fails here. The accurate sum of these 7 products is ≈ 0.201. A vfmaq_f32 call accumulates 4 lanes at a time; the first batch already carries values around ±6.5 M. At that magnitude the Float32 ULP is 0.5 — so the small meaningful terms (−0.049, 1.563, −1.313, −0.0001) are all below one ULP and get absorbed during lane reduction. The large terms then cancel exactly to zero, and the information is gone. Final Float32 result: 0.0 instead of 0.201.

Int8 & Int4: Integer Types

Both signed and unsigned 8-bit and 4-bit integers are supported with Int32 accumulation to prevent overflow. A notable optimization is the VNNI algebraic transform: on Ice Lake+ with AVX-512 VNNI, the native DPBUSD instruction is asymmetric (unsigned × signed → signed), but NumKong uses it for both Int8×Int8 and UInt8×UInt8. For signed Int8×Int8, we convert the signed operand to unsigned via XOR with 0x80, compute DPBUSD(a⊕0x80, b) = (a+128)×b, then subtract a correction term 128×sum(b) to recover the true result. For unsigned UInt8×UInt8, we XOR the second operand to make it signed, compute DPBUSD(a, b⊕0x80) = a×(b-128), then add correction 128×sum(a) via the fast SAD instruction.

Int4 values pack two nibbles per byte, requiring bitmask extraction: low nibbles (byte & 0x0F) and high nibbles (byte >> 4). For signed Int4, the transformation (nibble ⊕ 8) - 8 maps the unsigned range [0,15] to signed range [−8,7]. Separate accumulators for low and high nibbles avoid expensive nibble-interleaving and allow SIMD lanes to work in parallel.

// Asymmetric transform for i8×i8 using DPBUSD (unsigned×signed)
a_unsigned = a XOR 0x80;           // Convert signed→unsigned
result = DPBUSD(a_unsigned, b);    // Computes (a+128)×b
correction = 128 * sum(b);         // Parallel on different port
final = result - correction;       // True a×b value

Binary: Packed Bits

The u1x8 type packs 8 binary values per byte, enabling Hamming distance and Jaccard similarity via population-count instructions. On x86, VPOPCNTDQ (Ice Lake+) counts set bits in 512-bit registers directly; on Arm, CNT (NEON) operates on 8-bit lanes with a horizontal add. Results accumulate into u32 — sufficient for vectors up to 4 billion bits. Binary representations are the most compact option for locality-sensitive hashing and binary neural network inference.

Complex Types

NumKong supports four complex types — f16c, bf16c, f32c, and f64c — stored as interleaved real/imaginary pairs. Complex types are essential in quantum simulation (state vectors, density matrices), signal processing (FFT coefficients, filter design), and electromagnetic modeling. The dot operation computes the unconjugated dot product $\sum a_k b_k$, while vdot computes the conjugated inner product $\sum \bar{a}_k b_k$ standard in physics and signal processing.

For complex dot products, NumKong defers sign flips until after the accumulation loop: instead of using separate FMA and FMS (fused multiply-subtract) instructions for the real component, we compute $a_r b_r + a_i b_i$ treating all products as positive, then apply a single bitwise XOR with 0x80000000 to flip the sign bits. This avoids execution port contention between FMA and FMS, letting dual FMA units stay occupied.

for (...) { // Complex multiply optimization: XOR sign flip after the loop
    sum_real = fma(a, b, sum_real);   // No sign flip in loop
    sum_imag = fma(a, b_swapped, sum_imag);
}
sum_real = xor(sum_real, 0x80000000);  // Single XOR after loop

Reading Materials

Beyond the READMEs in this repository, there are several standalone articles covering different evolution steps and features of this library.

License

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

Download files

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

Source Distribution

numkong-7.4.2.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

numkong-7.4.2-cp314-cp314t-win_arm64.whl (503.8 kB view details)

Uploaded CPython 3.14tWindows ARM64

numkong-7.4.2-cp314-cp314t-win_amd64.whl (583.5 kB view details)

Uploaded CPython 3.14tWindows x86-64

numkong-7.4.2-cp314-cp314t-musllinux_1_2_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

numkong-7.4.2-cp314-cp314t-musllinux_1_2_s390x.whl (2.9 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ s390x

numkong-7.4.2-cp314-cp314t-musllinux_1_2_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ppc64le

numkong-7.4.2-cp314-cp314t-musllinux_1_2_i686.whl (2.9 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

numkong-7.4.2-cp314-cp314t-musllinux_1_2_aarch64.whl (5.8 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

numkong-7.4.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

numkong-7.4.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (3.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

numkong-7.4.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (3.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

numkong-7.4.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (5.9 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numkong-7.4.2-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (2.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

numkong-7.4.2-cp314-cp314t-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

numkong-7.4.2-cp314-cp314t-macosx_10_15_x86_64.whl (760.5 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

numkong-7.4.2-cp314-cp314-win_arm64.whl (502.8 kB view details)

Uploaded CPython 3.14Windows ARM64

numkong-7.4.2-cp314-cp314-win_amd64.whl (580.6 kB view details)

Uploaded CPython 3.14Windows x86-64

numkong-7.4.2-cp314-cp314-musllinux_1_2_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

numkong-7.4.2-cp314-cp314-musllinux_1_2_s390x.whl (2.9 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ s390x

numkong-7.4.2-cp314-cp314-musllinux_1_2_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ppc64le

numkong-7.4.2-cp314-cp314-musllinux_1_2_i686.whl (2.9 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ i686

numkong-7.4.2-cp314-cp314-musllinux_1_2_aarch64.whl (5.7 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

numkong-7.4.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

numkong-7.4.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (3.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

numkong-7.4.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

numkong-7.4.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (5.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numkong-7.4.2-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (2.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

numkong-7.4.2-cp314-cp314-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

numkong-7.4.2-cp314-cp314-macosx_10_15_x86_64.whl (758.6 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

numkong-7.4.2-cp313-cp313t-win_arm64.whl (481.1 kB view details)

Uploaded CPython 3.13tWindows ARM64

numkong-7.4.2-cp313-cp313t-win_amd64.whl (563.4 kB view details)

Uploaded CPython 3.13tWindows x86-64

numkong-7.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

numkong-7.4.2-cp313-cp313t-musllinux_1_2_s390x.whl (2.9 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ s390x

numkong-7.4.2-cp313-cp313t-musllinux_1_2_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ppc64le

numkong-7.4.2-cp313-cp313t-musllinux_1_2_i686.whl (2.9 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

numkong-7.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl (5.8 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

numkong-7.4.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

numkong-7.4.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (3.2 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

numkong-7.4.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (3.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

numkong-7.4.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (5.9 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numkong-7.4.2-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (2.8 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

numkong-7.4.2-cp313-cp313t-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

numkong-7.4.2-cp313-cp313t-macosx_10_13_x86_64.whl (760.4 kB view details)

Uploaded CPython 3.13tmacOS 10.13+ x86-64

numkong-7.4.2-cp313-cp313-win_arm64.whl (480.4 kB view details)

Uploaded CPython 3.13Windows ARM64

numkong-7.4.2-cp313-cp313-win_amd64.whl (561.1 kB view details)

Uploaded CPython 3.13Windows x86-64

numkong-7.4.2-cp313-cp313-musllinux_1_2_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

numkong-7.4.2-cp313-cp313-musllinux_1_2_s390x.whl (2.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ s390x

numkong-7.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ppc64le

numkong-7.4.2-cp313-cp313-musllinux_1_2_i686.whl (2.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

numkong-7.4.2-cp313-cp313-musllinux_1_2_aarch64.whl (5.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

numkong-7.4.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

numkong-7.4.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (3.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

numkong-7.4.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

numkong-7.4.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (5.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numkong-7.4.2-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (2.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

numkong-7.4.2-cp313-cp313-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

numkong-7.4.2-cp313-cp313-macosx_10_13_x86_64.whl (758.4 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

numkong-7.4.2-cp312-cp312-win_arm64.whl (480.4 kB view details)

Uploaded CPython 3.12Windows ARM64

numkong-7.4.2-cp312-cp312-win_amd64.whl (561.1 kB view details)

Uploaded CPython 3.12Windows x86-64

numkong-7.4.2-cp312-cp312-musllinux_1_2_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

numkong-7.4.2-cp312-cp312-musllinux_1_2_s390x.whl (2.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ s390x

numkong-7.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ppc64le

numkong-7.4.2-cp312-cp312-musllinux_1_2_i686.whl (2.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

numkong-7.4.2-cp312-cp312-musllinux_1_2_aarch64.whl (5.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

numkong-7.4.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

numkong-7.4.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (3.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

numkong-7.4.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

numkong-7.4.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (5.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numkong-7.4.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

numkong-7.4.2-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

numkong-7.4.2-cp312-cp312-macosx_10_13_x86_64.whl (758.4 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

numkong-7.4.2-cp311-cp311-win_arm64.whl (480.4 kB view details)

Uploaded CPython 3.11Windows ARM64

numkong-7.4.2-cp311-cp311-win_amd64.whl (560.6 kB view details)

Uploaded CPython 3.11Windows x86-64

numkong-7.4.2-cp311-cp311-musllinux_1_2_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

numkong-7.4.2-cp311-cp311-musllinux_1_2_s390x.whl (2.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ s390x

numkong-7.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ppc64le

numkong-7.4.2-cp311-cp311-musllinux_1_2_i686.whl (2.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

numkong-7.4.2-cp311-cp311-musllinux_1_2_aarch64.whl (5.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

numkong-7.4.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

numkong-7.4.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (3.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

numkong-7.4.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

numkong-7.4.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (5.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numkong-7.4.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

numkong-7.4.2-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

numkong-7.4.2-cp311-cp311-macosx_10_9_x86_64.whl (763.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

numkong-7.4.2-cp310-cp310-win_arm64.whl (480.3 kB view details)

Uploaded CPython 3.10Windows ARM64

numkong-7.4.2-cp310-cp310-win_amd64.whl (560.7 kB view details)

Uploaded CPython 3.10Windows x86-64

numkong-7.4.2-cp310-cp310-musllinux_1_2_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

numkong-7.4.2-cp310-cp310-musllinux_1_2_s390x.whl (2.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ s390x

numkong-7.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ppc64le

numkong-7.4.2-cp310-cp310-musllinux_1_2_i686.whl (2.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

numkong-7.4.2-cp310-cp310-musllinux_1_2_aarch64.whl (5.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

numkong-7.4.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

numkong-7.4.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (3.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

numkong-7.4.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (3.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

numkong-7.4.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (5.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

numkong-7.4.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (2.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

numkong-7.4.2-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

numkong-7.4.2-cp310-cp310-macosx_10_9_x86_64.whl (763.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file numkong-7.4.2.tar.gz.

File metadata

  • Download URL: numkong-7.4.2.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2.tar.gz
Algorithm Hash digest
SHA256 69cd56e88c46b73c7bbe30406f2ab8a7ffab5413ba63952a063eeef7e2c49e13
MD5 151a24aaf771765412f34301c97a8470
BLAKE2b-256 012d80657337e6910f06c276355f88e65bd1eb8563f70dff65192222381a1a16

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2.tar.gz:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 503.8 kB
  • Tags: CPython 3.14t, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 2c3d2cc812d71008e38a026a92a70be47793543088ce3f096a5f053a7e7994c9
MD5 94d0e8c68c6598c64751c3817dcc78cd
BLAKE2b-256 92f93d099aeceeec148d0bbb7103d53e44fd430b3e19f419e6d18e20e3f5c666

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-win_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 583.5 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 44318fe2bc4db28ddfa08daef22f139fd1425b6d316c3486d3c7400d0066b70c
MD5 0bde18a3fe83df703057afbcb9daa045
BLAKE2b-256 f9279d5a4e1a0f317b45f993437f7c4688b26bfd7c90bee0828c260dd74093ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-win_amd64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6360b68933e3718c8149e5b4c213a8eed5d1408a455a8c8d32b3653c71a9a667
MD5 eb71d65b830b47b0fdae0f19fed38ac5
BLAKE2b-256 3713124354c04e228353e4e0d44ae3811bb0ffa627ed9febb36c9be93fe8d873

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 fd2ead4a0955d75d553722ff9e3e7a2b0d479b4c0bf70d74686d9e94d7c0dfc6
MD5 502d639b4b39094ca72d8de810f34cb8
BLAKE2b-256 5c112de9a8ea5f85903c7d7981a75b438236be5129c511c7ff297b27cdeda216

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-musllinux_1_2_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 32fa4153c141402846aecc76425c791a1c492e6dea36328d4c21e2cc681be166
MD5 ff38bb1c86f08e2deaaa0f51965fbd2d
BLAKE2b-256 61e1414958c37c7f0bdfdeb8e8941aa3b8417868fe8aadacd7e2f7ed53a27449

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-musllinux_1_2_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 eb07beb5b7a908609f6ddbcdcdbd5779f01f1b76bb1a90991578f834dcf09bc5
MD5 b33905a3971cb08a33f3db4cfc1fe10e
BLAKE2b-256 4d082bdfe22a4577135585ecce76920e4f7b9c63e995f88a4ff0ef4a98dc1f27

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-musllinux_1_2_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d97371740ab59c23eba044217f96bcade5bb0d38c8bc3adf36607ba9777142f8
MD5 464c9928d77172ee16954614bc6d0cb6
BLAKE2b-256 c8367943858fcba757ee28a1b7a6dcea2569aa75a3949246415682dfab110e84

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fd9a75ed0bd6e0eb028f92dc9130a081647ec6cdf0dd74bb0aaebe98dd3ea656
MD5 5adb52f24818379f8bec313c114a4a7c
BLAKE2b-256 6691fc6437c9afdab4b7a8c86189edd3df09947be9dacf70149692dbf6d5ae09

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 90bd824bba9a51e96f9920ffb02b95e86a5fc0f64a9f3687c8201de6dfada093
MD5 543857865f0f69834973bed041f18c9e
BLAKE2b-256 82a419153af84e4ec847a7c3578a0f398f1230bb4e8cb5fee96e0dd184c32b43

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 c161d542fa001823587996e7493964e86869b94aee922c7cf33dfbf1213ff04a
MD5 c408025ee96443f45a71ba50098e832e
BLAKE2b-256 2378697d57d43ad78e7d7610fd72a76f13d894aa20ad677afce3b9061937c32a

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fb316795033ba6860090a43b60917f2ad691b6008baea73d19456e162c2da913
MD5 55246587d7e0f73a4f1e284271b6144f
BLAKE2b-256 080dde4ee152951454cddd04c6934da954e013a07dafec5bbefe142aab37c2c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 93210db3990358936f51b646a7f57741d37219030e8ac5ce243e4877d8b588a3
MD5 a855fb770141d820d7d0039c04c26855
BLAKE2b-256 79134973e9a7bdc85702ace31f52e8cf5ed8f3c8353e86ec2f9b6cd02af062ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 09d44570cbb6eb636fc83575850da75d42cdc5b36ae0c358e84ed90be2e94425
MD5 90613fb3903fa6de86a5925721aaff28
BLAKE2b-256 2c1428f5edd85c1aa13e6d52ba3ebff4025fc8bb89469e46e58b380324fb978e

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a951fc92765728edeb32da85d12340e4fbcb8e2efb8a78ea23a5d9fe49d9568e
MD5 117ceceed4e0840b1e98fa34f20e46fd
BLAKE2b-256 5d0ce87d42fdba7b3cbd24fa88e7d6e4e97b9a00ded112fa2959e4cd04098e18

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314t-macosx_10_15_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 502.8 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 5a80a2d2cdeca4099f6e439bf148065fca0eb6da1101d404894ea7d72f03f825
MD5 0c5606dfd8829797a40d89262d0b51ce
BLAKE2b-256 b76c1a27ed7e910dc220b5ceb171e1883fcebca9ee3fdde8123c4d2b44435b80

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-win_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 580.6 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 265a494340bacbdacee063ac61ad72ccf782dc29260894c99e4e993ebb5b5b36
MD5 cd6a17650077975edd420ba4911be033
BLAKE2b-256 36dcb332503e7654dae42d3e84407909486accee04f701b9e1cbd564f9ebbbff

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-win_amd64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1c46c3ff24c3a9d4219fe748cbc23a79f4e4a859def9f6e1db4c71a6f166904a
MD5 3b050ef5c4073a4234a22d4ce1bd2be1
BLAKE2b-256 1b542dc690dc137871a1610cff2bf1c84326ccb048123b1fd3cc6224cafc7cf0

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 7e11de726e355cc64ede01805b2fe714a29771abbdc4eff23bb51814a0c6b5bd
MD5 9e769fc7613dc1962ba69176213525cd
BLAKE2b-256 7b0fb921fd37c511821070f768759cf06dedd567cae295f84fcff4a5ca84dea4

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-musllinux_1_2_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 8885c4b5bb44eefae1aeb16f6eb9fb386c9a50031922391bc47e3832848dfc80
MD5 6535c420107a8bb650b52444819232d5
BLAKE2b-256 031fcfbaefe122ab8387c3549b4570c467720d73bbf12c4dd4cea772118c4882

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-musllinux_1_2_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 614fe4b15d144b5837c89de9526a7bacd72932569264c76148b2aae870076ad6
MD5 ed7015e650491bf71f1f0858b74d6e72
BLAKE2b-256 031c6135140dd336ba8613bfe4c767a6f930d89d3625a157c25372272809d423

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-musllinux_1_2_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 918ef281e82cf151e95b0f0795ac6299024fbd232c72f0c961044732e61df583
MD5 bfdf525ae3ee63b1f6a8d3e5be62e1e4
BLAKE2b-256 241734fa4aa4dd013e2d6bbb23cfdb7d4efb2146b87db7e73083a1b556cbee00

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2379b540c016c29630f4c357484dc68f33ef07d61ad8458df7a975c6e952f69f
MD5 f171feb472f4b9438f4174e812fb015c
BLAKE2b-256 e94bb3352775ae77f8734a3e051d2abc54fd075f99ea1280d96f455f6f206003

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 a9deade52d4af1687aea7e2e886265e300ce5bd57e829aee4adb112665d814c6
MD5 63ce49bc2d79970014111836bf1ed767
BLAKE2b-256 4887582ec132cf3da839be64604ee677ad4cc4c121608a26027fec8049ba7351

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 f578305a3b266053614f9d156087ef3a0db57f4fac1b530982fbe47bfb632c0a
MD5 750984112cccaf0bec073ddb576ac38f
BLAKE2b-256 d138ec2549bab8e439e288302c32d9fdb6948abb1c96dcefa866fec0a387c214

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0c52fbe4fc1dde19b0d248e82de8165065adae64b1a70009f1924434e05f8b17
MD5 21406d7b6d1ac5f811e580d6026e9768
BLAKE2b-256 59adcf1625129ee6fd75671d4969382578a2e1d1901bdd763c584499ab506af4

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 3c3e5e511fa03f82c58fe29afda2864f600a49f7557a0cd83157d4430bfe4f87
MD5 891b26595d9c2b8364129775a81c5aee
BLAKE2b-256 2e9ed0a09c7cff3b1087066a6595ee688a847db0e5153da8eb2ffdce60e209f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c63e83aede2269774a18eb6eea4d12101c94d35df1a7f1a553a20d9bc9c72fb2
MD5 0fa269c2ec0415a1d3f4153a60ad4c6b
BLAKE2b-256 f338aa4e361a985ae98c6f6328cf3b028aa9cce3749107fa441e1590dded169f

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ffeb49aee2d4f4094cd2db1fa9528ac0275d2a33ca6f6d3edb95b8c1f596234a
MD5 b689cf7eb3facd8de66258d3d1d5ecc1
BLAKE2b-256 a2b895df028f336d6b91e1fc1df1007107fc56d12506a746551c97cb9af3be1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-win_arm64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp313-cp313t-win_arm64.whl
  • Upload date:
  • Size: 481.1 kB
  • Tags: CPython 3.13t, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-win_arm64.whl
Algorithm Hash digest
SHA256 87556013b55ce3341f644a855c0cf6d03d9741c0e0868dc1257248775a96296d
MD5 a79d850cb61e9e3d44fd8a70993d7d73
BLAKE2b-256 da9c033cbeca1afb8a86d66fbc2b62811ff67031dda0d1a29dbe7dcedd5d621c

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-win_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 563.4 kB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 58dd077d236689ce337080f71255429a8ffc80e705329fb768e99a72eef64528
MD5 87dabdcfc79e84d35fd8416f04b5d826
BLAKE2b-256 493b650a7f77bf1c0a83cbc679a4e4cb46a0560691054966146ec42060a95570

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-win_amd64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1065d1ec5112eabd8322105b584bf12ce61f9ab9162dadd41a19738de3dbc0d7
MD5 c049728f1e6d3304f46a5372effb0929
BLAKE2b-256 d5366e1392d413f2e20569c3454f5a8caa50d1e77c034117319655e432534b56

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 dfc91f67b6d81d1c8c61c15f2676872836eae3064c7a001a68f232df5407827c
MD5 d560c798f0a008769591486bab5930e5
BLAKE2b-256 4039bf668e6e2098b6a4b7ab595bdbe0c745bf8c5ae91a9a33daca9344c08a03

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-musllinux_1_2_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 18aee0ffc2bdc81c750bde7985712de3f0403d3d5da04e5c7e7d65f5aaa7f9d3
MD5 09f1b1c83f87ebac577bece92c6c2e24
BLAKE2b-256 1795ed38fb3c02aab2e9f4e2c54953404845ab48691afa40af5728a9030afef9

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-musllinux_1_2_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 bdd4153ecaf7d86849645060a6231e46cb171b467af5f1b9a486fe4253edb0b8
MD5 35ea73d8bcede182e2935881e757acdb
BLAKE2b-256 c036ab6e4978283ca55674147ca9dc929f977f5c57136824a94041465c59423e

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-musllinux_1_2_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 108b624375376dac283d3e467f598fc548569c19c5a8049f7d8ebe299eb48c1b
MD5 0846f32780defc59398de91bca2f4b5d
BLAKE2b-256 0667a4d049f4019c75dee04321631eaee21ea5d7e42014bfb181c6ad5f29bfc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c21de2538108243b87a9e2db47776ed17e26746fa7e47d8547ef0e5195acc154
MD5 c2e095c795ceb40d3d10a332d2b6372c
BLAKE2b-256 f6d91809b898d551cdf0a28e5001913e766ba7bfcf876e1153c2f4227e291497

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 8feaabc84177d397e3d7eba8d01c28e5a0234fb68f934c4a5e4b5d45c90894b9
MD5 1b70fc8083a04e961eed428ad94ad171
BLAKE2b-256 686363147d288fbc9f4b73361d1a5b50471f6efb1bae75f3d579b6551f4bfba8

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 867cc9f9bcd1d351deb633e3b0b9ec41a0cea889e97e24ac5d017fa0c0cbd32e
MD5 547d5049e612afae547302f5c69ad54d
BLAKE2b-256 199e1877f4e802bf287a423eab88f1890da3d1ae51aa4405b33312a4e1ff9152

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5a791eb0f31e9a2b4280a296cc0e289fbc650587e8c6a5e2fa9b765fd447e721
MD5 a499299b7ad2b2cb4dd8ebee57a58e06
BLAKE2b-256 6bd212388111425b2b406ebf6addd740828d3de1bec9bab0cb6e4378f4499ec4

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 c48543641e6af3e4ec8f291d01078d7329904aa93665821284203ad1c8aa6e29
MD5 a22d87c2fcef6dfa7725727384533422
BLAKE2b-256 5a3bba1145549d78741c1bb3b9d25282b4887d5ac154ced76fc74069f38adb74

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6237b8d0e7b9271ccb73dc28076317bcd912d0da6b28b050a0ccc6ddbaf935ac
MD5 624219772d9f36ec1654b340bd91d042
BLAKE2b-256 dd7dee3732e5aa2998b7775a8758bf21712f0c57a7bf24cc9cd595d702be8a37

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-macosx_11_0_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7a4a7bdc4ab35cbc3b21eec02611c5e30f5f07932ee74065ac5c5aa26252c3c2
MD5 a54cf4bffe00d978cef3d88f2c2dbbe4
BLAKE2b-256 82be667fadab64c478fead98549b67581414dda7960de2560a1956b261c3edc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313t-macosx_10_13_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 480.4 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 a933d48d8ff605871a5629869c4dae931ad2f8fa3d82c8a78ec363ff4bae0921
MD5 959248021eb69aa58eef889f64169050
BLAKE2b-256 1bab96dc7834df820d71e80b939d465c1d1a06815bd48f33ffcfe887671fa458

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-win_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 561.1 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d6de2e5f5dd86fb9e074f3da245aa8e2142f9884713793edda5cdc7372a4d180
MD5 e56be6f9416b76937aa53bf395ac6bb5
BLAKE2b-256 23b17c06ab5b5a1d0a833fa88ab729db3a920c3aa3c15a6c83b682bb2697dda4

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-win_amd64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b81fd0c3b8b0911f5b25f9b2a4d9761ad1a995a169aaf4b79531787be11b2733
MD5 9dfead5e18c8d0b67c167ab24b355a69
BLAKE2b-256 b75d59c238a45861b62ad3f1428c3f22ca58416fe5d69f578ac2660669c2ed16

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 631a8a4576169aa0c6fb2ac4d3c4a15bcc0de3794a6a24c6a8ce1a4943d84577
MD5 d7733c43eb0ded0f6a1baf2990eabed1
BLAKE2b-256 c4946eb72ff658e199002ee4051ed5ad546e894699773df0f7fd7498d17a1023

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-musllinux_1_2_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 a5dba220842e255f7f2c6ff2521bf5bf53b1dfed45cc8e195c857491550c3c73
MD5 ee6a2a3ff3409e9fba707d799601456b
BLAKE2b-256 c3e4ae5ba85c019f21ee566909e8eae7c1d5cbe0000b29f4da940dace46a6969

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 81923de053591f0ebae21c78f26a5847c4ecf7d30e37d9c7f80de256e970e0b3
MD5 a3d0396a0d982086b3fc8cb1ca9c8fbd
BLAKE2b-256 0367454a3f0ea48ade22dcfa4982af59a52f123f02dbdbdf2606a5d3640de523

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-musllinux_1_2_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 38fcc738f4350e8515341fbeddc943a031a761952de5d1cbf7f4b61708bd0e72
MD5 754b1c06968af93178eed6a19e26d0bf
BLAKE2b-256 ae81081df46c7697e5403025a8c91fa132f1f911f0d10a74eb5ccfe85a6f8b8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1fa7e23c510c4b474745483473169077d74364784085beeeae2bf5187958c8d1
MD5 7f1bb6e147a80b7a90ffc788895c5c33
BLAKE2b-256 e34859d76dc4c3fd3843a99528913a7133337f6a6d84d6d70ec75e729e440f4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 c0c450736532215054207abe89657fa64c1e1ce688de5e0fd3e6673f45716688
MD5 1f7c658517eeb6fcbc624088311ccf53
BLAKE2b-256 ef9c31cc4e7e907aa7df2af609c9aa9297b3c8efe171ff42f873921e12bec88c

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 961398f5093890208c743bb36d69f8501add2e809add1038f71e6b4c6f4a7341
MD5 655d82dac9d786690ff03c54c72d143a
BLAKE2b-256 6d43ab16d9eb0db38c22c82bccafe5169ae80063712d43b288fcaa798c5e6ed1

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ebcaf93e95550803fd7ce54ab2dd712e19b55c7c0709ffe41f9365aab9205e67
MD5 3a7d075445a9869c276bbd0368221f1e
BLAKE2b-256 4501950a0e88eaf631bb4e2fd5b1451912869e26f45f1670ff03684440987b37

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 64d56b0eec57ca2eaabf469479db73cba90baaee6550cf925376259b057d0e97
MD5 9c803b62a9a8f3ee717d10aaff6ddbdd
BLAKE2b-256 5aae47f12e8f8d39b382352f9749348940d5230c1d1aedf01cd106d4b925bc8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a8bc2562949732d98ecc44f6af8d44d1e1608077ec4c5c82ea684d04dee26e9
MD5 309b8449c354b99a976c08639b0b939a
BLAKE2b-256 6c70c8a61d015cff77fdcd944fffc13fc8d4d48e65aa9884d3dac6b635792557

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c1c22c9035e8ca97b3f36d89f5399e5d7ed8e8a67e86cba7fa6cc6f0f72733a6
MD5 0ad03e1643e839792df3b3ff40d32525
BLAKE2b-256 7a329432bc65da52bc23aecca9df507c16a6438fe15d10c4e160ec083f736538

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 480.4 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 3d5462f5ff7e51e8cb442aea49a67ef542c7d6562e3d2fdd7dac6c41319cb671
MD5 6060bb2218b99f118efad79645dd1979
BLAKE2b-256 02967ee7ba7b6fd2a1597cccb586957b30f9efd7de6b04b8b8e91ef27a13fa4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-win_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 561.1 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cb476d625c27957ea68f5a255e3a522da43bb539d79b997f9fee02cbdda66630
MD5 1777853dc0002f6d5b06c61743ff9443
BLAKE2b-256 69d1cec7ef6fd87f4c0a96df0c509ac0c88b1503c1d1a7fbfd9871a2db76af8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-win_amd64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 469ef8cc6eaa89b9e43eafbe3037ff131621a0fc1fe21d129dba1b68c17cf9e5
MD5 edc0996b330bed8890652870809758d1
BLAKE2b-256 eeb4022f258bd04a47c53b2de36704901ad89dcfdb4371cc512b9556e582ee46

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 a8b8712cd9c794f3e26d04807d0e7344dc82b172f7d1e72e3336de065c702b7b
MD5 ecf782cd1c72493842b1fd3568a176db
BLAKE2b-256 6355f7de7d408f706d8c58f6a5823a488b98bf5f2559085a9d786add57ccf89e

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-musllinux_1_2_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 ebe0a20131531278bf88ad44e84c86c83a90514fc649be789a325bba893c0972
MD5 3eab1cd04b067c2ed50daa8467602e91
BLAKE2b-256 83b25ae20c4f9c846f0c4ea85bd36e6e3bebd253e8fc358194dba7b8dc4cb74f

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 0160425601a77d2478d95c055635e4ec5db4ca5e810ed7ab95d78b7402c13591
MD5 e27bf882537e0aa16b04b8aceb66483e
BLAKE2b-256 d8b73ef6b5e96e0f99f724ddd2f35e6040267d721864f89a1036b656212f72bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-musllinux_1_2_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4aa0efbedc26101675045d9553a36cd8d9a701df2654c1ef922d1f12edcf95be
MD5 3ac2641f0e39a79fb337f348b33da43a
BLAKE2b-256 4bb29aef24c4d2d3e34a8793a0bc29423255599cf613b4ee5eda2f5026eedcc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef7b4d4471770f60f19a8294f5d2b48509a9bbe9d4d123a5015f31cbc12a142f
MD5 c12deac3f14d21782ef6e8e137e94c1c
BLAKE2b-256 25652c271abbc5d6c2eb982e5e527ef020b44c8dd42f70f695e7d57769bfc3ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 56f7a05ea200619e64b10ac595df37cfd2a032bc4f8ec1577e4729c8dd987a3d
MD5 69796853d5c068d6c6d5e536058eaca7
BLAKE2b-256 b5410d2a9169dcdc271aa22b228ffb354462d2c25bbad9343556ba860ecf2456

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 a90cda82e740bb9e618751f8f5572b5f78920300d7fd1004ff6794f0bb9bc257
MD5 821bee98552b61b4cb45ba79209be2f6
BLAKE2b-256 3116f7d9b5a59a7cbc19b2bfb969a982246b9adf7bb251a6db0734610106094f

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e3d24000307ae82bca2e0f494a3bceb1535032d2fa45a9354fc1b4efa7bdc2c4
MD5 b1d4ee60337a175e1ebe71e550de0b92
BLAKE2b-256 dc2344714510ebb1d3ec0f830ac81d18324d5f82b6fb3eb4ee1248541af54f89

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 f1efb8975719a1e558e0ee3e2325fba3a130d41798ff2be94f24385440570542
MD5 b15e5e7a5192a5adebc083f0b934791d
BLAKE2b-256 6be17c6f737eab1347460532645051493676ce8624ba4dc32ec5daf60aaaf897

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 900d48e1ab7ad7c01350e4123a9b88ea772af2a70efa850778a5829ebc1e4e40
MD5 a2cd84066043e75dbf7a60477c663c1e
BLAKE2b-256 3c9b34dd2ef0909a2d6d1dd43fd75697af7d933e5ba5a1e9c9c5d57a7f0cfff0

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f624974055814603b4a493bd4357c75a7940d3c56e386c0167696581264eaf68
MD5 370cfebe44c531fa470d6dce172908ed
BLAKE2b-256 a72ce3e89f3a5fad42dc449277bc8d0de48e70035b489a5d0ff08bb2c7f6a4c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 480.4 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 18738eae8f4d602c9525168bb48651aa81cc0f585182339c598ee63af0a3e882
MD5 8e16b6caa09a598e5fef59520bc6b879
BLAKE2b-256 7748d6b301b87c0267503e3710ca12ba7464c940ea8672819faf57952f4390a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-win_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 560.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5b7b30ad2d992669064e71aaf9f54763a43ecd52c41ab1963d12dfc375fe8c32
MD5 cb691b31bcb9b33123a962faa45aea90
BLAKE2b-256 07da3cdc5339e39ae50f2bd8bf830754d0aad04b93286fc00b2fc1ab423b6f2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-win_amd64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6b81d547cb1248a8e98f3a5e789c48000d62c35c59cd8a21d3ef6eca27f52379
MD5 9e9564ee1d580a92ebd4032b3fb303e7
BLAKE2b-256 71292ad5fabfa22a31b2f8c18768006936b0410932d34bd642d199e50035bba9

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 e4412ff1e4478c9b9c4e842b3bcbe99bd64f3a3e8ddff82e3cea70bdff2ee276
MD5 f81eae682206460f57cfae75449d1e5b
BLAKE2b-256 a8c68f039b989a6c4a398bcc3f31e74854bb69b1f3a9f988ebf30e5f8a242a28

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-musllinux_1_2_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 f791b33193498756ae88ff1359624eb88d54a547623879a025d88cbabb9faa76
MD5 8723e549f8354b6c817c2c73f34c68b6
BLAKE2b-256 a944b59159398de7d8a90c8266d9335c7e398fcefb41633930723d01f7a706d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d758c4980988cd75648057c6dbef1aea66acfbeaa5639bded8731556e3b465f6
MD5 215e540c32cbc97c666997aeb7c02290
BLAKE2b-256 5ff983ffcd94d16791b66f45f555be834ee4abf029ae1c4969438e5ffbabe876

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-musllinux_1_2_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2f421fc55ed81a40d2731114209aa534f6a9f80b9f437cab1344d093a1a4bd19
MD5 87018e4e91ef6118652da72b4fb0f153
BLAKE2b-256 dfa2629cb432179396fcc1b851ab5ac0e5b1c8330a7777b574ac9286533c3ee3

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d566cabd7cb13183fd4358b5efb9667807263655d381ed09440661ff8868f053
MD5 afa509b1462d1cd2fe41dd073efaeb1c
BLAKE2b-256 6c7d794d99b5351667b347451094becc7883deb1660691b53b15c8b5f2897ee6

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 bbf94a28ac8b19171a46fcb74c48839912d9f0c68dd4f97801f31fa8230a3860
MD5 f8dc176d73c10b5d783eac9f7aea03a2
BLAKE2b-256 a0b2d081c73891134bcb1e7dc70ba5f9d29c91bb6122c0595a3cc66b7165a54f

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 9005af762af5af972f25038b33dd6386602e6878c98e5049bd83f957f6fc91e0
MD5 229aa749da8d623e93aa2f52e22e723d
BLAKE2b-256 adf6bfe88ad99e415342b97569e90a25415298e535e916a16d7eac0c78e57022

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 313c327afaf521b5e365e21b2a2071542030f7d7dd36381e66e91c559478ca3c
MD5 4b223622095f8876c40eb4f5ee7eb158
BLAKE2b-256 4dc185e66ee4dcd0dfa36f0fa0d0b685e2651fcb53d1194a4e8c3b21036827ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 f207748cacd9ff6a28c5281aef96d699f59e6719ef75f25ced994d86b688131f
MD5 a93ce8cd9b0c52d926557f2b4e63259b
BLAKE2b-256 0c734a0290c7e774a1eb85cbee3b2174c1f91ffeed705c92132e7779bb249d80

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01a648b50110b840729cd400d52f7b6e6e49724d60b7236bfa35da23f33755a0
MD5 b2f7c010780280dd2674198910a12953
BLAKE2b-256 e28e8fa29dc3a371ba067b787474ce0f5c005d88322b1c7bf9b4d2518a58f548

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0cda861fbd54af9ff35c45226f8a72801782afc7164b52032f4afb22a425fd03
MD5 6fb63702a3236058e67f94ce72f5ebb9
BLAKE2b-256 74c76e1d40091c7185a77e5f48df73ac02f98f743c08c1e4328423ba6da5c9c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 480.3 kB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 ef47ebe42a1e6962307746291c2b7ae55d21572b55aa12735489676f4b06d0f2
MD5 f19966e57369ea32219501375eeb3c87
BLAKE2b-256 427f3d444689529d4a457a69f3a4d1c702696f5b69f0ed5dbfd5402d24f599df

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-win_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: numkong-7.4.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 560.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for numkong-7.4.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c405e202184a30131e5c781063d23b181d9ed2a36d7f037c6e425b14c3a7f8cd
MD5 e61b4efade14644bf3d245e4d6d3b7ce
BLAKE2b-256 ac79dc60f21a494492d5a622dcdb61346be9e0d5e52a2a8066c6fb965c3e3cd2

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-win_amd64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 51d97ff4cbd2872be0a9072103bc9ea3bcf89e78d136e03fe3dad622c80acae3
MD5 d6e2da4ebc42ab3f1666acfda03d5373
BLAKE2b-256 7076a1544fad0dd7e9e51a4930d25bf0003f35c81bcbfa9ea10d00c884624a7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 183b21d6121ae734d88bac2fc08d0bbb5d94745e829087eedf3fb07fad7e447f
MD5 b70d15ac07b5cc5d42db73cc1b24b66b
BLAKE2b-256 ab7e6b8708344b1e67d33c1e3b07581c942ea8143b8a9d988ab6a9f73f5e9a69

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-musllinux_1_2_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 94555ca9d15275559185fffcb65083026c37284c0f05a0ee05c15961105a4b1c
MD5 06d97372ff3c1195de2322689633d73c
BLAKE2b-256 c731ff7070b9163ab96fe19895ab6e3812e41df7789269ffc34dce6a03c5c62b

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f33afc3f56ef80403b284aec16fd857f5c865cfe15179dee0787086a68b755cc
MD5 58ef4631457f2e56b3e455ebaf1048d4
BLAKE2b-256 5e79fdc5633116e0006e5125ceb7a87c458968ab9f733e4e9171265eec63ccb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-musllinux_1_2_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d81b20397090e957e6140cb8d7bfc624be2318207bb79042bc5bb1a84c9e877e
MD5 32b893b98ade0db4d80ff06b1e9d57a4
BLAKE2b-256 5c40daa12e0353703969cc5fd78be9fda6b16ea17b5545a8eb670ebdfc23a553

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8647ad66ea7a0779f6bdb8164c2aac2681a35dd56a92ec8a032076fb00d94975
MD5 4d21a456a4fd7a0897da3161e87ae8c8
BLAKE2b-256 3e0001d918b4123e9fb485ddcc5d1b5582250d4d266d7c0f3a4ffd4337869cf1

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 5b42a5edab045ff416c0c9ab4a8cafa47631d7422e3942ede91b9a60ea4b1bc2
MD5 576ca551a85cfed0bb5b2c63b4674d32
BLAKE2b-256 1f2efa1f0f7819bcb39017bb67a6a1c90c9de95b73e0400312b50bbe4430133e

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 2074d2c03637037efa08dbe850d7429639e61474ebd99c3eac1ac8c025330839
MD5 f8fbe356234a49c7632e93f9dae88087
BLAKE2b-256 3a4c0a475e95bf56c925701da9d58ee1e87f6928bbb3e499aecaa17695a9eb5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4b1e0ad088207f2e489f252cebb8c4bd7157d87aef7a0be2429d880e302a39a5
MD5 e2219527a14438ad9f69cf2bdf212818
BLAKE2b-256 7f21b85b1e5583aca094fc1c382164455528f19e66f4137ff4cd667ddf596774

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 fa8b3293d599f9e355f4d7a1631c003916eb2fa6dbd4d8cf86ead6128fe55f78
MD5 27a866f8406721577c6cf9735b40e092
BLAKE2b-256 734813e66bfcd4b44cf44651fa24a0e5e2be345dc358640c87214b5f3f0c0ce8

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f50b738ce6fe9a75d73b2ae26e17eafb43bc6faf30ada87add6ec4776b18806
MD5 51a8e638fcd9d073ad5f49ade0e7448a
BLAKE2b-256 f9d46535135bb760417a88f5154603648ce9474a96621d698b54caf6b7fe2b68

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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

File details

Details for the file numkong-7.4.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for numkong-7.4.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dbcaaadeac795b31d9abd35a8af271209599492badfb0f58c054b60eeb34f1ee
MD5 0a772a28fcaef0220350334fb1eef742
BLAKE2b-256 8c86aa3f8ff46243c51d88e162f63baba9402cc5fbfb80a602be719bb803c32c

See more details on using hashes here.

Provenance

The following attestation bundles were made for numkong-7.4.2-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: release-python.yml on ashvardanian/NumKong

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 Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page