Class CompensatedSum
java.lang.Object
org.elasticsearch.search.aggregations.metrics.CompensatedSum
Used to calculate sums using the Kahan summation algorithm.
The Kahan summation algorithm (also known as compensated summation) reduces the numerical errors that occur when adding a sequence of finite precision floating point numbers. Numerical errors arise due to truncation and rounding. These errors can lead to numerical instability.
- See Also:
- Kahan Summation Algorithm
-
Constructor Summary
ConstructorDescriptionCompensatedSum(double value, double delta)
Used to calculate sums using the Kahan summation algorithm. -
Method Summary
Modifier and TypeMethodDescriptionadd(double value)
Increments the Kahan sum by adding a value without a correction term.add(double value, double delta)
Increments the Kahan sum by adding two sums, and updating the correction term for reducing numeric errors.double
delta()
The correction term.void
reset(double value, double delta)
Resets the internal state to use the new value and compensation deltadouble
value()
The value of the sum.
-
Constructor Details
-
CompensatedSum
public CompensatedSum(double value, double delta)Used to calculate sums using the Kahan summation algorithm.- Parameters:
value
- the sumdelta
- correction term
-
-
Method Details
-
value
public double value()The value of the sum. -
delta
public double delta()The correction term. -
add
Increments the Kahan sum by adding a value without a correction term. -
reset
public void reset(double value, double delta)Resets the internal state to use the new value and compensation delta -
add
Increments the Kahan sum by adding two sums, and updating the correction term for reducing numeric errors.
-