Problem / Motivation
Currently, the internal implementation of metric distances is scattered across multiple files, which causes confusion to spot and fix problem during runtime. Moreover, it's quite difficult to tell which distance function is actually being invoked.
In addition, some quantization metas are concatenated after vector data, increasing the dimensionality and making the resulting dimensions inconsistent with those of the original input.
Proposed Solution
1. Use a unified interface to select the best optimized distance function as per runtime march
2. Every metric distance function is coherently implemented in a single unified function
3. Versions of distance functions, including single and batch, are organized into separate folders respectively,
4. Extra meta is specified explicitly, rather than being mixed with vector dimensions
Alternatives Considered
No response
Affected Area
{"label" => "C++ Core (storage, indexing)"}
Problem / Motivation
Currently, the internal implementation of metric distances is scattered across multiple files, which causes confusion to spot and fix problem during runtime. Moreover, it's quite difficult to tell which distance function is actually being invoked.
In addition, some quantization metas are concatenated after vector data, increasing the dimensionality and making the resulting dimensions inconsistent with those of the original input.
Proposed Solution
Alternatives Considered
No response
Affected Area
{"label" => "C++ Core (storage, indexing)"}