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

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

@Title(value="File based float distance for database objects.")
@Description(value="Loads float distance values from an external text file.")
public class FileBasedFloatDistanceFunction
extends AbstractDBIDDistanceFunction<FloatDistance>

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


Nested Class Summary
static class FileBasedFloatDistanceFunction.Parameterizer
          Parameterization class.
 
Field Summary
private  Map<DBIDPair,FloatDistance> cache
          The distance cache
static OptionID MATRIX_ID
          Parameter that specifies the name of the distance matrix file.
static OptionID PARSER_ID
          Optional parameter to specify the parsers to provide a database, must extend DistanceParser.
 
Constructor Summary
FileBasedFloatDistanceFunction(DistanceParser<FloatDistance> parser, File matrixfile)
          Constructor.
 
Method Summary
 FloatDistance distance(DBID id1, DBID id2)
          Returns the distance between the two objects specified by their objects ids.
 boolean equals(Object obj)
           
 FloatDistance getDistanceFactory()
          Method to get the distance functions factory.
private  void loadCache(DistanceParser<FloatDistance> parser, File matrixfile)
           
 
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


PARSER_ID

public static final OptionID PARSER_ID
Optional parameter to specify the parsers to provide a database, must extend DistanceParser. If this parameter is not set, NumberDistanceParser is used as parser for all input files.

Key: -distance.parser


cache

private Map<DBIDPair,FloatDistance> cache
The distance cache

Constructor Detail

FileBasedFloatDistanceFunction

public FileBasedFloatDistanceFunction(DistanceParser<FloatDistance> parser,
                                      File matrixfile)
Constructor.

Parameters:
parser - Parser
matrixfile - input file
Method Detail

distance

public FloatDistance 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<FloatDistance>
Specified by:
distance in class AbstractDBIDDistanceFunction<FloatDistance>
Parameters:
id1 - first object id
id2 - second object id
Returns:
the distance between the two objects specified by their objects ids

loadCache

private void loadCache(DistanceParser<FloatDistance> parser,
                       File matrixfile)
                throws IOException
Throws:
IOException

getDistanceFactory

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

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

equals

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

Release 0.4.0 (2011-09-20_1324)