diff options
author | Erich Schubert <erich@debian.org> | 2016-02-13 17:05:40 +0100 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:47 +0000 |
commit | defdc6d2d24cb1cefca77aa63ca6c436a8f3672c (patch) | |
tree | a017235849736e0a0ea8a2b28de23f46dc47b082 /elki/src/main/java/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java | |
parent | aee1a6e43bd1a264226de31eadf10003c46d47c6 (diff) | |
parent | 0a055548ae9f9d5c639bb29ca32e0fd88de37c1d (diff) |
Import Debian changes 0.7.1-1
elki (0.7.1-1) unstable; urgency=low
* New upstream release (mostly bug fixes)
* Drop patches included upstream
* Build-dep on default-jdk instead of openjdk7-jdk (Closes: #814163)
Diffstat (limited to 'elki/src/main/java/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java')
-rw-r--r-- | elki/src/main/java/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java index de8d96b4..b6731a30 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/distance/distancefunction/external/DiskCacheBasedFloatDistanceFunction.java @@ -26,7 +26,9 @@ package de.lmu.ifi.dbs.elki.distance.distancefunction.external; import java.io.File; import java.io.IOException; +import de.lmu.ifi.dbs.elki.database.ids.DBIDRange; import de.lmu.ifi.dbs.elki.distance.distancefunction.AbstractDBIDRangeDistanceFunction; +import de.lmu.ifi.dbs.elki.logging.Logging; import de.lmu.ifi.dbs.elki.persistent.OnDiskUpperTriangleMatrix; import de.lmu.ifi.dbs.elki.utilities.documentation.Description; import de.lmu.ifi.dbs.elki.utilities.documentation.Title; @@ -41,11 +43,15 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.FileParameter; * of an external binary matrix file. * * @author Erich Schubert + * @since 0.2 */ @Title("File based float distance for database objects.") @Description("Loads float distance values from an external matrix.") public class DiskCacheBasedFloatDistanceFunction extends AbstractDBIDRangeDistanceFunction { - // TODO: constructor with file. + /** + * Class logger. + */ + private static final Logging LOG = Logging.getLogger(DiskCacheBasedFloatDistanceFunction.class); /** * Magic to identify double cache matrices @@ -67,6 +73,17 @@ public class DiskCacheBasedFloatDistanceFunction extends AbstractDBIDRangeDistan this.cache = cache; } + /** + * Constructor. + * + * @param matrixfile File name + * @throws IOException + */ + public DiskCacheBasedFloatDistanceFunction(File matrixfile) throws IOException { + super(); + this.cache = new OnDiskUpperTriangleMatrix(matrixfile, FLOAT_CACHE_MAGIC, 0, ByteArrayUtil.SIZE_FLOAT, false); + } + @Override public double distance(int i1, int i2) { // the smaller id is the first key @@ -94,6 +111,13 @@ public class DiskCacheBasedFloatDistanceFunction extends AbstractDBIDRangeDistan return this.cache.equals(other.cache); } + @Override + public void checkRange(DBIDRange range) { + if(cache.getMatrixSize() < range.size()) { + LOG.warning("Distance matrix has size " + cache.getMatrixSize() + " but range has size: " + range.size()); + } + } + /** * Parameterization class. * |