MKL FFT Executor
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(c_ptr), | public | :: | plan_forward |
Pointer to forward plan |
|||
type(c_ptr), | public | :: | plan_backward |
Pointer to backward plan |
|||
logical, | public | :: | is_inverse_copied | = | .false. |
Is inverse plan copied? |
|
logical, | private | :: | need_reconfigure |
Needed for R2C plans |
|||
integer(kind=c_long), | private, | allocatable | :: | istrides(:) |
Input strides. Needed for R2C plans to reconfigure plan |
||
integer(kind=c_long), | private, | allocatable | :: | ostrides(:) |
Output strides. Needed for R2C plans to reconfigure plan |
||
integer(kind=int32), | private | :: | idist |
Input distance between the first data elements of consecutive data sets |
|||
integer(kind=int32), | private | :: | odist |
Output distance between the first data elements of consecutive data sets |
Creates FFT plan
Creates FFT plan
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_executor), | intent(inout) | :: | self |
FFT Executor |
||
integer(kind=int8), | intent(in) | :: | fft_rank |
Rank of fft: 1 or 2 |
||
integer(kind=int8), | intent(in) | :: | fft_type |
Type of fft: r2r, r2c, c2c |
||
type(dtfft_precision_t), | intent(in) | :: | precision |
Precision of fft: DTFFT_SINGLE or DTFFT_DOUBLE |
||
type(pencil), | intent(in), | optional | :: | real_pencil |
Real data layout |
|
type(pencil), | intent(in), | optional | :: | complex_pencil |
Complex data layout |
|
type(dtfft_r2r_kind_t), | intent(in), | optional | :: | r2r_kinds(:) |
Kinds of r2r transform |
Executes plan
Executes plan
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_executor), | intent(in) | :: | self |
FFT Executor |
||
type(c_ptr), | intent(in) | :: | in |
Source buffer |
||
type(c_ptr), | intent(in) | :: | out |
Target buffer |
||
integer(kind=int8), | intent(in) | :: | sign |
Sign of transform |
Destroys plan
Destroys plan
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_executor), | intent(inout) | :: | self |
FFT Executor |
Creates FFT plan via MKL DFTI Interface
Creates FFT plan via MKL DFTI Interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mkl_executor), | intent(inout) | :: | self |
MKL FFT Executor |
||
integer(kind=int8), | intent(in) | :: | fft_rank |
Rank of fft: 1 or 2 |
||
integer(kind=int8), | intent(in) | :: | fft_type |
Type of fft: r2r, r2c, c2c |
||
type(dtfft_precision_t), | intent(in) | :: | precision |
Precision of fft: DTFFT_SINGLE or DTFFT_DOUBLE |
||
integer(kind=int32), | intent(in) | :: | idist |
Distance between the first element of two consecutive signals in a batch of the input data. |
||
integer(kind=int32), | intent(in) | :: | odist |
Distance between the first element of two consecutive signals in a batch of the output data. |
||
integer(kind=int32), | intent(in) | :: | how_many |
Number of transforms to create |
||
integer(kind=int32), | intent(in) | :: | fft_sizes(:) |
Dimensions of transform |
||
integer(kind=int32), | intent(in) | :: | inembed(:) |
Storage dimensions of the input data in memory. |
||
integer(kind=int32), | intent(in) | :: | onembed(:) |
Storage dimensions of the output data in memory. |
||
integer(kind=int32), | intent(inout) | :: | error_code |
Error code to be returned to user |
||
type(dtfft_r2r_kind_t), | intent(in), | optional | :: | r2r_kinds(:) |
Kinds of r2r transform |
Executes MKL plan
Executes MKL plan
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mkl_executor), | intent(in) | :: | self |
MKL FFT Executor |
||
type(c_ptr), | intent(in) | :: | a |
Source pointer |
||
type(c_ptr), | intent(in) | :: | b |
Target pointer |
||
integer(kind=int8), | intent(in) | :: | sign |
Sign of transform |
Destroys MKL plan
Destroys MKL plan
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mkl_executor), | intent(inout) | :: | self |
MKL FFT Executor |
Allocates MKL memory
Allocates MKL memory
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int64), | intent(in) | :: | alloc_bytes |
Number of bytes to allocate |
||
type(c_ptr), | intent(out) | :: | ptr |
Allocated pointer |
Frees MKL aligned memory
Frees MKL aligned memory
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(in) | :: | ptr |
Pointer to free |