One-sided spectral convolution #
Both execution paths use the same weights, indexed by [frequency, input channel, output channel].
Only the stored nonnegative frequencies are learned. The normalized inverse supplies the conjugate
negative frequencies and ignores imaginary DC and Nyquist coordinates.
Keeping the dense path explicit makes comparisons meaningful: changing SpectralPath changes the
implementation, while preserving the parameters, activation, and function being differentiated.
Restore discarded frequencies as zeros before the inverse transform.
Instances For
Dense reference for the cuFFT spectral primitive, with exactly the same weight layout.
The four real matrix products implement ordinary complex multiplication, without conjugating the weight. Padding occurs after that multiplication, so discarded frequencies have no parameters.
Instances For
Apply learned channel maps to the first modes nonnegative Fourier bins.
Inputs and outputs have shape [grid, width]; real and imaginary weights both have shape
[modes, width, width]. denseReference and automatic can share a checkpoint directly.
The arbitrary-rank full-DFT FNO uses a different parameterization and cannot share these weights.