DiSMEC++
|
Implements a numerically stable sum algorithm. More...
#include <sum.h>
Public Member Functions | |
KahanAccumulator ()=default | |
Float | value () const |
KahanAccumulator & | operator+= (Float value) |
Static Private Member Functions | |
static void | accumulate (Float &accumulator, Float &correction, Float addition) |
Private Attributes | |
Float | Sum = Float{0} |
Float | Correction = Float{0} |
Implements a numerically stable sum algorithm.
Float | Floating point type to use for the accumulator. |
Implements Kahan Summation to sum up a large stream of floating point numbers while compensating for numerical instability. Typically, Float
should be double
.
|
default |
|
inlinestaticprivate |
Definition at line 35 of file sum.h.
Referenced by dismec::KahanAccumulator< Float >::operator+=().
|
inline |
Definition at line 24 of file sum.h.
References dismec::KahanAccumulator< Float >::accumulate(), dismec::KahanAccumulator< Float >::Correction, dismec::KahanAccumulator< Float >::Sum, and dismec::KahanAccumulator< Float >::value().
|
inline |
Definition at line 22 of file sum.h.
References dismec::KahanAccumulator< Float >::Sum.
Referenced by dismec::KahanAccumulator< Float >::operator+=(), dismec::prediction::InstanceAveragedMetric::reduce(), and dismec::prediction::InstanceAveragedMetric::value().
|
private |
Definition at line 44 of file sum.h.
Referenced by dismec::KahanAccumulator< Float >::operator+=().
|
private |
Definition at line 43 of file sum.h.
Referenced by dismec::KahanAccumulator< Float >::operator+=(), and dismec::KahanAccumulator< Float >::value().