Exemple #1
0
void knn_recompute_exact_dists(int nq, int nb, int d, int k,
			       const float *b, const float *v,
			       int label0, int *kp,
			       const int *idx, float *dis) 
{
  long q, i;

  for(q = 0; q < nq; q++) {
    const float * vq = v + d * q;
    for(i = kp[q]; i < k; i++) {
      long j = idx[q * k + i] - label0;
      assert(j >= 0); 
      if(j >= nb) break;      
      dis[q * k + i] = fvec_distance_L2sqr(vq, b + j * d, d);
    }
    kp[q] = i;
  }
}
Exemple #2
0
double fvec_distance_L2 (const float * v1, const float * v2, long n)
{
  return sqrt (fvec_distance_L2sqr (v1, v2, n));
}