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 Details

    • StatCalculator

      protected 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 values
      min - - value to return for minimum if there are no values
      max - - value to return for maximum if there are no values
  • Method Details

    • clear

      public void clear()
    • addBytes

      public void addBytes(long newValue)
      Add to received bytes
      Parameters:
      newValue - number of newly received bytes
    • addSentBytes

      public void addSentBytes(long newValue)
      Add to sent bytes
      Parameters:
      newValue - number of newly sent bytes
    • addAll

      public void addAll(StatCalculator<T> calc)
    • getMedian

      public T getMedian()
    • getTotalBytes

      public long getTotalBytes()
    • getTotalSentBytes

      public long getTotalSentBytes()
    • 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 (between 0 and 1.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 (between 0 and 1.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()
    • divide

      protected abstract T divide(T val, int n)
    • divide

      protected abstract T divide(T val, long n)
    • 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 time
      sampleCount - 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: