deal.II version GIT relicensing-1941-ga9013bea74 2024-10-08 06:50:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Functions
complex_overloads.h File Reference
#include <deal.II/base/config.h>
#include <deal.II/base/template_constraints.h>

Go to the source code of this file.

Functions

template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< std::complex< T >, std::complex< U > >::type > operator* (const std::complex< T > &left, const std::complex< U > &right)
 
template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< std::complex< T >, std::complex< U > >::type > operator/ (const std::complex< T > &left, const std::complex< U > &right)
 
template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< std::complex< T >, U >::type > operator* (const std::complex< T > &left, const U &right)
 
template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< std::complex< T >, U >::type > operator/ (const std::complex< T > &left, const U &right)
 
template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< T, std::complex< U > >::type > operator* (const T &left, const std::complex< U > &right)
 
template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< T, std::complex< U > >::type > operator/ (const T &left, const std::complex< U > &right)
 

Function Documentation

◆ operator*() [1/3]

template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< std::complex< T >, std::complex< U > >::type > operator* ( const std::complex< T > &  left,
const std::complex< U > &  right 
)
inline

Provide an operator* that operates on mixed complex floating point types. Annoyingly, the standard library does not provide such an operator...

Definition at line 42 of file complex_overloads.h.

◆ operator/() [1/3]

template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< std::complex< T >, std::complex< U > >::type > operator/ ( const std::complex< T > &  left,
const std::complex< U > &  right 
)
inline

Provide an operator/ that operates on mixed complex floating point types. Annoyingly, the standard library does not provide such an operator...

Definition at line 60 of file complex_overloads.h.

◆ operator*() [2/3]

template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< std::complex< T >, U >::type > operator* ( const std::complex< T > &  left,
const U &  right 
)
inline

Provide an operator* for a scalar multiplication of a complex floating point type with a different real floating point type. Annoyingly, the standard library does not provide such an operator...

Definition at line 78 of file complex_overloads.h.

◆ operator/() [2/3]

template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< std::complex< T >, U >::type > operator/ ( const std::complex< T > &  left,
const U &  right 
)
inline

Provide an operator/ for a scalar division of a complex floating point type with a different real floating point type. Annoyingly, the standard library does not provide such an operator...

Definition at line 95 of file complex_overloads.h.

◆ operator*() [3/3]

template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< T, std::complex< U > >::type > operator* ( const T &  left,
const std::complex< U > &  right 
)
inline

Provide an operator* for a scalar multiplication of a real floating point type with a different complex floating point type. Annoyingly, the standard library does not provide such an operator...

Definition at line 112 of file complex_overloads.h.

◆ operator/() [3/3]

template<typename T , typename U >
std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< U >, typename ProductType< T, std::complex< U > >::type > operator/ ( const T &  left,
const std::complex< U > &  right 
)
inline

Provide an operator/ for a scalar division of a real floating point type with a different complex floating point type. Annoyingly, the standard library does not provide such an operator...

Definition at line 129 of file complex_overloads.h.