aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/l2_distance/README.md
blob: e6d3b7ad41781f5f7825597325714128f282b317 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Библиотека для вычисления расстояния между векторами.
=====================================================

Данная библиотека содержит две функции 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.