Unlike the BLAS-style modules, FFT shapes are row-major (cuFFT convention): in a shape such as [batch, n] the last axis is contiguous in memory. axes selects the dimensions to transform; they must be ascending, contiguous and include the first or last dimension. Transforming a leading axis (for example shape [8, 3], axes [0]) uses a strided layout. For R2C the shape is the real input; for C2R it is the real output, and the half-spectrum has n/2 + 1 bins along the last transformed axis.
Output scaling: None (cuFFT behaviour), Backward (1/N on inverse), Forward (1/N on forward), Orthonormal (1/√N on both). R2C counts as forward and C2R as inverse.
Fft (class)
Stateful cuFFT plan wrapper. Implements IAsyncDisposable, IDisposable.
Creates a plan descriptor. axes selects which dimensions to transform (null = all); they must be ascending, contiguous and include the first or last dimension (negative values allowed). Batched trailing- and leading-axis layouts are supported.
Task PlanAsync(CancellationToken ct = default)
Builds the cuFFT plan.
void Plan()
Synchronous plan creation.
Task ExecuteAsync(FftDirection direction = Forward, CancellationToken ct = default)