de.lmu.ifi.dbs.elki.distance.distancefunction.external
Class DiskCacheBasedDoubleDistanceFunction

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.distance.distancefunction.AbstractDBIDDistanceFunction<DoubleDistance>
      extended by de.lmu.ifi.dbs.elki.distance.distancefunction.external.DiskCacheBasedDoubleDistanceFunction
All Implemented Interfaces:
DBIDDistanceFunction<DoubleDistance>, DistanceFunction<DBID,DoubleDistance>, InspectionUtilFrequentlyScanned, Parameterizable

@Title(value="File based double distance for database objects.")
@Description(value="Loads double distance values from an external matrix.")
public class DiskCacheBasedDoubleDistanceFunction
extends AbstractDBIDDistanceFunction<DoubleDistance>

Provides a DistanceFunction that is based on double distances given by a distance matrix of an external file.


Nested Class Summary
static class DiskCacheBasedDoubleDistanceFunction.Parameterizer
          Parameterization class.
 
Field Summary
private  OnDiskUpperTriangleMatrix cache
          The distance matrix
static int DOUBLE_CACHE_MAGIC
          Magic to identify double cache matrices
private static int DOUBLE_SIZE
          Storage required for a double value.
static OptionID MATRIX_ID
          Parameter that specifies the name of the distance matrix file.
 
Constructor Summary
DiskCacheBasedDoubleDistanceFunction(OnDiskUpperTriangleMatrix cache)
          Constructor.
 
Method Summary
 DoubleDistance distance(DBID id1, DBID id2)
          Returns the distance between the two objects specified by their objects ids.
 boolean equals(Object obj)
           
 DoubleDistance getDistanceFactory()
          Method to get the distance functions factory.
 
Methods inherited from class de.lmu.ifi.dbs.elki.distance.distancefunction.AbstractDBIDDistanceFunction
getInputTypeRestriction, instantiate, isMetric, isSymmetric
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MATRIX_ID

public static final OptionID MATRIX_ID
Parameter that specifies the name of the distance matrix file.

Key: -distance.matrix


DOUBLE_CACHE_MAGIC

public static final int DOUBLE_CACHE_MAGIC
Magic to identify double cache matrices

See Also:
Constant Field Values

DOUBLE_SIZE

private static final int DOUBLE_SIZE
Storage required for a double value.

See Also:
Constant Field Values

cache

private OnDiskUpperTriangleMatrix cache
The distance matrix

Constructor Detail

DiskCacheBasedDoubleDistanceFunction

public DiskCacheBasedDoubleDistanceFunction(OnDiskUpperTriangleMatrix cache)
Constructor.

Parameters:
cache - Distance matrix
Method Detail

distance

public DoubleDistance distance(DBID id1,
                               DBID id2)
Returns the distance between the two objects specified by their objects ids. If a cache is used, the distance value is looked up in the cache. If the distance does not yet exists in cache, it will be computed an put to cache. If no cache is used, the distance is computed.

Specified by:
distance in interface DBIDDistanceFunction<DoubleDistance>
Specified by:
distance in class AbstractDBIDDistanceFunction<DoubleDistance>
Parameters:
id1 - first object id
id2 - second object id
Returns:
the distance between the two objects specified by their objects ids

getDistanceFactory

public DoubleDistance getDistanceFactory()
Description copied from interface: DistanceFunction
Method to get the distance functions factory.

Specified by:
getDistanceFactory in interface DistanceFunction<DBID,DoubleDistance>
Specified by:
getDistanceFactory in class AbstractDBIDDistanceFunction<DoubleDistance>
Returns:
Factory for distance objects

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

Release 0.4.0 (2011-09-20_1324)