diff options
author | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:34 +0000 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:34 +0000 |
commit | b7b404fd7a726774d442562d11659d7b5368cdb9 (patch) | |
tree | 6f510ddbf80c1a51e333f80411541565ac71c9e9 /src/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java | |
parent | ace5fa7f57d49756c0e1b111a30f3b6a9436c1cb (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.java | 11 |
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); |