summaryrefslogtreecommitdiff
path: root/elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed
diff options
context:
space:
mode:
Diffstat (limited to 'elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed')
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/AbstractPreprocessorIndex.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/LocalProjectionIndex.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/fastoptics/RandomProjectedNeighborsAndDensities.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/AbstractMaterializeKNNPreprocessor.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/CachedDoubleDistanceKNNPreprocessor.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNChangeEvent.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNJoinMaterializeKNNPreprocessor.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/KNNListener.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MaterializeKNNAndRKNNPreprocessor.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MaterializeKNNPreprocessor.java51
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/MetricalIndexApproximationMaterializeKNNPreprocessor.java3
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/NaiveProjectedKNNPreprocessor.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/PartitionApproximationMaterializeKNNPreprocessor.java3
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/RandomSampleKNNPreprocessor.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpacefillingKNNPreprocessor.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpacefillingMaterializeKNNPreprocessor.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/knn/SpatialApproximationMaterializeKNNPreprocessor.java11
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/AbstractFilteredPCAIndex.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/FilteredLocalPCAIndex.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/localpca/KNNQueryFilteredPCAIndex.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/AbstractPreferenceVectorIndex.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/DiSHPreferenceVectorIndex.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/HiSCPreferenceVectorIndex.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/preference/PreferenceVectorIndex.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/snn/SharedNearestNeighborIndex.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/index/preprocessed/snn/SharedNearestNeighborPreprocessor.java1
26 files changed, 67 insertions, 23 deletions
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
*