summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/math/spacefillingcurves/ZCurveTransformer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/math/spacefillingcurves/ZCurveTransformer.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/math/spacefillingcurves/ZCurveTransformer.java23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/math/spacefillingcurves/ZCurveTransformer.java b/src/de/lmu/ifi/dbs/elki/math/spacefillingcurves/ZCurveTransformer.java
index 108721eb..26137cb3 100644
--- a/src/de/lmu/ifi/dbs/elki/math/spacefillingcurves/ZCurveTransformer.java
+++ b/src/de/lmu/ifi/dbs/elki/math/spacefillingcurves/ZCurveTransformer.java
@@ -30,7 +30,7 @@ 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.relation.Relation;
-import de.lmu.ifi.dbs.elki.utilities.DatabaseUtil;
+import de.lmu.ifi.dbs.elki.database.relation.RelationUtil;
/**
* Class to transform a relation to its Z coordinates.
@@ -39,17 +39,17 @@ import de.lmu.ifi.dbs.elki.utilities.DatabaseUtil;
*/
public class ZCurveTransformer {
/**
- * Maximum values in each dimension
+ * Maximum values in each dimension.
*/
private final double[] maxValues;
/**
- * Minimum values in each dimension
+ * Minimum values in each dimension.
*/
private final double[] minValues;
/**
- * Dimensionality
+ * Dimensionality.
*/
private final int dimensionality;
@@ -59,8 +59,8 @@ public class ZCurveTransformer {
* @param relation Relation to transform
* @param ids IDs subset to process
*/
- public ZCurveTransformer(Relation<? extends NumberVector<?, ?>> relation, DBIDs ids) {
- this.dimensionality = DatabaseUtil.dimensionality(relation);
+ public ZCurveTransformer(Relation<? extends NumberVector<?>> relation, DBIDs ids) {
+ this.dimensionality = RelationUtil.dimensionality(relation);
this.minValues = new double[dimensionality];
this.maxValues = new double[dimensionality];
@@ -68,9 +68,9 @@ public class ZCurveTransformer {
Arrays.fill(minValues, Double.POSITIVE_INFINITY);
Arrays.fill(maxValues, Double.NEGATIVE_INFINITY);
for (DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
- NumberVector<?, ?> vector = relation.get(iter);
+ NumberVector<?> vector = relation.get(iter);
for(int dim = 0; dim < dimensionality; ++dim) {
- double dimValue = vector.doubleValue(dim + 1);
+ double dimValue = vector.doubleValue(dim);
minValues[dim] = Math.min(minValues[dim], dimValue);
maxValues[dim] = Math.max(maxValues[dim], dimValue);
}
@@ -84,7 +84,7 @@ public class ZCurveTransformer {
* @return Z curve value as bigint
*/
@Deprecated
- public BigInteger asBigInteger(NumberVector<?, ?> vector) {
+ public BigInteger asBigInteger(NumberVector<?> vector) {
return new BigInteger(asByteArray(vector));
}
@@ -94,13 +94,13 @@ public class ZCurveTransformer {
* @param vector Vector to transform
* @return Z curve value as byte array
*/
- public byte[] asByteArray(NumberVector<?, ?> vector) {
+ public byte[] asByteArray(NumberVector<?> vector) {
final long[] longValueList = new long[dimensionality];
for(int dim = 0; dim < dimensionality; ++dim) {
final double minValue = minValues[dim];
final double maxValue = maxValues[dim];
- double dimValue = vector.doubleValue(dim + 1);
+ double dimValue = vector.doubleValue(dim);
dimValue = (dimValue - minValue) / (maxValue - minValue);
longValueList[dim] = (long) (dimValue * (Long.MAX_VALUE));
@@ -120,5 +120,4 @@ public class ZCurveTransformer {
}
return bytes;
}
-
} \ No newline at end of file