diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java | 43 |
1 files changed, 14 insertions, 29 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java b/src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java index 58020239..f39383a2 100644 --- a/src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java +++ b/src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.database.query.similarity; 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,7 +25,6 @@ package de.lmu.ifi.dbs.elki.database.query.similarity; import de.lmu.ifi.dbs.elki.database.ids.DBIDRef; import de.lmu.ifi.dbs.elki.database.relation.Relation; -import de.lmu.ifi.dbs.elki.distance.distancevalue.Distance; import de.lmu.ifi.dbs.elki.distance.similarityfunction.PrimitiveSimilarityFunction; /** @@ -33,14 +32,15 @@ import de.lmu.ifi.dbs.elki.distance.similarityfunction.PrimitiveSimilarityFuncti * * @author Erich Schubert * + * @apiviz.has PrimitiveSimilarityFunction + * * @param <O> Database object type. - * @param <D> Distance result type. */ -public class PrimitiveSimilarityQuery<O, D extends Distance<D>> extends AbstractSimilarityQuery<O, D> { +public class PrimitiveSimilarityQuery<O> extends AbstractSimilarityQuery<O> { /** * The distance function we use. */ - final protected PrimitiveSimilarityFunction<? super O, D> similarityFunction; + final protected PrimitiveSimilarityFunction<? super O> similarityFunction; /** * Constructor. @@ -48,48 +48,33 @@ public class PrimitiveSimilarityQuery<O, D extends Distance<D>> extends Abstract * @param relation Relation to use. * @param similarityFunction Our similarity function */ - public PrimitiveSimilarityQuery(Relation<? extends O> relation, PrimitiveSimilarityFunction<? super O, D> similarityFunction) { + public PrimitiveSimilarityQuery(Relation<? extends O> relation, PrimitiveSimilarityFunction<? super O> similarityFunction) { super(relation); this.similarityFunction = similarityFunction; } @Override - public D similarity(DBIDRef id1, DBIDRef id2) { - O o1 = relation.get(id1); - O o2 = relation.get(id2); - return similarity(o1, o2); + public double similarity(DBIDRef id1, DBIDRef id2) { + return similarity(relation.get(id1), relation.get(id2)); } @Override - public D similarity(O o1, DBIDRef id2) { - O o2 = relation.get(id2); - return similarity(o1, o2); + public double similarity(O o1, DBIDRef id2) { + return similarity(o1, relation.get(id2)); } @Override - public D similarity(DBIDRef id1, O o2) { - O o1 = relation.get(id1); - return similarity(o1, o2); + public double similarity(DBIDRef id1, O o2) { + return similarity(relation.get(id1), o2); } @Override - public D similarity(O o1, O o2) { - if (o1 == null) { - throw new UnsupportedOperationException("This distance function can only be used for object instances."); - } - if (o2 == null) { - throw new UnsupportedOperationException("This distance function can only be used for object instances."); - } + public double similarity(O o1, O o2) { return similarityFunction.similarity(o1, o2); } @Override - public D getDistanceFactory() { - return similarityFunction.getDistanceFactory(); - } - - @Override - public PrimitiveSimilarityFunction<? super O, D> getSimilarityFunction() { + public PrimitiveSimilarityFunction<? super O> getSimilarityFunction() { return similarityFunction; } } |