Expand description
Dispatch-layer codelet generation for arbitrary user-specified sizes.
Routes a user-specified FFT size N to the most appropriate code emitter:
- Direct codelet set {2, 4, 8, 16, 32, 64}:
delegates to the existing hand-optimised emitters (
gen_notw). - Winograd odd {3, 5, 7}: delegates to
gen_odd. - Rader hardcoded {11, 13}: delegates to
gen_rader. - Smooth-7 composites (all prime factors in {2, 3, 5, 7}):
emits a thin runtime wrapper that delegates to
Plan::dft_1d. - Primes p <= 1021: runtime wrapper (runtime Rader/Generic path).
- Everything else (large primes, non-smooth composites):
emits a Bluestein runtime wrapper via
Plan::dft_1d.
§Codelet convention
All generated functions follow the existing OxiFFT codelet convention:
ⓘ
pub fn codelet_any_{N}<T: crate::kernel::Float>(
x: &mut [crate::kernel::Complex<T>],
sign: i32,
)where sign < 0 means forward (W = e^{-2pii/N}) and sign > 0 means inverse.
See Plan::dft_1d in the oxifft crate for the primary entry point.
Structs§
- Codelet
Builder - Builder for programmatic codelet generation without proc-macros.
Enums§
- Codegen
Error - Error variants produced during any-size codelet generation.
- Size
Class - Classification of an FFT size for codelet routing.
Functions§
- classify
- Classify
nfor codelet generation. - generate
- Generate a codelet
TokenStreamfor sizen. - generate_
from_ macro - Parse
gen_any_codelet!(N)input and dispatch.