summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java
diff options
context:
space:
mode:
authorAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:34 +0000
committerAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:34 +0000
commitb7b404fd7a726774d442562d11659d7b5368cdb9 (patch)
tree6f510ddbf80c1a51e333f80411541565ac71c9e9 /src/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java
parentace5fa7f57d49756c0e1b111a30f3b6a9436c1cb (diff)
Import Upstream version 0.5.5
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java b/src/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java
index df29c280..23da36b2 100644
--- a/src/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java
+++ b/src/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java
@@ -27,6 +27,7 @@ import java.io.File;
import java.io.IOException;
import de.lmu.ifi.dbs.elki.database.ids.DBIDRef;
+import de.lmu.ifi.dbs.elki.database.ids.DBIDUtil;
import de.lmu.ifi.dbs.elki.distance.distancefunction.AbstractDBIDDistanceFunction;
import de.lmu.ifi.dbs.elki.distance.distancevalue.FloatDistance;
import de.lmu.ifi.dbs.elki.persistent.OnDiskUpperTriangleMatrix;
@@ -56,7 +57,7 @@ public class DiskCacheBasedFloatDistanceFunction extends AbstractDBIDDistanceFun
* Key: {@code -distance.matrix}
* </p>
*/
- public static final OptionID MATRIX_ID = OptionID.getOrCreateOptionID("distance.matrix", "The name of the file containing the distance matrix.");
+ public static final OptionID MATRIX_ID = new OptionID("distance.matrix", "The name of the file containing the distance matrix.");
/**
* Magic to identify double cache matrices
@@ -101,17 +102,19 @@ public class DiskCacheBasedFloatDistanceFunction extends AbstractDBIDDistanceFun
if(id2 == null) {
return getDistanceFactory().undefinedDistance();
}
- if(id1.getIntegerID() < 0 || id2.getIntegerID() < 0) {
+ final int intid1 = DBIDUtil.asInteger(id1);
+ final int intid2 = DBIDUtil.asInteger(id2);
+ if(intid1 < 0 || intid2 < 0) {
throw new AbortException("Negative DBIDs not supported in OnDiskCache");
}
// the smaller id is the first key
- if(id1.getIntegerID() > id2.getIntegerID()) {
+ if(intid1 > intid2) {
return distance(id2, id1);
}
float distance;
try {
- distance = cache.getRecordBuffer(id1.getIntegerID(), id2.getIntegerID()).getFloat();
+ distance = cache.getRecordBuffer(intid1, intid2).getFloat();
}
catch(IOException e) {
throw new RuntimeException("Read error when loading distance " + id1 + "," + id2 + " from cache file.", e);