NeumaierSum Class Reference¶
|
API
|
Public Member Functions | |
| NeumaierSum ()=default | |
| NeumaierSum (double val) | |
| NeumaierSum & | operator= (double val) |
| operator double () const | |
| NeumaierSum & | operator+= (double value) |
Description
Compensated summation using the Kahan-Babuška-Neumaier (KBN) algorithm.
This class can be used as a drop-in replacement for double in running summation scenarios. It significantly reduces the numerical error that accumulates when many floating-point values are added together.
The class provides implicit conversion to double (returning the compensated sum), operator+= for accumulation, and assignment from double.
Constructor & Destructor Documentation
◆ NeumaierSum() [1/2]
|
default |
Default constructor, initializes to zero.
Referenced by operator+=(), and operator=().
◆ NeumaierSum() [2/2]
|
inline |
Constructor, initializes to the given value.
Member Function Documentation
◆ operator=()
|
inline |
Assigns a plain double value, resetting the compensation term.
References NeumaierSum().
◆ operator double()
|
inline |
Returns the compensated sum as a double.
◆ operator+=()
|
inline |
Adds a value using the Neumaier compensated summation algorithm.
References NeumaierSum().
Generated on for API by