Interface StorelessUnivariateStatistic

All Superinterfaces:
DoubleConsumer, MathArrays.Function, UnivariateStatistic
All Known Implementing Classes:
AbstractStorelessUnivariateStatistic, GeometricMean, Kurtosis, Max, Mean, Min, Product, PSquarePercentile, RandomPercentile, SecondMoment, Skewness, StandardDeviation, Sum, SumOfLogs, SumOfSquares, Variance

public interface StorelessUnivariateStatistic extends UnivariateStatistic, DoubleConsumer
Extends the definition of UnivariateStatistic with increment(double) and incrementAll(double[]) methods for adding values and updating internal state.

This interface is designed to be used for calculating statistics that can be computed in one pass through the data without storing the full array of sample values.

Note: unless otherwise stated, the UnivariateStatistic.evaluate(double[]) and evaluate(double[], int, int) methods do NOT alter the internal state of the respective statistic.

  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    accept(double value)
    void
    Clears the internal state of the Statistic
    Returns a copy of the statistic with the same internal state.
    default double
    evaluate(double[] values, int begin, int length)
    Returns the result of evaluating the statistic over the specified entries in the input array.
    long
    Returns the number of values that have been added.
    double
    Returns the current value of the Statistic.
    void
    increment(double d)
    Updates the internal state of the statistic to reflect the addition of the new value.
    default void
    incrementAll(double[] values)
    Updates the internal state of the statistic to reflect addition of all values in the values array.
    default void
    incrementAll(double[] values, int start, int length)
    Updates the internal state of the statistic to reflect addition of the values in the designated portion of the values array.

    Methods inherited from interface java.util.function.DoubleConsumer

    andThen

    Methods inherited from interface org.hipparchus.stat.descriptive.UnivariateStatistic

    evaluate
  • Method Details

    • evaluate

      default double evaluate(double[] values, int begin, int length) throws MathIllegalArgumentException
      Returns the result of evaluating the statistic over the specified entries in the input array.

      The default implementation creates a copy of this StorelessUnivariateStatistic instance, calls clear() on it, then calls incrementAll(double[]) with the specified portion of the input array, and then uses getResult() to compute the return value.

      Note that this implementation does not change the internal state of the statistic.

      Implementations may override this method with a more efficient and possibly more accurate implementation that works directly with the input array.

      Specified by:
      evaluate in interface MathArrays.Function
      Specified by:
      evaluate in interface UnivariateStatistic
      Parameters:
      values - the input array
      begin - the index of the first element to include
      length - the number of elements to include
      Returns:
      the value of the statistic applied to the included array entries
      Throws:
      MathIllegalArgumentException - if the array is null or the indices are not valid
      See Also:
    • increment

      void increment(double d)
      Updates the internal state of the statistic to reflect the addition of the new value.
      Parameters:
      d - the new value.
    • accept

      default void accept(double value)
      Specified by:
      accept in interface DoubleConsumer
    • incrementAll

      default void incrementAll(double[] values) throws MathIllegalArgumentException
      Updates the internal state of the statistic to reflect addition of all values in the values array. Does not clear the statistic first -- i.e., the values are added incrementally to the dataset.

      The default implementation delegates to incrementAll(double[], int, int) in the natural way.

      Parameters:
      values - array holding the new values to add
      Throws:
      MathIllegalArgumentException - if the array is null
    • incrementAll

      default void incrementAll(double[] values, int start, int length) throws MathIllegalArgumentException
      Updates the internal state of the statistic to reflect addition of the values in the designated portion of the values array. Does not clear the statistic first -- i.e., the values are added incrementally to the dataset.

      The default implementation just calls increment(double) in a loop over the specified portion of the input array.

      Parameters:
      values - array holding the new values to add
      start - the array index of the first value to add
      length - the number of elements to add
      Throws:
      MathIllegalArgumentException - if the array is null or the index
    • getResult

      double getResult()
      Returns the current value of the Statistic.
      Returns:
      value of the statistic, Double.NaN if it has been cleared or just instantiated.
    • getN

      long getN()
      Returns the number of values that have been added.
      Returns:
      the number of values.
    • clear

      void clear()
      Clears the internal state of the Statistic
    • copy

      Returns a copy of the statistic with the same internal state.
      Specified by:
      copy in interface UnivariateStatistic
      Returns:
      a copy of the statistic