summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/data/OneDimensionalDoubleVector.java
diff options
context:
space:
mode:
authorAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:34 +0000
committerAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:34 +0000
commitb7b404fd7a726774d442562d11659d7b5368cdb9 (patch)
tree6f510ddbf80c1a51e333f80411541565ac71c9e9 /src/de/lmu/ifi/dbs/elki/data/OneDimensionalDoubleVector.java
parentace5fa7f57d49756c0e1b111a30f3b6a9436c1cb (diff)
Import Upstream version 0.5.5
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/data/OneDimensionalDoubleVector.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/data/OneDimensionalDoubleVector.java72
1 files changed, 47 insertions, 25 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/data/OneDimensionalDoubleVector.java b/src/de/lmu/ifi/dbs/elki/data/OneDimensionalDoubleVector.java
index 382ff9ae..7198d820 100644
--- a/src/de/lmu/ifi/dbs/elki/data/OneDimensionalDoubleVector.java
+++ b/src/de/lmu/ifi/dbs/elki/data/OneDimensionalDoubleVector.java
@@ -24,6 +24,7 @@ package de.lmu.ifi.dbs.elki.data;
*/
import de.lmu.ifi.dbs.elki.math.linearalgebra.Vector;
+import de.lmu.ifi.dbs.elki.persistent.ByteBufferSerializer;
import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.ArrayAdapter;
import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.NumberArrayAdapter;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer;
@@ -35,14 +36,14 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer;
*
* @author Erich Schubert
*/
-public class OneDimensionalDoubleVector extends AbstractNumberVector<OneDimensionalDoubleVector, Double> {
+public class OneDimensionalDoubleVector extends AbstractNumberVector<Double> {
/**
- * Static factory instance
+ * Static factory instance.
*/
- public static final OneDimensionalDoubleVector STATIC = new OneDimensionalDoubleVector(Double.NaN);
+ public static final OneDimensionalDoubleVector.Factory STATIC = new OneDimensionalDoubleVector.Factory();
/**
- * The actual data value
+ * The actual data value.
*/
double val;
@@ -62,19 +63,20 @@ public class OneDimensionalDoubleVector extends AbstractNumberVector<OneDimensio
@Override
public double doubleValue(int dimension) {
- assert (dimension == 1) : "Non-existant dimension accessed.";
+ assert (dimension == 0) : "Non-existant dimension accessed.";
return val;
}
@Override
public long longValue(int dimension) {
- assert (dimension == 1) : "Non-existant dimension accessed.";
+ assert (dimension == 0) : "Non-existant dimension accessed.";
return (long) val;
}
+ @Deprecated
@Override
public Double getValue(int dimension) {
- assert (dimension == 1) : "Incorrect dimension requested for 1-dimensional vector.";
+ assert (dimension == 0) : "Incorrect dimension requested for 1-dimensional vector.";
return this.val;
}
@@ -83,29 +85,49 @@ public class OneDimensionalDoubleVector extends AbstractNumberVector<OneDimensio
return new Vector(new double[] { val });
}
- @Override
- public <A> OneDimensionalDoubleVector newFeatureVector(A array, ArrayAdapter<Double, A> adapter) {
- assert (adapter.size(array) == 1) : "Incorrect dimensionality for 1-dimensional vector.";
- return new OneDimensionalDoubleVector(adapter.get(array, 0));
- }
-
- @Override
- public <A> OneDimensionalDoubleVector newNumberVector(A array, NumberArrayAdapter<?, A> adapter) {
- assert (adapter.size(array) == 1) : "Incorrect dimensionality for 1-dimensional vector.";
- return new OneDimensionalDoubleVector(adapter.getDouble(array, 0));
- }
-
/**
- * Parameterization class
+ * Factory class.
*
* @author Erich Schubert
*
- * @apiviz.exclude
+ * @apiviz.has OneDimensionalDoubleVector
*/
- public static class Parameterizer extends AbstractParameterizer {
+ public static class Factory extends AbstractNumberVector.Factory<OneDimensionalDoubleVector, Double> {
+ @Override
+ public <A> OneDimensionalDoubleVector newFeatureVector(A array, ArrayAdapter<Double, A> adapter) {
+ assert (adapter.size(array) == 1) : "Incorrect dimensionality for 1-dimensional vector.";
+ return new OneDimensionalDoubleVector(adapter.get(array, 0));
+ }
+
+ @Override
+ public <A> OneDimensionalDoubleVector newNumberVector(A array, NumberArrayAdapter<?, ? super A> adapter) {
+ assert (adapter.size(array) == 1) : "Incorrect dimensionality for 1-dimensional vector.";
+ return new OneDimensionalDoubleVector(adapter.getDouble(array, 0));
+ }
+
@Override
- protected OneDimensionalDoubleVector makeInstance() {
- return STATIC;
+ public ByteBufferSerializer<OneDimensionalDoubleVector> getDefaultSerializer() {
+ // FIXME: add a serializer
+ return null;
+ }
+
+ @Override
+ public Class<? super OneDimensionalDoubleVector> getRestrictionClass() {
+ return OneDimensionalDoubleVector.class;
+ }
+
+ /**
+ * Parameterization class.
+ *
+ * @author Erich Schubert
+ *
+ * @apiviz.exclude
+ */
+ public static class Parameterizer extends AbstractParameterizer {
+ @Override
+ protected OneDimensionalDoubleVector.Factory makeInstance() {
+ return STATIC;
+ }
}
}
-} \ No newline at end of file
+}