summaryrefslogtreecommitdiff
path: root/src/tutorial/distancefunction
diff options
context:
space:
mode:
Diffstat (limited to 'src/tutorial/distancefunction')
-rw-r--r--src/tutorial/distancefunction/MultiLPNorm.java14
-rw-r--r--src/tutorial/distancefunction/TutorialDistanceFunction.java10
2 files changed, 13 insertions, 11 deletions
diff --git a/src/tutorial/distancefunction/MultiLPNorm.java b/src/tutorial/distancefunction/MultiLPNorm.java
index 6909d2ff..4dca1a93 100644
--- a/src/tutorial/distancefunction/MultiLPNorm.java
+++ b/src/tutorial/distancefunction/MultiLPNorm.java
@@ -72,14 +72,14 @@ public class MultiLPNorm extends AbstractVectorDoubleDistanceFunction {
}
@Override
- public double doubleDistance(NumberVector<?, ?> o1, NumberVector<?, ?> o2) {
+ public double doubleDistance(NumberVector<?> o1, NumberVector<?> o2) {
assert o1.getDimensionality() == ps.length : "Inappropriate dimensionality!";
assert o2.getDimensionality() == ps.length : "Inappropriate dimensionality!";
double sum = 0.0;
for(int dim = 0; dim < ps.length; dim++) {
if(ps[dim] > 0) {
- final double delta = Math.abs(o1.doubleValue(dim + 1) - o2.doubleValue(dim + 1));
+ final double delta = Math.abs(o1.doubleValue(dim) - o2.doubleValue(dim));
sum += Math.pow(delta, ps[dim]);
}
}
@@ -87,14 +87,16 @@ public class MultiLPNorm extends AbstractVectorDoubleDistanceFunction {
}
@Override
- public SimpleTypeInformation<? super NumberVector<?, ?>> getInputTypeRestriction() {
- return new VectorFieldTypeInformation<NumberVector<?, ?>>(NumberVector.class, ps.length);
+ public SimpleTypeInformation<? super NumberVector<?>> getInputTypeRestriction() {
+ return new VectorFieldTypeInformation<NumberVector<?>>(NumberVector.class, ps.length);
}
/**
* Parameterization class example
*
* @author Erich Schubert
+ *
+ * @apiviz.exclude
*/
public static class Parameterizer extends AbstractParameterizer {
/**
@@ -102,7 +104,7 @@ public class MultiLPNorm extends AbstractVectorDoubleDistanceFunction {
* -multinorm.ps
* </code>
*/
- public static final OptionID EXPONENTS_ID = OptionID.getOrCreateOptionID("multinorm.ps", "The exponents to use for this distance function");
+ public static final OptionID EXPONENTS_ID = new OptionID("multinorm.ps", "The exponents to use for this distance function");
/**
* P exponents
@@ -123,4 +125,4 @@ public class MultiLPNorm extends AbstractVectorDoubleDistanceFunction {
return new MultiLPNorm(ps);
}
}
-} \ No newline at end of file
+}
diff --git a/src/tutorial/distancefunction/TutorialDistanceFunction.java b/src/tutorial/distancefunction/TutorialDistanceFunction.java
index 0b225c61..e41f8093 100644
--- a/src/tutorial/distancefunction/TutorialDistanceFunction.java
+++ b/src/tutorial/distancefunction/TutorialDistanceFunction.java
@@ -37,14 +37,14 @@ import de.lmu.ifi.dbs.elki.distance.distancefunction.AbstractVectorDoubleDistanc
*/
public class TutorialDistanceFunction extends AbstractVectorDoubleDistanceFunction {
@Override
- public double doubleDistance(NumberVector<?, ?> o1, NumberVector<?, ?> o2) {
- double dx = (o1.doubleValue(1) - o2.doubleValue(1));
- double dy = (o1.doubleValue(2) - o2.doubleValue(2));
+ public double doubleDistance(NumberVector<?> o1, NumberVector<?> o2) {
+ double dx = (o1.doubleValue(0) - o2.doubleValue(0));
+ double dy = (o1.doubleValue(1) - o2.doubleValue(1));
return dx * dx + Math.abs(dy);
}
@Override
- public SimpleTypeInformation<? super NumberVector<?, ?>> getInputTypeRestriction() {
- return new VectorFieldTypeInformation<NumberVector<?, ?>>(NumberVector.class, 2);
+ public SimpleTypeInformation<? super NumberVector<?>> getInputTypeRestriction() {
+ return new VectorFieldTypeInformation<NumberVector<?>>(NumberVector.class, 2);
}
} \ No newline at end of file