|
| | FFT1D () noexcept=default |
| | Default constructor (uninitialized).
|
| |
| | ~FFT1D () noexcept override |
| | Destructor.
|
| |
| void | release () noexcept override |
| | Release all internal resources.
|
| |
| | FFT1D (FFT1D &&other) noexcept |
| | Move constructor.
|
| |
| FFT1D & | operator= (FFT1D &&other) noexcept |
| | Move assignment operator.
|
| |
| | FFT1D (const FFT1D &)=delete |
| |
| FFT1D & | operator= (const FFT1D &)=delete |
| |
| int | init (size_t globalN, size_t localN, size_t localStart, FFTType precision, MPI_Comm comm) noexcept |
| | Initialize plan.
|
| |
| 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 |
| | Retrieve current buffer pointers (double precision).
|
| |
| int | execute (FFTDirection direction) noexcept override |
| | Execute the transform.
|
| |
| int | normalize () noexcept override |
| | Apply symmetric normalization (1/sqrt(N) per transform).
|
| |
| std::vector< size_t > | globalShape () const noexcept |
| | Get global shape as length-1 vector.
|
| |
| size_t | globalSize () const noexcept override |
| | Get global FFT size.
|
| |
| int | ndim () const noexcept override |
| | Get number of dimensions (always 1).
|
| |
| FFTType | fftType () const noexcept override |
| | Get FFT precision (C2C or Z2Z).
|
| |
| size_t | localSize () const noexcept |
| | Get local element count (before padding).
|
| |
| size_t | allocSize () const noexcept override |
| | Get required buffer size in complex elements.
|
| |
| int | getLayout (std::vector< size_t > &localShape, std::vector< size_t > &offset, TensorLayout layout=TensorLayout::CURRENT) const noexcept |
| | Query local 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_1d_config_t &cfg) noexcept |
| | Initialize plan from a resolved 1-D 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 |
| |
Uses block distribution: rank r owns [localStart, localStart + localN). allocSize() may exceed localN due to padding.
- Note
- Typical usage flow:
- Call configuration1D() to compute local layout
- Construct FFT1D 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_FFT1D.cpp.