summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanDistanceRangeQuery.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanDistanceRangeQuery.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanDistanceRangeQuery.java29
1 files changed, 14 insertions, 15 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanDistanceRangeQuery.java b/src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanDistanceRangeQuery.java
index 8830dd45..8747cebf 100644
--- a/src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanDistanceRangeQuery.java
+++ b/src/de/lmu/ifi/dbs/elki/database/query/range/LinearScanDistanceRangeQuery.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.database.query.range;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2013
+ Copyright (C) 2014
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -25,11 +25,11 @@ package de.lmu.ifi.dbs.elki.database.query.range;
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.ids.distance.DistanceDBIDList;
-import de.lmu.ifi.dbs.elki.database.ids.generic.GenericDistanceDBIDList;
+import de.lmu.ifi.dbs.elki.database.ids.DBIDUtil;
+import de.lmu.ifi.dbs.elki.database.ids.DoubleDBIDList;
+import de.lmu.ifi.dbs.elki.database.ids.ModifiableDoubleDBIDList;
import de.lmu.ifi.dbs.elki.database.query.LinearScanQuery;
import de.lmu.ifi.dbs.elki.database.query.distance.DistanceQuery;
-import de.lmu.ifi.dbs.elki.distance.distancevalue.Distance;
/**
* Default linear scan range query class.
@@ -40,24 +40,23 @@ import de.lmu.ifi.dbs.elki.distance.distancevalue.Distance;
* @apiviz.has DistanceQuery
*
* @param <O> Database object type
- * @param <D> Distance type
*/
-public class LinearScanDistanceRangeQuery<O, D extends Distance<D>> extends AbstractDistanceRangeQuery<O, D> implements LinearScanQuery {
+public class LinearScanDistanceRangeQuery<O> extends AbstractDistanceRangeQuery<O> implements LinearScanQuery {
/**
* Constructor.
*
* @param distanceQuery Distance function to use
*/
- public LinearScanDistanceRangeQuery(DistanceQuery<O, D> distanceQuery) {
+ public LinearScanDistanceRangeQuery(DistanceQuery<O> distanceQuery) {
super(distanceQuery);
}
@Override
- public DistanceDBIDList<D> getRangeForDBID(DBIDRef id, D range) {
- GenericDistanceDBIDList<D> result = new GenericDistanceDBIDList<>();
+ public DoubleDBIDList getRangeForDBID(DBIDRef id, double range) {
+ ModifiableDoubleDBIDList result = DBIDUtil.newDistanceDBIDList();
for(DBIDIter iter = relation.getDBIDs().iter(); iter.valid(); iter.advance()) {
- D currentDistance = distanceQuery.distance(id, iter);
- if(currentDistance.compareTo(range) <= 0) {
+ double currentDistance = distanceQuery.distance(id, iter);
+ if(currentDistance <= range) {
result.add(currentDistance, iter);
}
}
@@ -66,11 +65,11 @@ public class LinearScanDistanceRangeQuery<O, D extends Distance<D>> extends Abst
}
@Override
- public DistanceDBIDList<D> getRangeForObject(O obj, D range) {
- GenericDistanceDBIDList<D> result = new GenericDistanceDBIDList<>();
+ public DoubleDBIDList getRangeForObject(O obj, double range) {
+ ModifiableDoubleDBIDList result = DBIDUtil.newDistanceDBIDList();
for(DBIDIter iter = relation.getDBIDs().iter(); iter.valid(); iter.advance()) {
- D currentDistance = distanceQuery.distance(obj, iter);
- if(currentDistance.compareTo(range) <= 0) {
+ double currentDistance = distanceQuery.distance(obj, iter);
+ if(currentDistance <= range) {
result.add(currentDistance, iter);
}
}