|
| | FFTND () noexcept=default |
| | Default constructor. Creates an uninitialized plan.
|
| |
| | ~FFTND () noexcept override |
| | Destructor. Releases all internal resources.
|
| |
| void | release () noexcept override |
| | Release all internal resources.
|
| |
| | FFTND (FFTND &&other) noexcept |
| | Move constructor.
|
| |
| FFTND & | operator= (FFTND &&other) noexcept |
| | Move assignment operator.
|
| |
| | FFTND (const FFTND &)=delete |
| |
| FFTND & | operator= (const FFTND &)=delete |
| |
| int | init (const std::vector< int > &commDims, const std::vector< size_t > &dimensions, FFTType type, MPI_Comm comm, TransformLayout output=TransformLayout::REDISTRIBUTED) noexcept |
| | Initialize plan with Cartesian process grid.
|
| |
| int | plan () noexcept override |
| | Create backend FFT plans.
|
| |
| int | setBuffers (complexf *data, complexf *work) noexcept |
| | Attach data and work buffers.
|
| |
| int | setBuffers (complexd *data, complexd *work) noexcept |
| |
| int | getBuffers (complexf **data, complexf **work) noexcept |
| | Retrieve current buffer pointers.
|
| |
| int | getBuffers (complexd **data, complexd **work) noexcept |
| |
| int | execute (FFTDirection direction) noexcept override |
| | Execute the FFT.
|
| |
| int | normalize () noexcept override |
| | Apply symmetric normalization (1/sqrt(N) per transform).
|
| |
| size_t | allocSize () const noexcept override |
| | Get required buffer size in complex elements.
|
| |
| size_t | globalSize () const noexcept override |
| | Get total global tensor size (product of dimensions).
|
| |
| int | ndim () const noexcept override |
| | Get number of dimensions.
|
| |
| FFTType | fftType () const noexcept override |
| | Get FFT precision (C2C or Z2Z).
|
| |
| int | getLayout (std::vector< size_t > &subsize, std::vector< size_t > &offset, TensorLayout layout=TensorLayout::CURRENT) const noexcept |
| | Query local tensor layout.
|
| |
| int | getAxes (std::vector< int > &ca, std::vector< int > &da, TensorLayout layout=TensorLayout::CURRENT) const noexcept |
| | Query axis distribution.
|
| |
| bool | isActive () const noexcept override |
| | Check if this rank participates in computation.
|
| |
| int | setBuffersRaw (void *data, void *work) noexcept override |
| | Attach buffers (type-erased).
|
| |
| int | getBuffersRaw (void **data, void **work) noexcept override |
| | Retrieve current buffer pointers (type-erased).
|
| |
| int | getCommunicator (MPI_Comm *outComm) const noexcept |
| | Get a duplicated communicator from this plan.
|
| |
| int | init (shafft_nd_config_t &cfg) noexcept |
| | Initialize plan from a resolved config object.
|
| |
| | operator bool () const noexcept |
| | Check if the plan is valid (alias for isConfigured).
|
| |
| PlanState | state () const noexcept |
| | Get the current plan state.
|
| |
| bool | isConfigured () const noexcept |
| | Check if the plan is at least configured (init() succeeded).
|
| |
| bool | isPlanned () const noexcept |
| | Check if the plan is fully planned and ready for execution.
|
| |
| | FFT (const FFT &)=delete |
| |
| FFT & | operator= (const FFT &)=delete |
| |
Manages plan lifetime automatically. User owns data and work buffers.
- Note
- Typical usage flow:
- Call configurationND() to compute decomposition parameters
- Construct FFTND and call init() with the computed parameters
- Allocate buffers using allocSize() and call setBuffers()
- Call plan() to create backend FFT plans
- Call execute() for forward/backward transforms
- Call normalize() after a forward-backward pair to restore scale
- Examples
- example.cpp, example_portable.cpp, and example_portable_config.cpp.