/home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/common/complex_math.hh File Reference#

DiFfRG: /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/common/complex_math.hh File Reference
DiFfRG
complex_math.hh File Reference
#include <DiFfRG/common/kokkos.hh>
#include <autodiff/common/numbertraits.hpp>
#include <autodiff/forward/real.hpp>

Go to the source code of this file.

Classes

struct  autodiff::detail::ArithmeticTraits<::Kokkos::complex< T > >
 
struct  DiFfRG::is_complex< T >
 
struct  DiFfRG::is_complex< complex< T > >
 
struct  DiFfRG::is_complex< cxReal< N, T > >
 

Namespaces

namespace  DiFfRG
 
namespace  autodiff
 
namespace  autodiff::detail
 

Typedefs

template<size_t N, typename T >
using DiFfRG::cxReal = autodiff::Real<N, complex<T>>
 
using DiFfRG::cxreal = autodiff::Real<1, complex<double>>
 

Functions

template<typename T1 , typename T2 >
requires (!std::is_same_v<T1, T2>) && std::is_arithmetic_v<T1> && std::is_arithmetic_v<T2>
KOKKOS_FORCEINLINE_FUNCTION auto autodiff::detail::operator* (const T1 x, const complex< T2 > y)
 
template<typename T1 , typename T2 >
requires (!std::is_same_v<T1, T2>) && std::is_arithmetic_v<T1> && std::is_arithmetic_v<T2>
KOKKOS_FORCEINLINE_FUNCTION auto autodiff::detail::operator* (const complex< T1 > &x, const T2 &y)
 
template<typename T1 , typename T2 >
requires (!std::is_same_v<T1, T2>) && std::is_arithmetic_v<T1> && std::is_arithmetic_v<T2>
KOKKOS_FORCEINLINE_FUNCTION auto autodiff::detail::operator+ (const T1 &x, const complex< T2 > &y)
 
template<typename T1 , typename T2 >
requires (!std::is_same_v<T1, T2>) && std::is_arithmetic_v<T1> && std::is_arithmetic_v<T2>
KOKKOS_FORCEINLINE_FUNCTION auto autodiff::detail::operator+ (const complex< T1 > &x, const T2 &y)
 
template<typename T1 , typename T2 >
requires (!std::is_same_v<T1, T2>) && std::is_arithmetic_v<T1> && std::is_arithmetic_v<T2>
KOKKOS_FORCEINLINE_FUNCTION auto autodiff::detail::operator- (const T1 &x, const complex< T2 > &y)
 
template<typename T1 , typename T2 >
requires (!std::is_same_v<T1, T2>) && std::is_arithmetic_v<T1> && std::is_arithmetic_v<T2>
KOKKOS_FORCEINLINE_FUNCTION auto autodiff::detail::operator- (const complex< T1 > &x, const T2 &y)
 
template<typename T1 , typename T2 >
requires (!std::is_same_v<T1, T2>) && std::is_arithmetic_v<T1> && std::is_arithmetic_v<T2>
KOKKOS_FORCEINLINE_FUNCTION auto autodiff::detail::operator/ (const T1 &x, const complex< T2 > &y)
 
template<typename T1 , typename T2 >
requires (!std::is_same_v<T1, T2>) && std::is_arithmetic_v<T1> && std::is_arithmetic_v<T2>
KOKKOS_FORCEINLINE_FUNCTION auto autodiff::detail::operator/ (const complex< T1 > x, const T2 &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::real (const autodiff::Real< N, T > &a)
 
template<size_t N, typename T >
constexpr KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::imag (const autodiff::Real< N, T > &)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::real (const cxReal< N, T > &x)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::imag (const cxReal< N, T > &x)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator* (const autodiff::Real< N, T > &x, const complex< double > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator* (const complex< double > &x, const autodiff::Real< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator+ (const autodiff::Real< N, T > &x, const complex< double > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator+ (const complex< double > &x, const autodiff::Real< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator- (const autodiff::Real< N, T > &x, const complex< double > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator- (const complex< double > &x, const autodiff::Real< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator/ (const autodiff::Real< N, T > &x, const complex< double > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator/ (const complex< double > &x, const autodiff::Real< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator* (const autodiff::Real< N, T > &x, const cxReal< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator* (const cxReal< N, T > &x, const autodiff::Real< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator+ (const autodiff::Real< N, T > &x, const cxReal< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator+ (const cxReal< N, T > &x, const autodiff::Real< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator- (const autodiff::Real< N, T > &x, const cxReal< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator- (const cxReal< N, T > &x, const autodiff::Real< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator/ (const autodiff::Real< N, T > &x, const cxReal< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator/ (const cxReal< N, T > &x, const autodiff::Real< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator* (const complex< double > &x, const cxReal< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator* (const cxReal< N, T > &x, const complex< double > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator+ (const complex< double > &x, const cxReal< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator+ (const cxReal< N, T > &x, const complex< double > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator- (const complex< double > &x, const cxReal< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator- (const cxReal< N, T > &x, const complex< double > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator/ (const cxReal< N, T > &x, const complex< double > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator/ (const complex< double > &x, const cxReal< N, T > &y)
 
template<size_t N, typename T >
KOKKOS_FORCEINLINE_FUNCTION auto DiFfRG::operator/ (const double x, const cxReal< N, T > &y)