|
constexpr StrongZero | abs (StrongZero) noexcept |
|
constexpr StrongZero | ceil (StrongZero) noexcept |
|
constexpr StrongZero | floor (StrongZero) noexcept |
|
constexpr bool | isinf (StrongZero) noexcept |
|
constexpr bool | isnan (StrongZero) noexcept |
|
constexpr float | log2 (StrongZero) noexcept |
|
template<typename T > |
constexpr StrongZero | operator* (const T &, StrongZero) noexcept |
|
template<typename T > |
constexpr StrongZero | operator* (StrongZero, const T &) noexcept |
|
constexpr StrongZero | operator* (StrongZero, StrongZero) noexcept |
|
template<typename T > |
constexpr T & | operator*= (T &lhs, StrongZero) noexcept |
|
template<typename T > |
constexpr T | operator+ (const T &lhs, StrongZero) noexcept |
|
template<typename T > |
constexpr T | operator+ (StrongZero, const T &rhs) noexcept |
|
constexpr StrongZero | operator+ (StrongZero, StrongZero) noexcept |
|
template<typename T > |
constexpr T & | operator+= (T &lhs, StrongZero) noexcept |
|
template<typename T > |
constexpr T | operator- (const T &lhs, StrongZero) noexcept |
|
template<typename T > |
constexpr T | operator- (StrongZero, const T &rhs) noexcept |
|
constexpr StrongZero | operator- (StrongZero, StrongZero) noexcept |
|
template<typename T > |
constexpr T & | operator-= (T &lhs, StrongZero) noexcept |
|
template<typename T > |
constexpr T | operator/ (const T &, StrongZero) noexcept |
|
template<typename T > |
constexpr StrongZero | operator/ (StrongZero, const T &) noexcept |
|
constexpr float | operator/ (StrongZero, StrongZero) noexcept |
|
template<typename T > |
constexpr T & | operator/= (T &lhs, StrongZero) noexcept |
|
constexpr int | pow (int, StrongZero) noexcept |
|
constexpr StrongZero | sqrt (StrongZero) noexcept |
|
Strong zero type.
Used to enforce the BLAS behavior of ignoring part of the input when a coefficient is zero.
- Note
- this type satisfies the concepts: tlapack::concepts::Scalar, tlapack::concepts::Real, and tlapack::concepts::Complex.
Suppose x is of type T, and z is of type StrongZero. Then:
- z is equivalent to T(0).
- x += z and x -= z do not modify x.
- x *= z is equivalent to x = T(0).
- x /= z is equivalent to setting x to infinity.
- x + z, x - z and z + x return x.
- x - z returns -x.
- x * z and z * x return z.
- x / z returns infinity.
- z / x returns z.
- z * z returns a quiet NaN.