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 19:36:48 +0200 (sam. 05 sept. 2009) $
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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

    Constructors
    Constructor and Description
    `SynchronizedSummaryStatistics()` Construct a SynchronizedSummaryStatistics instance
    `SynchronizedSummaryStatistics(SynchronizedSummaryStatistics original)` A copy constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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-2013 Apache Software Foundation