azevaykin ea2ef6975f Knn UDF for Exact vector search (#4524) 8 months ago
..
README.md ea2ef6975f Knn UDF for Exact vector search (#4524) 8 months ago
l2_distance.cpp ea2ef6975f Knn UDF for Exact vector search (#4524) 8 months ago
l2_distance.h ea2ef6975f Knn UDF for Exact vector search (#4524) 8 months ago
ya.make ea2ef6975f Knn UDF for Exact vector search (#4524) 8 months ago

README.md

Библиотека для вычисления расстояния между векторами.

Данная библиотека содержит две функции L2Distance и L2SqrDistance. Первая вычисляет L2 расстояние между векторами разных типов, а вторая его квадрат. В отличии от наивной реализации, библиотека использует SSE и работает существенно быстрее. Для сравнения можно посмотреть результаты бенчмарка.

Типичное использование - замена кусков кода вроде:

for (int i = 0; i < len; i++)
    dist += (a[i] - b[i]) * (a[i] - b[i]);

на существенно более эффективный вызов L2SqrDistance(a, b, len).

Работает для типов i8, ui8, i32, ui32, float, double.