Highly Efficient FFT for Exascale: HeFFTe v2.3
|
The logic plan incorporates the order and types of operations in a transform. More...
#include <heffte_plan_logic.h>
Public Attributes | |
std::vector< box3d< index > > | in_shape [4] |
Holds the input shapes for the 4 forward reshapes (backwards reverses in and out). | |
std::vector< box3d< index > > | out_shape [4] |
Holds the output shapes for the 4 forward reshapes (backwards reverses in and out). | |
std::array< int, 3 > | fft_direction |
Direction of the 1-D FFT transforms. | |
long long | index_count |
The total number of indexes in all directions. | |
plan_options const | options |
Extra options used in the plan creation. | |
int const | mpi_rank |
MPI rank used in the plan creation. | |
The logic plan incorporates the order and types of operations in a transform.
The logic_plan is used to separate the logic of the order of basic operations (reshape or fft execute) from the constructor of the fft3d and fft3d_r2c classes. In this manner, detection of pencils vs. brick distribution of the data and/or making decisions regarding the transposition of indexing can be done in sufficiently robust and complex logic without clutter of the main classes or unnecessary repetition of code.
Node that a reshape operation i will be performed only if in_shape[i] and out_shape[i] are different.
Specifically: