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

    java.lang.Object
      org.apache.commons.math.stat.descriptive.SummaryStatistics
          org.apache.commons.math.stat.descriptive.SynchronizedSummaryStatistics

All Implemented Interfaces:
  java.io.Serializable, StatisticalSummary

    public class SynchronizedSummaryStatistics

extends SummaryStatistics

Implementation of `SummaryStatistics` 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

Fields inherited from class org.apache.commons.math.stat.descriptive.SummaryStatistics
`geoMean, max, mean, min, n, secondMoment, sum, sumLog, sumsq, variance`

Constructor Summary
`SynchronizedSummaryStatistics()` Construct a SynchronizedSummaryStatistics instance
`SynchronizedSummaryStatistics(SynchronizedSummaryStatistics original)` A copy constructor.

Method Summary
`void` `addValue(double value)` Add a value to the data
`void` `clear()` Resets all statistics and storage
`SynchronizedSummaryStatistics` `copy()` Returns a copy of this SynchronizedSummaryStatistics instance with the same internal state.
`static void` `copy(SynchronizedSummaryStatistics source, SynchronizedSummaryStatistics dest)` Copies source to dest.
`boolean` `equals(java.lang.Object object)` Returns true iff `object` is a `SummaryStatistics` instance and all statistics have the same values as this.
`StorelessUnivariateStatistic` `getGeoMeanImpl()` Returns the currently configured geometric mean implementation
`double` `getGeometricMean()` Returns the geometric mean of the values that have been added.
`double` `getMax()` Returns the maximum of the values that have been added.
`StorelessUnivariateStatistic` `getMaxImpl()` Returns the currently configured maximum implementation
`double` `getMean()` Returns the mean of the values that have been added.
`StorelessUnivariateStatistic` `getMeanImpl()` Returns the currently configured mean implementation
`double` `getMin()` Returns the minimum of the values that have been added.
`StorelessUnivariateStatistic` `getMinImpl()` Returns the currently configured minimum implementation
`long` `getN()` Returns the number of available values
`double` `getStandardDeviation()` Returns the standard deviation of the values that have been added.
`double` `getSum()` Returns the sum of the values that have been added
`StorelessUnivariateStatistic` `getSumImpl()` Returns the currently configured Sum implementation
`StorelessUnivariateStatistic` `getSumLogImpl()` Returns the currently configured sum of logs implementation
`StatisticalSummary` `getSummary()` Return a `StatisticalSummaryValues` instance reporting current statistics.
`double` `getSumsq()` Returns the sum of the squares of the values that have been added.
`StorelessUnivariateStatistic` `getSumsqImpl()` Returns the currently configured sum of squares implementation
`double` `getVariance()` Returns the variance of the values that have been added.
`StorelessUnivariateStatistic` `getVarianceImpl()` Returns the currently configured variance 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.
`void` `setVarianceImpl(StorelessUnivariateStatistic varianceImpl)` Sets the implementation for the variance.
`java.lang.String` `toString()` Generates a text report displaying summary statistics from values that have been added.

Methods inherited from class org.apache.commons.math.stat.descriptive.SummaryStatistics
`copy, getSecondMoment, getSumOfLogs`

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

### SynchronizedSummaryStatistics

    public SynchronizedSummaryStatistics()

  Construct a SynchronizedSummaryStatistics instance

### SynchronizedSummaryStatistics

    public SynchronizedSummaryStatistics(SynchronizedSummaryStatistics original)

  A copy constructor. Creates a deep-copy of the `original`.

  Parameters:
    `original` - the `SynchronizedSummaryStatistics` instance to copy

Method Detail

### getSummary

    public StatisticalSummary getSummary()

  Return a `StatisticalSummaryValues` instance reporting current statistics.

  Overrides:
    `getSummary` in class `SummaryStatistics`
  Returns:
    Current values of statistics

### addValue

    public void addValue(double value)

  Add a value to the data

  Overrides:
    `addValue` in class `SummaryStatistics`
  Parameters:
    `value` - the value to add

### getN

    public long getN()

  Returns the number of available values

  Specified by:
    `getN` in interface `StatisticalSummary`
  Overrides:
    `getN` in class `SummaryStatistics`
  Returns:
    The number of available values

### getSum

    public double getSum()

  Returns the sum of the values that have been added

  Specified by:
    `getSum` in interface `StatisticalSummary`
  Overrides:
    `getSum` in class `SummaryStatistics`
  Returns:
    The sum or `Double.NaN` if no values have been added

### getSumsq

    public double getSumsq()

  Returns the sum of the squares of the values that have been added.

  Double.NaN is returned if no values have been added.

  Overrides:
    `getSumsq` in class `SummaryStatistics`
  Returns:
    The sum of squares

### getMean

    public double getMean()

  Returns the mean of the values that have been added.

  Double.NaN is returned if no values have been added.

  Specified by:
    `getMean` in interface `StatisticalSummary`
  Overrides:
    `getMean` in class `SummaryStatistics`
  Returns:
    the mean

### getStandardDeviation

    public double getStandardDeviation()

  Returns the standard deviation of the values that have been added.

  Double.NaN is returned if no values have been added.

  Specified by:
    `getStandardDeviation` in interface `StatisticalSummary`
  Overrides:
    `getStandardDeviation` in class `SummaryStatistics`
  Returns:
    the standard deviation

### getVariance

    public double getVariance()

  Returns the variance of the values that have been added.

  Double.NaN is returned if no values have been added.

  Specified by:
    `getVariance` in interface `StatisticalSummary`
  Overrides:
    `getVariance` in class `SummaryStatistics`
  Returns:
    the variance

### getMax

    public double getMax()

  Returns the maximum of the values that have been added.

  Double.NaN is returned if no values have been added.

  Specified by:
    `getMax` in interface `StatisticalSummary`
  Overrides:
    `getMax` in class `SummaryStatistics`
  Returns:
    the maximum

### getMin

    public double getMin()

  Returns the minimum of the values that have been added.

  Double.NaN is returned if no values have been added.

  Specified by:
    `getMin` in interface `StatisticalSummary`
  Overrides:
    `getMin` in class `SummaryStatistics`
  Returns:
    the minimum

### getGeometricMean

    public double getGeometricMean()

  Returns the geometric mean of the values that have been added.

  Double.NaN is returned if no values have been added.

  Overrides:
    `getGeometricMean` in class `SummaryStatistics`
  Returns:
    the geometric mean

### toString

    public java.lang.String toString()

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

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

### clear

    public void clear()

  Resets all statistics and storage

  Overrides:
    `clear` in class `SummaryStatistics`

### 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 `SummaryStatistics`
  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 `SummaryStatistics`
  Returns:
    hash code

### getSumImpl

    public StorelessUnivariateStatistic getSumImpl()

  Returns the currently configured Sum implementation

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

### setSumImpl

    public void setSumImpl(StorelessUnivariateStatistic sumImpl)

  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 `SummaryStatistics`
  Parameters:
    `sumImpl` - the StorelessUnivariateStatistic instance to use for computing the Sum

### getSumsqImpl

    public StorelessUnivariateStatistic getSumsqImpl()

  Returns the currently configured sum of squares implementation

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

### setSumsqImpl

    public void setSumsqImpl(StorelessUnivariateStatistic sumsqImpl)

  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 `SummaryStatistics`
  Parameters:
    `sumsqImpl` - the StorelessUnivariateStatistic instance to use for computing the sum of squares

### getMinImpl

    public StorelessUnivariateStatistic getMinImpl()

  Returns the currently configured minimum implementation

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

### setMinImpl

    public void setMinImpl(StorelessUnivariateStatistic minImpl)

  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 `SummaryStatistics`
  Parameters:
    `minImpl` - the StorelessUnivariateStatistic instance to use for computing the minimum

### getMaxImpl

    public StorelessUnivariateStatistic getMaxImpl()

  Returns the currently configured maximum implementation

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

### setMaxImpl

    public void setMaxImpl(StorelessUnivariateStatistic maxImpl)

  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 `SummaryStatistics`
  Parameters:
    `maxImpl` - the StorelessUnivariateStatistic instance to use for computing the maximum

### getSumLogImpl

    public StorelessUnivariateStatistic getSumLogImpl()

  Returns the currently configured sum of logs implementation

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

### setSumLogImpl

    public void setSumLogImpl(StorelessUnivariateStatistic sumLogImpl)

  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 `SummaryStatistics`
  Parameters:
    `sumLogImpl` - the StorelessUnivariateStatistic instance to use for computing the log sum

### getGeoMeanImpl

    public StorelessUnivariateStatistic getGeoMeanImpl()

  Returns the currently configured geometric mean implementation

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

### setGeoMeanImpl

    public void setGeoMeanImpl(StorelessUnivariateStatistic geoMeanImpl)

  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 `SummaryStatistics`
  Parameters:
    `geoMeanImpl` - the StorelessUnivariateStatistic instance to use for computing the geometric mean

### getMeanImpl

    public StorelessUnivariateStatistic getMeanImpl()

  Returns the currently configured mean implementation

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

### setMeanImpl

    public void setMeanImpl(StorelessUnivariateStatistic meanImpl)

  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 `SummaryStatistics`
  Parameters:
    `meanImpl` - the StorelessUnivariateStatistic instance to use for computing the mean

### getVarianceImpl

    public StorelessUnivariateStatistic getVarianceImpl()

  Returns the currently configured variance implementation

  Overrides:
    `getVarianceImpl` in class `SummaryStatistics`
  Returns:
    the StorelessUnivariateStatistic implementing the variance

### setVarianceImpl

    public void setVarianceImpl(StorelessUnivariateStatistic varianceImpl)

  Sets the implementation for the variance.

  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:
    `setVarianceImpl` in class `SummaryStatistics`
  Parameters:
    `varianceImpl` - the StorelessUnivariateStatistic instance to use for computing the variance

### copy

    public SynchronizedSummaryStatistics copy()

  Returns a copy of this SynchronizedSummaryStatistics instance with the same internal state.

  Overrides:
    `copy` in class `SummaryStatistics`
  Returns:
    a copy of this

### copy

    public static void copy(SynchronizedSummaryStatistics source,
                            SynchronizedSummaryStatistics dest)

  Copies source to dest.

  Neither source nor dest can be null.

  Acquires synchronization lock on source, then dest before copying.

  Parameters:
    `source` - SynchronizedSummaryStatistics to copy
    `dest` - SynchronizedSummaryStatistics to copy to
  Throws:
    `java.lang.NullPointerException` - if either source or dest is null

Copyright (c) 2003-2010 Apache Software Foundation