Package org.apache.jorphan.math
Class StatCalculator<T extends Number & Comparable<? super T>>
- java.lang.Object
-
- org.apache.jorphan.math.StatCalculator<T>
-
- Type Parameters:
T- type parameter for the calculator
- Direct Known Subclasses:
StatCalculatorInteger,StatCalculatorLong
public abstract class StatCalculator<T extends Number & Comparable<? super T>> extends Object
This class serves as a way to calculate the median, max, min etc. of a list of values. It is not threadsafe.
-
-
Constructor Summary
Constructors Constructor Description StatCalculator(T zero, T min, T max)This constructor is used to set up particular values for the generic class instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddAll(StatCalculator<T> calc)voidaddBytes(long newValue)voidaddValue(T val)Add a single value (normally elapsed time)voidaddValue(T val, long sampleCount)Update the calculator with the value for an aggregated sample.voidclear()protected abstract Tdivide(T val, int n)protected abstract Tdivide(T val, long n)longgetCount()Map<Number,Number[]>getDistribution()Returns the distribution of the values in the list.TgetMax()doublegetMean()TgetMedian()TgetMin()TgetPercentPoint(double percent)Get the value which %percent% of the values are less than.TgetPercentPoint(float percent)Get the value which %percent% of the values are less than.doublegetStandardDeviation()doublegetSum()longgetTotalBytes()
-
-
-
Constructor Detail
-
StatCalculator
public StatCalculator(T zero, T min, T max)
This constructor is used to set up particular values for the generic class instance.- Parameters:
zero- - value to return for Median and PercentPoint if there are no valuesmin- - value to return for minimum if there are no valuesmax- - value to return for maximum if there are no values
-
-
Method Detail
-
clear
public void clear()
-
addBytes
public void addBytes(long newValue)
-
addAll
public void addAll(StatCalculator<T> calc)
-
getMedian
public T getMedian()
-
getTotalBytes
public long getTotalBytes()
-
getPercentPoint
public T getPercentPoint(float percent)
Get the value which %percent% of the values are less than. This works just like median (where median represents the 50% point). A typical desire is to see the 90% point - the value that 90% of the data points are below, the remaining 10% are above.- Parameters:
percent- number representing the wished percent (between0and1.0)- Returns:
- number of values less than the percentage
-
getPercentPoint
public T getPercentPoint(double percent)
Get the value which %percent% of the values are less than. This works just like median (where median represents the 50% point). A typical desire is to see the 90% point - the value that 90% of the data points are below, the remaining 10% are above.- Parameters:
percent- number representing the wished percent (between0and1.0)- Returns:
- the value which %percent% of the values are less than
-
getDistribution
public Map<Number,Number[]> getDistribution()
Returns the distribution of the values in the list.- Returns:
- map containing either Integer or Long keys; entries are a Number array containing the key and the [Integer] count. TODO - why is the key value also stored in the entry array? See Bug 53825
-
getMean
public double getMean()
-
getStandardDeviation
public double getStandardDeviation()
-
getMin
public T getMin()
-
getMax
public T getMax()
-
getCount
public long getCount()
-
getSum
public double getSum()
-
addValue
public void addValue(T val, long sampleCount)
Update the calculator with the value for an aggregated sample.- Parameters:
val- the aggregate value, normally the elapsed timesampleCount- the number of samples contributing to the aggregate value
-
addValue
public void addValue(T val)
Add a single value (normally elapsed time)- Parameters:
val- the value to add, which should correspond with a single sample- See Also:
addValue(Number, long)
-
-