Vector distances
Vector distance functions compare a fixed-dimensional QBit value with a reference Array. The precision argument lets the query use all or part of the vector element precision.
Syntax
text
l2_distance_transposed(vector, reference, precision [, used_dims])
cosine_distance_transposed(vector, reference, precision [, used_dims])
dot_product_transposed(vector, reference, precision [, used_dims])distance_l2_transposed is an alias for l2_distance_transposed. scalar_product_transposed is an alias for dot_product_transposed.
Arguments
vector— A native QBit value.reference— An Array containing the reference coordinates.precision— A number from 1 through the QBit element bit width. Full precision reconstructs the stored coordinates exactly.used_dims— An optional positive number of coordinates, no greater than the dimension and divisible by the QBit stride. Without it, the reference must cover the full vector dimension.
Nonfinite coordinates raise an error. SQL NULL propagates.
Returned value
A Float64 distance or product. L2 is Euclidean distance. Cosine distance compares directions; it returns NULL when either vector has zero norm. Dot product is the sum of coordinate products.
Examples
A one-unit Euclidean distance
sql
SELECT l2_distance_transposed(
CAST('[1,2,3]' AS QBit(Float32, 3)),
array(1, 2, 4),
32
)
FORMAT csv;text
1.0Dot product
sql
SELECT dot_product_transposed(
CAST('[1,2,3]' AS QBit(Float32, 3)),
array(4, 5, 6),
32
)
FORMAT csv;text
32.0See QBit for element types, dimensions and stride rules.