fixes
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package org.solovyev.common.math;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* User: serso
|
||||
@@ -10,35 +11,43 @@ import org.jetbrains.annotations.NotNull;
|
||||
public class DiscreteNormalizer implements Normalizer {
|
||||
|
||||
@NotNull
|
||||
private final LinearNormalizer linearNormalizer;
|
||||
private final Normalizer normalizer;
|
||||
|
||||
private final double min;
|
||||
|
||||
private final double step;
|
||||
|
||||
public DiscreteNormalizer(double min, double max, int steps) {
|
||||
this(min, max, steps, null);
|
||||
}
|
||||
|
||||
public DiscreteNormalizer(double min, double max, int steps, @Nullable Normalizer normalizer) {
|
||||
assert min <= max;
|
||||
assert steps > 1;
|
||||
|
||||
this.linearNormalizer = new LinearNormalizer(min, max);
|
||||
if (normalizer != null) {
|
||||
this.normalizer = normalizer;
|
||||
} else {
|
||||
this.normalizer = new LinearNormalizer(min, max);
|
||||
}
|
||||
|
||||
this.step = linearNormalizer.normalize((max - min) / (steps - 1));
|
||||
this.min = linearNormalizer.normalize(min);
|
||||
this.step = this.normalizer.normalize((max - min) / (steps - 1));
|
||||
this.min = this.normalizer.normalize(min);
|
||||
}
|
||||
|
||||
public DiscreteNormalizer(double min, double max, double step) {
|
||||
assert min <= max;
|
||||
assert step > 0;
|
||||
|
||||
this.linearNormalizer = new LinearNormalizer(min, max);
|
||||
this.normalizer = new LinearNormalizer(min, max);
|
||||
|
||||
this.step = linearNormalizer.normalize(step);
|
||||
this.min = linearNormalizer.normalize(min);
|
||||
this.step = normalizer.normalize(step);
|
||||
this.min = normalizer.normalize(min);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double normalize(double value) {
|
||||
double normalizedValue = linearNormalizer.normalize(value);
|
||||
double normalizedValue = normalizer.normalize(value);
|
||||
|
||||
double result = min;
|
||||
while (true) {
|
||||
@@ -54,6 +63,6 @@ public class DiscreteNormalizer implements Normalizer {
|
||||
|
||||
@Override
|
||||
public double denormalize(double value) {
|
||||
return linearNormalizer.denormalize(value);
|
||||
return normalizer.denormalize(value);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user