NeumaierSum Class Reference

API: NeumaierSum Class Reference
API
NeumaierSum Class Reference

Public Member Functions

 NeumaierSum ()=default
 NeumaierSum (double val)
NeumaierSumoperator= (double val)
 operator double () const
NeumaierSumoperator+= (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]

NeumaierSum ( )
default

Default constructor, initializes to zero.

Referenced by operator+=(), and operator=().

◆ NeumaierSum() [2/2]

NeumaierSum ( double val)
inline

Constructor, initializes to the given value.

Member Function Documentation

◆ operator=()

NeumaierSum & operator= ( double val)
inline

Assigns a plain double value, resetting the compensation term.

References NeumaierSum().

◆ operator double()

operator double ( ) const
inline

Returns the compensated sum as a double.

◆ operator+=()

NeumaierSum & operator+= ( double value)
inline

Adds a value using the Neumaier compensated summation algorithm.

References NeumaierSum().