Highly Efficient FFT for Exascale: HeFFTe v2.3
heffte::is_ccomplex< scalar_type > Struct Template Reference

Struct to specialize to allow HeFFTe to recognize custom single precision complex types. More...

#include <heffte_utils.h>

Detailed Description

template<typename scalar_type>
struct heffte::is_ccomplex< scalar_type >

Struct to specialize to allow HeFFTe to recognize custom single precision complex types.

Specializations of this struct will allow HeFFTe to recognize custom complex types that are ABI compatible with std::complex. In this context, ABI compatible means that it is safe to use reinterpret_cast between raw-arrays arrays of the two types.

Template Parameters
scalar_typeindicates the type in question, if the type is ABI compatible with single precision complex std::complex<float> then the specialization must inherit from std::true_type, otherwise inherit from std::false_type. Note that the true/false types define a static const bool member called value that is correspondingly true/false.

See std::is_zcomplex for specialization for double precision complex types, the ccomplex and zcomplex names are mimicking by the BLAS naming conventions, e.g., cgemm() and zgemm().

Example:

struct custom_single_precision_complex{
float real, imag;
}
namespace heffte {
template<> struct is_ccomplex<custom_single_precision_complex> : std::true_type{};
}
Namespace containing all HeFFTe methods and classes.
Definition: heffte_backend_cuda.h:38

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