结构体 faiss::ZnSphereCodecRec

struct ZnSphereCodecRec : public faiss::EnumeratedVectors

递归球面编码器

使用维度上的递归分解来编码由ZnSphereSearch找到的质心。这些代码与ZnSpehreCodec的代码兼容

公共函数

ZnSphereCodecRec(int dim, int r2)
uint64_t encode_centroid(const float *c) const
virtual void decode(uint64_t code, float *c) const override

解码

virtual uint64_t encode(const float *x) const override

向量需要是质心(不适用于任意向量)

uint64_t get_nv(int ld, int r2a) const
uint64_t get_nv_cum(int ld, int r2t, int r2a) const
void set_nv_cum(int ld, int r2t, int r2a, uint64_t v)
void encode_multi(size_t nc, const float *c, uint64_t *codes) const
void decode_multi(size_t nc, const uint64_t *codes, float *c) const
void find_nn(size_t n, const uint64_t *codes, size_t nq, const float *xq, int64_t *idx, float *dis)

公共成员

int r2
int log2_dim
int code_size
std::vector<uint64_t> all_nv
std::vector<uint64_t> all_nv_cum
int decode_cache_ld
std::vector<std::vector<float>> decode_cache
uint64_t nv

集合的大小

int dim