Eigen::internal::imklfft::plan< float > Struct Reference

#include <ei_imklfft_impl.h>

Public Types

typedef float scalar_type
 
typedef MKL_Complex8 complex_type
 

Public Member Functions

 plan ()=default
 
void forward (complex_type *dst, complex_type *src, MKL_LONG nfft)
 
void inverse (complex_type *dst, complex_type *src, MKL_LONG nfft)
 
void forward (complex_type *dst, scalar_type *src, MKL_LONG nfft)
 
void inverse (scalar_type *dst, complex_type *src, MKL_LONG nfft)
 
void forward2 (complex_type *dst, complex_type *src, int n0, int n1)
 
void inverse2 (complex_type *dst, complex_type *src, int n0, int n1)
 

Public Attributes

std::shared_ptr< DFTI_DESCRIPTOR > m_plan
 
enum DFTI_CONFIG_VALUE precision = DFTI_SINGLE
 

Member Typedef Documentation

◆ complex_type

typedef MKL_Complex8 Eigen::internal::imklfft::plan< float >::complex_type

◆ scalar_type

Constructor & Destructor Documentation

◆ plan()

Eigen::internal::imklfft::plan< float >::plan ( )
default

Member Function Documentation

◆ forward() [1/2]

void Eigen::internal::imklfft::plan< float >::forward ( complex_type dst,
complex_type src,
MKL_LONG  nfft 
)
inline
80  {
81  if (m_plan == 0) {
82  configure_descriptor(m_plan, precision, DFTI_COMPLEX, 1, &nfft);
83  }
84  RUN_OR_ASSERT(DftiComputeForward(m_plan.get(), src, dst), "DftiComputeForward failed.")
85  }
#define RUN_OR_ASSERT(EXPR, ERROR_MSG)
Definition: ei_imklfft_impl.h:20
void configure_descriptor(std::shared_ptr< DFTI_DESCRIPTOR > &handl, enum DFTI_CONFIG_VALUE precision, enum DFTI_CONFIG_VALUE forward_domain, MKL_LONG dimension, MKL_LONG *sizes)
Definition: ei_imklfft_impl.h:43
std::shared_ptr< DFTI_DESCRIPTOR > m_plan
Definition: ei_imklfft_impl.h:74
enum DFTI_CONFIG_VALUE precision
Definition: ei_imklfft_impl.h:78

References Eigen::internal::imklfft::configure_descriptor(), and RUN_OR_ASSERT.

◆ forward() [2/2]

void Eigen::internal::imklfft::plan< float >::forward ( complex_type dst,
scalar_type src,
MKL_LONG  nfft 
)
inline
94  {
95  if (m_plan == 0) {
96  configure_descriptor(m_plan, precision, DFTI_REAL, 1, &nfft);
97  }
98  RUN_OR_ASSERT(DftiComputeForward(m_plan.get(), src, dst), "DftiComputeForward failed.")
99  }

References Eigen::internal::imklfft::configure_descriptor(), and RUN_OR_ASSERT.

◆ forward2()

void Eigen::internal::imklfft::plan< float >::forward2 ( complex_type dst,
complex_type src,
int  n0,
int  n1 
)
inline
108  {
109  if (m_plan == 0) {
110  MKL_LONG sizes[2] = {n0, n1};
111  configure_descriptor(m_plan, precision, DFTI_COMPLEX, 2, sizes);
112  }
113  RUN_OR_ASSERT(DftiComputeForward(m_plan.get(), src, dst), "DftiComputeForward failed.")
114  }
std::vector< Array2i > sizes
Definition: dense_solvers.cpp:12

References Eigen::internal::imklfft::configure_descriptor(), RUN_OR_ASSERT, and sizes.

◆ inverse() [1/2]

void Eigen::internal::imklfft::plan< float >::inverse ( complex_type dst,
complex_type src,
MKL_LONG  nfft 
)
inline
87  {
88  if (m_plan == 0) {
89  configure_descriptor(m_plan, precision, DFTI_COMPLEX, 1, &nfft);
90  }
91  RUN_OR_ASSERT(DftiComputeBackward(m_plan.get(), src, dst), "DftiComputeBackward failed.")
92  }

References Eigen::internal::imklfft::configure_descriptor(), and RUN_OR_ASSERT.

◆ inverse() [2/2]

void Eigen::internal::imklfft::plan< float >::inverse ( scalar_type dst,
complex_type src,
MKL_LONG  nfft 
)
inline
101  {
102  if (m_plan == 0) {
103  configure_descriptor(m_plan, precision, DFTI_REAL, 1, &nfft);
104  }
105  RUN_OR_ASSERT(DftiComputeBackward(m_plan.get(), src, dst), "DftiComputeBackward failed.")
106  }

References Eigen::internal::imklfft::configure_descriptor(), and RUN_OR_ASSERT.

◆ inverse2()

void Eigen::internal::imklfft::plan< float >::inverse2 ( complex_type dst,
complex_type src,
int  n0,
int  n1 
)
inline
116  {
117  if (m_plan == 0) {
118  MKL_LONG sizes[2] = {n0, n1};
119  configure_descriptor(m_plan, precision, DFTI_COMPLEX, 2, sizes);
120  }
121  RUN_OR_ASSERT(DftiComputeBackward(m_plan.get(), src, dst), "DftiComputeBackward failed.")
122  }

References Eigen::internal::imklfft::configure_descriptor(), RUN_OR_ASSERT, and sizes.

Member Data Documentation

◆ m_plan

std::shared_ptr<DFTI_DESCRIPTOR> Eigen::internal::imklfft::plan< float >::m_plan

◆ precision

enum DFTI_CONFIG_VALUE Eigen::internal::imklfft::plan< float >::precision = DFTI_SINGLE

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