结构体 faiss::FlatCodesDistanceComputer

struct FlatCodesDistanceComputer : public faiss::DistanceComputer

faiss::ScalarQuantizer::SQDistanceComputer 继承

公共函数

inline FlatCodesDistanceComputer(const uint8_t *codes, size_t code_size)
inline FlatCodesDistanceComputer()
inline virtual float operator()(idx_t i) override

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

virtual float distance_to_code(const uint8_t *code) = 0

计算当前查询到一个编码向量的距离

inline virtual ~FlatCodesDistanceComputer()
virtual void set_query(const float *x) = 0

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

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 uint8_t *codes
size_t code_size