结构体 faiss::ZnSphereCodec

struct ZnSphereCodec : public faiss::ZnSphereSearch, public faiss::EnumeratedVectors

可以返回编码向量的 id 的编解码器

使用 ZnSphereSearch 通过编码置换和符号来编码向量。 依赖于 ZnSphereSearch,因为它使用原子数

faiss::ZnSphereCodecAlt 继承

公共函数

ZnSphereCodec(int dim, int r2)
uint64_t search_and_encode(const float *x) const
virtual void decode(uint64_t code, float *c) const override

解码它

virtual uint64_t encode(const float *x) const override

接受不需要是质心的向量

float search(const float *x, float *c) const

查找最近的质心。 x 不需要标准化

float search(const float *x, float *c, float *tmp, int *tmp_int, int *ibest_out = nullptr) const

完整的调用。 需要外部分配的临时空间

void search_multi(int n, const float *x, float *c_out, float *dp_out)
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)

公共成员

std::vector<CodeSegment> code_segments
uint64_t nv
size_t code_size
int dimS
int r2
int natom
std::vector<float> voc

尺寸 dim * ntatom

int dim
struct CodeSegment : public faiss::Repeats

公共函数

inline explicit CodeSegment(const Repeats &r)
uint64_t count() const
uint64_t encode(const float *c) const
void decode(uint64_t code, float *c) const

公共成员

uint64_t c0
int signbits
int dim
std::vector<Repeat> repeats