cyqlone develop
Fast, parallel and vectorized solver for linear systems with optimal control structure.
Loading...
Searching...
No Matches
cyqlone::NeumaierSum< T > Class Template Reference

#include <cyqlone/neumaier.hpp>

Detailed Description

template<class T>
class cyqlone::NeumaierSum< T >

Kahan-Babuška-Neumaier compensated summation.

Definition at line 16 of file neumaier.hpp.

Public Member Functions

 NeumaierSum (T sum, T compensation)
 NeumaierSum (T value={})
 operator T () const
NeumaierSum operator- () const
NeumaierSumoperator+= (T v)
NeumaierSumoperator+= (const NeumaierSum &other)
NeumaierSumoperator-= (T v)
NeumaierSumoperator-= (const NeumaierSum &other)

Public Attributes

sum
compensation {}

Friends

NeumaierSum operator+ (NeumaierSum lhs, T rhs)
NeumaierSum operator+ (T lhs, NeumaierSum rhs)
NeumaierSum operator+ (NeumaierSum lhs, NeumaierSum rhs)
NeumaierSum operator- (NeumaierSum lhs, T rhs)
NeumaierSum operator- (T lhs, NeumaierSum rhs)
NeumaierSum operator- (NeumaierSum lhs, const NeumaierSum &rhs)
NeumaierSum operator* (NeumaierSum lhs, NeumaierSum rhs)
NeumaierSum operator* (NeumaierSum lhs, T rhs)
NeumaierSum operator* (T lhs, NeumaierSum rhs)

Constructor & Destructor Documentation

◆ NeumaierSum() [1/2]

template<class T>
cyqlone::NeumaierSum< T >::NeumaierSum ( T sum,
T compensation )
inline

Definition at line 19 of file neumaier.hpp.

◆ NeumaierSum() [2/2]

template<class T>
cyqlone::NeumaierSum< T >::NeumaierSum ( T value = {})
inline

Definition at line 20 of file neumaier.hpp.

Member Function Documentation

◆ operator T()

template<class T>
cyqlone::NeumaierSum< T >::operator T ( ) const
inline

Definition at line 21 of file neumaier.hpp.

◆ operator-()

template<class T>
NeumaierSum cyqlone::NeumaierSum< T >::operator- ( ) const
inline

Definition at line 23 of file neumaier.hpp.

◆ operator+=() [1/2]

template<class T>
NeumaierSum & cyqlone::NeumaierSum< T >::operator+= ( T v)
inline

Definition at line 24 of file neumaier.hpp.

◆ operator+=() [2/2]

template<class T>
NeumaierSum & cyqlone::NeumaierSum< T >::operator+= ( const NeumaierSum< T > & other)
inline

Definition at line 45 of file neumaier.hpp.

◆ operator-=() [1/2]

template<class T>
NeumaierSum & cyqlone::NeumaierSum< T >::operator-= ( T v)
inline

Definition at line 50 of file neumaier.hpp.

◆ operator-=() [2/2]

template<class T>
NeumaierSum & cyqlone::NeumaierSum< T >::operator-= ( const NeumaierSum< T > & other)
inline

Definition at line 51 of file neumaier.hpp.

◆ operator+ [1/3]

template<class T>
NeumaierSum operator+ ( NeumaierSum< T > lhs,
T rhs )
friend

Definition at line 57 of file neumaier.hpp.

◆ operator+ [2/3]

template<class T>
NeumaierSum operator+ ( T lhs,
NeumaierSum< T > rhs )
friend

Definition at line 61 of file neumaier.hpp.

◆ operator+ [3/3]

template<class T>
NeumaierSum operator+ ( NeumaierSum< T > lhs,
NeumaierSum< T > rhs )
friend

Definition at line 65 of file neumaier.hpp.

◆ operator- [1/3]

template<class T>
NeumaierSum operator- ( NeumaierSum< T > lhs,
T rhs )
friend

Definition at line 70 of file neumaier.hpp.

◆ operator- [2/3]

template<class T>
NeumaierSum operator- ( T lhs,
NeumaierSum< T > rhs )
friend

Definition at line 74 of file neumaier.hpp.

◆ operator- [3/3]

template<class T>
NeumaierSum operator- ( NeumaierSum< T > lhs,
const NeumaierSum< T > & rhs )
friend

Definition at line 75 of file neumaier.hpp.

◆ operator* [1/3]

template<class T>
NeumaierSum operator* ( NeumaierSum< T > lhs,
NeumaierSum< T > rhs )
friend

Definition at line 79 of file neumaier.hpp.

◆ operator* [2/3]

template<class T>
NeumaierSum operator* ( NeumaierSum< T > lhs,
T rhs )
friend

Definition at line 86 of file neumaier.hpp.

◆ operator* [3/3]

template<class T>
NeumaierSum operator* ( T lhs,
NeumaierSum< T > rhs )
friend

Definition at line 89 of file neumaier.hpp.

Member Data Documentation

◆ sum

template<class T>
T cyqlone::NeumaierSum< T >::sum

Definition at line 18 of file neumaier.hpp.

◆ compensation

template<class T>
T cyqlone::NeumaierSum< T >::compensation {}

Definition at line 18 of file neumaier.hpp.


The documentation for this class was generated from the following file: