/** * Written by Gil Tene of Azul Systems, and released to the public domain, * as explained at http://creativecommons.org/publicdomain/zero/1.0/ * * @author Gil Tene */ package org.HdrHistogram_voltpatches; /** * Represents a value point iterated through in a {@link DoubleHistogram}, with associated stats. * <ul> * <li><b><code>valueIteratedTo</code></b> :<br> The actual value level that was iterated to by the iterator</li> * <li><b><code>prevValueIteratedTo</code></b> :<br> The actual value level that was iterated from by the iterator</li> * <li><b><code>countAtValueIteratedTo</code></b> :<br> The count of recorded values in the histogram that * exactly match this [lowestEquivalentValue(valueIteratedTo)...highestEquivalentValue(valueIteratedTo)] value * range.</li> * <li><b><code>countAddedInThisIterationStep</code></b> :<br> The count of recorded values in the histogram that * were added to the totalCountToThisValue (below) as a result on this iteration step. Since multiple iteration * steps may occur with overlapping equivalent value ranges, the count may be lower than the count found at * the value (e.g. multiple linear steps or percentile levels can occur within a single equivalent value range)</li> * <li><b><code>totalCountToThisValue</code></b> :<br> The total count of all recorded values in the histogram at * values equal or smaller than valueIteratedTo.</li> * <li><b><code>totalValueToThisValue</code></b> :<br> The sum of all recorded values in the histogram at values * equal or smaller than valueIteratedTo.</li> * <li><b><code>percentile</code></b> :<br> The percentile of recorded values in the histogram at values equal * or smaller than valueIteratedTo.</li> * <li><b><code>percentileLevelIteratedTo</code></b> :<br> The percentile level that the iterator returning this * HistogramIterationValue had iterated to. Generally, percentileLevelIteratedTo will be equal to or smaller than * percentile, but the same value point can contain multiple iteration levels for some iterators. E.g. a * PercentileIterator can stop multiple times in the exact same value point (if the count at that value covers a * range of multiple percentiles in the requested percentile iteration points).</li> * </ul> */ public class DoubleHistogramIterationValue { private final HistogramIterationValue integerHistogramIterationValue; void reset() { integerHistogramIterationValue.reset(); } DoubleHistogramIterationValue(HistogramIterationValue integerHistogramIterationValue) { this.integerHistogramIterationValue = integerHistogramIterationValue; } public String toString() { return "valueIteratedTo:" + getValueIteratedTo() + ", prevValueIteratedTo:" + getValueIteratedFrom() + ", countAtValueIteratedTo:" + getCountAtValueIteratedTo() + ", countAddedInThisIterationStep:" + getCountAddedInThisIterationStep() + ", totalCountToThisValue:" + getTotalCountToThisValue() + ", totalValueToThisValue:" + getTotalValueToThisValue() + ", percentile:" + getPercentile() + ", percentileLevelIteratedTo:" + getPercentileLevelIteratedTo(); } public double getValueIteratedTo() { return integerHistogramIterationValue.getValueIteratedTo() * integerHistogramIterationValue.getIntegerToDoubleValueConversionRatio(); } public double getValueIteratedFrom() { return integerHistogramIterationValue.getValueIteratedFrom() * integerHistogramIterationValue.getIntegerToDoubleValueConversionRatio(); } public long getCountAtValueIteratedTo() { return integerHistogramIterationValue.getCountAtValueIteratedTo(); } public long getCountAddedInThisIterationStep() { return integerHistogramIterationValue.getCountAddedInThisIterationStep(); } public long getTotalCountToThisValue() { return integerHistogramIterationValue.getTotalCountToThisValue(); } public double getTotalValueToThisValue() { return integerHistogramIterationValue.getTotalValueToThisValue() * integerHistogramIterationValue.getIntegerToDoubleValueConversionRatio(); } public double getPercentile() { return integerHistogramIterationValue.getPercentile(); } public double getPercentileLevelIteratedTo() { return integerHistogramIterationValue.getPercentileLevelIteratedTo(); } public HistogramIterationValue getIntegerHistogramIterationValue() { return integerHistogramIterationValue; } }