net.sf.jagg
Class GeometricMeanAggregator

java.lang.Object
  extended by net.sf.jagg.Aggregator
      extended by net.sf.jagg.GeometricMeanAggregator

public class GeometricMeanAggregator
extends Aggregator

This class represents the "geometric mean" aggregator over numeric values.

Since:
0.1.0
Author:
Randy Gettman

Field Summary
 
Fields inherited from class net.sf.jagg.Aggregator
PROP_SELF
 
Constructor Summary
GeometricMeanAggregator(java.lang.String property)
          Constructs an GeometricMeanAggregator that operates on the specified property.
 
Method Summary
 void init()
          Initialize the product to one and count to zero.
 void iterate(java.lang.Object value)
          If not null, multiply the property value into the product and count it.
 void merge(Aggregator agg)
          Merge the given Aggregator into this one by multiplying products and adding sums.
 GeometricMeanAggregator replicate()
          Returns an uninitialized copy of this Aggregator object, with the same property(ies) to analyze.
 java.lang.Double terminate()
          Return the geometric mean by taking the nth root of the product of all values, where n is the count of all non-null values.
 DoubleDouble terminateDoubleDouble()
          Return the result as a DoubleDouble.
 
Methods inherited from class net.sf.jagg.Aggregator
equals, getAggregator, getAggregator, getProperty, getValueFromProperty, hashCode, isInUse, setInUse, setProperty, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GeometricMeanAggregator

public GeometricMeanAggregator(java.lang.String property)
Constructs an GeometricMeanAggregator that operates on the specified property.

Parameters:
property - Calculate the geometric mean of this property's values.
Method Detail

replicate

public GeometricMeanAggregator replicate()
Returns an uninitialized copy of this Aggregator object, with the same property(ies) to analyze.

Specified by:
replicate in class Aggregator
Returns:
An uninitialized copy of this Aggregator object.

init

public void init()
Initialize the product to one and count to zero.

Specified by:
init in class Aggregator

iterate

public void iterate(java.lang.Object value)
If not null, multiply the property value into the product and count it.

Specified by:
iterate in class Aggregator
Parameters:
value - The value to aggregate.
See Also:
Aggregator.getValueFromProperty(java.lang.Object, java.lang.String)

merge

public void merge(Aggregator agg)
Merge the given Aggregator into this one by multiplying products and adding sums.

Specified by:
merge in class Aggregator
Parameters:
agg - The Aggregator to merge into this one.

terminate

public java.lang.Double terminate()
Return the geometric mean by taking the nth root of the product of all values, where n is the count of all non-null values.

Specified by:
terminate in class Aggregator
Returns:
The geometric mean as a Double. Could return NaN if no values have been accumulated.

terminateDoubleDouble

public DoubleDouble terminateDoubleDouble()
Return the result as a DoubleDouble. This is used mainly when other Aggregators that use this result must maintain a high precision.

Overrides:
terminateDoubleDouble in class Aggregator
Returns:
The geometric mean as a DoubleDouble, or NaN if no values have been accumulated.
Since:
0.4.0
See Also:
DoubleDouble


Copyright © 2010-2013 jAgg Team. All Rights Reserved.