org.apache.commons.math3.stat.descriptive

## Class SynchronizedMultivariateSummaryStatistics

- java.lang.Object
- - org.apache.commons.math3.stat.descriptive.MultivariateSummaryStatistics
  - - org.apache.commons.math3.stat.descriptive.SynchronizedMultivariateSummaryStatistics

All Implemented Interfaces:
  java.io.Serializable, StatisticalMultivariateSummary

    public class SynchronizedMultivariateSummaryStatistics
    extends MultivariateSummaryStatistics

Implementation of `MultivariateSummaryStatistics` that is safe to use in a multithreaded environment. Multiple threads can safely operate on a single instance without causing runtime exceptions due to race conditions. In effect, this implementation makes modification and access methods atomic operations for a single instance. That is to say, as one thread is computing a statistic from the instance, no other thread can modify the instance nor compute another statistic.

Since:
  1.2
Version:
  $Id: SynchronizedMultivariateSummaryStatistics.java 1416643 2012-12-03 19:37:14Z tn $
See Also:
  Serialized Form

### Field Summary

Fields
`private static long` `serialVersionUID` Serialization UID

### Constructor Summary

Constructors
Constructor and Description
`SynchronizedMultivariateSummaryStatistics(int k, boolean isCovarianceBiasCorrected)` Construct a SynchronizedMultivariateSummaryStatistics instance

### Method Summary

Methods
`void` `addValue(double[] value)` Add an n-tuple to the data
`void` `clear()` Resets all statistics and storage
`boolean` `equals(java.lang.Object object)` Returns true iff `object` is a `MultivariateSummaryStatistics` instance and all statistics have the same values as this.
`RealMatrix` `getCovariance()` Returns the covariance matrix of the values that have been added.
`int` `getDimension()` Returns the dimension of the data
`StorelessUnivariateStatistic[]` `getGeoMeanImpl()` Returns the currently configured geometric mean implementation
`double[]` `getGeometricMean()` Returns an array whose ith entry is the geometric mean of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`
`double[]` `getMax()` Returns an array whose ith entry is the maximum of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`
`StorelessUnivariateStatistic[]` `getMaxImpl()` Returns the currently configured maximum implementation
`double[]` `getMean()` Returns an array whose ith entry is the mean of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`
`StorelessUnivariateStatistic[]` `getMeanImpl()` Returns the currently configured mean implementation
`double[]` `getMin()` Returns an array whose ith entry is the minimum of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`
`StorelessUnivariateStatistic[]` `getMinImpl()` Returns the currently configured minimum implementation
`long` `getN()` Returns the number of available values
`double[]` `getStandardDeviation()` Returns an array whose ith entry is the standard deviation of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`
`double[]` `getSum()` Returns an array whose ith entry is the sum of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`
`StorelessUnivariateStatistic[]` `getSumImpl()` Returns the currently configured Sum implementation
`double[]` `getSumLog()` Returns an array whose ith entry is the sum of logs of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`
`StorelessUnivariateStatistic[]` `getSumLogImpl()` Returns the currently configured sum of logs implementation
`double[]` `getSumSq()` Returns an array whose ith entry is the sum of squares of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`
`StorelessUnivariateStatistic[]` `getSumsqImpl()` Returns the currently configured sum of squares implementation
`int` `hashCode()` Returns hash code based on values of statistics
`void` `setGeoMeanImpl(StorelessUnivariateStatistic[] geoMeanImpl)` Sets the implementation for the geometric mean.
`void` `setMaxImpl(StorelessUnivariateStatistic[] maxImpl)` Sets the implementation for the maximum.
`void` `setMeanImpl(StorelessUnivariateStatistic[] meanImpl)` Sets the implementation for the mean.
`void` `setMinImpl(StorelessUnivariateStatistic[] minImpl)` Sets the implementation for the minimum.
`void` `setSumImpl(StorelessUnivariateStatistic[] sumImpl)` Sets the implementation for the Sum.
`void` `setSumLogImpl(StorelessUnivariateStatistic[] sumLogImpl)` Sets the implementation for the sum of logs.
`void` `setSumsqImpl(StorelessUnivariateStatistic[] sumsqImpl)` Sets the implementation for the sum of squares.
`java.lang.String` `toString()` Generates a text report displaying summary statistics from values that have been added.

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

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

