Skip to content
Snippets Groups Projects
Commit 9f3f29d4 authored by Reiner Jung's avatar Reiner Jung
Browse files

Made table calculations stable against nan and infinite values.

parent deff6f18
No related branches found
No related tags found
No related merge requests found
...@@ -63,14 +63,25 @@ public class ComputeTableStage extends AbstractTransformation<ExperimentLog, Tab ...@@ -63,14 +63,25 @@ public class ComputeTableStage extends AbstractTransformation<ExperimentLog, Tab
} }
private Measurements computePrevious(final Measurements previousMeasurements, final Measurements measurements) { private Measurements computePrevious(final Measurements previousMeasurements, final Measurements measurements) {
return new Measurements((measurements.getMean() + previousMeasurements.getMean())/2, return new Measurements(
(measurements.getStandardDeviation() + previousMeasurements.getStandardDeviation())/2, this.computeValue(measurements.getMean(), previousMeasurements.getMean()),
(measurements.getConvidence() + previousMeasurements.getConvidence())/2, this.computeValue(measurements.getStandardDeviation(), previousMeasurements.getStandardDeviation()),
(measurements.getLowerQuartile() + previousMeasurements.getLowerQuartile())/2, this.computeValue(measurements.getConvidence(), previousMeasurements.getConvidence()),
(measurements.getMedian() + previousMeasurements.getMedian())/2, this.computeValue(measurements.getLowerQuartile(), previousMeasurements.getLowerQuartile()),
(measurements.getUpperQuartile() + previousMeasurements.getUpperQuartile())/2, this.computeValue(measurements.getMedian(), previousMeasurements.getMedian()),
(measurements.getMin() + previousMeasurements.getMin())/2, this.computeValue(measurements.getUpperQuartile(), previousMeasurements.getUpperQuartile()),
(measurements.getMax() + previousMeasurements.getMax())/2); this.computeValue(measurements.getMin(), previousMeasurements.getMin()),
this.computeValue(measurements.getMax(), previousMeasurements.getMax()));
}
private Double computeValue(final Double newValue, final Double previousValue) {
if (newValue.isNaN() || newValue.isInfinite()) {
return previousValue;
} else if (previousValue.isNaN() || previousValue.isInfinite()) {
return newValue;
} else {
return (newValue + previousValue)/2;
}
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment