diff options
author | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:34 +0000 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:34 +0000 |
commit | b7b404fd7a726774d442562d11659d7b5368cdb9 (patch) | |
tree | 6f510ddbf80c1a51e333f80411541565ac71c9e9 /src/de/lmu/ifi/dbs/elki/data/OneDimensionalDoubleVector.java | |
parent | ace5fa7f57d49756c0e1b111a30f3b6a9436c1cb (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.java | 72 |
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 +} |