summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/utilities/referencepoints/GridBasedReferencePoints.java
diff options
context:
space:
mode:
authorAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:38 +0000
committerAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:38 +0000
commit14a486343aef55f97f54082d6b542dedebf6f3ba (patch)
tree000fcc4968578771ad265079eef7617d66de2cda /src/de/lmu/ifi/dbs/elki/utilities/referencepoints/GridBasedReferencePoints.java
parent8300861dc4c62c5567a4e654976072f854217544 (diff)
Import Upstream version 0.6.0
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/utilities/referencepoints/GridBasedReferencePoints.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/referencepoints/GridBasedReferencePoints.java26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/referencepoints/GridBasedReferencePoints.java b/src/de/lmu/ifi/dbs/elki/utilities/referencepoints/GridBasedReferencePoints.java
index b94564cf..007efe6f 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/referencepoints/GridBasedReferencePoints.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/referencepoints/GridBasedReferencePoints.java
@@ -29,10 +29,11 @@ import java.util.Collection;
import de.lmu.ifi.dbs.elki.data.NumberVector;
import de.lmu.ifi.dbs.elki.database.relation.Relation;
import de.lmu.ifi.dbs.elki.database.relation.RelationUtil;
+import de.lmu.ifi.dbs.elki.math.MathUtil;
import de.lmu.ifi.dbs.elki.utilities.DatabaseUtil;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.OptionID;
-import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.GreaterEqualConstraint;
+import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.CommonConstraints;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameterization;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.DoubleParameter;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter;
@@ -97,23 +98,23 @@ public class GridBasedReferencePoints<V extends NumberVector<?>> implements Refe
// Compute mean from minmax.
double[] mean = new double[dim];
- for (int d = 0; d < dim; d++) {
+ for(int d = 0; d < dim; d++) {
mean[d] = (minmax.first.doubleValue(d) + minmax.second.doubleValue(d)) * .5;
}
- int gridpoints = Math.max(1, (int) Math.pow(gridres + 1, dim));
+ int gridpoints = Math.max(1, MathUtil.ipowi(gridres + 1, dim));
ArrayList<V> result = new ArrayList<>(gridpoints);
double[] delta = new double[dim];
- if (gridres > 0) {
+ if(gridres > 0) {
double halfgrid = gridres / 2.0;
- for (int d = 0; d < dim; d++) {
+ for(int d = 0; d < dim; d++) {
delta[d] = (minmax.second.doubleValue(d) - minmax.first.doubleValue(d)) / gridres;
}
double[] vec = new double[dim];
- for (int i = 0; i < gridpoints; i++) {
+ for(int i = 0; i < gridpoints; i++) {
int acc = i;
- for (int d = 0; d < dim; d++) {
+ for(int d = 0; d < dim; d++) {
int coord = acc % (gridres + 1);
acc = acc / (gridres + 1);
vec[d] = mean[d] + (coord - halfgrid) * delta[d] * gridscale;
@@ -122,7 +123,8 @@ public class GridBasedReferencePoints<V extends NumberVector<?>> implements Refe
// logger.debug("New reference point: " + FormatUtil.format(vec));
result.add(newp);
}
- } else {
+ }
+ else {
result.add(factory.newNumberVector(mean));
// logger.debug("New reference point: " + FormatUtil.format(mean));
}
@@ -152,14 +154,14 @@ public class GridBasedReferencePoints<V extends NumberVector<?>> implements Refe
protected void makeOptions(Parameterization config) {
super.makeOptions(config);
IntParameter gridP = new IntParameter(GRID_ID, 1);
- gridP.addConstraint(new GreaterEqualConstraint(0));
- if (config.grab(gridP)) {
+ gridP.addConstraint(CommonConstraints.GREATER_EQUAL_ZERO_INT);
+ if(config.grab(gridP)) {
gridres = gridP.getValue();
}
DoubleParameter gridscaleP = new DoubleParameter(GRID_SCALE_ID, 1.0);
- gridscaleP.addConstraint(new GreaterEqualConstraint(0.0));
- if (config.grab(gridscaleP)) {
+ gridscaleP.addConstraint(CommonConstraints.GREATER_EQUAL_ZERO_DOUBLE);
+ if(config.grab(gridscaleP)) {
gridscale = gridscaleP.getValue();
}
}