### Field Detail

#### serialVersionUID

    private static final long serialVersionUID

Serialization UID

See Also:
  Constant Field Values

### Constructor Detail

#### SynchronizedMultivariateSummaryStatistics

    public SynchronizedMultivariateSummaryStatistics(int k,
                                             boolean isCovarianceBiasCorrected)

Construct a SynchronizedMultivariateSummaryStatistics instance

Parameters:
  `k` - dimension of the data
  `isCovarianceBiasCorrected` - if true, the unbiased sample covariance is computed, otherwise the biased population covariance is computed

### Method Detail

#### addValue

    public void addValue(double[] value)
                  throws DimensionMismatchException

Add an n-tuple to the data

Overrides:
  `addValue` in class `MultivariateSummaryStatistics`
Parameters:
  `value` - the n-tuple to add
Throws:
  `DimensionMismatchException` - if the length of the array does not match the one used at construction

#### getDimension

    public int getDimension()

Returns the dimension of the data

Specified by:
  `getDimension` in interface `StatisticalMultivariateSummary`
Overrides:
  `getDimension` in class `MultivariateSummaryStatistics`
Returns:
  The dimension of the data

#### getN

    public long getN()

Returns the number of available values

Specified by:
  `getN` in interface `StatisticalMultivariateSummary`
Overrides:
  `getN` in class `MultivariateSummaryStatistics`
Returns:
  The number of available values

#### getSum

    public double[] getSum()

Returns an array whose ith entry is the sum of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`

Specified by:
  `getSum` in interface `StatisticalMultivariateSummary`
Overrides:
  `getSum` in class `MultivariateSummaryStatistics`
Returns:
  the array of component sums

#### getSumSq

    public double[] getSumSq()

Returns an array whose ith entry is the sum of squares of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`

Specified by:
  `getSumSq` in interface `StatisticalMultivariateSummary`
Overrides:
  `getSumSq` in class `MultivariateSummaryStatistics`
Returns:
  the array of component sums of squares

#### getSumLog

    public double[] getSumLog()

Returns an array whose ith entry is the sum of logs of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`

Specified by:
  `getSumLog` in interface `StatisticalMultivariateSummary`
Overrides:
  `getSumLog` in class `MultivariateSummaryStatistics`
Returns:
  the array of component log sums

#### getMean

    public double[] getMean()

Returns an array whose ith entry is the mean of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`

Specified by:
  `getMean` in interface `StatisticalMultivariateSummary`
Overrides:
  `getMean` in class `MultivariateSummaryStatistics`
Returns:
  the array of component means

#### getStandardDeviation

    public double[] getStandardDeviation()

Returns an array whose ith entry is the standard deviation of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`

Specified by:
  `getStandardDeviation` in interface `StatisticalMultivariateSummary`
Overrides:
  `getStandardDeviation` in class `MultivariateSummaryStatistics`
Returns:
  the array of component standard deviations

#### getCovariance

    public RealMatrix getCovariance()

Returns the covariance matrix of the values that have been added.

Specified by:
  `getCovariance` in interface `StatisticalMultivariateSummary`
Overrides:
  `getCovariance` in class `MultivariateSummaryStatistics`
Returns:
  the covariance matrix

#### getMax

    public double[] getMax()

Returns an array whose ith entry is the maximum of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`

Specified by:
  `getMax` in interface `StatisticalMultivariateSummary`
Overrides:
  `getMax` in class `MultivariateSummaryStatistics`
Returns:
  the array of component maxima

#### getMin

    public double[] getMin()

