org.apache.commons.math3.stat.descriptive

## Class AbstractStorelessUnivariateStatistic

- java.lang.Object
- - org.apache.commons.math3.stat.descriptive.AbstractUnivariateStatistic
  - - org.apache.commons.math3.stat.descriptive.AbstractStorelessUnivariateStatistic

All Implemented Interfaces:
  StorelessUnivariateStatistic, UnivariateStatistic, MathArrays.Function

Direct Known Subclasses:
  FirstMoment, GeometricMean, Kurtosis, Max, Mean, Min, Product, Skewness, StandardDeviation, Sum, SumOfLogs, SumOfSquares, Variance

    public abstract class AbstractStorelessUnivariateStatistic
    extends AbstractUnivariateStatistic
    implements StorelessUnivariateStatistic

Abstract implementation of the `StorelessUnivariateStatistic` interface.

Provides default `evaluate()` and `incrementAll(double[])` implementations.

Note that these implementations are not synchronized.

Version:
  $Id: AbstractStorelessUnivariateStatistic.java 1416643 2012-12-03 19:37:14Z tn $

### Constructor Summary

Constructors
Constructor and Description
`AbstractStorelessUnivariateStatistic()`

### Method Summary

Methods
`abstract void` `clear()` Clears the internal state of the Statistic
`abstract StorelessUnivariateStatistic` `copy()` Returns a copy of the statistic with the same internal state.
`boolean` `equals(java.lang.Object object)` Returns true iff `object` is an `AbstractStorelessUnivariateStatistic` returning the same values as this for `getResult()` and `getN()`
`double` `evaluate(double[] values)` This default implementation calls `clear()`, then invokes `increment(double)` in a loop over the the input array, and then uses `getResult()` to compute the return value.
`double` `evaluate(double[] values, int begin, int length)` This default implementation calls `clear()`, then invokes `increment(double)` in a loop over the specified portion of the input array, and then uses `getResult()` to compute the return value.
`abstract double` `getResult()` Returns the current value of the Statistic.
`int` `hashCode()` Returns hash code based on getResult() and getN()
`abstract void` `increment(double d)` Updates the internal state of the statistic to reflect the addition of the new value.
`void` `incrementAll(double[] values)` This default implementation just calls `increment(double)` in a loop over the input array.
`void` `incrementAll(double[] values, int begin, int length)` This default implementation just calls `increment(double)` in a loop over the specified portion of the input array.

### Methods inherited from class org.apache.commons.math3.stat.descriptive.AbstractUnivariateStatistic

`evaluate, getData, getDataRef, setData, setData, test, test, test, test`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.commons.math3.stat.descriptive.StorelessUnivariateStatistic

`getN`

### Constructor Detail

#### AbstractStorelessUnivariateStatistic

    public AbstractStorelessUnivariateStatistic()

### Method Detail

#### evaluate

    public double evaluate(double[] values)
                    throws MathIllegalArgumentException

This default implementation calls `clear()`, then invokes `increment(double)` in a loop over the the input array, and then uses `getResult()` to compute the return value.

Note that this implementation changes the internal state of the statistic. Its side effects are the same as invoking `clear()` and then `incrementAll(double[])`.

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

If the array is null, a MathIllegalArgumentException is thrown.

Specified by:
  `evaluate` in interface `UnivariateStatistic`
Specified by:
  `evaluate` in interface `MathArrays.Function`
Overrides:
  `evaluate` in class `AbstractUnivariateStatistic`
Parameters:
  `values` - input array
Returns:
  the value of the statistic applied to the input array
Throws:
  `MathIllegalArgumentException` - if values is null
See Also:
  `UnivariateStatistic.evaluate(double[])`

#### evaluate

    public double evaluate(double[] values,
                  int begin,
                  int length)
                    throws MathIllegalArgumentException

This default implementation calls `clear()`, then invokes `increment(double)` in a loop over the specified portion of the input array, and then uses `getResult()` to compute the return value.

Note that this implementation changes the internal state of the statistic. Its side effects are the same as invoking `clear()` and then `incrementAll(double[], int, int)`.

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

If the array is null or the index parameters are not valid, an MathIllegalArgumentException is thrown.

Specified by:
  `evaluate` in interface `UnivariateStatistic`
Specified by:
  `evaluate` in interface `MathArrays.Function`
Specified by:
  `evaluate` in class `AbstractUnivariateStatistic`
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:
  `UnivariateStatistic.evaluate(double[], int, int)`

#### copy

    public abstract StorelessUnivariateStatistic copy()

Returns a copy of the statistic with the same internal state.

Specified by:
  `copy` in interface `StorelessUnivariateStatistic`
Specified by:
  `copy` in interface `UnivariateStatistic`
Specified by:
  `copy` in class `AbstractUnivariateStatistic`
Returns:
  a copy of the statistic

#### clear

    public abstract void clear()

Clears the internal state of the Statistic

Specified by:
  `clear` in interface `StorelessUnivariateStatistic`

#### getResult

    public abstract double getResult()

Returns the current value of the Statistic.

Specified by:
  `getResult` in interface `StorelessUnivariateStatistic`
Returns:
  value of the statistic, `Double.NaN` if it has been cleared or just instantiated.

#### increment

    public abstract void increment(double d)

Updates the internal state of the statistic to reflect the addition of the new value.

Specified by:
  `increment` in interface `StorelessUnivariateStatistic`
Parameters:
  `d` - the new value.

#### incrementAll

    public void incrementAll(double[] values)
                      throws MathIllegalArgumentException

This default implementation just calls `increment(double)` in a loop over the input array.

Throws IllegalArgumentException if the input values array is null.

Specified by:
  `incrementAll` in interface `StorelessUnivariateStatistic`
Parameters:
  `values` - values to add
Throws:
  `MathIllegalArgumentException` - if values is null
See Also:
  `StorelessUnivariateStatistic.incrementAll(double[])`

#### incrementAll

    public void incrementAll(double[] values,
                    int begin,
                    int length)
                      throws MathIllegalArgumentException

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

Throws IllegalArgumentException if the input values array is null.

Specified by:
  `incrementAll` in interface `StorelessUnivariateStatistic`
Parameters:
  `values` - array holding values to add
  `begin` - index of the first array element to add
  `length` - number of array elements to add
Throws:
  `MathIllegalArgumentException` - if values is null
See Also:
  `StorelessUnivariateStatistic.incrementAll(double[], int, int)`

#### equals

    public boolean equals(java.lang.Object object)

Returns true iff `object` is an `AbstractStorelessUnivariateStatistic` returning the same values as this for `getResult()` and `getN()`

Overrides:
  `equals` in class `java.lang.Object`
Parameters:
  `object` - object to test equality against.
Returns:
  true if object returns the same value as this

#### hashCode

    public int hashCode()

Returns hash code based on getResult() and getN()

Overrides:
  `hashCode` in class `java.lang.Object`
Returns:
  hash code