QMCPACK
complex_help.hpp File Reference
+ Include dependency graph for complex_help.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  IsComplex_t< T >
 
struct  IsComplex_t< std::complex< T > >
 
struct  RealAlias_impl< T, typename >
 
struct  RealAlias_impl< T, IsReal< T > >
 
struct  RealAlias_impl< T, IsComplex< T > >
 
struct  ValueAlias_impl< TREAL, TREF, typename >
 
struct  ValueAlias_impl< TREAL, TREF, IsReal< TREF > >
 
struct  ValueAlias_impl< TREAL, TREF, IsComplex< TREF > >
 

Namespaces

 qmcplusplus
 helper functions for EinsplineSetBuilder
 

Typedefs

template<typename T >
using IsComplex = std::enable_if_t< IsComplex_t< T >::value, bool >
 
template<typename T >
using IsReal_t = std::is_floating_point< T >
 
template<typename T >
using IsReal = std::enable_if_t< std::is_floating_point< T >::value, bool >
 
template<typename T >
using RealAlias = typename RealAlias_impl< T >::value_type
 If you have a function templated on a value that can be real or complex and you need to get the base Real type if its complex or just the real. More...
 
template<typename TREAL , typename TREF , typename = std::enable_if_t<std::is_floating_point<TREAL>::value>>
using ValueAlias = typename ValueAlias_impl< TREAL, TREF >::value_type
 If you need to make a value type of a given precision based on a reference value type set the desired POD float point type as TREAL and set the reference type as TREF. More...
 

Functions

float real (const float &c)
 real part of a scalar. Cannot be replaced by std::real due to AFQMC specific needs. More...
 
double real (const double &c)
 
float real (const std::complex< float > &c)
 
double real (const std::complex< double > &c)
 
float imag (const float &c)
 imaginary part of a scalar. Cannot be replaced by std::imag due to AFQMC specific needs. More...
 
double imag (const double &c)
 
float imag (const std::complex< float > &c)
 
double imag (const std::complex< double > &c)
 
float conj (const float &c)
 Workaround to allow conj on scalar to return real instead of complex. More...
 
double conj (const double &c)
 
std::complex< float > conj (const std::complex< float > &c)
 
std::complex< double > conj (const std::complex< double > &c)
 
void copy_with_complex_cast (const std::complex< double > &source, std::complex< double > &dest)
 
void copy_with_complex_cast (const std::complex< double > &source, double &dest)
 
void copy_with_complex_cast (const std::complex< float > &source, std::complex< float > &dest)
 
void copy_with_complex_cast (const std::complex< float > &source, float &dest)
 

Class Documentation

◆ qmcplusplus::RealAlias_impl

struct qmcplusplus::RealAlias_impl

template<typename T, typename = bool>
struct qmcplusplus::RealAlias_impl< T, typename >

Definition at line 38 of file complex_help.hpp.

+ Collaboration diagram for RealAlias_impl< T, typename >:

◆ qmcplusplus::RealAlias_impl< T, IsReal< T > >

struct qmcplusplus::RealAlias_impl< T, IsReal< T > >

template<typename T>
struct qmcplusplus::RealAlias_impl< T, IsReal< T > >

Definition at line 42 of file complex_help.hpp.

+ Collaboration diagram for RealAlias_impl< T, IsReal< T > >:
Class Members
typedef T value_type

◆ qmcplusplus::RealAlias_impl< T, IsComplex< T > >

struct qmcplusplus::RealAlias_impl< T, IsComplex< T > >

template<typename T>
struct qmcplusplus::RealAlias_impl< T, IsComplex< T > >

Definition at line 48 of file complex_help.hpp.

+ Collaboration diagram for RealAlias_impl< T, IsComplex< T > >:
Class Members
typedef typename value_type value_type

◆ qmcplusplus::ValueAlias_impl

struct qmcplusplus::ValueAlias_impl

template<typename TREAL, typename TREF, typename = bool>
struct qmcplusplus::ValueAlias_impl< TREAL, TREF, typename >

Definition at line 63 of file complex_help.hpp.

+ Collaboration diagram for ValueAlias_impl< TREAL, TREF, typename >:

◆ qmcplusplus::ValueAlias_impl< TREAL, TREF, IsReal< TREF > >

struct qmcplusplus::ValueAlias_impl< TREAL, TREF, IsReal< TREF > >

template<typename TREAL, typename TREF>
struct qmcplusplus::ValueAlias_impl< TREAL, TREF, IsReal< TREF > >

Definition at line 67 of file complex_help.hpp.

+ Collaboration diagram for ValueAlias_impl< TREAL, TREF, IsReal< TREF > >:
Class Members
typedef TREAL value_type

◆ qmcplusplus::ValueAlias_impl< TREAL, TREF, IsComplex< TREF > >

struct qmcplusplus::ValueAlias_impl< TREAL, TREF, IsComplex< TREF > >

template<typename TREAL, typename TREF>
struct qmcplusplus::ValueAlias_impl< TREAL, TREF, IsComplex< TREF > >

Definition at line 73 of file complex_help.hpp.

+ Collaboration diagram for ValueAlias_impl< TREAL, TREF, IsComplex< TREF > >:
Class Members
typedef complex< TREAL > value_type