summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/database/query/knn/LinearScanPrimitiveDistanceKNNQuery.java
diff options
context:
space:
mode:
authorErich Schubert <erich@debian.org>2012-06-30 00:55:33 +0200
committerAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:34 +0000
commit4343785ebed9d4145f417d86d581f18a0d31e4ac (patch)
tree546b0aa227d50caf4246be12f89ffcbae924f8e0 /src/de/lmu/ifi/dbs/elki/database/query/knn/LinearScanPrimitiveDistanceKNNQuery.java
parent593eae6c91717eb9f4ff5088ba460dd4210509c0 (diff)
parentace5fa7f57d49756c0e1b111a30f3b6a9436c1cb (diff)
Import Debian changes 0.5.0-1
elki (0.5.0-1) unstable; urgency=low * New upstream release: 0.5.0 final.
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/query/knn/LinearScanPrimitiveDistanceKNNQuery.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/database/query/knn/LinearScanPrimitiveDistanceKNNQuery.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/query/knn/LinearScanPrimitiveDistanceKNNQuery.java b/src/de/lmu/ifi/dbs/elki/database/query/knn/LinearScanPrimitiveDistanceKNNQuery.java
index 07632a34..59987282 100644
--- a/src/de/lmu/ifi/dbs/elki/database/query/knn/LinearScanPrimitiveDistanceKNNQuery.java
+++ b/src/de/lmu/ifi/dbs/elki/database/query/knn/LinearScanPrimitiveDistanceKNNQuery.java
@@ -30,6 +30,8 @@ import java.util.Map.Entry;
import de.lmu.ifi.dbs.elki.database.ids.ArrayDBIDs;
import de.lmu.ifi.dbs.elki.database.ids.DBID;
+import de.lmu.ifi.dbs.elki.database.ids.DBIDIter;
+import de.lmu.ifi.dbs.elki.database.ids.DBIDRef;
import de.lmu.ifi.dbs.elki.database.query.distance.PrimitiveDistanceQuery;
import de.lmu.ifi.dbs.elki.distance.distancevalue.Distance;
import de.lmu.ifi.dbs.elki.utilities.datastructures.heap.KNNHeap;
@@ -63,7 +65,8 @@ public class LinearScanPrimitiveDistanceKNNQuery<O, D extends Distance<D>> exten
protected void linearScanBatchKNN(List<O> objs, List<KNNHeap<D>> heaps) {
final int size = objs.size();
// Linear scan style KNN.
- for(DBID candidateID : relation.iterDBIDs()) {
+ for(DBIDIter iter = relation.getDBIDs().iter(); iter.valid(); iter.advance()) {
+ DBID candidateID = iter.getDBID();
O candidate = relation.get(candidateID);
for(int index = 0; index < size; index++) {
O object = objs.get(index);
@@ -74,7 +77,7 @@ public class LinearScanPrimitiveDistanceKNNQuery<O, D extends Distance<D>> exten
}
@Override
- public KNNResult<D> getKNNForDBID(DBID id, int k) {
+ public KNNResult<D> getKNNForDBID(DBIDRef id, int k) {
return getKNNForObject(relation.get(id), k);
}
@@ -83,9 +86,9 @@ public class LinearScanPrimitiveDistanceKNNQuery<O, D extends Distance<D>> exten
final int size = ids.size();
final List<KNNHeap<D>> heaps = new ArrayList<KNNHeap<D>>(size);
List<O> objs = new ArrayList<O>(size);
- for(DBID id : ids) {
+ for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
heaps.add(new KNNHeap<D>(k));
- objs.add(relation.get(id));
+ objs.add(relation.get(iter));
}
linearScanBatchKNN(objs, heaps);