MCPcopy Create free account
hub / github.com/EdwardRaff/JSAT / searchKNN

Method searchKNN

JSAT/src/jsat/linear/vectorcollection/VPTree.java:592–617  ·  view source on GitHub ↗
(Vec query, int k, BoundedSortedList<ProbailityMatch<V>> list, double x, List<Double> qi)

Source from the content-addressed store, hash-verified

590 }
591
592 @Override
593 public void searchKNN(Vec query, int k, BoundedSortedList<ProbailityMatch<V>> list, double x, List<Double> qi)
594 {
595 x = dm.dist(p, query, qi, allVecs, distCache);
596 if(list.size() < k || x < list.get(k-1).getProbability())
597 list.add(new ProbailityMatch<V>(x, allVecs.get(this.p)));
598 double tau = list.get(list.size()-1).getProbability();
599 double middle = (this.left_high+this.right_low)*0.5;
600
601 if( x < middle)
602 {
603 if(searchInLeft(x, tau) || list.size() < k)
604 this.left.searchKNN(query, k, list, x, qi);
605 tau = list.get(list.size()-1).getProbability();
606 if(searchInRight(x, tau) || list.size() < k)
607 this.right.searchKNN(query, k, list, x, qi);
608 }
609 else
610 {
611 if(searchInRight(x, tau) || list.size() < k)
612 this.right.searchKNN(query, k, list, x, qi);
613 tau = list.get(list.size()-1).getProbability();
614 if(searchInLeft(x, tau) || list.size() < k)
615 this.left.searchKNN(query, k, list, x, qi);
616 }
617 }
618
619 @Override
620 public void searchRange(Vec query, double range, List<VecPaired<V, Double>> list, double x, List<Double> qi)

Callers 1

searchMethod · 0.45

Calls 7

searchInLeftMethod · 0.95
searchInRightMethod · 0.95
getProbabilityMethod · 0.80
distMethod · 0.65
sizeMethod · 0.65
getMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected