barrel_vectordb_nif (barrel_vectordb v2.1.2)

View Source

Unified NIF wrapper for barrel_vectordb SIMD operations.

Provides access to all NIF-accelerated functions including: - Distance computations (dot product, cosine, euclidean) - TurboQuant ADC distance - Subspace-TurboQuant ADC distance - Binary/list conversions

Summary

Functions

Compute cosine distance: 1 - cos(a, b).

Compute cosine distance for pre-normalized vectors.

Compute dot product of two binary vectors.

Compute Euclidean distance.

Convert binary vector to list of floats.

Return SIMD backend info.

Convert list of floats to binary vector (32-bit floats).

Compute TurboQuant ADC distance.

Compute TurboQuant ADC distance for multiple codes.

Compute Subspace-TurboQuant ADC distance.

Compute Subspace-TurboQuant ADC distance for multiple codes.

Functions

cosine_distance(Bin1, Bin2)

-spec cosine_distance(binary(), binary()) -> float().

Compute cosine distance: 1 - cos(a, b).

cosine_distance_normalized(Bin1, Bin2)

-spec cosine_distance_normalized(binary(), binary()) -> float().

Compute cosine distance for pre-normalized vectors.

dot_product(Bin1, Bin2)

-spec dot_product(binary(), binary()) -> float().

Compute dot product of two binary vectors.

euclidean_distance(Bin1, Bin2)

-spec euclidean_distance(binary(), binary()) -> float().

Compute Euclidean distance.

from_binary(Bin)

-spec from_binary(binary()) -> [float()].

Convert binary vector to list of floats.

simd_info()

-spec simd_info() -> avx2 | neon | scalar.

Return SIMD backend info.

to_binary(List)

-spec to_binary([float()]) -> binary().

Convert list of floats to binary vector (32-bit floats).

tq_adc_distance(Tables, Code, Bits)

-spec tq_adc_distance(binary(), binary(), 2..4) -> float().

Compute TurboQuant ADC distance.

tq_batch_adc_distance(Tables, Codes, Bits)

-spec tq_batch_adc_distance(binary(), [binary()], 2..4) -> [float()].

Compute TurboQuant ADC distance for multiple codes.

tqs_adc_distance(Tables, Code, Bits, M)

-spec tqs_adc_distance(binary(), binary(), 2..4, pos_integer()) -> float().

Compute Subspace-TurboQuant ADC distance.

tqs_batch_adc_distance(Tables, Codes, Bits, M)

-spec tqs_batch_adc_distance(binary(), [binary()], 2..4, pos_integer()) -> [float()].

Compute Subspace-TurboQuant ADC distance for multiple codes.