MAGE  v0.171.0
Matthias Advanced Game Engine
mage::Complex< T, typename > Struct Template Reference

#include <complex.hpp>

Inheritance diagram for mage::Complex< T, typename >:
mage::Array< T, 2u >

Public Member Functions

constexpr Complex (T xy=T(0)) noexcept
 
constexpr Complex (T x, T y) noexcept
 
constexpr Complex (const Complex &v) noexcept=default
 
constexpr Complex (Complex &&v) noexcept=default
 
template<typename U >
constexpr Complex (const Complex< U > &v) noexcept
 
 ~Complex ()=default
 
Complexoperator= (const Complex &v) noexcept=default
 
Complexoperator= (Complex &&v) noexcept=default
 
T & Re () noexcept
 
constexpr const T Re () const noexcept
 
T & Im () noexcept
 
constexpr const T Im () const noexcept
 
constexpr const Complex operator+ () const noexcept
 
constexpr const Complex operator- () const noexcept
 
constexpr const Complex operator+ (const Complex &v) const noexcept
 
constexpr const Complex operator- (const Complex &v) const noexcept
 
constexpr const Complex operator* (const Complex &v) const noexcept
 
constexpr const Complex operator/ (const Complex &v) const noexcept
 
constexpr const Complex operator+ (T a) const noexcept
 
constexpr const Complex operator- (T a) const noexcept
 
constexpr const Complex operator* (T a) const noexcept
 
constexpr const Complex operator/ (T a) const noexcept
 
Complexoperator+= (const Complex &v) noexcept
 
Complexoperator-= (const Complex &v) noexcept
 
Complexoperator*= (const Complex &v) noexcept
 
Complexoperator/= (const Complex &v) noexcept
 
Complexoperator+= (T a) noexcept
 
Complexoperator-= (T a) noexcept
 
Complexoperator*= (T a) noexcept
 
Complexoperator/= (T a) noexcept
 
constexpr bool operator== (const Complex &v) const
 
constexpr bool operator!= (const Complex &v) const
 
constexpr const Complex Conjugate () const noexcept
 
constexpr const T Norm () const noexcept
 
constexpr const T SqrAbs () const noexcept
 
const T Abs () const noexcept
 
ComplexNormalize () noexcept
 
const T Arg () const noexcept
 
- Public Member Functions inherited from mage::Array< T, 2u >
constexpr Array () noexcept
 
constexpr Array (const T &value) noexcept
 
constexpr Array (ArgsT &&... args) noexcept
 
constexpr Array (const Array< T, FromN, alignof(T) > &a) noexcept
 
constexpr Array (const Array< T, FromN, FromA > &a) noexcept
 
constexpr Array (const Array< T, FromN, alignof(T) > &a, ArgsT &&... args) noexcept
 
constexpr Array (const Array< T, FromN, FromA > &a, ArgsT &&... args) noexcept
 
constexpr Array (const Array &a) noexcept=default
 
constexpr Array (Array &&a) noexcept=default
 
constexpr Array (const Array< FromT, N, FromA > &a) noexcept
 
 ~Array ()=default
 
Arrayoperator= (const Array &a) noexcept=default
 
Arrayoperator= (Array &&a) noexcept=default
 

Additional Inherited Members

- Static Public Attributes inherited from mage::Array< T, 2u >
static constexpr std::size_t s_size
 

Constructor & Destructor Documentation

◆ Complex() [1/5]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr mage::Complex< T, typename >::Complex ( xy = T(0))
explicitnoexcept

◆ Complex() [2/5]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr mage::Complex< T, typename >::Complex ( x,
y 
)
noexcept

◆ Complex() [3/5]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr mage::Complex< T, typename >::Complex ( const Complex< T, typename > &  v)
defaultnoexcept

◆ Complex() [4/5]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr mage::Complex< T, typename >::Complex ( Complex< T, typename > &&  v)
defaultnoexcept

◆ Complex() [5/5]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
template<typename U >
constexpr mage::Complex< T, typename >::Complex ( const Complex< U > &  v)
explicitnoexcept

◆ ~Complex()

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
mage::Complex< T, typename >::~Complex ( )
default

Member Function Documentation

◆ Abs()

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
const T mage::Complex< T, typename >::Abs ( ) const
noexcept

◆ Arg()

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
const T mage::Complex< T, typename >::Arg ( ) const
noexcept

◆ Conjugate()

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::Conjugate ( ) const
noexcept

◆ Im() [1/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
T& mage::Complex< T, typename >::Im ( )
noexcept

◆ Im() [2/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const T mage::Complex< T, typename >::Im ( ) const
noexcept

◆ Norm()

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const T mage::Complex< T, typename >::Norm ( ) const
noexcept

◆ Normalize()

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::Normalize ( )
noexcept

◆ operator!=()

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr bool mage::Complex< T, typename >::operator!= ( const Complex< T, typename > &  v) const

◆ operator*() [1/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::operator* ( const Complex< T, typename > &  v) const
noexcept

◆ operator*() [2/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::operator* ( a) const
noexcept

◆ operator*=() [1/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::operator*= ( const Complex< T, typename > &  v)
noexcept

◆ operator*=() [2/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::operator*= ( a)
noexcept

◆ operator+() [1/3]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::operator+ ( ) const
noexcept

◆ operator+() [2/3]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::operator+ ( const Complex< T, typename > &  v) const
noexcept

◆ operator+() [3/3]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::operator+ ( a) const
noexcept

◆ operator+=() [1/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::operator+= ( const Complex< T, typename > &  v)
noexcept

◆ operator+=() [2/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::operator+= ( a)
noexcept

◆ operator-() [1/3]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::operator- ( ) const
noexcept

◆ operator-() [2/3]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::operator- ( const Complex< T, typename > &  v) const
noexcept

◆ operator-() [3/3]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::operator- ( a) const
noexcept

◆ operator-=() [1/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::operator-= ( const Complex< T, typename > &  v)
noexcept

◆ operator-=() [2/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::operator-= ( a)
noexcept

◆ operator/() [1/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::operator/ ( const Complex< T, typename > &  v) const
noexcept

◆ operator/() [2/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const Complex mage::Complex< T, typename >::operator/ ( a) const
noexcept

◆ operator/=() [1/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::operator/= ( const Complex< T, typename > &  v)
noexcept

◆ operator/=() [2/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::operator/= ( a)
noexcept

◆ operator=() [1/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::operator= ( const Complex< T, typename > &  v)
defaultnoexcept

◆ operator=() [2/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
Complex& mage::Complex< T, typename >::operator= ( Complex< T, typename > &&  v)
defaultnoexcept

◆ operator==()

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr bool mage::Complex< T, typename >::operator== ( const Complex< T, typename > &  v) const

◆ Re() [1/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
T& mage::Complex< T, typename >::Re ( )
noexcept

◆ Re() [2/2]

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const T mage::Complex< T, typename >::Re ( ) const
noexcept

◆ SqrAbs()

template<typename T , typename = std::enable_if_t< std::is_floating_point_v< T > >>
constexpr const T mage::Complex< T, typename >::SqrAbs ( ) const
noexcept