Returns an array whose ith entry is the minimum of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`

Specified by:
  `getMin` in interface `StatisticalMultivariateSummary`
Overrides:
  `getMin` in class `MultivariateSummaryStatistics`
Returns:
  the array of component minima

#### getGeometricMean

    public double[] getGeometricMean()

Returns an array whose ith entry is the geometric mean of the ith entries of the arrays that have been added using `MultivariateSummaryStatistics.addValue(double[])`

Specified by:
  `getGeometricMean` in interface `StatisticalMultivariateSummary`
Overrides:
  `getGeometricMean` in class `MultivariateSummaryStatistics`
Returns:
  the array of component geometric means

#### toString

    public java.lang.String toString()

Generates a text report displaying summary statistics from values that have been added.

Overrides:
  `toString` in class `MultivariateSummaryStatistics`
Returns:
  String with line feeds displaying statistics

#### clear

    public void clear()

Resets all statistics and storage

Overrides:
  `clear` in class `MultivariateSummaryStatistics`

#### equals

    public boolean equals(java.lang.Object object)

Returns true iff `object` is a `MultivariateSummaryStatistics` instance and all statistics have the same values as this.

Overrides:
  `equals` in class `MultivariateSummaryStatistics`
Parameters:
  `object` - the object to test equality against.
Returns:
  true if object equals this

#### hashCode

    public int hashCode()

Returns hash code based on values of statistics

Overrides:
  `hashCode` in class `MultivariateSummaryStatistics`
Returns:
  hash code

#### getSumImpl

    public StorelessUnivariateStatistic[] getSumImpl()

Returns the currently configured Sum implementation

Overrides:
  `getSumImpl` in class `MultivariateSummaryStatistics`
Returns:
  the StorelessUnivariateStatistic implementing the sum

#### setSumImpl

    public void setSumImpl(StorelessUnivariateStatistic[] sumImpl)
                    throws DimensionMismatchException,
                           MathIllegalStateException

Sets the implementation for the Sum.

This method must be activated before any data has been added - i.e., before `addValue` has been used to add data; otherwise an IllegalStateException will be thrown.

Overrides:
  `setSumImpl` in class `MultivariateSummaryStatistics`
Parameters:
  `sumImpl` - the StorelessUnivariateStatistic instance to use for computing the Sum
Throws:
  `DimensionMismatchException` - if the array dimension does not match the one used at construction
  `MathIllegalStateException` - if data has already been added (i.e if n > 0)

#### getSumsqImpl

    public StorelessUnivariateStatistic[] getSumsqImpl()

Returns the currently configured sum of squares implementation

Overrides:
  `getSumsqImpl` in class `MultivariateSummaryStatistics`
Returns:
  the StorelessUnivariateStatistic implementing the sum of squares

#### setSumsqImpl

    public void setSumsqImpl(StorelessUnivariateStatistic[] sumsqImpl)
                      throws DimensionMismatchException,
                             MathIllegalStateException

Sets the implementation for the sum of squares.

This method must be activated before any data has been added - i.e., before `addValue` has been used to add data; otherwise an IllegalStateException will be thrown.

Overrides:
  `setSumsqImpl` in class `MultivariateSummaryStatistics`
Parameters:
  `sumsqImpl` - the StorelessUnivariateStatistic instance to use for computing the sum of squares
Throws:
  `DimensionMismatchException` - if the array dimension does not match the one used at construction
  `MathIllegalStateException` - if data has already been added (i.e if n > 0)

#### getMinImpl

    public StorelessUnivariateStatistic[] getMinImpl()

Returns the currently configured minimum implementation

Overrides:
  `getMinImpl` in class `MultivariateSummaryStatistics`
Returns:
  the StorelessUnivariateStatistic implementing the minimum

#### setMinImpl

    public void setMinImpl(StorelessUnivariateStatistic[] minImpl)
                    throws DimensionMismatchException,
                           MathIllegalStateException

Sets the implementation for the minimum.

This method must be activated before any data has been added - i.e., before `addValue` has been used to add data; otherwise an IllegalStateException will be thrown.

Overrides:
  `setMinImpl` in class `MultivariateSummaryStatistics`
Parameters:
  `minImpl` - the StorelessUnivariateStatistic instance to use for computing the minimum
Throws:
  `DimensionMismatchException` - if the array dimension does not match the one used at construction
  `MathIllegalStateException` - if data has already been added (i.e if n > 0)

#### getMaxImpl

    public StorelessUnivariateStatistic[] getMaxImpl()

Returns the currently configured maximum implementation

Overrides:
  `getMaxImpl` in class `MultivariateSummaryStatistics`
Returns:
  the StorelessUnivariateStatistic implementing the maximum

#### setMaxImpl

    public void setMaxImpl(StorelessUnivariateStatistic[] maxImpl)
                    throws DimensionMismatchException,
                           MathIllegalStateException

Sets the implementation for the maximum.

This method must be activated before any data has been added - i.e., before `addValue` has been used to add data; otherwise an IllegalStateException will be thrown.

Overrides:
  `setMaxImpl` in class `MultivariateSummaryStatistics`
Parameters:
  `maxImpl` - the StorelessUnivariateStatistic instance to use for computing the maximum
Throws:
  `DimensionMismatchException` - if the array dimension does not match the one used at construction
  `MathIllegalStateException` - if data has already been added (i.e if n > 0)

#### getSumLogImpl

    public StorelessUnivariateStatistic[] getSumLogImpl()

Returns the currently configured sum of logs implementation

Overrides:
  `getSumLogImpl` in class `MultivariateSummaryStatistics`
Returns:
  the StorelessUnivariateStatistic implementing the log sum

#### setSumLogImpl

    public void setSumLogImpl(StorelessUnivariateStatistic[] sumLogImpl)
                       throws DimensionMismatchException,
                              MathIllegalStateException

Sets the implementation for the sum of logs.

This method must be activated before any data has been added - i.e., before `addValue` has been used to add data; otherwise an IllegalStateException will be thrown.

Overrides:
  `setSumLogImpl` in class `MultivariateSummaryStatistics`
Parameters:
  `sumLogImpl` - the StorelessUnivariateStatistic instance to use for computing the log sum
Throws:
  `DimensionMismatchException` - if the array dimension does not match the one used at construction
  `MathIllegalStateException` - if data has already been added (i.e if n > 0)

#### getGeoMeanImpl

    public StorelessUnivariateStatistic[] getGeoMeanImpl()

Returns the currently configured geometric mean implementation

Overrides:
  `getGeoMeanImpl` in class `MultivariateSummaryStatistics`
Returns:
  the StorelessUnivariateStatistic implementing the geometric mean

#### setGeoMeanImpl

    public void setGeoMeanImpl(StorelessUnivariateStatistic[] geoMeanImpl)
                        throws DimensionMismatchException,
                               MathIllegalStateException

Sets the implementation for the geometric mean.

This method must be activated before any data has been added - i.e., before `addValue` has been used to add data; otherwise an IllegalStateException will be thrown.

Overrides:
  `setGeoMeanImpl` in class `MultivariateSummaryStatistics`
Parameters:
  `geoMeanImpl` - the StorelessUnivariateStatistic instance to use for computing the geometric mean
Throws:
  `DimensionMismatchException` - if the array dimension does not match the one used at construction
  `MathIllegalStateException` - if data has already been added (i.e if n > 0)

#### getMeanImpl

    public StorelessUnivariateStatistic[] getMeanImpl()

Returns the currently configured mean implementation

Overrides:
  `getMeanImpl` in class `MultivariateSummaryStatistics`
Returns:
  the StorelessUnivariateStatistic implementing the mean

#### setMeanImpl

    public void setMeanImpl(StorelessUnivariateStatistic[] meanImpl)
                     throws DimensionMismatchException,
                            MathIllegalStateException

Sets the implementation for the mean.

This method must be activated before any data has been added - i.e., before `addValue` has been used to add data; otherwise an IllegalStateException will be thrown.

Overrides:
  `setMeanImpl` in class `MultivariateSummaryStatistics`
Parameters:
  `meanImpl` - the StorelessUnivariateStatistic instance to use for computing the mean
Throws:
  `DimensionMismatchException` - if the array dimension does not match the one used at construction
  `MathIllegalStateException` - if data has already been added (i.e if n > 0)