mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
fftwTemplates.hpp File Reference

Declares and defines templatized wrappers for the fftw library. More...

Declares and defines templatized wrappers for the fftw library.

Author
Jared R. Males (jared.nosp@m.male.nosp@m.s@gma.nosp@m.il.c.nosp@m.om)

Definition in file fftwTemplates.hpp.

Go to the source code of this file.

Classes

struct  mx::math::fft::fftwPlanSpec< realT >
 Specify the type of the plan based on the real type of the data. More...
 
struct  mx::math::fft::fftwPlanSpec< float >
 Specialization of fftwPlanSpec for float. More...
 
struct  mx::math::fft::fftwPlanSpec< double >
 Specialization of fftwPlanSpec for double. More...
 
struct  mx::math::fft::fftwPlanSpec< long double >
 Specialization of fftwPlanSpec for long double. More...
 
struct  mx::math::fft::fftwPlanSpec< __float128 >
 Specialization of fftwPlanSpec for __float128. More...
 
struct  mx::math::fft::fftwTypeSpec< _inputDataT, _outputDataT >
 A structure specifying various types based on the FFT input and output data types. More...
 
struct  mx::math::fft::fftwTypeSpec< complexFT, complexFT >
 Specialization of fftwTypeSpec for complex-float input and complex-float output. More...
 
struct  mx::math::fft::fftwTypeSpec< float, complexFT >
 Specialization of fftwTypeSpec for real-float input and complex-float output. More...
 
struct  mx::math::fft::fftwTypeSpec< complexFT, float >
 Specialization of fftwTypeSpec for complex-float input and real-float output. More...
 
struct  mx::math::fft::fftwTypeSpec< complexDT, complexDT >
 Specialization of fftwTypeSpec for complex-double input and complex-double output. More...
 
struct  mx::math::fft::fftwTypeSpec< double, complexDT >
 Specialization of fftwTypeSpec for real-double input and complex-double output. More...
 
struct  mx::math::fft::fftwTypeSpec< complexDT, double >
 Specialization of fftwTypeSpec for complex-double input and double output. More...
 
struct  mx::math::fft::fftwTypeSpec< complexLT, complexLT >
 Specialization of fftwTypeSpec for complex-long-double input and complex-long-double output. More...
 
struct  mx::math::fft::fftwTypeSpec< long double, complexLT >
 Specialization of fftwTypeSpec for real-long-double input and complex-long-double output. More...
 
struct  mx::math::fft::fftwTypeSpec< complexLT, long double >
 Specialization of fftwTypeSpec for complex-long-double input and real-long-double output. More...
 
struct  mx::math::fft::fftwTypeSpec< complexQT, complexQT >
 Specialization of fftwTypeSpec for complex-quad input and complex-quad output. More...
 
struct  mx::math::fft::fftwTypeSpec< __float128, complexQT >
 Specialization of fftwTypeSpec for real-quad input and complex-quad output. More...
 
struct  mx::math::fft::fftwTypeSpec< complexQT, __float128 >
 Specialization of fftwTypeSpec for complex-quad input and real-quad output. More...
 

Namespaces

 mx
 The mxlib c++ namespace.
 

Typedefs

typedef std::complex< float > mx::math::fft::complexFT
 The complex float data type. More...
 
typedef std::complex< double > mx::math::fft::complexDT
 The complex double data type. More...
 
typedef std::complex< long double > mx::math::fft::complexLT
 The complex long double data type. More...
 
typedef std::complex< __float128 > mx::math::fft::complexQT
 The complex __float128 data type. More...
 

Functions

template<typename realT >
int mx::math::fft::fftw_import_system_wisdom ()
 Template wrapper for fftwX_import_system_wisdom();. More...
 
template<typename realT >
int mx::math::fft::fftw_import_wisdom_from_filename (const char *filename)
 Template wrapper for fftwX_import_wisdom_from_filename(const char *);. More...
 
template<typename realT >
int mx::math::fft::fftw_export_wisdom_to_filename (const char *filename)
 Template wrapper for fftwX_export_wisdom_to_filename(const char *);. More...
 
template<typename realT >
realT * mx::math::fft::fftw_malloc (size_t n)
 Call to fftw_malloc, with type cast. More...
 
template<typename realT >
void mx::math::fft::fftw_free (realT *p)
 Call to fftw_free. More...
 
template<typename realT >
void mx::math::fft::fftw_make_planner_thread_safe ()
 Wrapper for fftwX_make_planner_thread_safe() More...
 
template<typename realT >
void mx::math::fft::fftw_plan_with_nthreads (int nthreads)
 Tell the FFTW planner how many threads to use. More...
 
template<typename inputDataT , typename outputDataT >
fftwTypeSpec< inputDataT, outputDataT >::planT mx::math::fft::fftw_plan_dft (std::vector< int > n, inputDataT *in, outputDataT *out, int sign, unsigned flags)
 Wrapper for the fftwX_plan_dft functions. More...
 
template<typename realT >
void mx::math::fft::fftw_cleanup ()
 Cleanup persistent planner data. More...
 
template<typename realT >
void mx::math::fft::fftw_cleanup_threads ()
 Cleanup persistent planner data and threads data. More...
 
template<typename inputDataT , typename outputDataT >
void mx::math::fft::fftw_execute_dft (typename fftwTypeSpec< inputDataT, outputDataT >::planT plan, inputDataT *in, outputDataT *out)
 Execute the given plan on the given arrays. More...
 
template<typename realT >
void mx::math::fft::fftw_destroy_plan (typename fftwPlanSpec< realT >::planT plan)
 Destroy the given plan. More...