cMHN 1.1
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
pRC::Complex< T > Class Template Reference

#include <complex.hpp>

Public Types

using Type = T
 
template<class C , If< IsFloat< C > > = 0>
using ChangeType = Complex<C>
 
using Value = typename T::Value
 
template<class V , If< IsValue< V > > = 0>
using ChangeValue = Complex<typename T::template ChangeValue<V>>
 
using Signed = typename T::Signed
 
template<Bool R>
using ChangeSigned = Complex<typename T::template ChangeSigned<R>>
 
using Width = typename T::Width
 
template<Size Q>
using ChangeWidth = Complex<typename T::template ChangeWidth<Q>>
 
using IsComplexified = True<>
 
using Complexify = Complex<T>
 
using NonComplex = T
 

Public Member Functions

 ~Complex ()=default
 
constexpr Complex (Complex const &)=default
 
constexpr Complex (Complex &&)=default
 
constexpr Complexoperator= (Complex const &) &=default
 
constexpr Complexoperator= (Complex &&) &=default
 
 Complex ()=default
 
template<class R , If< IsConvertible< R, T > > = 0>
 Complex (Complex< R > const &other)
 
template<class R , If< IsConvertible< R, T > > = 0>
constexpr Complex (R const &real, R const &imag)
 
template<class R , If< IsConvertible< R, T > > = 0>
 Complex (R const &real)
 
constexpr Complex (Zero<> const)
 
constexpr Complex (Unit<> const)
 
constexpr Complex (Identity<> const)
 
template<class R , If< IsConvertible< R, T > > = 0>
constexpr autooperator= (Complex< R > const &rhs) &
 
template<class R , If< IsConvertible< R, T > > = 0>
constexpr autooperator= (R const &real) &
 
constexpr autooperator= (Zero<> const) &
 
constexpr autooperator= (Unit<> const) &
 
constexpr autooperator= (Identity<> const) &
 
