## org.apache.commons.math.stat.descriptive
Class SynchronizedMultivariateSummaryStatistics

    java.lang.Object
      org.apache.commons.math.stat.descriptive.MultivariateSummaryStatistics
          org.apache.commons.math.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:
  $Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $
See Also:
  Serialized Form

Field Summary
`private static long` `serialVersionUID` Serialization UID

Constructor Summary
`SynchronizedMultivariateSummaryStatistics(int k, boolean isCovarianceBiasCorrected)` Construct a SynchronizedMultivariateSummaryStatistics instance

Method Summary
`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 `SummaryStatistics` 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 `SummaryStatistics` 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

  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

### 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

  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

### 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

  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

### 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

  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

### 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

  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

### 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

  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

### 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

  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

Copyright (c) 2003-2011 Apache Software Foundation