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 void
addAll(StatCalculator<T> calc)
void
addBytes(long newValue)
void
addValue(T val)
Add a single value (normally elapsed time)void
addValue(T val, long sampleCount)
Update the calculator with the value for an aggregated sample.void
clear()
protected abstract T
divide(T val, int n)
protected abstract T
divide(T val, long n)
long
getCount()
Map<Number,Number[]>
getDistribution()
Returns the distribution of the values in the list.T
getMax()
double
getMean()
T
getMedian()
T
getMin()
T
getPercentPoint(double percent)
Get the value which %percent% of the values are less than.T
getPercentPoint(float percent)
Get the value which %percent% of the values are less than.double
getStandardDeviation()
double
getSum()
long
getTotalBytes()
-
-
-
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 (between0
and1.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 (between0
and1.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)
-
-