<T>LAPACK 0.1.1
C++ Template Linear Algebra PACKage
Loading...
Searching...
No Matches
tlapack::NaNPropagComplex< T > Struct Template Reference
Inheritance diagram for tlapack::NaNPropagComplex< T >:
Collaboration diagram for tlapack::NaNPropagComplex< T >:

Public Member Functions

constexpr NaNPropagComplex (const T &r=T(), const T &i=T())
 
template<typename U >
constexpr NaNPropagComplexoperator*= (const std::complex< U > &x)
 
constexpr NaNPropagComplexoperator*= (const T &x)
 
template<typename U >
constexpr NaNPropagComplexoperator+= (const std::complex< U > &x)
 
template<typename U >
constexpr NaNPropagComplexoperator-= (const std::complex< U > &x)
 
template<typename U >
constexpr NaNPropagComplexoperator/= (const std::complex< U > &x)
 
constexpr NaNPropagComplexoperator/= (const T &x)
 
template<typename U >
constexpr NaNPropagComplexoperator= (const std::complex< U > &x)
 

Friends

abs (const NaNPropagComplex &x)
 2-norm absolute value, sqrt( |Re(x)|^2 + |Im(x)|^2 )
 
NaNPropagComplex conj (const NaNPropagComplex &x)
 
constexpr NaNPropagComplex operator* (const NaNPropagComplex &x, const NaNPropagComplex &y)
 
constexpr NaNPropagComplex operator* (const NaNPropagComplex &x, const T &y)
 
constexpr NaNPropagComplex operator* (const T &x, const NaNPropagComplex &y)
 
constexpr NaNPropagComplex operator+ (const NaNPropagComplex &x, const NaNPropagComplex &y)
 
constexpr NaNPropagComplex operator+ (const NaNPropagComplex &x, const T &y)
 
constexpr NaNPropagComplex operator+ (const T &x, const NaNPropagComplex &y)
 
constexpr NaNPropagComplex operator- (const NaNPropagComplex &x, const NaNPropagComplex &y)
 
constexpr NaNPropagComplex operator- (const NaNPropagComplex &x, const T &y)
 
constexpr NaNPropagComplex operator- (const T &x, const NaNPropagComplex &y)
 
constexpr NaNPropagComplex operator/ (const NaNPropagComplex &x, const NaNPropagComplex &y)
 
constexpr NaNPropagComplex operator/ (const NaNPropagComplex &x, const T &y)
 
constexpr NaNPropagComplex operator/ (const T &x, const NaNPropagComplex &y)
 

Friends And Related Symbol Documentation

◆ abs

template<class T >
T abs ( const NaNPropagComplex< T > &  x)
friend

2-norm absolute value, sqrt( |Re(x)|^2 + |Im(x)|^2 )

Note that std::abs< std::complex > does not overflow or underflow at intermediate stages of the computation.

See also
https://en.cppreference.com/w/cpp/numeric/complex/abs

However, std::abs(std::complex<T>) may not propagate NaNs. See https://github.com/tlapack/tlapack/issues/134#issue-1364091844. Operations with std::complex<T>, for T=float,double,long double are wrappers to operations in C. Other types have their implementation in C++. Because of that, the logic of complex multiplication, division and other operations may change from type to type. See https://github.com/advanpix/mpreal/issues/11.

Also, std::abs< mpfr::mpreal > may not propagate Infs.


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