diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/algorithm/MaterializeDistances.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/algorithm/MaterializeDistances.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/algorithm/MaterializeDistances.java b/src/de/lmu/ifi/dbs/elki/algorithm/MaterializeDistances.java index 89d2d3e0..b09f7ac2 100644 --- a/src/de/lmu/ifi/dbs/elki/algorithm/MaterializeDistances.java +++ b/src/de/lmu/ifi/dbs/elki/algorithm/MaterializeDistances.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.data.type.TypeInformation; import de.lmu.ifi.dbs.elki.data.type.TypeUtil; import de.lmu.ifi.dbs.elki.database.Database; 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.query.distance.DistanceQuery; import de.lmu.ifi.dbs.elki.database.relation.Relation; import de.lmu.ifi.dbs.elki.distance.distancefunction.DistanceFunction; @@ -77,14 +78,14 @@ public class MaterializeDistances<O, D extends NumberDistance<D, ?>> extends Abs Collection<CTriple<DBID, DBID, Double>> r = new ArrayList<CTriple<DBID, DBID, Double>>(size * (size + 1) / 2); - for(DBID id1 : relation.iterDBIDs()) { - for(DBID id2 : relation.iterDBIDs()) { + for(DBIDIter iditer = relation.iterDBIDs(); iditer.valid(); iditer.advance()) { + for(DBIDIter iditer2 = relation.iterDBIDs(); iditer2.valid(); iditer2.advance()) { // skip inverted pairs - if(id2.compareTo(id1) > 0) { + if(iditer2.compareDBID(iditer) > 0) { continue; } - double d = distFunc.distance(id1, id2).doubleValue(); - r.add(new CTriple<DBID, DBID, Double>(id1, id2, d)); + double d = distFunc.distance(iditer, iditer2).doubleValue(); + r.add(new CTriple<DBID, DBID, Double>(iditer.getDBID(), iditer2.getDBID(), d)); } } return new CollectionResult<CTriple<DBID, DBID, Double>>("Distance Matrix", "distance-matrix", r); |