diff --git a/src/main/java/azgracompress/kdtree/KDTree.java b/src/main/java/azgracompress/kdtree/KDTree.java index 04ab7fc340dee6384e44160a8439334276c2bb49..4c286de39ad05ab2184bbb624885a46f7868a542 100644 --- a/src/main/java/azgracompress/kdtree/KDTree.java +++ b/src/main/java/azgracompress/kdtree/KDTree.java @@ -22,30 +22,30 @@ public class KDTree { public static class BBFSearchInfo { private final int[][] featureVectors; - private double nearestRecordDistance; - private int[] nearestRecord; + private double nearestVectorDistance; + private int nearestVectorIndex; public BBFSearchInfo(final int[][] featureVectors) { this.featureVectors = featureVectors; - nearestRecord = null; - nearestRecordDistance = Double.POSITIVE_INFINITY; + nearestVectorIndex = -1; + nearestVectorDistance = Double.POSITIVE_INFINITY; } public int[][] getFeatureVectors() { return featureVectors; } - public double getNearestRecordDistance() { - return nearestRecordDistance; + public double getNearestVectorDistance() { + return nearestVectorDistance; } - public int[] getNearestRecord() { - return nearestRecord; + public int getNearestVectorIndex() { + return nearestVectorIndex; } - public void setNearestRecord(final int[] record, final double recordDistance) { - this.nearestRecord = record; - this.nearestRecordDistance = recordDistance; + public void setNearestRecord(final int vectorIndex, final double recordDistance) { + this.nearestVectorIndex = vectorIndex; + this.nearestVectorDistance = recordDistance; } } @@ -85,7 +85,7 @@ public class KDTree { this.terminalNodeCount = terminalNodeCount; } - public int[] findNearestBBF(final int[] queryVector, final int maxE) { + public int findNearestBBF(final int[] queryVector, final int maxE) { PriorityQueue<NodeWithDistance> priorityQueue = new PriorityQueue<>(); priorityQueue.add(new NodeWithDistance(root, 0.0)); @@ -114,7 +114,7 @@ public class KDTree { } } } - return searchInfo.getNearestRecord(); + return searchInfo.getNearestVectorIndex(); } public int getTotalNodeCount() { diff --git a/src/main/java/azgracompress/kdtree/TerminalKDNode.java b/src/main/java/azgracompress/kdtree/TerminalKDNode.java index 8ba4fc76c817585dd929c9e6a60ab20fe89ab706..0dac9c49a343d8f2927e9e8411c4372322fd285d 100644 --- a/src/main/java/azgracompress/kdtree/TerminalKDNode.java +++ b/src/main/java/azgracompress/kdtree/TerminalKDNode.java @@ -24,8 +24,8 @@ public class TerminalKDNode extends KDNode { double recordDistance; for (final int index : bucketIndices) { recordDistance = Utils.calculateEuclideanDistance(queryRecord, searchInfo.getFeatureVectors()[index]); - if (recordDistance < searchInfo.getNearestRecordDistance()) { - searchInfo.setNearestRecord(searchInfo.getFeatureVectors()[index], recordDistance); + if (recordDistance < searchInfo.getNearestVectorDistance()) { + searchInfo.setNearestRecord(index, recordDistance); } } }