结构体 faiss::ScalarQuantizer::SQDistanceComputer

struct SQDistanceComputer : public faiss::FlatCodesDistanceComputer

公共函数

inline SQDistanceComputer()
virtual float query_to_code(const uint8_t *code) const = 0
inline virtual float distance_to_code(const uint8_t *code) final

计算当前查询向量与编码向量的距离

inline virtual float operator()(idx_t i) override

计算向量 i 与当前查询向量的距离

virtual void set_query(const float *x) = 0

在计算距离之前调用。当 operator() 被调用时,指针 x 应该保持有效。

inline virtual void distances_batch_4(const idx_t idx0, const idx_t idx1, const idx_t idx2, const idx_t idx3, float &dis0, float &dis1, float &dis2, float &dis3)

计算当前查询向量与 4 个存储向量的距离。某些 DistanceComputer 的实现可能从该函数中获益良多。

virtual float symmetric_dis(idx_t i, idx_t j) = 0

计算两个存储向量之间的距离

公共成员

const float *q
const uint8_t *codes
size_t code_size