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