Skip to content

Commit

Permalink
feat: also output standard deviation
Browse files Browse the repository at this point in the history
  • Loading branch information
metacosm committed Nov 11, 2023
1 parent fdd497e commit 06ab18c
Showing 1 changed file with 10 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,20 @@ default double average() {
return total() / numberOfSamples();
}

default double standardDeviation() {
final var mean = average();
double sumOfSquares = measures().stream()
.mapToDouble(measure -> Math.pow(measure[0] - mean, 2))
.sum();
return Math.sqrt(sumOfSquares / (numberOfSamples() - 1));
}

static String asString(PowerMeasure measure) {
final var durationInSeconds = measure.duration() / 1000;
final var samples = measure.numberOfSamples();
final var measuredMilliWatts = measure.total();
return String.format("%s / avg: %s (%ds, %s samples)", readableWithUnit(measuredMilliWatts),
readableWithUnit(measure.average()), durationInSeconds,
return String.format("%s / avg: %s / std dev: %.3f (%ds, %s samples)", readableWithUnit(measuredMilliWatts),
readableWithUnit(measure.average()), measure.standardDeviation(), durationInSeconds,
samples);
}

Expand Down

0 comments on commit 06ab18c

Please sign in to comment.