|
struct | heffte::fft_output< scalar_type > |
| Defines the relationship between pairs of input-output types in the FFT algorithms. More...
|
|
struct | heffte::fft_output< float > |
| Specialization mapping float to std::complex<float>. More...
|
|
struct | heffte::fft_output< double > |
| Specialization mapping double to std::complex<double>. More...
|
|
struct | heffte::transform_output< scalar_type, backend_tag, typename > |
| Defines the relationship between pairs of input-output types in a general transform algorithm. More...
|
|
struct | heffte::transform_output< scalar_type, backend_tag, typename std::enable_if< backend::uses_fft_types< backend_tag >::value >::type > |
| Specialization for standard FFT. More...
|
|
struct | heffte::transform_output< scalar_type, backend_tag, typename std::enable_if< not backend::uses_fft_types< backend_tag >::value >::type > |
| Specialization for Cosine Transform. More...
|
|
struct | heffte::is_ccomplex< std::complex< float > > |
| By default, HeFFTe recognizes std::complex<float>. More...
|
|
struct | heffte::is_zcomplex< std::complex< double > > |
| By default, HeFFTe recognizes std::complex<double>. More...
|
|
struct | heffte::define_standard_type< typename, typename > |
| Struct to specialize that returns the C++ equivalent of each type. More...
|
|
struct | heffte::define_standard_type< float, void > |
| Type float is equivalent to float. More...
|
|
struct | heffte::define_standard_type< double, void > |
| Type double is equivalent to double. More...
|
|
struct | heffte::define_standard_type< scalar_type, typename std::enable_if< is_ccomplex< scalar_type >::value >::type > |
| Every type with specialization of heffte::is_ccomplex to std::true_type is equivalent to std::complex<float>. More...
|
|
struct | heffte::define_standard_type< scalar_type, typename std::enable_if< is_zcomplex< scalar_type >::value >::type > |
| Every type with specialization of heffte::is_zcomplex to std::true_type is equivalent to std::complex<double>. More...
|
|
By default, HeFFTe works with the C++ native std::complex types, by many backends and client codes favor their own complex types. While the types are binary compatible, i.e., arrays of one type can be safely converted with reinterpret_cast, having to manually make those conversions is far from user-friendly. Thus, HeFFTe also accepts the complex types defined by the enabled backend libraries, and the user can indicate their own custom complex types that are binary compatible with std::complex of single or double precision.
In addition, HeFFTe provides definition of the correct input and output types for different transforms, see also compatible types.