diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/algorithm/AbstractPrimitiveDistanceBasedAlgorithm.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/algorithm/AbstractPrimitiveDistanceBasedAlgorithm.java | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/algorithm/AbstractPrimitiveDistanceBasedAlgorithm.java b/src/de/lmu/ifi/dbs/elki/algorithm/AbstractPrimitiveDistanceBasedAlgorithm.java index 5d4b24c1..5186e9e0 100644 --- a/src/de/lmu/ifi/dbs/elki/algorithm/AbstractPrimitiveDistanceBasedAlgorithm.java +++ b/src/de/lmu/ifi/dbs/elki/algorithm/AbstractPrimitiveDistanceBasedAlgorithm.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.algorithm; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -25,16 +25,17 @@ package de.lmu.ifi.dbs.elki.algorithm; import de.lmu.ifi.dbs.elki.distance.distancefunction.PrimitiveDistanceFunction; import de.lmu.ifi.dbs.elki.distance.distancefunction.minkowski.EuclideanDistanceFunction; -import de.lmu.ifi.dbs.elki.distance.distancevalue.Distance; import de.lmu.ifi.dbs.elki.result.Result; import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameterization; import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; /** - * Provides an abstract algorithm already setting the distance function. + * Abstract base class for distance-based algorithms that need to work with + * synthetic objects such as mean vectors. * - * This class only allows distances that are defined on arbitrary objects, not only database objects! + * This class only allows distances that are defined on arbitrary objects, not + * only database objects! * * @author Arthur Zimek * @@ -42,22 +43,21 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * @apiviz.excludeSubtypes * * @param <O> the type of objects handled by this Algorithm - * @param <D> the type of Distance used by this Algorithm * @param <R> the type of result to retrieve from this Algorithm */ -public abstract class AbstractPrimitiveDistanceBasedAlgorithm<O, D extends Distance<?>, R extends Result> extends AbstractAlgorithm<R> { +public abstract class AbstractPrimitiveDistanceBasedAlgorithm<O, R extends Result> extends AbstractAlgorithm<R> { /** * Holds the instance of the distance function specified by * {@link DistanceBasedAlgorithm#DISTANCE_FUNCTION_ID}. */ - protected PrimitiveDistanceFunction<? super O, D> distanceFunction; + protected PrimitiveDistanceFunction<? super O> distanceFunction; /** * Constructor. * * @param distanceFunction Distance function */ - protected AbstractPrimitiveDistanceBasedAlgorithm(PrimitiveDistanceFunction<? super O, D> distanceFunction) { + protected AbstractPrimitiveDistanceBasedAlgorithm(PrimitiveDistanceFunction<? super O> distanceFunction) { super(); this.distanceFunction = distanceFunction; } @@ -67,7 +67,7 @@ public abstract class AbstractPrimitiveDistanceBasedAlgorithm<O, D extends Dista * * @return the distanceFunction */ - public PrimitiveDistanceFunction<? super O, D> getDistanceFunction() { + public PrimitiveDistanceFunction<? super O> getDistanceFunction() { return distanceFunction; } @@ -78,16 +78,16 @@ public abstract class AbstractPrimitiveDistanceBasedAlgorithm<O, D extends Dista * * @apiviz.exclude */ - public abstract static class Parameterizer<O, D extends Distance<D>> extends AbstractParameterizer { + public abstract static class Parameterizer<O> extends AbstractParameterizer { /** * Distance function to use. */ - protected PrimitiveDistanceFunction<O, D> distanceFunction; - + protected PrimitiveDistanceFunction<O> distanceFunction; + @Override protected void makeOptions(Parameterization config) { super.makeOptions(config); - ObjectParameter<PrimitiveDistanceFunction<O, D>> distanceFunctionP = makeParameterDistanceFunction(EuclideanDistanceFunction.class, PrimitiveDistanceFunction.class); + ObjectParameter<PrimitiveDistanceFunction<O>> distanceFunctionP = makeParameterDistanceFunction(EuclideanDistanceFunction.class, PrimitiveDistanceFunction.class); if(config.grab(distanceFunctionP)) { distanceFunction = distanceFunctionP.instantiateClass(config); } |