Skip to main content

Crate oxifft_codegen

Crate oxifft_codegen 

Source
Expand description

OxiFFT Codelet Generator

This proc-macro crate generates optimized FFT codelets at compile time. It replaces FFTW’s OCaml-based genfft with Rust procedural macros.

§Overview

Codelets are highly optimized kernels for small FFT sizes (2-64). They are generated at compile time with:

  • Common subexpression elimination
  • Strength reduction
  • Optimal instruction ordering
  • SIMD-aware code patterns

§Usage

use oxifft_codegen::gen_dft_codelet;

// Generate size-8 DFT codelet
gen_dft_codelet!(8);

Macros§

gen_any_codelet
Generate a complete FFT codelet for any user-specified size N.
gen_dft_codelet
Convenience macro to generate all codelets for a size.
gen_dispatcher_codelet
Generate a cached ISA runtime dispatcher for a SIMD codelet.
gen_multi_transform_codelet
Generate a vectorized multi-transform codelet.
gen_notw_codelet
Generate a non-twiddle (base case) DFT codelet.
gen_odd_codelet
Generate an odd-size (3, 5, 7) DFT codelet using Winograd minimum-multiply factorization.
gen_rader_codelet
Generate a Rader prime DFT codelet for primes 11 and 13.
gen_rdft_codelet
Generate a real-to-half-complex (R2HC) or half-complex-to-real (HC2R) codelet.
gen_simd_codelet
Generate a SIMD-optimized codelet.
gen_split_radix_twiddle_codelet
Generate a split-radix twiddle codelet.
gen_twiddle_codelet
Generate a twiddle-factor DFT codelet.