diff options
Diffstat (limited to 'elki/src/main/java/de/lmu/ifi/dbs/elki/index')
206 files changed, 408 insertions, 41 deletions
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/AbstractIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/AbstractIndex.java index 63be2b06..8db3abe9 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/AbstractIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/AbstractIndex.java @@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.database.relation.Relation; * Abstract base class for indexes with some implementation defaults. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.excludeSubtypes * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/AbstractRefiningIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/AbstractRefiningIndex.java index c5a032c3..e0264cf7 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/AbstractRefiningIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/AbstractRefiningIndex.java @@ -38,6 +38,7 @@ import de.lmu.ifi.dbs.elki.logging.statistics.Counter; * The number of refinements will be counted as individual page accesses. * * @author Erich Schubert + * @since 0.5.0 * * @apiviz.excludeSubtypes * @apiviz.has AbstractRangeQuery diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/DistanceIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/DistanceIndex.java index f6fc929f..2fa6feff 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/DistanceIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/DistanceIndex.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.distance.distancefunction.DistanceFunction; * caches) * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.landmark * @apiviz.excludeSubtypes diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/DynamicIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/DynamicIndex.java index 8179b5df..306b0a1f 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/DynamicIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/DynamicIndex.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.database.ids.DBIDs; * Index that supports dynamic insertions and removals. * * @author Erich Schubert + * @since 0.2 * * @apiviz.excludeSubtypes */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/Index.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/Index.java index b312eb37..d6f9ee16 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/Index.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/Index.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.result.Result; * See also: {@link IndexFactory}, {@link DynamicIndex} * * @author Elke Achtert + * @since 0.2 * * @apiviz.excludeSubtypes */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/IndexFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/IndexFactory.java index 154974f9..1a1d3fb2 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/IndexFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/IndexFactory.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.database.relation.Relation; * Factory interface for indexes. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory,interface * @apiviz.has Index oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/KNNIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/KNNIndex.java index aa99e8e4..e3a29bf5 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/KNNIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/KNNIndex.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.database.query.knn.KNNQuery; * Index with support for kNN queries. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.landmark * @apiviz.excludeSubtypes diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/PagedIndexFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/PagedIndexFactory.java index 75c11499..e421e252 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/PagedIndexFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/PagedIndexFactory.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * Abstract base class for tree-based indexes. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory,interface * @apiviz.excludeSubtypes diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/RKNNIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/RKNNIndex.java index 71909004..770d1170 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/RKNNIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/RKNNIndex.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.database.query.rknn.RKNNQuery; * Index with support for kNN queries. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.landmark * @apiviz.excludeSubtypes diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/RangeIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/RangeIndex.java index 464c3589..56845f37 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/RangeIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/RangeIndex.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.database.query.range.RangeQuery; * Index with support for kNN queries. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.landmark * @apiviz.excludeSubtypes diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/distancematrix/PrecomputedDistanceMatrix.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/distancematrix/PrecomputedDistanceMatrix.java index 44ed6c84..4dbb79ea 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/distancematrix/PrecomputedDistanceMatrix.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/distancematrix/PrecomputedDistanceMatrix.java @@ -23,17 +23,31 @@ package de.lmu.ifi.dbs.elki.index.distancematrix; along with this program. If not, see <http://www.gnu.org/licenses/>. */ +import java.util.ArrayList; +import java.util.List; + import de.lmu.ifi.dbs.elki.data.type.TypeInformation; +import de.lmu.ifi.dbs.elki.database.ids.ArrayDBIDs; import de.lmu.ifi.dbs.elki.database.ids.DBIDArrayIter; +import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; import de.lmu.ifi.dbs.elki.database.ids.DBIDRange; 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.DoubleDBIDList; +import de.lmu.ifi.dbs.elki.database.ids.KNNHeap; +import de.lmu.ifi.dbs.elki.database.ids.KNNList; +import de.lmu.ifi.dbs.elki.database.ids.ModifiableDoubleDBIDList; import de.lmu.ifi.dbs.elki.database.query.distance.DistanceQuery; +import de.lmu.ifi.dbs.elki.database.query.knn.KNNQuery; +import de.lmu.ifi.dbs.elki.database.query.range.RangeQuery; import de.lmu.ifi.dbs.elki.database.relation.Relation; import de.lmu.ifi.dbs.elki.distance.distancefunction.DistanceFunction; import de.lmu.ifi.dbs.elki.index.AbstractIndex; import de.lmu.ifi.dbs.elki.index.DistanceIndex; import de.lmu.ifi.dbs.elki.index.IndexFactory; +import de.lmu.ifi.dbs.elki.index.KNNIndex; +import de.lmu.ifi.dbs.elki.index.RangeIndex; import de.lmu.ifi.dbs.elki.logging.Logging; import de.lmu.ifi.dbs.elki.logging.progress.FiniteProgress; import de.lmu.ifi.dbs.elki.logging.statistics.LongStatistic; @@ -45,21 +59,24 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; /** * Distance matrix, for precomputing similarity for a small data set. - * + * * This class uses a linear memory layout (not a ragged array), and assumes * symmetry as well as strictness. This way, it only stores the upper triangle * matrix with double precision. It has to store (n-1) * (n-2) distance values * in memory, requiring 8 * (n-1) * (n-2) bytes. Since Java has a size limit of * arrays of 31 bits (signed integer), we can store at most 2^16 objects * (precisely, 65536 objects) in a single array, which needs about 16 GB of RAM. - * + * * @author Erich Schubert - * + * @since 0.7.0 + * * @apiviz.has PrecomputedDistanceQuery - * + * @apiviz.has PrecomputedKNNQuery + * @apiviz.has PrecomputedRangeQuery + * * @param <O> Object type */ -public class PrecomputedDistanceMatrix<O> extends AbstractIndex<O>implements DistanceIndex<O> { +public class PrecomputedDistanceMatrix<O> extends AbstractIndex<O> implements DistanceIndex<O>, RangeIndex<O>, KNNIndex<O> { /** * Class logger. */ @@ -92,7 +109,7 @@ public class PrecomputedDistanceMatrix<O> extends AbstractIndex<O>implements Dis /** * Constructor. - * + * * @param relation Data relation * @param distanceFunction Distance function */ @@ -119,7 +136,7 @@ public class PrecomputedDistanceMatrix<O> extends AbstractIndex<O>implements Dis distanceQuery = distanceFunction.instantiate(relation); - int msize = triangleSize(size); + final int msize = triangleSize(size); matrix = new double[msize]; DBIDArrayIter ix = ids.iter(), iy = ids.iter(); @@ -140,7 +157,7 @@ public class PrecomputedDistanceMatrix<O> extends AbstractIndex<O>implements Dis /** * Compute the size of a complete x by x triangle (minus diagonal) - * + * * @param x Offset * @return Size of complete triangle */ @@ -150,7 +167,7 @@ public class PrecomputedDistanceMatrix<O> extends AbstractIndex<O>implements Dis /** * Array offset computation. - * + * * @param x X parameter * @param y Y parameter * @return Array offset @@ -184,9 +201,25 @@ public class PrecomputedDistanceMatrix<O> extends AbstractIndex<O>implements Dis return null; } + @Override + public KNNQuery<O> getKNNQuery(DistanceQuery<O> distanceQuery, Object... hints) { + if(this.distanceQuery.getDistanceFunction().equals(distanceQuery.getDistanceFunction())) { + return new PrecomputedKNNQuery(); + } + return null; + } + + @Override + public RangeQuery<O> getRangeQuery(DistanceQuery<O> distanceQuery, Object... hints) { + if(this.distanceQuery.getDistanceFunction().equals(distanceQuery.getDistanceFunction())) { + return new PrecomputedRangeQuery(); + } + return null; + } + /** * Distance query using the precomputed matrix. - * + * * @author Erich Schubert */ private class PrecomputedDistanceQuery implements DistanceQuery<O> { @@ -223,12 +256,115 @@ public class PrecomputedDistanceMatrix<O> extends AbstractIndex<O>implements Dis } /** + * Range query using the distance matrix. + * + * @author Erich Schubert + */ + private class PrecomputedRangeQuery implements RangeQuery<O> { + @Override + public DoubleDBIDList getRangeForDBID(DBIDRef id, double range) { + ModifiableDoubleDBIDList ret = DBIDUtil.newDistanceDBIDList(); + getRangeForDBID(id, range, ret); + ret.sort(); + return ret; + } + + @Override + public void getRangeForDBID(DBIDRef id, double range, ModifiableDoubleDBIDList result) { + result.add(0., id); + DBIDArrayIter it = ids.iter(); + + final int x = ids.getOffset(id); + // Case y < x: triangleSize(x) + y + int pos = triangleSize(x); + for(int y = 0; y < x; y++) { + final double dist = matrix[pos]; + if(dist <= range) { + result.add(dist, it.seek(y)); + } + pos++; + } + assert (pos == triangleSize(x + 1)); + // Case y > x: triangleSize(y) + x + pos = triangleSize(x + 1) + x; + for(int y = x + 1; y < size; y++) { + final double dist = matrix[pos]; + if(dist <= range) { + result.add(dist, it.seek(y)); + } + pos += y; + } + } + + @Override + public DoubleDBIDList getRangeForObject(O obj, double range) { + throw new AbortException("Preprocessor KNN query only supports ID queries."); + } + + @Override + public void getRangeForObject(O obj, double range, ModifiableDoubleDBIDList result) { + throw new AbortException("Preprocessor KNN query only supports ID queries."); + } + } + + /** + * kNN query using the distance matrix. + * + * @author Erich Schubert + */ + private class PrecomputedKNNQuery implements KNNQuery<O> { + @Override + public KNNList getKNNForDBID(DBIDRef id, int k) { + KNNHeap heap = DBIDUtil.newHeap(k); + heap.insert(0., id); + DBIDArrayIter it = ids.iter(); + double max = Double.POSITIVE_INFINITY; + final int x = ids.getOffset(id); + // Case y < x: triangleSize(x) + y + int pos = triangleSize(x); + for(int y = 0; y < x; y++) { + final double dist = matrix[pos]; + if(dist <= max) { + max = heap.insert(dist, it.seek(y)); + } + pos++; + } + assert (pos == triangleSize(x + 1)); + // Case y > x: triangleSize(y) + x + pos = triangleSize(x + 1) + x; + for(int y = x + 1; y < size; y++) { + final double dist = matrix[pos]; + if(dist <= max) { + max = heap.insert(dist, it.seek(y)); + } + pos += y; + } + return heap.toKNNList(); + } + + @Override + public List<? extends KNNList> getKNNForBulkDBIDs(ArrayDBIDs ids, int k) { + // TODO: optimize + List<KNNList> ret = new ArrayList<>(ids.size()); + for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { + ret.add(getKNNForDBID(iter, k)); + } + return ret; + } + + @Override + public KNNList getKNNForObject(O obj, int k) { + throw new AbortException("Preprocessor KNN query only supports ID queries."); + } + } + + /** * Factory for the index. - * + * * @author Erich Schubert - * + * * @apiviz.has PrecomputedDistanceMatrix - * + * * @param <O> Object type */ public static class Factory<O> implements IndexFactory<O, PrecomputedDistanceMatrix<O>> { @@ -239,7 +375,7 @@ public class PrecomputedDistanceMatrix<O> extends AbstractIndex<O>implements Dis /** * Constructor. - * + * * @param distanceFunction Distance function */ public Factory(DistanceFunction<? super O> distanceFunction) { @@ -259,11 +395,11 @@ public class PrecomputedDistanceMatrix<O> extends AbstractIndex<O>implements Dis /** * Parameterizer. - * + * * @author Erich Schubert - * + * * @apiviz.exclude - * + * * @param <O> Object type */ public static class Parameterizer<O> extends AbstractParameterizer { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/idistance/InMemoryIDistanceIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/idistance/InMemoryIDistanceIndex.java index 2fca801c..6ced1fbd 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/idistance/InMemoryIDistanceIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/idistance/InMemoryIDistanceIndex.java @@ -87,6 +87,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.DoubleIntPair; * </p> * * @author Erich Schubert + * @since 0.7.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/invertedlist/InMemoryInvertedIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/invertedlist/InMemoryInvertedIndex.java index 7a3087ba..101b7ed1 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/invertedlist/InMemoryInvertedIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/invertedlist/InMemoryInvertedIndex.java @@ -60,6 +60,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * Simple index using inverted lists. * * @author Erich Schubert + * @since 0.7.0 * * @param <V> Vector type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/InMemoryLSHIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/InMemoryLSHIndex.java index b55799af..a1940da7 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/InMemoryLSHIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/InMemoryLSHIndex.java @@ -63,6 +63,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * Locality Sensitive Hashing. * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.has LocalitySensitiveHashFunctionFamily * @apiviz.has Instance @@ -169,7 +170,7 @@ public class InMemoryLSHIndex<V> implements IndexFactory<V, InMemoryLSHIndex<V>. // TODO: We assume all hash functions have the same dimensionality. double[] buf = new double[hashfunctions.get(0).getNumberOfProjections()]; - FiniteProgress progress = LOG.isVerbose() ? new FiniteProgress("Building LSH index.", relation.size(), LOG) : null; + FiniteProgress progress = LOG.isVerbose() ? new FiniteProgress("Building LSH index", relation.size(), LOG) : null; int expect = Math.max(2, (int) Math.ceil(relation.size() / (double) numberOfBuckets)); for(DBIDIter iter = relation.getDBIDs().iter(); iter.valid(); iter.advance()) { V obj = relation.get(iter); diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/AbstractProjectedHashFunctionFamily.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/AbstractProjectedHashFunctionFamily.java index 7d9b09e6..521b16c4 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/AbstractProjectedHashFunctionFamily.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/AbstractProjectedHashFunctionFamily.java @@ -47,6 +47,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.RandomParameter; * Abstract base class for projection based hash functions. * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.uses RandomProjectionFamily * @apiviz.has MultipleProjectionsLocalitySensitiveHashFunction diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/CosineHashFunctionFamily.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/CosineHashFunctionFamily.java index b46e30ae..78cf7eb4 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/CosineHashFunctionFamily.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/CosineHashFunctionFamily.java @@ -65,6 +65,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.RandomParameter; * </p> * * @author Evgeniy Faerman + * @since 0.6.0 */ @Reference(authors = "M.S. Charikar", // title = "Similarity estimation techniques from rounding algorithms", // diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/EuclideanHashFunctionFamily.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/EuclideanHashFunctionFamily.java index e50766b0..620d2ef1 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/EuclideanHashFunctionFamily.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/EuclideanHashFunctionFamily.java @@ -39,6 +39,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.uses GaussianRandomProjectionFamily */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/LocalitySensitiveHashFunctionFamily.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/LocalitySensitiveHashFunctionFamily.java index 4c232df4..94a9e181 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/LocalitySensitiveHashFunctionFamily.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/LocalitySensitiveHashFunctionFamily.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.index.lsh.hashfunctions.LocalitySensitiveHashFunction * LSH family of hash functions. * * @author Erich Schubert + * @since 0.6.0 * * @param <V> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/ManhattanHashFunctionFamily.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/ManhattanHashFunctionFamily.java index fbc122af..95577790 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/ManhattanHashFunctionFamily.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfamilies/ManhattanHashFunctionFamily.java @@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.uses CauchyRandomProjectionFamily */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/CosineLocalitySensitiveHashFunction.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/CosineLocalitySensitiveHashFunction.java index ae0af49e..9a68c7d6 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/CosineLocalitySensitiveHashFunction.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/CosineLocalitySensitiveHashFunction.java @@ -39,6 +39,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Evgeniy Faerman + * @since 0.3 */ @Reference(authors = "M.S. Charikar", // title = "Similarity estimation techniques from rounding algorithms", // diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/LocalitySensitiveHashFunction.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/LocalitySensitiveHashFunction.java index 51dcd216..cb1c1584 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/LocalitySensitiveHashFunction.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/LocalitySensitiveHashFunction.java @@ -27,6 +27,7 @@ package de.lmu.ifi.dbs.elki.index.lsh.hashfunctions; * Hash functions as used by locality sensitive hashing. * * @author Erich Schubert + * @since 0.6.0 * * @param <V> Data type to hash. */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/MultipleProjectionsLocalitySensitiveHashFunction.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/MultipleProjectionsLocalitySensitiveHashFunction.java index a4976e59..ad266f19 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/MultipleProjectionsLocalitySensitiveHashFunction.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/lsh/hashfunctions/MultipleProjectionsLocalitySensitiveHashFunction.java @@ -41,6 +41,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Erich Schubert + * @since 0.6.0 */ @Reference(authors = "M. Datar and N. Immorlica and P. Indyk and V. S. Mirrokni", // title = "Locality-sensitive hashing scheme based on p-stable distributions", // diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/AbstractPreprocessorIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/AbstractPreprocessorIndex.java index 7377955b..3892c896 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/AbstractPreprocessorIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/AbstractPreprocessorIndex.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.logging.Logging; * object storage for preprocessing results. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.composedOf WritableDataStore * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/LocalProjectionIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/LocalProjectionIndex.java index af5fbcc9..66b30c9d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/LocalProjectionIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/LocalProjectionIndex.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.math.linearalgebra.ProjectionResult; * Abstract index interface for local projections * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.has ProjectionResult * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/fastoptics/RandomProjectedNeighborsAndDensities.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/fastoptics/RandomProjectedNeighborsAndDensities.java index e24852a9..f5615331 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/fastoptics/RandomProjectedNeighborsAndDensities.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/fastoptics/RandomProjectedNeighborsAndDensities.java @@ -85,6 +85,7 @@ import gnu.trove.list.array.TIntArrayList; * * @author Johannes Schneider * @author Erich Schubert + * @since 0.7.0 */ @Reference(authors = "J. Schneider and M. Vlachos", // title = "Fast parameterless density-based clustering via random projections", // diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/AbstractMaterializeKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/AbstractMaterializeKNNPreprocessor.java index 343f17b7..6d156c63 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/AbstractMaterializeKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/AbstractMaterializeKNNPreprocessor.java @@ -48,6 +48,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * Abstract base class for KNN Preprocessors. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/CachedDoubleDistanceKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/CachedDoubleDistanceKNNPreprocessor.java index ae7ce384..7d9f6b19 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/CachedDoubleDistanceKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/CachedDoubleDistanceKNNPreprocessor.java @@ -47,6 +47,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.FileParameter; * Preprocessor that loads an existing cached kNN result. * * @author Erich Schubert + * @since 0.6.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNChangeEvent.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNChangeEvent.java index 953a3baa..0963229a 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNChangeEvent.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNChangeEvent.java @@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.database.ids.DBIDs; * subscribed {@link KNNListener} of the change. * * @author Elke Achtert + * @since 0.4.0 * * @apiviz.has DBIDs * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNJoinMaterializeKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNJoinMaterializeKNNPreprocessor.java index 8a6af2fd..895d80c8 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNJoinMaterializeKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNJoinMaterializeKNNPreprocessor.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.logging.Logging; * Class to materialize the kNN using a spatial join on an R-tree. * * @author Erich Schubert + * @since 0.5.0 * * @param <V> vector type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNListener.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNListener.java index 40e772b1..166c4286 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNListener.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNListener.java @@ -30,6 +30,7 @@ import java.util.EventListener; * objects have been changed due to insertion or removals of objects. * * @author Elke Achtert + * @since 0.4.0 * * @apiviz.uses KNNChangeEvent oneway - - */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MaterializeKNNAndRKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MaterializeKNNAndRKNNPreprocessor.java index c2577bf8..71098362 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MaterializeKNNAndRKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MaterializeKNNAndRKNNPreprocessor.java @@ -67,6 +67,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Title; * of the nearest neighbors! * * @author Elke Achtert + * @since 0.4.0 * * @param <O> the type of database objects the preprocessor can be applied to * @param the type of distance the used distance function will return diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MaterializeKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MaterializeKNNPreprocessor.java index 5f21a165..24d4e677 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MaterializeKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MaterializeKNNPreprocessor.java @@ -33,6 +33,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.DoubleDBIDListIter; import de.lmu.ifi.dbs.elki.database.ids.KNNHeap; import de.lmu.ifi.dbs.elki.database.ids.KNNList; import de.lmu.ifi.dbs.elki.database.ids.SetDBIDs; @@ -46,6 +47,7 @@ import de.lmu.ifi.dbs.elki.logging.progress.FiniteProgress; import de.lmu.ifi.dbs.elki.logging.progress.StepProgress; import de.lmu.ifi.dbs.elki.logging.statistics.Duration; import de.lmu.ifi.dbs.elki.logging.statistics.LongStatistic; +import de.lmu.ifi.dbs.elki.utilities.Alias; import de.lmu.ifi.dbs.elki.utilities.documentation.Description; import de.lmu.ifi.dbs.elki.utilities.documentation.Title; @@ -56,6 +58,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Title; * Used for example by {@link de.lmu.ifi.dbs.elki.algorithm.outlier.lof.LOF}. * * @author Erich Schubert + * @since 0.2 * * @apiviz.has DistanceFunction * @apiviz.has KNNQuery @@ -65,6 +68,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Title; */ @Title("Materialize kNN Neighborhood preprocessor") @Description("Materializes the k nearest neighbors of objects of a database.") +@Alias("de.lmu.ifi.dbs.elki.preprocessing.MaterializeKNNPreprocessor") public class MaterializeKNNPreprocessor<O> extends AbstractMaterializeKNNPreprocessor<O> implements DynamicIndex { /** * Logger to use. @@ -105,14 +109,15 @@ public class MaterializeKNNPreprocessor<O> extends AbstractMaterializeKNNPreproc */ @Override protected void preprocess() { + final Logging log = getLogger(); // Could be subclass createStorage(); ArrayDBIDs ids = DBIDUtil.ensureArray(relation.getDBIDs()); - if(LOG.isStatistics()) { - LOG.statistics(new LongStatistic(this.getClass().getName() + ".k", k)); + if(log.isStatistics()) { + log.statistics(new LongStatistic(this.getClass().getName() + ".k", k)); } - Duration duration = LOG.isStatistics() ? LOG.newDuration(this.getClass().getName() + ".precomputation-time").begin() : null; + Duration duration = log.isStatistics() ? log.newDuration(this.getClass().getName() + ".precomputation-time").begin() : null; FiniteProgress progress = getLogger().isVerbose() ? new FiniteProgress("Materializing k nearest neighbors (k=" + k + ")", ids.size(), getLogger()) : null; // Try bulk List<? extends KNNList> kNNList = null; @@ -122,20 +127,30 @@ public class MaterializeKNNPreprocessor<O> extends AbstractMaterializeKNNPreproc int i = 0; for(DBIDIter id = ids.iter(); id.valid(); id.advance(), i++) { storage.put(id, kNNList.get(i)); - getLogger().incrementProcessed(progress); + log.incrementProcessed(progress); } } } else { + final boolean ismetric = getDistanceQuery().getDistanceFunction().isMetric(); for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { + if(ismetric && storage.get(iter) != null) { + log.incrementProcessed(progress); + continue; // Previously computed (duplicate point?) + } KNNList knn = knnQuery.getKNNForDBID(iter, k); storage.put(iter, knn); - getLogger().incrementProcessed(progress); + if(ismetric) { + for(DoubleDBIDListIter it = knn.iter(); it.valid() && it.doubleValue() == 0.; it.advance()) { + storage.put(it, knn); // Reuse + } + } + log.incrementProcessed(progress); } } - getLogger().ensureCompleted(progress); + log.ensureCompleted(progress); if(duration != null) { - LOG.statistics(duration.end()); + log.statistics(duration.end()); } } @@ -172,11 +187,12 @@ public class MaterializeKNNPreprocessor<O> extends AbstractMaterializeKNNPreproc * @param ids the ids of the newly inserted objects */ protected void objectsInserted(DBIDs ids) { - StepProgress stepprog = getLogger().isVerbose() ? new StepProgress(3) : null; + final Logging log = getLogger(); // Could be subclass + StepProgress stepprog = log.isVerbose() ? new StepProgress(3) : null; ArrayDBIDs aids = DBIDUtil.ensureArray(ids); // materialize the new kNNs - getLogger().beginStep(stepprog, 1, "New insertions ocurred, materialize their new kNNs."); + log.beginStep(stepprog, 1, "New insertions ocurred, materialize their new kNNs."); // Bulk-query kNNs List<? extends KNNList> kNNList = knnQuery.getKNNForBulkDBIDs(aids, k); // Store in storage @@ -186,14 +202,14 @@ public class MaterializeKNNPreprocessor<O> extends AbstractMaterializeKNNPreproc } // update the affected kNNs - getLogger().beginStep(stepprog, 2, "New insertions ocurred, update the affected kNNs."); + log.beginStep(stepprog, 2, "New insertions ocurred, update the affected kNNs."); ArrayDBIDs rkNN_ids = updateKNNsAfterInsertion(ids); // inform listener - getLogger().beginStep(stepprog, 3, "New insertions ocurred, inform listeners."); + log.beginStep(stepprog, 3, "New insertions ocurred, inform listeners."); fireKNNsInserted(ids, rkNN_ids); - getLogger().setCompleted(stepprog); + log.setCompleted(stepprog); } /** @@ -267,23 +283,24 @@ public class MaterializeKNNPreprocessor<O> extends AbstractMaterializeKNNPreproc * @param ids the ids of the removed objects */ protected void objectsRemoved(DBIDs ids) { - StepProgress stepprog = getLogger().isVerbose() ? new StepProgress(3) : null; + final Logging log = getLogger(); + StepProgress stepprog = log.isVerbose() ? new StepProgress(3) : null; // delete the materialized (old) kNNs - getLogger().beginStep(stepprog, 1, "New deletions ocurred, remove their materialized kNNs."); + log.beginStep(stepprog, 1, "New deletions ocurred, remove their materialized kNNs."); for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { storage.delete(iter); } // update the affected kNNs - getLogger().beginStep(stepprog, 2, "New deletions ocurred, update the affected kNNs."); + log.beginStep(stepprog, 2, "New deletions ocurred, update the affected kNNs."); ArrayDBIDs rkNN_ids = updateKNNsAfterDeletion(ids); // inform listener - getLogger().beginStep(stepprog, 3, "New deletions ocurred, inform listeners."); + log.beginStep(stepprog, 3, "New deletions ocurred, inform listeners."); fireKNNsRemoved(ids, rkNN_ids); - getLogger().ensureCompleted(stepprog); + log.ensureCompleted(stepprog); } /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MetricalIndexApproximationMaterializeKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MetricalIndexApproximationMaterializeKNNPreprocessor.java index a78b06e0..7823d872 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MetricalIndexApproximationMaterializeKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MetricalIndexApproximationMaterializeKNNPreprocessor.java @@ -59,6 +59,7 @@ import gnu.trove.map.hash.TObjectDoubleHashMap; * TODO correct handling of datastore events * * @author Erich Schubert + * @since 0.2 * * @apiviz.uses MetricalIndexTree * @@ -99,7 +100,7 @@ public class MetricalIndexApproximationMaterializeKNNPreprocessor<O extends Numb } List<E> leaves = index.getLeaves(); - FiniteProgress progress = getLogger().isVerbose() ? new FiniteProgress("Processing leaf nodes.", leaves.size(), getLogger()) : null; + FiniteProgress progress = getLogger().isVerbose() ? new FiniteProgress("Processing leaf nodes", leaves.size(), getLogger()) : null; for(E leaf : leaves) { N node = index.getNode(leaf); int size = node.getNumEntries(); diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/NaiveProjectedKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/NaiveProjectedKNNPreprocessor.java index 6b946474..f4911aef 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/NaiveProjectedKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/NaiveProjectedKNNPreprocessor.java @@ -79,6 +79,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.RandomParameter; * </p> * * @author Erich Schubert + * @since 0.7.0 * @apiviz.has NaiveProjectedKNNQuery */ @Reference(authors = "E. Schubert, A. Zimek, H.-P. Kriegel", // diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/PartitionApproximationMaterializeKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/PartitionApproximationMaterializeKNNPreprocessor.java index cdb314dc..b8a9f6fe 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/PartitionApproximationMaterializeKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/PartitionApproximationMaterializeKNNPreprocessor.java @@ -55,6 +55,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.RandomParameter; * Used for example by {@link de.lmu.ifi.dbs.elki.algorithm.outlier.lof.LOF}. * * @author Erich Schubert + * @since 0.2 * * @param <O> the type of database objects the preprocessor can be applied to */ @@ -103,7 +104,7 @@ public class PartitionApproximationMaterializeKNNPreprocessor<O> extends Abstrac // Produce a random shuffling of the IDs: ArrayDBIDs[] parts = DBIDUtil.randomSplit(relation.getDBIDs(), partitions, rnd); - FiniteProgress progress = LOG.isVerbose() ? new FiniteProgress("Processing partitions.", partitions, LOG) : null; + FiniteProgress progress = LOG.isVerbose() ? new FiniteProgress("Processing partitions", partitions, LOG) : null; for(int part = 0; part < partitions; part++) { final ArrayDBIDs ids = parts[part]; final int size = ids.size(); diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/RandomSampleKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/RandomSampleKNNPreprocessor.java index 39eb23f3..33a0c070 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/RandomSampleKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/RandomSampleKNNPreprocessor.java @@ -59,6 +59,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.RandomParameter; * </p> * * @author Erich Schubert + * @since 0.5.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpacefillingKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpacefillingKNNPreprocessor.java index 8aa1368c..22b378ae 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpacefillingKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpacefillingKNNPreprocessor.java @@ -88,6 +88,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.RandomParameter; * </p> * * @author Erich Schubert + * @since 0.7.0 * * @apiviz.has SpaceFillingKNNQuery */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpacefillingMaterializeKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpacefillingMaterializeKNNPreprocessor.java index 4b3864eb..257bda32 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpacefillingMaterializeKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpacefillingMaterializeKNNPreprocessor.java @@ -77,6 +77,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.RandomParameter; * </p> * * @author Erich Schubert + * @since 0.7.0 */ @Reference(authors = "E. Schubert, A. Zimek, H.-P. Kriegel", // title = "Fast and Scalable Outlier Detection with Approximate Nearest Neighbor Ensembles", // diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpatialApproximationMaterializeKNNPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpatialApproximationMaterializeKNNPreprocessor.java index 3706035c..49cdf239 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpatialApproximationMaterializeKNNPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpatialApproximationMaterializeKNNPreprocessor.java @@ -23,8 +23,6 @@ package de.lmu.ifi.dbs.elki.index.preprocessed.knn; along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import gnu.trove.impl.Constants; -import gnu.trove.map.hash.TObjectDoubleHashMap; import java.util.Collection; import java.util.List; @@ -49,9 +47,12 @@ import de.lmu.ifi.dbs.elki.logging.Logging; import de.lmu.ifi.dbs.elki.logging.progress.FiniteProgress; import de.lmu.ifi.dbs.elki.math.MeanVariance; import de.lmu.ifi.dbs.elki.result.ResultUtil; +import de.lmu.ifi.dbs.elki.utilities.Alias; import de.lmu.ifi.dbs.elki.utilities.documentation.Description; import de.lmu.ifi.dbs.elki.utilities.documentation.Title; import de.lmu.ifi.dbs.elki.utilities.exceptions.AbortException; +import gnu.trove.impl.Constants; +import gnu.trove.map.hash.TObjectDoubleHashMap; /** * A preprocessor for annotation of the k nearest neighbors (and their @@ -62,6 +63,7 @@ import de.lmu.ifi.dbs.elki.utilities.exceptions.AbortException; * TODO correct handling of datastore events * * @author Erich Schubert + * @since 0.2 * * @apiviz.uses SpatialIndexTree * @@ -70,6 +72,7 @@ import de.lmu.ifi.dbs.elki.utilities.exceptions.AbortException; */ @Title("Spatial Approximation Materialize kNN Preprocessor") @Description("Caterializes the (approximate) k nearest neighbors of objects of a database using a spatial approximation.") +@Alias("de.lmu.ifi.dbs.elki.preprocessing.SpatialApproximationMaterializeKNNPreprocessor") public class SpatialApproximationMaterializeKNNPreprocessor<O extends NumberVector, N extends SpatialNode<N, E>, E extends SpatialEntry> extends AbstractMaterializeKNNPreprocessor<O> { /** * Logger to use @@ -105,7 +108,7 @@ public class SpatialApproximationMaterializeKNNPreprocessor<O extends NumberVect } List<E> leaves = index.getLeaves(); - FiniteProgress progress = getLogger().isVerbose() ? new FiniteProgress("Processing leaf nodes.", leaves.size(), getLogger()) : null; + FiniteProgress progress = getLogger().isVerbose() ? new FiniteProgress("Processing leaf nodes", leaves.size(), getLogger()) : null; for(E leaf : leaves) { N node = index.getNode(leaf); int size = node.getNumEntries(); @@ -217,4 +220,4 @@ public class SpatialApproximationMaterializeKNNPreprocessor<O extends NumberVect } } } -}
\ No newline at end of file +} diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/AbstractFilteredPCAIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/AbstractFilteredPCAIndex.java index f1da979e..3f7f6d93 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/AbstractFilteredPCAIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/AbstractFilteredPCAIndex.java @@ -51,6 +51,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * * @author Elke Achtert * @author Erich Schubert + * @since 0.4.0 * * @apiviz.has PCAFilteredRunner * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/FilteredLocalPCAIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/FilteredLocalPCAIndex.java index c6504f54..9adef2e8 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/FilteredLocalPCAIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/FilteredLocalPCAIndex.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.math.linearalgebra.pca.PCAFilteredResult; * Interface for an index providing local PCA results. * * @author Erich Schubert + * @since 0.4.0 * * @param <NV> Vector type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/KNNQueryFilteredPCAIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/KNNQueryFilteredPCAIndex.java index 8e81d368..8dc06940 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/KNNQueryFilteredPCAIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/KNNQueryFilteredPCAIndex.java @@ -46,6 +46,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; * * @author Elke Achtert * @author Erich Schubert + * @since 0.4.0 * * @apiviz.landmark * @apiviz.uses KNNQuery diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/AbstractPreferenceVectorIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/AbstractPreferenceVectorIndex.java index af1359d5..401a872f 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/AbstractPreferenceVectorIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/AbstractPreferenceVectorIndex.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.index.preprocessed.AbstractPreprocessorIndex; * Abstract base class for preference vector based algorithms. * * @author Erich Schubert + * @since 0.4.0 * * @param <NV> Number vector */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/DiSHPreferenceVectorIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/DiSHPreferenceVectorIndex.java index 0653e1bb..5e0a954e 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/DiSHPreferenceVectorIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/DiSHPreferenceVectorIndex.java @@ -70,6 +70,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; * database. * * @author Elke Achtert + * @since 0.4.0 * * @param <V> Vector type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/HiSCPreferenceVectorIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/HiSCPreferenceVectorIndex.java index a196e5d4..54b01a0b 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/HiSCPreferenceVectorIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/HiSCPreferenceVectorIndex.java @@ -56,6 +56,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; * database. * * @author Elke Achtert + * @since 0.4.0 * * @see HiSC * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/PreferenceVectorIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/PreferenceVectorIndex.java index 3a4ed850..896783c3 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/PreferenceVectorIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/PreferenceVectorIndex.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.index.IndexFactory; * Interface for an index providing preference vectors. * * @author Erich Schubert + * @since 0.4.0 * * @param <NV> Vector type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/snn/SharedNearestNeighborIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/snn/SharedNearestNeighborIndex.java index 2b689d8d..22ebacc1 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/snn/SharedNearestNeighborIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/snn/SharedNearestNeighborIndex.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.index.IndexFactory; * Interface for an index providing nearest neighbor sets. * * @author Erich Schubert + * @since 0.4.0 */ public interface SharedNearestNeighborIndex<O> extends Index { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/snn/SharedNearestNeighborPreprocessor.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/snn/SharedNearestNeighborPreprocessor.java index 81ce777d..7e65ff80 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/snn/SharedNearestNeighborPreprocessor.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/snn/SharedNearestNeighborPreprocessor.java @@ -63,6 +63,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * * @author Arthur Zimek * @author Erich Schubert + * @since 0.4.0 * * @apiviz.has DistanceFunction * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/LatLngAsECEFIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/LatLngAsECEFIndex.java index e3bf3d88..3c38ea2d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/LatLngAsECEFIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/LatLngAsECEFIndex.java @@ -74,6 +74,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * {@link DatabaseQuery#HINT_EXACT} is set, it will not be used. * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.composedOf LatLngToECEFProjection * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/LngLatAsECEFIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/LngLatAsECEFIndex.java index 794ecdd6..d247b4bf 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/LngLatAsECEFIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/LngLatAsECEFIndex.java @@ -74,6 +74,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * {@link DatabaseQuery#HINT_EXACT} is set, it will not be used. * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.composedOf LngLatToECEFProjection * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/PINN.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/PINN.java index 61ab9e56..7c3dbb28 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/PINN.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/PINN.java @@ -51,6 +51,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.RandomParameter; * </p> * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.composedOf AchlioptasRandomProjectionFamily * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/ProjectedIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/ProjectedIndex.java index 090d00ac..daab827d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/ProjectedIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/projected/ProjectedIndex.java @@ -79,6 +79,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * FIXME: add refinement to bulk queries! * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.composedOf Projection * @apiviz.has ProjectedKNNQuery diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractDirectoryEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractDirectoryEntry.java index 7918ed7d..9732469a 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractDirectoryEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractDirectoryEntry.java @@ -31,6 +31,7 @@ import java.io.ObjectOutput; * Abstract superclass for entries in an tree based index structure. * * @author Elke Achtert + * @since 0.2 */ public abstract class AbstractDirectoryEntry implements DirectoryEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractLeafEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractLeafEntry.java index 0ef87f34..b99adc16 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractLeafEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractLeafEntry.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.database.ids.DBIDUtil; * Abstract superclass for entries in an tree based index structure. * * @author Elke Achtert + * @since 0.2 */ public abstract class AbstractLeafEntry implements LeafEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractNode.java index e1bbdb29..b2922e55 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/AbstractNode.java @@ -43,6 +43,7 @@ import de.lmu.ifi.dbs.elki.utilities.exceptions.AbortException; * Abstract superclass for nodes in an tree based index structure. * * @author Elke Achtert + * @since 0.2 * @param <E> the type of Entry used in the index */ public abstract class AbstractNode<E extends Entry> extends AbstractExternalizablePage implements Node<E> { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/BreadthFirstEnumeration.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/BreadthFirstEnumeration.java index ee86c3fa..14c3e434 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/BreadthFirstEnumeration.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/BreadthFirstEnumeration.java @@ -32,6 +32,7 @@ import java.util.Queue; * Breadth first enumeration over the nodes of an index structure. * * @author Elke Achtert + * @since 0.2 * * @apiviz.uses IndexTree * @apiviz.has IndexTreePath diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/DirectoryEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/DirectoryEntry.java index cc335e90..2edf3fa5 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/DirectoryEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/DirectoryEntry.java @@ -27,6 +27,7 @@ package de.lmu.ifi.dbs.elki.index.tree; * Directory Entry * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.excludeSubtypes */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/Entry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/Entry.java index 47369bac..8558842e 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/Entry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/Entry.java @@ -30,6 +30,7 @@ import java.io.Externalizable; * represent a node or a data object. * * @author Elke Achtert + * @since 0.2 * @apiviz.excludeSubtypes */ public interface Entry extends Externalizable { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/IndexTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/IndexTree.java index dd38bb6f..2024fa4c 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/IndexTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/IndexTree.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.exceptions.AbortException; * Abstract super class for all tree based index classes. * * @author Elke Achtert + * @since 0.2 * * @apiviz.composedOf PageFile * @apiviz.has Node oneway - - contains diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/IndexTreePath.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/IndexTreePath.java index 02aa2c68..91737ac8 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/IndexTreePath.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/IndexTreePath.java @@ -29,6 +29,7 @@ import java.util.ArrayList; * Represents a path to a node in an index structure. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has Entry oneway - - «contains» * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/LeafEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/LeafEntry.java index 8be982bd..b8e10035 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/LeafEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/LeafEntry.java @@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.database.ids.DBID; * Leaf entry * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.excludeSubtypes */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/Node.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/Node.java index 34ddfbeb..aaacfc2a 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/Node.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/Node.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.persistent.Page; * has to provide an enumeration over its children. * * @author Elke Achtert + * @since 0.2 * * @apiviz.composedOf Entry * @apiviz.excludeSubtypes diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/TreeIndexHeader.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/TreeIndexHeader.java index 0e40d2c1..44c520ea 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/TreeIndexHeader.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/TreeIndexHeader.java @@ -38,6 +38,7 @@ import de.lmu.ifi.dbs.elki.persistent.DefaultPageHeader; * information is needed for persistent storage. * * @author Elke Achtert + * @since 0.2 */ public class TreeIndexHeader extends DefaultPageHeader { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/MetricalIndexTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/MetricalIndexTree.java index cd0be5e0..fffd7020 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/MetricalIndexTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/MetricalIndexTree.java @@ -35,6 +35,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * Abstract super class for all metrical index classes. * * @author Elke Achtert + * @since 0.2 * * @param <O> the type of objects stored in the index * @param <N> the type of nodes used in the metrical index diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/AbstractCoverTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/AbstractCoverTree.java index 84878486..891b353d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/AbstractCoverTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/AbstractCoverTree.java @@ -48,6 +48,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * Abstract base class for cover tree variants. * * @author Erich Schubert + * @since 0.7.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/CoverTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/CoverTree.java index ca20af1e..ca07889b 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/CoverTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/CoverTree.java @@ -70,6 +70,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * TODO: allow insertions and removals, as in the original publication. * * @author Erich Schubert + * @since 0.7.0 * * @apiviz.has CoverTreeRangeQuery * @apiviz.has CoverTreeKNNQuery diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/SimplifiedCoverTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/SimplifiedCoverTree.java index a3daba34..2b85283f 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/SimplifiedCoverTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/covertree/SimplifiedCoverTree.java @@ -71,6 +71,7 @@ import de.lmu.ifi.dbs.elki.utilities.datastructures.heap.DoubleObjectMinHeap; * TODO: allow insertions and removals, as in the original publication. * * @author Erich Schubert + * @since 0.7.0 * * @apiviz.has CoverTreeRangeQuery * @apiviz.has CoverTreeKNNQuery diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTree.java index 7282a39a..073596ad 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTree.java @@ -45,6 +45,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.DoubleIntPair; * Abstract super class for all M-Tree variants. * * @author Elke Achtert + * @since 0.2 * * @apiviz.composedOf MTreeSettings * @apiviz.composedOf Statistics diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTreeFactory.java index 0a7eb7cf..b3207656 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTreeFactory.java @@ -41,6 +41,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * Abstract factory for various MTrees * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses AbstractMTree oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTreeNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTreeNode.java index d065891b..32ee5980 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTreeNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/AbstractMTreeNode.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.logging.LoggingConfiguration; * Abstract super class for nodes in M-Tree variants. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has MTreeEntry oneway - - contains * @apiviz.excludeSubtypes diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java index 46b556e5..604c9356 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java @@ -38,6 +38,7 @@ import de.lmu.ifi.dbs.elki.index.tree.AbstractDirectoryEntry; * the routing object of the entry to its parent's routing object in the M-Tree. * * @author Elke Achtert + * @since 0.2 */ public class MTreeDirectoryEntry extends AbstractDirectoryEntry implements MTreeEntry { private static final long serialVersionUID = 2; diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeEntry.java index 8578ad54..d53dcf28 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeEntry.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.index.tree.Entry; * Defines the requirements for an entry in an M-Tree node. * * @author Elke Achtert + * @since 0.2 */ public interface MTreeEntry extends Entry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeLeafEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeLeafEntry.java index c52216be..dfa43a13 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeLeafEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeLeafEntry.java @@ -37,6 +37,7 @@ import de.lmu.ifi.dbs.elki.index.tree.AbstractLeafEntry; * M-Tree. * * @author Elke Achtert + * @since 0.2 */ public class MTreeLeafEntry extends AbstractLeafEntry implements MTreeEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeSettings.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeSettings.java index e139ad43..8f66f079 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeSettings.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeSettings.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.strategies.split.MT * Class to store the MTree settings. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type * @param <N> Node type diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTree.java index dd55b525..0646ba3b 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTree.java @@ -49,6 +49,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * k is less than or equal to the given parameter. * * @author Elke Achtert + * @since 0.2 * @param <O> the type of DatabaseObject to be stored in the metrical index * @param <N> the type of MetricalNode used in the metrical index * @param <E> the type of MetricalEntry used in the metrical index diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTreeUnified.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTreeUnified.java index b3fc0f5f..462a4ed1 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTreeUnified.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTreeUnified.java @@ -42,6 +42,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * k is less than or equal to the given parameter. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has MkTreeHeader oneway * @apiviz.composedOf MkTreeSettings diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTreeUnifiedFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTreeUnifiedFactory.java index 577ca31f..5e98fc10 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTreeUnifiedFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/AbstractMkTreeUnifiedFactory.java @@ -37,6 +37,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; * Abstract factory for various Mk-Trees * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses AbstractMkTreeUnified oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/MkTreeHeader.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/MkTreeHeader.java index 74b34471..f7a08db2 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/MkTreeHeader.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/MkTreeHeader.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.index.tree.TreeIndexHeader; * This information is needed for persistent storage. * * @author Elke Achtert + * @since 0.2 */ public class MkTreeHeader extends TreeIndexHeader { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/MkTreeSettings.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/MkTreeSettings.java index a3410291..1f94da0a 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/MkTreeSettings.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/MkTreeSettings.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeSettings; * Class with settings for MkTrees. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type * @param <N> Node type diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppDirectoryEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppDirectoryEntry.java index a8cf62e0..3dc8786e 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppDirectoryEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppDirectoryEntry.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeDirectoryEntry * of its knn-distances. * * @author Elke Achtert + * @since 0.2 */ class MkAppDirectoryEntry extends MTreeDirectoryEntry implements MkAppEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppEntry.java index 53f769e1..88a4bc07 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppEntry.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry; * provided. * * @author Elke Achtert + * @since 0.2 * * @apiviz.composedOf PolynomialApproximation */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppLeafEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppLeafEntry.java index 098e82ac..e5d92d00 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppLeafEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppLeafEntry.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeLeafEntry; * knn-distances. * * @author Elke Achtert + * @since 0.2 */ class MkAppLeafEntry extends MTreeLeafEntry implements MkAppEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTree.java index ac9a00bb..14755f4b 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTree.java @@ -54,6 +54,7 @@ import de.lmu.ifi.dbs.elki.utilities.io.ByteArrayUtil; * parameter k < kmax. * * @author Elke Achtert + * @since 0.2 * * @apiviz.composedOf MkAppTreeSettings * @apiviz.has MkAppTreeNode oneway - - contains diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java index b6a5792d..0c960da8 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java @@ -38,6 +38,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; * Factory for a MkApp-Tree * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses MkAppTreeIndex oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeIndex.java index 7e9f2332..0ecf04e4 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeIndex.java @@ -46,6 +46,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * MkAppTree used as database index. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeNode.java index cb798e46..4d37e326 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeNode.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.utilities.FormatUtil; * Represents a node in an MkApp-Tree. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has MkAppEntry oneway - - contains * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeSettings.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeSettings.java index 993b198f..a373d472 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeSettings.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeSettings.java @@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktrees.MkTreeSetti * Settings class for the MkApp Tree. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/PolynomialApproximation.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/PolynomialApproximation.java index fa795da7..b89e643d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/PolynomialApproximation.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/PolynomialApproximation.java @@ -35,6 +35,7 @@ import de.lmu.ifi.dbs.elki.utilities.FormatUtil; * for knn-distances consisting of parameters b0, ..., bp. * * @author Elke Achtert + * @since 0.2 */ public class PolynomialApproximation implements Externalizable { private static final long serialVersionUID = 1; diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/ApproximationLine.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/ApproximationLine.java index d11415d2..f4567186 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/ApproximationLine.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/ApproximationLine.java @@ -33,6 +33,7 @@ import java.io.ObjectOutput; * axes intercept t and a start value for k. * * @author Elke Achtert + * @since 0.2 */ public class ApproximationLine implements Externalizable { private static final long serialVersionUID = 1; diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/ConvexHull.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/ConvexHull.java index f0e202e1..36490bc0 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/ConvexHull.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/ConvexHull.java @@ -27,6 +27,7 @@ package de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktrees.mkcop; * Holds the lower and upper hull for some values. * * @author Elke Achtert + * @since 0.2 */ public class ConvexHull { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPDirectoryEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPDirectoryEntry.java index 012728a3..92f514bc 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPDirectoryEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPDirectoryEntry.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeDirectoryEntry * its knn-distances. * * @author Elke Achtert + * @since 0.2 */ class MkCoPDirectoryEntry extends MTreeDirectoryEntry implements MkCoPEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPEntry.java index 05f93438..0a112325 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPEntry.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry; * provided. * * @author Elke Achtert + * @since 0.2 * * @apiviz.composedOf ApproximationLine */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPLeafEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPLeafEntry.java index dbb463c8..fc7a10b5 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPLeafEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPLeafEntry.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeLeafEntry; * approximation of its knn-distances. * * @author Elke Achtert + * @since 0.2 */ class MkCoPLeafEntry extends MTreeLeafEntry implements MkCoPEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTree.java index 322b832e..1165b9d5 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTree.java @@ -52,6 +52,7 @@ import de.lmu.ifi.dbs.elki.utilities.io.ByteArrayUtil; * parameter k < kmax. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has MkCoPTreeNode oneway - - contains * @apiviz.has ConvexHull diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTreeIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTreeIndex.java index c0de7232..b17490a1 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTreeIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTreeIndex.java @@ -47,6 +47,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * MkCoPTree used as database index. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTreeNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTreeNode.java index 890887b7..0a23e15b 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTreeNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCoPTreeNode.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTreeNode; * Represents a node in an MkCop-Tree. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has MkCoPEntry oneway - - contains * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCopTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCopTreeFactory.java index d16dfa50..e8ac44f6 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCopTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkcop/MkCopTreeFactory.java @@ -38,6 +38,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; * Factory for a MkCoPTree-Tree * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses MkCoPTreeIndex oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxDirectoryEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxDirectoryEntry.java index 0fb9e0c6..c1aaa975 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxDirectoryEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxDirectoryEntry.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeDirectoryEntry * the underlying MkMax-Tree node. * * @author Elke Achtert + * @since 0.2 */ class MkMaxDirectoryEntry extends MTreeDirectoryEntry implements MkMaxEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxEntry.java index 867343f4..b5dc4232 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxEntry.java @@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry; * neighbor distance of the underlying data object or MkMax-Tree node. * * @author Elke Achtert + * @since 0.2 */ interface MkMaxEntry extends MTreeEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxLeafEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxLeafEntry.java index 699a6a2a..e5883f0c 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxLeafEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxLeafEntry.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeLeafEntry; * the underlying data object. * * @author Elke Achtert + * @since 0.2 */ class MkMaxLeafEntry extends MTreeLeafEntry implements MkMaxEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTree.java index 3f2c807e..d2c64e43 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTree.java @@ -51,6 +51,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.DoubleIntPair; * in each entry of a node. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has MkMaxTreeNode oneway - - contains * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeFactory.java index c8d0dc72..ee15dff6 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeFactory.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil; * Factory for MkMaxTrees * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses MkMaxTreeIndex oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeIndex.java index 21e2d9df..6182ae26 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeIndex.java @@ -53,6 +53,7 @@ import de.lmu.ifi.dbs.elki.utilities.exceptions.NotImplementedException; * MkMax tree * * @author Elke Achtert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeNode.java index 1e044098..3781bbd4 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkmax/MkMaxTreeNode.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTreeNode; * Represents a node in an {@link MkMaxTree}. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has MkMaxEntry oneway - - contains * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabDirectoryEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabDirectoryEntry.java index 54345ca6..c16095e9 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabDirectoryEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabDirectoryEntry.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeDirectoryEntry * parameters k <= k_max. * * @author Elke Achtert + * @since 0.2 */ class MkTabDirectoryEntry extends MTreeDirectoryEntry implements MkTabEntry { private static final long serialVersionUID = 2; diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabEntry.java index 09dbb94c..2b2a247d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabEntry.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry; * parameters k <= k_max of the underlying data object or MkTab-Tree node. * * @author Elke Achtert + * @since 0.2 */ interface MkTabEntry extends MTreeEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabLeafEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabLeafEntry.java index 39627445..e3881745 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabLeafEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabLeafEntry.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeLeafEntry; * parameters k <= k_max. * * @author Elke Achtert + * @since 0.2 */ class MkTabLeafEntry extends MTreeLeafEntry implements MkTabEntry { private static final long serialVersionUID = 2; diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTree.java index 5f99fc95..e45fea67 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTree.java @@ -46,6 +46,7 @@ import de.lmu.ifi.dbs.elki.utilities.io.ByteArrayUtil; * of a node. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has MkTabTreeNode oneway - - contains * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeFactory.java index ce4a1513..ad182b78 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeFactory.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil; * Factory for MkTabTrees * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses MkTabTreeIndex oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeIndex.java index 7fcc05fc..bef30432 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeIndex.java @@ -49,6 +49,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * MkTabTree used as database index. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeNode.java index be7f0790..9c62f487 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mktab/MkTabTreeNode.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTreeNode; * Represents a node in a MkMax-Tree. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has MkTabEntry oneway - - contains * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTree.java index e7a1bdfa..631388b0 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTree.java @@ -48,6 +48,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Title; * </p> * * @author Elke Achtert + * @since 0.2 * * @apiviz.has MTreeNode oneway - - contains * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeFactory.java index a65d96c7..faa1cd95 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeFactory.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil; * Factory for a M-Tree * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses MTreeIndex oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeIndex.java index 8d73bd58..d8b2bddd 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeIndex.java @@ -55,6 +55,7 @@ import de.lmu.ifi.dbs.elki.utilities.io.ByteArrayUtil; * Class for using an m-tree as database index. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeNode.java index db8f4a19..b8dd882d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mtree/MTreeNode.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry; * Represents a node in an M-Tree. * * @author Elke Achtert + * @since 0.2 * @param <O> Object type */ public class MTreeNode<O> extends AbstractMTreeNode<O, MTreeNode<O>, MTreeEntry> { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MTreeQueryUtil.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MTreeQueryUtil.java index 44446fe3..35f2b40a 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MTreeQueryUtil.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MTreeQueryUtil.java @@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTree; * Query utility classes for MTrees. * * @author Erich Schubert + * @since 0.5.5 */ public final class MTreeQueryUtil { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MetricalIndexKNNQuery.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MetricalIndexKNNQuery.java index cd574b0e..73a21b69 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MetricalIndexKNNQuery.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MetricalIndexKNNQuery.java @@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.datastructures.heap.ComparableMinHeap; * Instance of a KNN query for a particular spatial index. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.uses AbstractMTree * @apiviz.uses DoubleMTreeDistanceSearchCandidate diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MetricalIndexRangeQuery.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MetricalIndexRangeQuery.java index 392b3e38..5b57ea4b 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MetricalIndexRangeQuery.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MetricalIndexRangeQuery.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry; * Instance of a range query for a particular spatial index. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.uses AbstractMTree * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MkTreeRKNNQuery.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MkTreeRKNNQuery.java index 9a2527f7..b69e4701 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MkTreeRKNNQuery.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/query/MkTreeRKNNQuery.java @@ -39,6 +39,7 @@ import de.lmu.ifi.dbs.elki.utilities.exceptions.NotImplementedException; * Instance of a rKNN query for a particular spatial index. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.uses AbstractMkTree */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/insert/MTreeInsert.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/insert/MTreeInsert.java index cf460fd8..c51979e1 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/insert/MTreeInsert.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/insert/MTreeInsert.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry; * FIXME: move this to the actual insert. * * @author Erich Schubert + * @since 0.2 */ public interface MTreeInsert<O, N extends AbstractMTreeNode<O, N, E>, E extends MTreeEntry> { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/insert/MinimumEnlargementInsert.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/insert/MinimumEnlargementInsert.java index 22bd611f..58ab4f4f 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/insert/MinimumEnlargementInsert.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/insert/MinimumEnlargementInsert.java @@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Erich Schubert + * @since 0.6.0 */ @Reference(authors = "P. Ciaccia, M. Patella, P. Zezula", // title = "M-tree: An Efficient Access Method for Similarity Search in Metric Spaces", // diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/Assignments.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/Assignments.java index 7095bd0a..d2fd6570 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/Assignments.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/Assignments.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry; * Encapsulates the attributes of an assignment during a split. * * @author Elke Achtert + * @since 0.2 * * @apiviz.composedOf DistanceEntry * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/DistanceEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/DistanceEntry.java index 79d4668a..ac55a1d3 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/DistanceEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/DistanceEntry.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.index.tree.Entry; * belonging to this entry. * * @author Elke Achtert + * @since 0.2 * * @apiviz.uses Entry * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MLBDistSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MLBDistSplit.java index f07ed672..648c97ee 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MLBDistSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MLBDistSplit.java @@ -26,6 +26,7 @@ package de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.strategies.split; import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTree; import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTreeNode; import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry; +import de.lmu.ifi.dbs.elki.utilities.Alias; import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; /** @@ -41,6 +42,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Elke Achtert + * @since 0.2 * * @param <O> the type of DatabaseObject to be stored in the M-Tree * @param <N> the type of AbstractMTreeNode used in the M-Tree @@ -50,6 +52,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; title = "M-tree: An Efficient Access Method for Similarity Search in Metric Spaces", // booktitle = "VLDB'97, Proceedings of 23rd International Conference on Very Large Data Bases, August 25-29, 1997, Athens, Greece", // url = "http://www.vldb.org/conf/1997/P426.PDF") +@Alias("de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.split.MLBDistSplit") public class MLBDistSplit<O, N extends AbstractMTreeNode<O, N, E>, E extends MTreeEntry> extends MTreeSplit<O, N, E> { /** * Creates a new split object. diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MMRadSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MMRadSplit.java index 16687a20..6ef4e97a 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MMRadSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MMRadSplit.java @@ -41,6 +41,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Elke Achtert + * @since 0.2 * * @param <O> the type of objects to be stored in the M-Tree * @param <N> the type of AbstractMTreeNode used in the M-Tree diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MRadSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MRadSplit.java index e364c61f..a53e02de 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MRadSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MRadSplit.java @@ -26,6 +26,7 @@ package de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.strategies.split; import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTree; import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTreeNode; import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry; +import de.lmu.ifi.dbs.elki.utilities.Alias; import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; /** @@ -41,12 +42,14 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Elke Achtert + * @since 0.2 * * @param <O> the type of DatabaseObject to be stored in the M-Tree * @param <N> the type of AbstractMTreeNode used in the M-Tree * @param <E> the type of MetricalEntry used in the M-Tree */ @Reference(authors = "P. Ciaccia, M. Patella, P. Zezula", title = "M-tree: An Efficient Access Method for Similarity Search in Metric Spaces", booktitle = "VLDB'97, Proceedings of 23rd International Conference on Very Large Data Bases, August 25-29, 1997, Athens, Greece", url = "http://www.vldb.org/conf/1997/P426.PDF") +@Alias("de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.split.MRadSplit") public class MRadSplit<O, N extends AbstractMTreeNode<O, N, E>, E extends MTreeEntry> extends MTreeSplit<O, N, E> { /** * Creates a new split object. diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MTreeSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MTreeSplit.java index 01c612c0..30487846 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MTreeSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/MTreeSplit.java @@ -35,6 +35,7 @@ import de.lmu.ifi.dbs.elki.utilities.datastructures.arrays.DoubleIntegerArrayQui * Abstract super class for splitting a node in an M-Tree. * * @author Elke Achtert + * @since 0.2 * * @apiviz.composedOf Assignments * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/RandomSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/RandomSplit.java index e7c6dbca..27970b25 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/RandomSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/strategies/split/RandomSplit.java @@ -52,6 +52,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.RandomParameter; * </p> * * @author Elke Achtert + * @since 0.2 * * @param <O> the type of DatabaseObject to be stored in the M-Tree * @param <N> the type of AbstractMTreeNode used in the M-Tree diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/DoubleDistanceSearchCandidate.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/DoubleDistanceSearchCandidate.java index 46dbe003..a5d422f7 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/DoubleDistanceSearchCandidate.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/DoubleDistanceSearchCandidate.java @@ -28,6 +28,7 @@ package de.lmu.ifi.dbs.elki.index.tree.query; * implementation). * * @author Erich Schubert + * @since 0.4.0 */ public class DoubleDistanceSearchCandidate implements Comparable<DoubleDistanceSearchCandidate> { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/DoubleMTreeDistanceSearchCandidate.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/DoubleMTreeDistanceSearchCandidate.java index bdd1e0f5..08562d4d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/DoubleMTreeDistanceSearchCandidate.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/DoubleMTreeDistanceSearchCandidate.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.database.ids.DBID; * covering radius. * * @author Elke Achtert + * @since 0.4.0 */ public class DoubleMTreeDistanceSearchCandidate extends DoubleDistanceSearchCandidate { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/GenericMTreeDistanceSearchCandidate.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/GenericMTreeDistanceSearchCandidate.java index 575436db..2cdad822 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/GenericMTreeDistanceSearchCandidate.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/query/GenericMTreeDistanceSearchCandidate.java @@ -35,6 +35,7 @@ import de.lmu.ifi.dbs.elki.database.ids.DBID; * FIXME: Class naming in this package is inconsistent. * * @author Elke Achtert + * @since 0.4.0 */ public class GenericMTreeDistanceSearchCandidate implements Comparable<GenericMTreeDistanceSearchCandidate> { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialDirectoryEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialDirectoryEntry.java index 56fd0e0c..71bfef66 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialDirectoryEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialDirectoryEntry.java @@ -39,6 +39,7 @@ import de.lmu.ifi.dbs.elki.index.tree.AbstractDirectoryEntry; * spatial node. * * @author Elke Achtert + * @since 0.2 */ public class SpatialDirectoryEntry extends AbstractDirectoryEntry implements SpatialEntry { private static final long serialVersionUID = 1; diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialEntry.java index 4122b90c..07d6bc17 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialEntry.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.index.tree.Entry; * Defines the requirements for an entry in a node of a Spatial Index. * * @author Elke Achtert + * @since 0.2 */ public interface SpatialEntry extends Entry, SpatialComparable { // Emtpy - just combining the two interfaces above. diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialIndexTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialIndexTree.java index 52a92916..13acb8e4 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialIndexTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialIndexTree.java @@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * Abstract super class for all spatial index tree classes. * * @author Elke Achtert + * @since 0.2 * * @apiviz.landmark * @apiviz.has SpatialNode oneway - - contains diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialNode.java index af88b35f..f2a584d1 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialNode.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.Node; * leaf node. * * @author Elke Achtert + * @since 0.2 * * @apiviz.composedOf SpatialEntry * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialPair.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialPair.java index 0d4884ad..4f008337 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialPair.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialPair.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.Pair; * which are spatial nodes or data objects. * * @author Elke Achtert + * @since 0.4.0 */ public class SpatialPair<K, V extends SpatialComparable> extends Pair<K, V> implements SpatialComparable { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialPointLeafEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialPointLeafEntry.java index 705c54d6..bc25c0cd 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialPointLeafEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/SpatialPointLeafEntry.java @@ -38,6 +38,7 @@ import de.lmu.ifi.dbs.elki.math.linearalgebra.Vector; * and the values of the underlying data object. * * @author Elke Achtert + * @since 0.2 */ public class SpatialPointLeafEntry extends AbstractLeafEntry implements SpatialEntry, NumberVector { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/kd/MinimalisticMemoryKDTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/kd/MinimalisticMemoryKDTree.java index 11bcb17a..90b07c9e 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/kd/MinimalisticMemoryKDTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/kd/MinimalisticMemoryKDTree.java @@ -83,6 +83,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; * TODO: add support for weighted Minkowski distances. * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.has KDTreeKNNQuery * @apiviz.has KDTreeRangeQuery diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/kd/SmallMemoryKDTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/kd/SmallMemoryKDTree.java index d44731f0..ca7c5821 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/kd/SmallMemoryKDTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/kd/SmallMemoryKDTree.java @@ -79,6 +79,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; * TODO: add support for weighted Minkowski distances. * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.has KDTreeKNNQuery * @apiviz.has KDTreeRangeQuery diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTree.java index 5c3530ec..fd7fd8b5 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTree.java @@ -59,6 +59,7 @@ import de.lmu.ifi.dbs.elki.utilities.exceptions.AbortException; * FeatureVector) is intentional, because we have spatial requirements. * * @author Elke Achtert + * @since 0.2 * * @apiviz.landmark * @apiviz.has AbstractRStarTreeNode oneway - - contains diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTreeFactory.java index ae0e3389..44175e99 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTreeFactory.java @@ -47,6 +47,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * Abstract factory for R*-Tree based trees. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses AbstractRStarTree oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTreeNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTreeNode.java index 77de9df4..56f85ae3 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTreeNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRStarTreeNode.java @@ -43,6 +43,7 @@ import de.lmu.ifi.dbs.elki.logging.LoggingConfiguration; * Abstract superclass for nodes in a R*-Tree. * * @author Elke Achtert + * @since 0.2 * @param <N> Node type * @param <E> Entry type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRTreeSettings.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRTreeSettings.java index f8c6e732..87bad4ac 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRTreeSettings.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/AbstractRTreeSettings.java @@ -35,6 +35,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.strategies.split.Top * Class to wrap common Rtree settings. * * @author Erich Schubert + * @since 0.6.0 * * @apiviz.composedOf BulkSplit * @apiviz.composedOf SplitStrategy diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/NonFlatRStarTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/NonFlatRStarTree.java index 5d65d605..bdb68439 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/NonFlatRStarTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/NonFlatRStarTree.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * Abstract superclass for all non-flat R*-Tree variants. * * @author Elke Achtert + * @since 0.2 * * @param <N> Node type * @param <E> Entry type diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluDirectoryEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluDirectoryEntry.java index b8792abd..c4e941bf 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluDirectoryEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluDirectoryEntry.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.SpatialDirectoryEntry; * objects. * * @author Elke Achtert + * @since 0.2 */ public class DeLiCluDirectoryEntry extends SpatialDirectoryEntry implements DeLiCluEntry { private static final long serialVersionUID = 1; diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluEntry.java index f6fc3fb6..feb4501d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluEntry.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.SpatialEntry; * contains handled or unhandled data objects. * * @author Elke Achtert + * @since 0.2 */ public interface DeLiCluEntry extends SpatialEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluLeafEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluLeafEntry.java index 4a02c4fd..d973a226 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluLeafEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluLeafEntry.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.SpatialPointLeafEntry; * whether this entry's node contains handled or unhandled data objects. * * @author Elke Achtert + * @since 0.2 */ public class DeLiCluLeafEntry extends SpatialPointLeafEntry implements DeLiCluEntry { private static final long serialVersionUID = 1; diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluNode.java index 72fdd154..994b5777 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluNode.java @@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.AbstractRStarTreeNod * Represents a node in a DeLiClu-Tree. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has DeLiCluEntry oneway - - contains */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTree.java index dafa4992..a977be40 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTree.java @@ -41,6 +41,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * algorithm. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has DeLiCluNode oneway - - contains */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTreeFactory.java index 66a59352..3e706658 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTreeFactory.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFileFactory; * Factory for DeLiClu R*-Trees. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses DeLiCluTreeIndex oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTreeIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTreeIndex.java index 436e38fd..7f078906 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTreeIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/deliclu/DeLiCluTreeIndex.java @@ -51,6 +51,7 @@ import de.lmu.ifi.dbs.elki.utilities.exceptions.AbortException; * The common use of the DeLiClu tree: indexing number vectors. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTree.java index 7f0e77ab..01b4a594 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTree.java @@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * to search for certain object in the structure and ensures persistence. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has FlatRStarTreeNode oneway - - contains */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeFactory.java index 88505f0c..ad4406ad 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeFactory.java @@ -35,6 +35,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFileFactory; * Factory for flat R*-Trees. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses FlatRStarTreeIndex oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeIndex.java index 21f4baea..7bfa77f4 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeIndex.java @@ -52,6 +52,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * The common use of the flat rstar tree: indexing number vectors. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeNode.java index 0ad3af21..2ae002d8 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/flat/FlatRStarTreeNode.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil; * Represents a node in a flat R*-Tree. * * @author Elke Achtert + * @since 0.2 */ public class FlatRStarTreeNode extends AbstractRStarTreeNode<FlatRStarTreeNode, SpatialEntry> { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/EuclideanRStarTreeKNNQuery.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/EuclideanRStarTreeKNNQuery.java index 25884cdf..30e41ff3 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/EuclideanRStarTreeKNNQuery.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/EuclideanRStarTreeKNNQuery.java @@ -58,6 +58,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Erich Schubert + * @since 0.7.0 * * @apiviz.uses EuclideanDistanceFunction * @apiviz.uses SquaredEuclideanDistanceFunction diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/EuclideanRStarTreeRangeQuery.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/EuclideanRStarTreeRangeQuery.java index 70112d7e..9c04d2a5 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/EuclideanRStarTreeRangeQuery.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/EuclideanRStarTreeRangeQuery.java @@ -48,6 +48,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.uses EuclideanDistanceFunction * @apiviz.uses SquaredEuclideanDistanceFunction diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeKNNQuery.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeKNNQuery.java index bb1a57a4..763841ef 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeKNNQuery.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeKNNQuery.java @@ -65,6 +65,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.uses AbstractRStarTree * @apiviz.uses SpatialPrimitiveDistanceFunction diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeRangeQuery.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeRangeQuery.java index b8929011..0319e809 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeRangeQuery.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeRangeQuery.java @@ -51,6 +51,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * </p> * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.uses AbstractRStarTree * @apiviz.uses SpatialPrimitiveDistanceFunction diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeUtil.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeUtil.java index ee8cd6f0..9808bf30 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeUtil.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/query/RStarTreeUtil.java @@ -37,6 +37,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.AbstractRStarTree; * Utility class for RStar trees * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.landmark * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNDirectoryEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNDirectoryEntry.java index 9b422334..93b32af8 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNDirectoryEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNDirectoryEntry.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.SpatialDirectoryEntry; * underlying RdKNN-Tree node. * * @author Elke Achtert + * @since 0.2 * @param Distance type */ public class RdKNNDirectoryEntry extends SpatialDirectoryEntry implements RdKNNEntry { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNEntry.java index 9d98dcd0..b85a1c92 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNEntry.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.SpatialEntry; * data object or RdKNN-Tree node. * * @author Elke Achtert + * @since 0.2 */ interface RdKNNEntry extends SpatialEntry { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNLeafEntry.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNLeafEntry.java index 44c65c5f..491d6cfe 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNLeafEntry.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNLeafEntry.java @@ -37,6 +37,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.SpatialPointLeafEntry; * data object. * * @author Elke Achtert + * @since 0.2 */ public class RdKNNLeafEntry extends SpatialPointLeafEntry implements RdKNNEntry { private static final long serialVersionUID = 2; diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNNode.java index ce4ac0dd..6a887047 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNNode.java @@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.AbstractRStarTreeNod * Represents a node in a RDkNN-Tree. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has RdKNNEntry oneway - - contains */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTree.java index b9485503..04e45424 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTree.java @@ -74,6 +74,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.DoubleObjPair; * TODO: noch nicht fertig!!! * * @author Elke Achtert + * @since 0.2 * * @apiviz.has RdKNNNode * @apiviz.has RdKNNTreeHeader diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTreeFactory.java index fbe03399..9ccdea59 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTreeFactory.java @@ -41,6 +41,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * Factory for RdKNN R*-Trees. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.stereotype factory * @apiviz.uses RdKNNTree oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTreeHeader.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTreeHeader.java index 4b2b8c5f..94af7721 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTreeHeader.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdKNNTreeHeader.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.index.tree.TreeIndexHeader; * needed for persistent storage. * * @author Elke Achtert + * @since 0.2 */ class RdKNNTreeHeader extends TreeIndexHeader { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdkNNSettings.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdkNNSettings.java index 0cee0c4a..931428b7 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdkNNSettings.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rdknn/RdkNNSettings.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.AbstractRTreeSetting * Settings for the RdKNN Tree. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTree.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTree.java index b4e19638..986ade9d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTree.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTree.java @@ -39,6 +39,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Title; * for certain object in the structure and ensures persistence. * * @author Elke Achtert + * @since 0.2 * * @apiviz.has RStarTreeNode oneway - - contains */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeFactory.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeFactory.java index aacb94c5..efdbdcc9 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeFactory.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeFactory.java @@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.utilities.Alias; * Factory for regular R*-Trees. * * @author Erich Schubert + * @since 0.4.0 * * @apiviz.landmark factory * @apiviz.uses RStarTreeIndex oneway - - «create» diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeIndex.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeIndex.java index 17c7b942..dfa39915 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeIndex.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeIndex.java @@ -51,6 +51,7 @@ import de.lmu.ifi.dbs.elki.persistent.PageFile; * The common use of the rstar tree: indexing number vectors. * * @author Erich Schubert + * @since 0.4.0 * * @param <O> Object type */ diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeNode.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeNode.java index d5d01542..14361c87 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeNode.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/rstar/RStarTreeNode.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.AbstractRStarTreeNod * Represents a node in an R*-Tree. * * @author Elke Achtert + * @since 0.2 */ public class RStarTreeNode extends AbstractRStarTreeNode<RStarTreeNode, SpatialEntry> { private static final long serialVersionUID = 1; diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/AbstractBulkSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/AbstractBulkSplit.java index 0c218c7e..75b55eba 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/AbstractBulkSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/AbstractBulkSplit.java @@ -30,6 +30,7 @@ import java.util.List; * Encapsulates the required parameters for a bulk split of a spatial index. * * @author Elke Achtert + * @since 0.4.0 */ public abstract class AbstractBulkSplit implements BulkSplit { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/AdaptiveSortTileRecursiveBulkSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/AdaptiveSortTileRecursiveBulkSplit.java index 55b8d5ec..0eda00fd 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/AdaptiveSortTileRecursiveBulkSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/AdaptiveSortTileRecursiveBulkSplit.java @@ -45,6 +45,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * See {@link SortTileRecursiveBulkSplit} for the original STR bulk load. * * @author Erich Schubert + * @since 0.5.0 */ public class AdaptiveSortTileRecursiveBulkSplit extends AbstractBulkSplit { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/BulkSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/BulkSplit.java index 84432746..0688fb1c 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/BulkSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/BulkSplit.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.data.spatial.SpatialComparable; * Interface for a bulk split strategy. * * @author Erich Schubert + * @since 0.4.0 */ public interface BulkSplit { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/FileOrderBulkSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/FileOrderBulkSplit.java index ad77ceab..0c937b06 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/FileOrderBulkSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/FileOrderBulkSplit.java @@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * before. * * @author Erich Schubert + * @since 0.5.0 */ public class FileOrderBulkSplit extends AbstractBulkSplit { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/MaxExtensionBulkSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/MaxExtensionBulkSplit.java index 3ad7a333..2bd67601 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/MaxExtensionBulkSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/MaxExtensionBulkSplit.java @@ -31,6 +31,7 @@ import java.util.List; import de.lmu.ifi.dbs.elki.data.spatial.SpatialComparable; import de.lmu.ifi.dbs.elki.data.spatial.SpatialSingleMinComparator; import de.lmu.ifi.dbs.elki.logging.Logging; +import de.lmu.ifi.dbs.elki.utilities.Alias; import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; /** @@ -38,9 +39,11 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * dimensions with maximum extension. * * @author Elke Achtert + * @since 0.4.0 * * @apiviz.composedOf SpatialSingleMinComparator */ +@Alias("de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.bulk.MaxExtensionBulkSplit") public class MaxExtensionBulkSplit extends AbstractBulkSplit { /** * Logger. diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/MaxExtensionSortTileRecursiveBulkSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/MaxExtensionSortTileRecursiveBulkSplit.java index eeb3c050..e98ff4c2 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/MaxExtensionSortTileRecursiveBulkSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/MaxExtensionSortTileRecursiveBulkSplit.java @@ -41,6 +41,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * further, by also varying the fan-out degree. * * @author Erich Schubert + * @since 0.5.0 */ public class MaxExtensionSortTileRecursiveBulkSplit extends AbstractBulkSplit { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/OneDimSortBulkSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/OneDimSortBulkSplit.java index 439bd9c7..111cb71c 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/OneDimSortBulkSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/OneDimSortBulkSplit.java @@ -41,6 +41,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * </p> * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "Roussopoulos, N. and Leifker, D.", title = "Direct spatial search on pictorial databases using packed R-trees", booktitle = "ACM SIGMOD Record 14-4", url = "http://dx.doi.org/10.1145/971699.318900") public class OneDimSortBulkSplit extends AbstractBulkSplit { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/SortTileRecursiveBulkSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/SortTileRecursiveBulkSplit.java index ed9e919e..7f074023 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/SortTileRecursiveBulkSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/SortTileRecursiveBulkSplit.java @@ -44,6 +44,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * </p> * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "Leutenegger, S.T. and Lopez, M.A. and Edgington, J.", title = "STR: A simple and efficient algorithm for R-tree packing", booktitle = "Proc. 13th International Conference on Data Engineering, 1997", url = "http://dx.doi.org/10.1109/ICDE.1997.582015") @Alias({"str", "STR"}) diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/SpatialSortBulkSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/SpatialSortBulkSplit.java index f2b39179..f0a85de7 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/SpatialSortBulkSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/bulk/SpatialSortBulkSplit.java @@ -47,6 +47,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * @apiviz.composedOf SpatialSorter * * @author Erich Schubert + * @since 0.5.0 */ @Reference(title = "On packing R-trees", authors = "Kamel, I. and Faloutsos, C.", booktitle = "Proc. of the second international conference on Information and knowledge management", url = "http://dx.doi.org/10.1145/170088.170403") public class SpatialSortBulkSplit extends AbstractBulkSplit { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/ApproximativeLeastOverlapInsertionStrategy.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/ApproximativeLeastOverlapInsertionStrategy.java index 2897c5a4..9eab98d4 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/ApproximativeLeastOverlapInsertionStrategy.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/ApproximativeLeastOverlapInsertionStrategy.java @@ -52,6 +52,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.DoubleIntPair; * @author Erich Schubert * @author Franz Graf * @author Marisa Thoma + * @since 0.5.0 */ @Reference(authors = "N. Beckmann, H.-P. Kriegel, R. Schneider, B. Seeger", title = "The R*-tree: an efficient and robust access method for points and rectangles", booktitle = "Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data, Atlantic City, NJ, May 23-25, 1990", url = "http://dx.doi.org/10.1145/93597.98741") public class ApproximativeLeastOverlapInsertionStrategy extends LeastOverlapInsertionStrategy { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/CombinedInsertionStrategy.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/CombinedInsertionStrategy.java index 04221d8b..f53092b8 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/CombinedInsertionStrategy.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/CombinedInsertionStrategy.java @@ -42,6 +42,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ClassParameter; * </p> * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "N. Beckmann, H.-P. Kriegel, R. Schneider, B. Seeger", title = "The R*-tree: an efficient and robust access method for points and rectangles", booktitle = "Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data, Atlantic City, NJ, May 23-25, 1990", url = "http://dx.doi.org/10.1145/93597.98741") public class CombinedInsertionStrategy implements InsertionStrategy { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/InsertionStrategy.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/InsertionStrategy.java index 552206bf..b564ad1d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/InsertionStrategy.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/InsertionStrategy.java @@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.ArrayAdapter; * RTree insertion strategy interface. * * @author Erich Schubert + * @since 0.5.0 */ public interface InsertionStrategy { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastEnlargementInsertionStrategy.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastEnlargementInsertionStrategy.java index ef17e816..fdad1bda 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastEnlargementInsertionStrategy.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastEnlargementInsertionStrategy.java @@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * </p> * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "Antonin Guttman", title = "R-Trees: A Dynamic Index Structure For Spatial Searching", booktitle = "Proceedings of the 1984 ACM SIGMOD international conference on Management of data", url = "http://dx.doi.org/10.1145/971697.602266") public class LeastEnlargementInsertionStrategy implements InsertionStrategy { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastEnlargementWithAreaInsertionStrategy.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastEnlargementWithAreaInsertionStrategy.java index 9c90169d..70543731 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastEnlargementWithAreaInsertionStrategy.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastEnlargementWithAreaInsertionStrategy.java @@ -42,6 +42,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * </p> * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "N. Beckmann, H.-P. Kriegel, R. Schneider, B. Seeger", title = "The R*-tree: an efficient and robust access method for points and rectangles", booktitle = "Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data, Atlantic City, NJ, May 23-25, 1990", url = "http://dx.doi.org/10.1145/93597.98741") public class LeastEnlargementWithAreaInsertionStrategy implements InsertionStrategy { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastOverlapInsertionStrategy.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastOverlapInsertionStrategy.java index 794f32a1..69e68446 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastOverlapInsertionStrategy.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/insert/LeastOverlapInsertionStrategy.java @@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * </p> * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "N. Beckmann, H.-P. Kriegel, R. Schneider, B. Seeger", title = "The R*-tree: an efficient and robust access method for points and rectangles", booktitle = "Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data, Atlantic City, NJ, May 23-25, 1990", url = "http://dx.doi.org/10.1145/93597.98741") public class LeastOverlapInsertionStrategy implements InsertionStrategy { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/LimitedReinsertOverflowTreatment.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/LimitedReinsertOverflowTreatment.java index 23db999c..2023fb44 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/LimitedReinsertOverflowTreatment.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/LimitedReinsertOverflowTreatment.java @@ -43,6 +43,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * reinsertions to happen only once per level. * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "N. Beckmann, H.-P. Kriegel, R. Schneider, B. Seeger", title = "The R*-tree: an efficient and robust access method for points and rectangles", booktitle = "Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data, Atlantic City, NJ, May 23-25, 1990", url = "http://dx.doi.org/10.1145/93597.98741") public class LimitedReinsertOverflowTreatment implements OverflowTreatment { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/OverflowTreatment.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/OverflowTreatment.java index 8c9fc962..4c275503 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/OverflowTreatment.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/OverflowTreatment.java @@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.AbstractRStarTreeNod * Reinsertion strategy to resolve overflows in the RStarTree. * * @author Erich Schubert + * @since 0.5.0 */ public interface OverflowTreatment { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/SplitOnlyOverflowTreatment.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/SplitOnlyOverflowTreatment.java index 9670daa1..d6470884 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/SplitOnlyOverflowTreatment.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/overflow/SplitOnlyOverflowTreatment.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * Always split, as in the original R-Tree * * @author Erich Schubert + * @since 0.5.0 */ public class SplitOnlyOverflowTreatment implements OverflowTreatment { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/AbstractPartialReinsert.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/AbstractPartialReinsert.java index 9f65bdd8..13cf20e4 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/AbstractPartialReinsert.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/AbstractPartialReinsert.java @@ -37,6 +37,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * parameter to partially reinsert entries. * * @author Erich Schubert + * @since 0.5.0 */ public abstract class AbstractPartialReinsert implements ReinsertStrategy { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/CloseReinsert.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/CloseReinsert.java index 2021b117..ae043992 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/CloseReinsert.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/CloseReinsert.java @@ -41,6 +41,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.DoubleIntPair; * The strategy preferred by the R*-Tree * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "N. Beckmann, H.-P. Kriegel, R. Schneider, B. Seeger", // title = "The R*-tree: an efficient and robust access method for points and rectangles", // diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/FarReinsert.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/FarReinsert.java index 52241deb..40b7b894 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/FarReinsert.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/FarReinsert.java @@ -41,6 +41,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.DoubleIntPair; * Alternative strategy mentioned in the R*-tree * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "N. Beckmann, H.-P. Kriegel, R. Schneider, B. Seeger", // title = "The R*-tree: an efficient and robust access method for points and rectangles", // diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/ReinsertStrategy.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/ReinsertStrategy.java index c4650b89..cb63a3d9 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/ReinsertStrategy.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/reinsert/ReinsertStrategy.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.ArrayAdapter; * Reinsertion strategy to resolve overflows in the RStarTree. * * @author Erich Schubert + * @since 0.5.0 */ public interface ReinsertStrategy { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/AngTanLinearSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/AngTanLinearSplit.java index 73e3a8e5..08b40acc 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/AngTanLinearSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/AngTanLinearSplit.java @@ -50,6 +50,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * </p> * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "C. H. Ang and T. C. Tan", title = "New linear node splitting algorithm for R-trees", booktitle = "Proceedings of the 5th International Symposium on Advances in Spatial Databases", url = "http://dx.doi.org/10.1007/3-540-63238-7_38") public class AngTanLinearSplit implements SplitStrategy { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/GreeneSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/GreeneSplit.java index f6d15f18..e415bb35 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/GreeneSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/GreeneSplit.java @@ -50,6 +50,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.DoubleIntPair; * </p> * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "Diane Greene", title = "An implementation and performance analysis of spatial data access methods", booktitle = "Proceedings of the Fifth International Conference on Data Engineering", url = "http://dx.doi.org/10.1109/ICDE.1989.47268") public class GreeneSplit implements SplitStrategy { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/RTreeLinearSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/RTreeLinearSplit.java index c7ec5412..6849207f 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/RTreeLinearSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/RTreeLinearSplit.java @@ -42,6 +42,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * </p> * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "Antonin Guttman", title = "R-Trees: A Dynamic Index Structure For Spatial Searching", booktitle = "Proceedings of the 1984 ACM SIGMOD international conference on Management of data", url = "http://dx.doi.org/10.1145/971697.602266") public class RTreeLinearSplit implements SplitStrategy { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/RTreeQuadraticSplit.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/RTreeQuadraticSplit.java index 351c97f5..16037a4a 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/RTreeQuadraticSplit.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/RTreeQuadraticSplit.java @@ -42,6 +42,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; * </p> * * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "Antonin Guttman", title = "R-Trees: A Dynamic Index Structure For Spatial Searching", booktitle = "Proceedings of the 1984 ACM SIGMOD international conference on Management of data", url = "http://dx.doi.org/10.1145/971697.602266") public class RTreeQuadraticSplit implements SplitStrategy { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/SplitStrategy.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/SplitStrategy.java index 080da97a..f63f89dd 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/SplitStrategy.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/SplitStrategy.java @@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.ArrayAdapter; * Generic interface for split strategies. * * @author Erich Schubert + * @since 0.4.0 */ public interface SplitStrategy { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/TopologicalSplitter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/TopologicalSplitter.java index d1808962..5ab9b73b 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/TopologicalSplitter.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/strategies/split/TopologicalSplitter.java @@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.data.HyperBoundingBox; import de.lmu.ifi.dbs.elki.data.ModifiableHyperBoundingBox; import de.lmu.ifi.dbs.elki.data.spatial.SpatialComparable; import de.lmu.ifi.dbs.elki.data.spatial.SpatialUtil; +import de.lmu.ifi.dbs.elki.utilities.Alias; import de.lmu.ifi.dbs.elki.utilities.BitsUtil; import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.ArrayAdapter; import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; @@ -39,10 +40,12 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.DoubleIntPair; * Encapsulates the required parameters for a topological split of a R*-Tree. * * @author Elke Achtert + * @since 0.4.0 * * @apiviz.has Split */ @Reference(authors = "N. Beckmann, H.-P. Kriegel, R. Schneider, B. Seeger", title = "The R*-tree: an efficient and robust access method for points and rectangles", booktitle = "Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data, Atlantic City, NJ, May 23-25, 1990", url = "http://dx.doi.org/10.1145/93597.98741") +@Alias("de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.util.TopologicalSplitter") public class TopologicalSplitter implements SplitStrategy { /** * Static instance. diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/util/NodeArrayAdapter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/util/NodeArrayAdapter.java index f0f887a4..973edf86 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/util/NodeArrayAdapter.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/tree/spatial/rstarvariants/util/NodeArrayAdapter.java @@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.ArrayAdapter; * Access the entries of a node as array-like. * * @author Erich Schubert + * @since 0.4.0 */ public class NodeArrayAdapter implements ArrayAdapter<SpatialEntry, AbstractNode<? extends SpatialEntry>> { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/DAFile.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/DAFile.java index 17101dec..9c3e4b1b 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/DAFile.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/DAFile.java @@ -46,6 +46,7 @@ import de.lmu.ifi.dbs.elki.utilities.io.ByteArrayUtil; * * @author Thomas Bernecker * @author Erich Schubert + * @since 0.5.0 */ @Reference(authors = "Hans-Peter Kriegel, Peer Kröger, Matthias Schubert, Ziyue Zhu", title = "Efficient Query Processing in Arbitrary Subspaces Using Vector Approximations", booktitle = "Proc. 18th Int. Conf. on Scientific and Statistical Database Management (SSDBM 06), Wien, Austria, 2006", url = "http://dx.doi.org/10.1109/SSDBM.2006.23") public class DAFile { diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/PartialVAFile.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/PartialVAFile.java index fdc262d0..c0d1945d 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/PartialVAFile.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/PartialVAFile.java @@ -82,6 +82,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.DoubleObjPair; * * @author Thomas Bernecker * @author Erich Schubert + * @since 0.5.0 * * @apiviz.landmark * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VAFile.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VAFile.java index 91516e97..2933a077 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VAFile.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VAFile.java @@ -71,6 +71,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; * * @author Thomas Bernecker * @author Erich Schubert + * @since 0.5.0 * * @apiviz.landmark * diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VALPNormDistance.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VALPNormDistance.java index ae341e4b..76f2448c 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VALPNormDistance.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VALPNormDistance.java @@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.data.NumberVector; * Lp-Norm distance function for partially computed objects. * * @author Erich Schubert + * @since 0.5.0 */ public class VALPNormDistance { /** diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VectorApproximation.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VectorApproximation.java index 9913cade..5025d415 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VectorApproximation.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/index/vafile/VectorApproximation.java @@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.io.ByteArrayUtil; * * @author Thomas Bernecker * @author Erich Schubert + * @since 0.5.0 */ public class VectorApproximation { /** |