cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
pRC::Complex< T > Class Template Reference

#include <complex.hpp>

Public Types

using Type = T
 
template<class C >
using ChangeType = Complex<C>
 

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<IsConvertible< T > R>
 Complex (Complex< R > const &other)
 
template<IsConvertible< T > R>
constexpr Complex (R const &real, R const &imag)
 
template<IsConvertible< T > R>
 Complex (R const &real)
 
constexpr Complex (Zero<> const)
 
constexpr Complex (Unit<> const)
 
constexpr Complex (Identity<> const)
 
template<IsConvertible< T > R>
constexpr auto & operator= (Complex< R > const &rhs) &
 
template<IsConvertible< T > R>
constexpr auto & operator= (R const &real) &
 
constexpr auto & operator= (Zero<> const) &
 
constexpr auto & operator= (Unit<> const) &
 
constexpr auto & operator= (Identity<> const) &
 
constexpr decltype(auto) real () &&
 
constexpr decltype(auto) real () const &&
 
constexpr auto & real () &
 
constexpr auto & real () const &
 
constexpr decltype(auto) imag () &&
 
constexpr decltype(auto) imag () const &&
 
constexpr auto & imag () &
 
constexpr auto & imag () const &
 
template<class X >
requires IsInvocable<Add, Complex &, X>
constexpr auto & operator+= (X &&rhs) &
 
template<class X >
requires IsInvocable<Sub, Complex &, X>
constexpr auto & operator-= (X &&rhs) &
 
template<class X >
requires IsInvocable<Mul, Complex &, X>
constexpr auto & operator*= (X &&rhs) &
 
template<class X >
requires IsInvocable<Div, Complex &, X>
constexpr auto & operator/= (X &&rhs) &
 
constexpr operator T () const
 

Member Typedef Documentation

◆ ChangeType

template<IsValue T>
template<class C >
using pRC::Complex< T >::ChangeType = Complex<C>

◆ Type

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

Constructor & Destructor Documentation

◆ ~Complex()

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

◆ Complex() [1/9]

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

◆ Complex() [2/9]

template<IsValue T>
pRC::Complex< T >::Complex ( Complex< T > && )
constexprdefault

◆ Complex() [3/9]

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

◆ Complex() [4/9]

template<IsValue T>
template<IsConvertible< T > R>
pRC::Complex< T >::Complex ( Complex< R > const & other)
inline

◆ Complex() [5/9]

template<IsValue T>
template<IsConvertible< T > R>
pRC::Complex< T >::Complex ( R const & real,
R const & imag )
inlineconstexpr

◆ Complex() [6/9]

template<IsValue T>
template<IsConvertible< T > R>
pRC::Complex< T >::Complex ( R const & real)
inline

◆ Complex() [7/9]

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

◆ Complex() [8/9]

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

◆ Complex() [9/9]

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

Member Function Documentation

◆ imag() [1/4]

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

◆ imag() [2/4]

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

◆ imag() [3/4]

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

◆ imag() [4/4]

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

◆ operator T()

template<IsValue T>
pRC::Complex< T >::operator T ( ) const
inlineconstexpr

◆ operator*=()

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

◆ operator+=()

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

◆ operator-=()

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

◆ operator/=()

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

◆ operator=() [1/7]

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

◆ operator=() [2/7]

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

◆ operator=() [3/7]

template<IsValue T>
template<IsConvertible< T > R>
auto & pRC::Complex< T >::operator= ( Complex< R > const & rhs) &
inlineconstexpr

◆ operator=() [4/7]

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

◆ operator=() [5/7]

template<IsValue T>
template<IsConvertible< T > R>
auto & pRC::Complex< T >::operator= ( R const & real) &
inlineconstexpr

◆ operator=() [6/7]

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

◆ operator=() [7/7]

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

◆ real() [1/4]

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

◆ real() [2/4]

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

◆ real() [3/4]

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

◆ real() [4/4]

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

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