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

#include <ei_imklfft_impl.h>

Public Types

typedef double scalar_type
 
typedef MKL_Complex16 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_DOUBLE
 

Member Typedef Documentation

◆ complex_type

◆ scalar_type

Constructor & Destructor Documentation

◆ plan()

Member Function Documentation

◆ forward() [1/2]

void Eigen::internal::imklfft::plan< double >::forward ( complex_type dst,
complex_type src,
MKL_LONG  nfft 
)
inline
136  {
137  if (m_plan == 0) {
138  configure_descriptor(m_plan, precision, DFTI_COMPLEX, 1, &nfft);
139  }
140  RUN_OR_ASSERT(DftiComputeForward(m_plan.get(), src, dst), "DftiComputeForward failed.")
141  }
#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
enum DFTI_CONFIG_VALUE precision
Definition: ei_imklfft_impl.h:134
std::shared_ptr< DFTI_DESCRIPTOR > m_plan
Definition: ei_imklfft_impl.h:130

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

◆ forward() [2/2]

void Eigen::internal::imklfft::plan< double >::forward ( complex_type dst,
scalar_type src,
MKL_LONG  nfft 
)
inline
150  {
151  if (m_plan == 0) {
152  configure_descriptor(m_plan, precision, DFTI_REAL, 1, &nfft);
153  }
154  RUN_OR_ASSERT(DftiComputeForward(m_plan.get(), src, dst), "DftiComputeForward failed.")
155  }

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

◆ forward2()

void Eigen::internal::imklfft::plan< double >::forward2 ( complex_type dst,
complex_type src,
int  n0,
int  n1 
)
inline
164  {
165  if (m_plan == 0) {
166  MKL_LONG sizes[2] = {n0, n1};
167  configure_descriptor(m_plan, precision, DFTI_COMPLEX, 2, sizes);
168  }
169  RUN_OR_ASSERT(DftiComputeForward(m_plan.get(), src, dst), "DftiComputeForward failed.")
170  }
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< double >::inverse ( complex_type dst,
complex_type src,
MKL_LONG  nfft 
)
inline
143  {
144  if (m_plan == 0) {
145  configure_descriptor(m_plan, precision, DFTI_COMPLEX, 1, &nfft);
146  }
147  RUN_OR_ASSERT(DftiComputeBackward(m_plan.get(), src, dst), "DftiComputeBackward failed.")
148  }

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

◆ inverse() [2/2]

void Eigen::internal::imklfft::plan< double >::inverse ( scalar_type dst,
complex_type src,
MKL_LONG  nfft 
)
inline
157  {
158  if (m_plan == 0) {
159  configure_descriptor(m_plan, precision, DFTI_REAL, 1, &nfft);
160  }
161  RUN_OR_ASSERT(DftiComputeBackward(m_plan.get(), src, dst), "DftiComputeBackward failed.")
162  }

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

◆ inverse2()

void Eigen::internal::imklfft::plan< double >::inverse2 ( complex_type dst,
complex_type src,
int  n0,
int  n1 
)
inline
172  {
173  if (m_plan == 0) {
174  MKL_LONG sizes[2] = {n0, n1};
175  configure_descriptor(m_plan, precision, DFTI_COMPLEX, 2, sizes);
176  }
177  RUN_OR_ASSERT(DftiComputeBackward(m_plan.get(), src, dst), "DftiComputeBackward failed.")
178  }

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< double >::m_plan

◆ precision

enum DFTI_CONFIG_VALUE Eigen::internal::imklfft::plan< double >::precision = DFTI_DOUBLE

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