/* If this is a leaf node, then do check and return. */
if ((node->child1 == NULL)&&(node->child2 == NULL)) {
DistanceType worst_dist = result_set.worstDist();
- for (int i=node->left; i<node->right; ++i) {
- int index = reorder_ ? i : vind_[i];
- DistanceType dist = distance_(vec, data_[index], dim_, worst_dist);
- if (dist<worst_dist) {
- result_set.addPoint(dist,vind_[i]);
+ if (reorder_) {
+ for (int i=node->left; i<node->right; ++i) {
+ DistanceType dist = distance_(vec, data_[i], dim_, worst_dist);
+ if (dist<worst_dist) {
+ result_set.addPoint(dist,vind_[i]);
+ }
+ }
+ } else {
+ for (int i=node->left; i<node->right; ++i) {
+ DistanceType dist = distance_(vec, data_[vind_[i]], dim_, worst_dist);
+ if (dist<worst_dist) {
+ result_set.addPoint(dist,vind_[i]);
+ }
}
}
return;