&& Math.sqrt(heap.peek().distance) < distance - node.getRadius()) { return; } else if (node.m_Left != null && node.m_Right != null) { // if node is not heap.put(m_InstList[i], distance); } else { MyHeapElement head = heap.peek(); distance = m_DistanceFunction.distance(target, m_Instances.instance(m_InstList[i]), head.distance, m_Stats);
&& Math.sqrt(heap.peek().distance) < distance - node.getRadius()) { return; } else if (node.m_Left != null && node.m_Right != null) { // if node is not heap.put(m_InstList[i], distance); } else { MyHeapElement head = heap.peek(); distance = m_DistanceFunction.distance(target, m_Instances.instance(m_InstList[i]), head.distance, m_Stats);
MyHeapElement temp = heap.peek(); if(print) System.out.println("K(b): "+(heap.size()+heap.noOfKthNearest()));
heap.put(m_InstList[idx], distance); } else { MyHeapElement temp = heap.peek(); distance = m_EuclideanDistance.distance(target, m_Instances .instance(m_InstList[idx]), temp.distance, m_Stats); + m_EuclideanDistance.sqDifference(node.m_SplitDim, target .value(node.m_SplitDim), node.m_SplitValue); if (heap.peek().distance >= distanceToSplitPlane) { findNearestNeighbours(target, further, k, heap, distanceToSplitPlane);
heap.put(m_InstList[idx], distance); } else { MyHeapElement temp = heap.peek(); distance = m_EuclideanDistance.distance(target, m_Instances .instance(m_InstList[idx]), temp.distance, m_Stats); + m_EuclideanDistance.sqDifference(node.m_SplitDim, target .value(node.m_SplitDim), node.m_SplitValue); if (heap.peek().distance >= distanceToSplitPlane) { findNearestNeighbours(target, further, k, heap, distanceToSplitPlane);
MyHeapElement temp = heap.peek(); if(print) System.out.println("K(b): "+(heap.size()+heap.noOfKthNearest()));