3#ifndef pRC_CORE_COMPLEX_COMPLEX_H
4#define pRC_CORE_COMPLEX_COMPLEX_H
19 template<
class T, If<IsFloat<T>> = 0>
21 template<
class TA,
class TB, If<All<IsFloat<TA>, IsFloat<TB>>> = 0>
27 static_assert(
IsFloat<T>(),
"Complex<T>: T has to be of type Float.");
31 template<
class C, If<IsFloat<C>> = 0>
35 template<
class V, If<IsValue<V>> = 0>
58 template<
class R, If<IsConvertible<R, T>> = 0>
65 template<
class R, If<IsConvertible<R, T>> = 0>
72 template<
class R, If<IsConvertible<R, T>> = 0>
94 template<
class R, If<IsConvertible<R, T>> = 0>
102 template<
class R, If<IsConvertible<R, T>> = 0>
125 constexpr decltype(
auto)
real() &&
130 constexpr decltype(
auto)
real()
const &&
145 constexpr decltype(
auto)
imag() &&
150 constexpr decltype(
auto)
imag()
const &&
165 template<
class X, If<IsInvocable<Add, Complex &, X>> = 0>
171 template<
class X, If<IsInvocable<Sub, Complex &, X>> = 0>
177 template<
class X, If<IsInvocable<Mul, Complex &, X>> = 0>
183 template<
class X, If<IsInvocable<Div, Complex &, X>> = 0>
Definition complex.hpp:26
constexpr auto & real() const &
Definition complex.hpp:140
constexpr auto & imag() &
Definition complex.hpp:155
constexpr auto & operator=(R const &real) &
Definition complex.hpp:103
constexpr auto & real() &
Definition complex.hpp:135
constexpr Complex(Zero<> const)
Definition complex.hpp:79
constexpr auto & operator-=(X &&rhs) &
Definition complex.hpp:172
constexpr Complex & operator=(Complex const &) &=default
typename T::Value Value
Definition complex.hpp:34
constexpr Complex(Complex &&)=default
constexpr auto & operator=(Identity<> const) &
Definition complex.hpp:120
Complex(R const &real)
Definition complex.hpp:73
constexpr decltype(auto) real() &&
Definition complex.hpp:125
typename T::Signed Signed
Definition complex.hpp:38
constexpr auto & operator=(Zero<> const) &
Definition complex.hpp:110
constexpr auto & operator*=(X &&rhs) &
Definition complex.hpp:178
constexpr auto & operator+=(X &&rhs) &
Definition complex.hpp:166
constexpr Complex & operator=(Complex &&) &=default
Complex(Complex< R > const &other)
Definition complex.hpp:59
constexpr auto & operator=(Complex< R > const &rhs) &
Definition complex.hpp:95
constexpr Complex(Complex const &)=default
constexpr decltype(auto) real() const &&
Definition complex.hpp:130
constexpr decltype(auto) imag() const &&
Definition complex.hpp:150
constexpr auto & imag() const &
Definition complex.hpp:160
constexpr auto & operator/=(X &&rhs) &
Definition complex.hpp:184
constexpr Complex(Identity<> const)
Definition complex.hpp:89
typename T::Width Width
Definition complex.hpp:42
constexpr Complex(R const &real, R const &imag)
Definition complex.hpp:66
constexpr Complex(Unit<> const)
Definition complex.hpp:84
constexpr decltype(auto) imag() &&
Definition complex.hpp:145
constexpr auto & operator=(Unit<> const) &
Definition complex.hpp:115
pRC::Constant< Size, W > Width
Definition float.hpp:39
Float< W > Value
Definition float.hpp:31
True<> Signed
Definition float.hpp:35
pRC::Float<> T
Definition externs_nonTT.hpp:1
Definition cholesky.hpp:18
static constexpr auto makeConstantSequence()
Definition sequence.hpp:402
static constexpr auto zero()
Definition zero.hpp:12
static constexpr auto unit()
Definition unit.hpp:12
Complex(T const &) -> Complex< T >
static constexpr auto identity()
Definition identity.hpp:12
Definition type_traits.hpp:262
Definition type_traits.hpp:16
Definition type_traits.hpp:265
Definition type_traits.hpp:268