diff options
author | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:38 +0000 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:38 +0000 |
commit | 14a486343aef55f97f54082d6b542dedebf6f3ba (patch) | |
tree | 000fcc4968578771ad265079eef7617d66de2cda /src/de/lmu/ifi/dbs/elki/utilities/referencepoints/GridBasedReferencePoints.java | |
parent | 8300861dc4c62c5567a4e654976072f854217544 (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.java | 26 |
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(); } } |