Библиотека для приближенного поиска похожих векторов методом кластеризации.
=====================================================

Данная библиотека содержит классы для построения/чтения индекса для поиска максимально близких к данному вектору по одной из метрик.

Предполагается, что основной единицей индекса является некоторый документ, с которым связано произвольное количество векторов фиксированной длины.
Также предполагается, что для этих векторов предпосчитана некоторая их кластеризация с известными координатами центров кластеров, но индекс может использоваться и без кластеризации в качестве простого storage'а для получения векторов, связанных с документом по id этого документа.

Вектор может состоять из элементов произвольного типа(i8, ui8, i16, ui16, i32, ui32, i64, ui64, float, double), а список ближайших документов(векторов) можно получить по одной из 4-ех метрик(L1Distance, L2Distance, L2SqrDistance, DotProduct).
Внутри все векторы выравнены по границе 16 байт(даже, если длина не кратна 16), чтобы расчет метрик происходил быстрее.
Для поиска ближайших документов сначала используется поиск K ближайших кластеров, а затем для этих K кластеров мы просматриваем все документы, входящие в них.

Пользователь может добавить свою произвольную proto-структуру в индекс, где хранить, например, версию или какую-нибудь другую полезную информацию.

Подробнее про структуру и способы использования можно узнать в комментариях к классам TWriter, TSearcher.
