Highly Efficient FFT for Exascale: HeFFTe v2.3
heffte::plan_mkl< scalar_type > Struct Template Reference

Base plan for backend::mkl, works only for float and double complex. More...

#include <heffte_backend_mkl.h>

Public Member Functions

 plan_mkl (int size, int howmanyffts, int stride, int dist)
 Constructor, takes inputs identical to MKL FFT descriptors. More...
 
 plan_mkl (size_t size1, size_t size2, std::array< MKL_LONG, 2 > const &embed, size_t howmanyffts, size_t dist)
 Constructor, takes inputs identical to MKL FFT descriptors. More...
 
 plan_mkl (int size1, int size2, int size3)
 Constructor, takes inputs identical to MKL FFT descriptors. More...
 
 ~plan_mkl ()
 Destructor, deletes the plan.
 
 operator DFTI_DESCRIPTOR_HANDLE () const
 Custom conversion to the MKL plan.
 

Public Attributes

DFTI_DESCRIPTOR_HANDLE plan
 The MKL opaque structure (pointer to struct).
 

Detailed Description

template<typename scalar_type>
struct heffte::plan_mkl< scalar_type >

Base plan for backend::mkl, works only for float and double complex.

MKL library uses a unique plan type for forward and backward fft transforms. This class will wrap around such plan and provide RAII style of memory management and simple constructors that take inputs suitable to HeFFTe.

Constructor & Destructor Documentation

◆ plan_mkl() [1/3]

template<typename scalar_type >
heffte::plan_mkl< scalar_type >::plan_mkl ( int  size,
int  howmanyffts,
int  stride,
int  dist 
)
inline

Constructor, takes inputs identical to MKL FFT descriptors.

Parameters
sizeis the number of entries in a 1-D transform
howmanyfftsis the number of transforms in the batch
strideis the distance between entries of the same transform
distis the distance between the first entries of consecutive sequences

◆ plan_mkl() [2/3]

template<typename scalar_type >
heffte::plan_mkl< scalar_type >::plan_mkl ( size_t  size1,
size_t  size2,
std::array< MKL_LONG, 2 > const &  embed,
size_t  howmanyffts,
size_t  dist 
)
inline

Constructor, takes inputs identical to MKL FFT descriptors.

Parameters
size1is the number of entries in a 2-D transform, direction 1
size2is the number of entries in a 2-D transform, direction 2
embedis the size of the leading dimensions of the data array
howmanyfftsis the number of transforms in the batch
distis the distance between the first entries of consecutive sequences

◆ plan_mkl() [3/3]

template<typename scalar_type >
heffte::plan_mkl< scalar_type >::plan_mkl ( int  size1,
int  size2,
int  size3 
)
inline

Constructor, takes inputs identical to MKL FFT descriptors.

Parameters
size1is the number of entries in a 3-D transform, direction 1
size2is the number of entries in a 3-D transform, direction 2
size3is the number of entries in a 3-D transform, direction 3

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