diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/distance/similarityfunction/SharedNearestNeighborSimilarityFunction.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/distance/similarityfunction/SharedNearestNeighborSimilarityFunction.java | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/distance/similarityfunction/SharedNearestNeighborSimilarityFunction.java b/src/de/lmu/ifi/dbs/elki/distance/similarityfunction/SharedNearestNeighborSimilarityFunction.java index 89661f13..38b43b09 100644 --- a/src/de/lmu/ifi/dbs/elki/distance/similarityfunction/SharedNearestNeighborSimilarityFunction.java +++ b/src/de/lmu/ifi/dbs/elki/distance/similarityfunction/SharedNearestNeighborSimilarityFunction.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.distance.similarityfunction; 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 @@ -27,9 +27,7 @@ import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; import de.lmu.ifi.dbs.elki.database.ids.DBIDRef; import de.lmu.ifi.dbs.elki.database.ids.DBIDUtil; import de.lmu.ifi.dbs.elki.database.ids.DBIDs; -import de.lmu.ifi.dbs.elki.database.ids.SetDBIDs; import de.lmu.ifi.dbs.elki.database.relation.Relation; -import de.lmu.ifi.dbs.elki.distance.distancevalue.IntegerDistance; import de.lmu.ifi.dbs.elki.index.preprocessed.snn.SharedNearestNeighborIndex; import de.lmu.ifi.dbs.elki.index.preprocessed.snn.SharedNearestNeighborPreprocessor; import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameterization; @@ -47,8 +45,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameteriz * * @param <O> object type */ -// todo arthur comment class -public class SharedNearestNeighborSimilarityFunction<O> extends AbstractIndexBasedSimilarityFunction<O, SharedNearestNeighborIndex<O>, SetDBIDs, IntegerDistance> { +public class SharedNearestNeighborSimilarityFunction<O> extends AbstractIndexBasedSimilarityFunction<O, SharedNearestNeighborIndex<O>> { /** * Constructor. * @@ -58,11 +55,6 @@ public class SharedNearestNeighborSimilarityFunction<O> extends AbstractIndexBas super(indexFactory); } - @Override - public IntegerDistance getDistanceFactory() { - return IntegerDistance.FACTORY; - } - /** * Compute the intersection size * @@ -74,15 +66,17 @@ public class SharedNearestNeighborSimilarityFunction<O> extends AbstractIndexBas int intersection = 0; DBIDIter iter1 = neighbors1.iter(); DBIDIter iter2 = neighbors2.iter(); - while (iter1.valid() && iter2.valid()) { + while(iter1.valid() && iter2.valid()) { final int comp = DBIDUtil.compare(iter1, iter2); - if (comp == 0) { + if(comp == 0) { intersection++; iter1.advance(); iter2.advance(); - } else if (comp < 0) { + } + else if(comp < 0) { iter1.advance(); - } else // iter2 < iter1 + } + else // iter2 < iter1 { iter2.advance(); } @@ -106,7 +100,7 @@ public class SharedNearestNeighborSimilarityFunction<O> extends AbstractIndexBas * * @param <O> Object type */ - public static class Instance<O> extends AbstractIndexBasedSimilarityFunction.Instance<O, SharedNearestNeighborIndex<O>, SetDBIDs, IntegerDistance> { + public static class Instance<O> extends AbstractIndexBasedSimilarityFunction.Instance<O, SharedNearestNeighborIndex<O>> { /** * Similarity function. */ @@ -124,19 +118,14 @@ public class SharedNearestNeighborSimilarityFunction<O> extends AbstractIndexBas } @Override - public IntegerDistance similarity(DBIDRef id1, DBIDRef id2) { + public double similarity(DBIDRef id1, DBIDRef id2) { DBIDs neighbors1 = index.getNearestNeighborSet(id1); DBIDs neighbors2 = index.getNearestNeighborSet(id2); - return new IntegerDistance(countSharedNeighbors(neighbors1, neighbors2)); - } - - @Override - public IntegerDistance getDistanceFactory() { - return IntegerDistance.FACTORY; + return countSharedNeighbors(neighbors1, neighbors2); } @Override - public SimilarityFunction<? super O, IntegerDistance> getSimilarityFunction() { + public SimilarityFunction<? super O> getSimilarityFunction() { return similarityFunction; } } |