Eigen::internal::imklfft Namespace Reference

Classes

struct  plan
 
struct  plan< float >
 
struct  plan< double >
 
struct  imklfft_impl
 

Functions

MKL_Complex16 * complex_cast (const std::complex< double > *p)
 
MKL_Complex8 * complex_cast (const std::complex< float > *p)
 
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)
 

Function Documentation

◆ complex_cast() [1/2]

MKL_Complex16* Eigen::internal::imklfft::complex_cast ( const std::complex< double > *  p)
inline
26  {
27  return const_cast<MKL_Complex16*>(reinterpret_cast<const MKL_Complex16*>(p));
28 }
float * p
Definition: Tutorial_Map_using.cpp:9

References p.

Referenced by Eigen::internal::imklfft::imklfft_impl< Scalar_ >::fwd(), Eigen::internal::imklfft::imklfft_impl< Scalar_ >::fwd2(), Eigen::internal::imklfft::imklfft_impl< Scalar_ >::inv(), and Eigen::internal::imklfft::imklfft_impl< Scalar_ >::inv2().

◆ complex_cast() [2/2]

MKL_Complex8* Eigen::internal::imklfft::complex_cast ( const std::complex< float > *  p)
inline
30  {
31  return const_cast<MKL_Complex8*>(reinterpret_cast<const MKL_Complex8*>(p));
32 }

References p.

◆ configure_descriptor()

void Eigen::internal::imklfft::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 
)
inline
44  {
45  eigen_assert(dimension == 1 || dimension == 2 && "Transformation dimension must be less than 3.");
46 
47  DFTI_DESCRIPTOR_HANDLE res = nullptr;
48  if (dimension == 1) {
49  RUN_OR_ASSERT(DftiCreateDescriptor(&res, precision, forward_domain, dimension, *sizes),
50  "DftiCreateDescriptor failed.")
51  handl.reset(res, [](DFTI_DESCRIPTOR_HANDLE handle) { DftiFreeDescriptor(&handle); });
52  if (forward_domain == DFTI_REAL) {
53  // Set CCE storage
54  RUN_OR_ASSERT(DftiSetValue(handl.get(), DFTI_CONJUGATE_EVEN_STORAGE, DFTI_COMPLEX_COMPLEX),
55  "DftiSetValue failed.")
56  }
57  } else {
58  RUN_OR_ASSERT(DftiCreateDescriptor(&res, precision, DFTI_COMPLEX, dimension, sizes), "DftiCreateDescriptor failed.")
59  handl.reset(res, [](DFTI_DESCRIPTOR_HANDLE handle) { DftiFreeDescriptor(&handle); });
60  }
61 
62  RUN_OR_ASSERT(DftiSetValue(handl.get(), DFTI_PLACEMENT, DFTI_NOT_INPLACE), "DftiSetValue failed.")
63  RUN_OR_ASSERT(DftiCommitDescriptor(handl.get()), "DftiCommitDescriptor failed.")
64 }
#define eigen_assert(x)
Definition: Macros.h:910
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
std::vector< Array2i > sizes
Definition: dense_solvers.cpp:12
#define RUN_OR_ASSERT(EXPR, ERROR_MSG)
Definition: ei_imklfft_impl.h:20
void reset(Vector< double > &unknowns)
Reset unknowns to some nontrivial garbage.
Definition: spring_contact.cc:53
Container::iterator get(Container &c, Position position)
Definition: stdlist_overload.cpp:29

References eigen_assert, res, RUN_OR_ASSERT, and sizes.

Referenced by Eigen::internal::imklfft::plan< float >::forward(), Eigen::internal::imklfft::plan< double >::forward(), Eigen::internal::imklfft::plan< float >::forward2(), Eigen::internal::imklfft::plan< double >::forward2(), Eigen::internal::imklfft::plan< float >::inverse(), Eigen::internal::imklfft::plan< double >::inverse(), Eigen::internal::imklfft::plan< float >::inverse2(), and Eigen::internal::imklfft::plan< double >::inverse2().