constexpr decltype(autoreal () &&
 
constexpr decltype(autoreal () const &&
 
constexpr autoreal () &
 
constexpr autoreal () const &
 
constexpr decltype(autoimag () &&
 
constexpr decltype(autoimag () const &&
 
constexpr autoimag () &
 
constexpr autoimag () const &
 
template<class X , If< IsInvocable< Add, Complex &, X > > = 0>
constexpr autooperator+= (X &&rhs) &
 
template<class X , If< IsInvocable< Sub, Complex &, X > > = 0>
constexpr autooperator-= (X &&rhs) &
 
template<class X , If< IsInvocable< Mul, Complex &, X > > = 0>
constexpr autooperator*= (X &&rhs) &
 
template<class X , If< IsInvocable< Div, Complex &, X > > = 0>
constexpr autooperator/= (X &&rhs) &
 

Member Typedef Documentation

◆ ChangeSigned

template<class T >
template<Bool R>
using pRC::Complex< T >::ChangeSigned = Complex<typename T::template ChangeSigned<R>>

◆ ChangeType

template<class T >
template<class C , If< IsFloat< C > > = 0>
using pRC::Complex< T >::ChangeType = Complex<C>

◆ ChangeValue

template<class T >
template<class V , If< IsValue< V > > = 0>
using pRC::Complex< T >::ChangeValue = Complex<typename T::template ChangeValue<V>>

◆ ChangeWidth

template<class T >
template<Size Q>
using pRC::Complex< T >::ChangeWidth = Complex<typename T::template ChangeWidth<Q>>

◆ Complexify

template<class T >
using pRC::Complex< T >::Complexify = Complex<T>

◆ IsComplexified

template<class T >
using pRC::Complex< T >::IsComplexified = True<>

◆ NonComplex

template<class T >
using pRC::Complex< T >::NonComplex = T

◆ Signed

template<class T >
using pRC::Complex< T >::Signed = typename T::Signed

◆ Type

template<class T >
using pRC::Complex< T >::Type = T

◆ Value

template<class T >
using pRC::Complex< T >::Value = typename T::Value

◆ Width

template<class T >
using pRC::Complex< T >::Width = typename T::Width

Constructor & Destructor Documentation

◆ ~Complex()

template<class T >
pRC::Complex< T >::~Complex ( )
default

◆ Complex() [1/9]

template<class T >
constexpr pRC::Complex< T >::Complex ( Complex< T > const & )
constexprdefault

◆ Complex() [2/9]

template<class T >
constexpr pRC::Complex< T >::Complex ( Complex< T > && )
constexprdefault

◆ Complex() [3/9]

template<class T >
pRC::Complex< T >::Complex ( )
default

◆ Complex() [4/9]

template<class T >
template<class R , If< IsConvertible< R, T > > = 0>
pRC::Complex< T >::Complex ( Complex< R > const & other)
inline

◆ Complex() [5/9]

template<class T >
template<class R , If< IsConvertible< R, T > > = 0>
constexpr pRC::Complex< T >::Complex ( R const & real,
R const & imag )
inlineconstexpr

◆ Complex() [6/9]

template<class T >
template<class R , If< IsConvertible< R, T > > = 0>
pRC::Complex< T >::Complex ( R const & real)
inline

◆ Complex() [7/9]

template<class T >
constexpr pRC::Complex< T >::Complex ( Zero<> const )
inlineconstexpr

◆ Complex() [8/9]

template<class T >
constexpr pRC::Complex< T >::Complex ( Unit<> const )
inlineconstexpr

◆ Complex() [9/9]

template<class T >
constexpr pRC::Complex< T >::Complex ( Identity<> const )
inlineconstexpr

Member Function Documentation

◆ imag() [1/4]

template<class T >
constexpr auto & pRC::Complex< T >::imag ( ) &
inlineconstexpr

◆ imag() [2/4]

template<class T >
constexpr decltype(auto) pRC::Complex< T >::imag ( ) &&
inlineconstexpr

◆ imag() [3/4]

template<class T >
constexpr auto & pRC::Complex< T >::imag ( ) const &
inlineconstexpr

◆ imag() [4/4]

template<class T >
constexpr decltype(auto) pRC::Complex< T >::imag ( ) const &&
inlineconstexpr

◆ operator*=()

template<class T >
template<class X , If< IsInvocable< Mul, Complex &, X > > = 0>
constexpr auto & pRC::Complex< T >::operator*= ( X && rhs) &
inlineconstexpr

◆ operator+=()

template<class T >
template<class X , If< IsInvocable< Add, Complex &, X > > = 0>
constexpr auto & pRC::Complex< T >::operator+= ( X && rhs) &
inlineconstexpr

◆ operator-=()

template<class T >
template<class X , If< IsInvocable< Sub, Complex &, X > > = 0>
constexpr auto & pRC::Complex< T >::operator-= ( X && rhs) &
inlineconstexpr

◆ operator/=()

template<class T >
template<class X , If< IsInvocable< Div, Complex &, X > > = 0>
constexpr auto & pRC::Complex< T >::operator/= ( X && rhs) &
inlineconstexpr

◆ operator=() [1/7]

template<class T >
constexpr Complex & pRC::Complex< T >::operator= ( Complex< T > && ) &
constexprdefault

◆ operator=() [2/7]

template<class T >
constexpr Complex & pRC::Complex< T >::operator= ( Complex< T > const & ) &
constexprdefault

◆ operator=() [3/7]

template<class T >
template<class R , If< IsConvertible< R, T > > = 0>
constexpr auto & pRC::Complex< T >::operator= ( Complex< R > const & rhs) &
inlineconstexpr

◆ operator=() [4/7]

template<class T >
constexpr auto & pRC::Complex< T >::operator= ( Identity<> const ) &
inlineconstexpr

◆ operator=() [5/7]

template<class T >
template<class R , If< IsConvertible< R, T > > = 0>
constexpr auto & pRC::Complex< T >::operator= ( R const & real) &
inlineconstexpr

◆ operator=() [6/7]

template<class T >
constexpr auto & pRC::Complex< T >::operator= ( Unit<> const ) &
inlineconstexpr

◆ operator=() [7/7]

template<class T >
constexpr auto & pRC::Complex< T >::operator= ( Zero<> const ) &
inlineconstexpr

◆ real() [1/4]

template<class T >
constexpr auto & pRC::Complex< T >::real ( ) &
inlineconstexpr

◆ real() [2/4]

template<class T >
constexpr decltype(auto) pRC::Complex< T >::real ( ) &&
inlineconstexpr

◆ real() [3/4]

template<class T >
constexpr auto & pRC::Complex< T >::real ( ) const &
inlineconstexpr

◆ real() [4/4]

template<class T >
constexpr decltype(auto) pRC::Complex< T >::real ( ) const &&
inlineconstexpr

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