summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/data/ShortVector.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/data/ShortVector.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/data/ShortVector.java46
1 files changed, 23 insertions, 23 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/data/ShortVector.java b/src/de/lmu/ifi/dbs/elki/data/ShortVector.java
index fe82abe7..da3d4348 100644
--- a/src/de/lmu/ifi/dbs/elki/data/ShortVector.java
+++ b/src/de/lmu/ifi/dbs/elki/data/ShortVector.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.data;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2013
+ Copyright (C) 2014
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -27,18 +27,18 @@ import java.io.IOException;
import java.nio.ByteBuffer;
import de.lmu.ifi.dbs.elki.math.linearalgebra.Vector;
-import de.lmu.ifi.dbs.elki.persistent.ByteArrayUtil;
-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.io.ByteArrayUtil;
+import de.lmu.ifi.dbs.elki.utilities.io.ByteBufferSerializer;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer;
/**
- * An ShortVector is to store Short values.
+ * Vector type using {@code short[]} storage.
*
* @author Erich Schubert
*/
-public class ShortVector extends AbstractNumberVector<Short> {
+public class ShortVector extends AbstractNumberVector {
/**
* Static instance (object factory).
*/
@@ -66,22 +66,22 @@ public class ShortVector extends AbstractNumberVector<Short> {
* @param nocopy Flag to use without copying.
*/
private ShortVector(short[] values, boolean nocopy) {
- if (nocopy) {
+ if(nocopy) {
this.values = values;
- } else {
+ }
+ else {
this.values = new short[values.length];
System.arraycopy(values, 0, this.values, 0, values.length);
}
}
/**
- * Provides an ShortVector consisting of the given Short values.
+ * Create an ShortVector consisting of the given Short values.
*
* @param values the values to be set as values of the ShortVector
*/
public ShortVector(short[] values) {
- this.values = new short[values.length];
- System.arraycopy(values, 0, this.values, 0, values.length);
+ this.values = values.clone();
}
@Override
@@ -140,7 +140,7 @@ public class ShortVector extends AbstractNumberVector<Short> {
@Override
public Vector getColumnVector() {
double[] data = new double[values.length];
- for (int i = 0; i < values.length; i++) {
+ for(int i = 0; i < values.length; i++) {
data[i] = values[i];
}
return new Vector(data);
@@ -149,9 +149,9 @@ public class ShortVector extends AbstractNumberVector<Short> {
@Override
public String toString() {
StringBuilder featureLine = new StringBuilder();
- for (int i = 0; i < values.length; i++) {
+ for(int i = 0; i < values.length; i++) {
featureLine.append(values[i]);
- if (i + 1 < values.length) {
+ if(i + 1 < values.length) {
featureLine.append(ATTRIBUTE_SEPARATOR);
}
}
@@ -165,13 +165,13 @@ public class ShortVector extends AbstractNumberVector<Short> {
*
* @apiviz.has ShortVector
*/
- public static class Factory extends AbstractNumberVector.Factory<ShortVector, Short> {
+ public static class Factory extends AbstractNumberVector.Factory<ShortVector> {
@Override
- public <A> ShortVector newFeatureVector(A array, ArrayAdapter<Short, A> adapter) {
+ public <A> ShortVector newFeatureVector(A array, ArrayAdapter<? extends Number, A> adapter) {
int dim = adapter.size(array);
short[] values = new short[dim];
- for (int i = 0; i < dim; i++) {
- values[i] = adapter.get(array, i);
+ for(int i = 0; i < dim; i++) {
+ values[i] = adapter.get(array, i).shortValue();
}
return new ShortVector(values, true);
}
@@ -180,7 +180,7 @@ public class ShortVector extends AbstractNumberVector<Short> {
public <A> ShortVector newNumberVector(A array, NumberArrayAdapter<?, ? super A> adapter) {
int dim = adapter.size(array);
short[] values = new short[dim];
- for (int i = 0; i < dim; i++) {
+ for(int i = 0; i < dim; i++) {
values[i] = adapter.getShort(array, i);
}
return new ShortVector(values, true);
@@ -226,7 +226,7 @@ public class ShortVector extends AbstractNumberVector<Short> {
final short dimensionality = buffer.getShort();
assert (buffer.remaining() >= ByteArrayUtil.SIZE_SHORT * dimensionality);
final short[] values = new short[dimensionality];
- for (int i = 0; i < dimensionality; i++) {
+ for(int i = 0; i < dimensionality; i++) {
values[i] = buffer.getShort();
}
return new ShortVector(values, true);
@@ -237,7 +237,7 @@ public class ShortVector extends AbstractNumberVector<Short> {
assert (vec.values.length < Short.MAX_VALUE) : "This serializer only supports a maximum dimensionality of " + Short.MAX_VALUE + "!";
assert (buffer.remaining() >= ByteArrayUtil.SIZE_SHORT * vec.values.length);
buffer.putShort((short) vec.values.length);
- for (int i = 0; i < vec.values.length; i++) {
+ for(int i = 0; i < vec.values.length; i++) {
buffer.putShort(vec.values[i]);
}
}
@@ -262,7 +262,7 @@ public class ShortVector extends AbstractNumberVector<Short> {
final int dimensionality = ByteArrayUtil.readUnsignedVarint(buffer);
assert (buffer.remaining() >= ByteArrayUtil.SIZE_INT * dimensionality);
final short[] values = new short[dimensionality];
- for (int i = 0; i < dimensionality; i++) {
+ for(int i = 0; i < dimensionality; i++) {
values[i] = (short) ByteArrayUtil.readSignedVarint(buffer);
}
return new ShortVector(values, true);
@@ -272,7 +272,7 @@ public class ShortVector extends AbstractNumberVector<Short> {
public void toByteBuffer(ByteBuffer buffer, ShortVector vec) throws IOException {
assert (vec.values.length < Short.MAX_VALUE) : "This serializer only supports a maximum dimensionality of " + Short.MAX_VALUE + "!";
ByteArrayUtil.writeUnsignedVarint(buffer, vec.values.length);
- for (int i = 0; i < vec.values.length; i++) {
+ for(int i = 0; i < vec.values.length; i++) {
ByteArrayUtil.writeSignedVarint(buffer, vec.values[i]);
}
}
@@ -281,7 +281,7 @@ public class ShortVector extends AbstractNumberVector<Short> {
public int getByteSize(ShortVector vec) {
assert (vec.values.length < Short.MAX_VALUE) : "This serializer only supports a maximum dimensionality of " + Short.MAX_VALUE + "!";
int len = ByteArrayUtil.getUnsignedVarintSize(vec.values.length);
- for (int i = 0; i < vec.values.length; i++) {
+ for(int i = 0; i < vec.values.length; i++) {
len += ByteArrayUtil.getSignedVarintSize(vec.values[i]);
}
return len;