summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCAFilteredAutotuningRunner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCAFilteredAutotuningRunner.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCAFilteredAutotuningRunner.java28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCAFilteredAutotuningRunner.java b/src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCAFilteredAutotuningRunner.java
index 73462c2f..4a36036a 100644
--- a/src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCAFilteredAutotuningRunner.java
+++ b/src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCAFilteredAutotuningRunner.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.math.linearalgebra.pca;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -30,13 +30,13 @@ import java.util.List;
import de.lmu.ifi.dbs.elki.data.NumberVector;
import de.lmu.ifi.dbs.elki.database.ids.DBIDIter;
import de.lmu.ifi.dbs.elki.database.ids.DBIDs;
+import de.lmu.ifi.dbs.elki.database.ids.distance.DistanceDBIDList;
+import de.lmu.ifi.dbs.elki.database.ids.distance.DistanceDBIDListIter;
+import de.lmu.ifi.dbs.elki.database.ids.distance.DoubleDistanceDBIDPairList;
+import de.lmu.ifi.dbs.elki.database.ids.distance.ModifiableDistanceDBIDList;
import de.lmu.ifi.dbs.elki.database.relation.Relation;
import de.lmu.ifi.dbs.elki.database.relation.RelationUtil;
-import de.lmu.ifi.dbs.elki.distance.distancefunction.EuclideanDistanceFunction;
-import de.lmu.ifi.dbs.elki.distance.distanceresultlist.DistanceDBIDResult;
-import de.lmu.ifi.dbs.elki.distance.distanceresultlist.DistanceDBIDResultIter;
-import de.lmu.ifi.dbs.elki.distance.distanceresultlist.DoubleDistanceDBIDList;
-import de.lmu.ifi.dbs.elki.distance.distanceresultlist.ModifiableDistanceDBIDResult;
+import de.lmu.ifi.dbs.elki.distance.distancefunction.minkowski.EuclideanDistanceFunction;
import de.lmu.ifi.dbs.elki.distance.distancevalue.NumberDistance;
import de.lmu.ifi.dbs.elki.logging.LoggingUtil;
import de.lmu.ifi.dbs.elki.math.linearalgebra.Centroid;
@@ -76,7 +76,7 @@ public class PCAFilteredAutotuningRunner<V extends NumberVector<?>> extends PCAF
// Assume Euclidean distance. In the context of PCA, the neighborhood should
// be L2-spherical to be unbiased.
V center = Centroid.make(database, ids).toVector(database);
- DoubleDistanceDBIDList dres = new DoubleDistanceDBIDList(ids.size());
+ DoubleDistanceDBIDPairList dres = new DoubleDistanceDBIDPairList(ids.size());
for (DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
final double dist = EuclideanDistanceFunction.STATIC.doubleDistance(center, database.get(iter));
dres.add(dist, iter);
@@ -117,11 +117,11 @@ public class PCAFilteredAutotuningRunner<V extends NumberVector<?>> extends PCAF
}
@Override
- public <D extends NumberDistance<D, ?>> PCAFilteredResult processQueryResult(DistanceDBIDResult<D> results, Relation<? extends V> database) {
+ public <D extends NumberDistance<D, ?>> PCAFilteredResult processQueryResult(DistanceDBIDList<D> results, Relation<? extends V> database) {
assertSortedByDistance(results);
final int dim = RelationUtil.dimensionality(database);
- List<Matrix> best = new LinkedList<Matrix>();
+ List<Matrix> best = new LinkedList<>();
for (int i = 0; i < dim; i++) {
best.add(null);
}
@@ -131,7 +131,7 @@ public class PCAFilteredAutotuningRunner<V extends NumberVector<?>> extends PCAF
}
int[] bestk = new int[dim];
// 'history'
- LinkedList<Cand> prev = new LinkedList<Cand>();
+ LinkedList<Cand> prev = new LinkedList<>();
// TODO: starting parameter shouldn't be hardcoded...
int smooth = 3;
int startk = 4;
@@ -227,11 +227,11 @@ public class PCAFilteredAutotuningRunner<V extends NumberVector<?>> extends PCAF
* @param results Results to process
* @param <D> distance type
*/
- private <D extends NumberDistance<D, ?>> void assertSortedByDistance(DistanceDBIDResult<D> results) {
+ private <D extends NumberDistance<D, ?>> void assertSortedByDistance(DistanceDBIDList<D> results) {
// TODO: sort results instead?
double dist = -1.0;
boolean sorted = true;
- for (DistanceDBIDResultIter<D> it = results.iter(); it.valid(); it.advance()) {
+ for (DistanceDBIDListIter<D> it = results.iter(); it.valid(); it.advance()) {
double qr = it.getDistance().doubleValue();
if (qr < dist) {
sorted = false;
@@ -240,7 +240,7 @@ public class PCAFilteredAutotuningRunner<V extends NumberVector<?>> extends PCAF
}
if (!sorted) {
try {
- ModifiableDistanceDBIDResult.class.cast(results).sort();
+ ModifiableDistanceDBIDList.class.cast(results).sort();
} catch (ClassCastException e) {
LoggingUtil.warning("WARNING: results not sorted by distance!", e);
} catch (UnsupportedOperationException e) {
@@ -259,7 +259,7 @@ public class PCAFilteredAutotuningRunner<V extends NumberVector<?>> extends PCAF
public static class Parameterizer<V extends NumberVector<?>> extends PCAFilteredRunner.Parameterizer<V> {
@Override
protected PCAFilteredAutotuningRunner<V> makeInstance() {
- return new PCAFilteredAutotuningRunner<V>(covarianceMatrixBuilder, eigenPairFilter, big, small);
+ return new PCAFilteredAutotuningRunner<>(covarianceMatrixBuilder, eigenPairFilter, big, small);
}
}
}