in lattices/lattice_Zn.cpp [47:71]
void VectorCodec::find_nn (
size_t nc, const uint64_t * codes,
size_t nq, const float *xq,
long *labels, float *distances)
{
for (long i = 0; i < nq; i++) {
distances[i] = -1e20;
labels[i] = -1;
}
float c[dim];
for(long i = 0; i < nc; i++) {
uint64_t code = codes[nc];
decode(code, c);
for (long j = 0; j < nq; j++) {
const float *x = xq + j * dim;
float dis = fvec_inner_product(x, c, dim);
if (dis > distances[j]) {
distances[j] = dis;
labels[j] = i;
}
}
}
}