Expand description
Core planner and data structures.
This module contains the fundamental types and traits that power OxiFFT:
Floattrait for generic floating-point operationsComplex<T>for complex numbersTensorandIoDimfor N-dimensional data representationProblem,Plan, andSolvertrait hierarchies- The
Plannerthat orchestrates algorithm selection
Structs§
- Complex
- A complex number with real and imaginary parts.
- IoDim
- Dimension specification with separate input and output strides.
- OpCount
- Operation count for cost estimation.
- Planner
- Main planner for FFT transforms.
- Planner
Flags - Planning flags that control algorithm selection.
- Problem
Hash - Hash a problem for wisdom lookup.
- Tensor
- N-dimensional tensor representation.
- Trig
Table - Precomputed trigonometric table.
- Twiddle
Cache - Cache for twiddle factors.
- Twiddle
Key - Cache key for a global twiddle table.
- Twiddle
Table - A precomputed table of twiddle factors.
- Twiddle
Table SoA - Struct-of-Arrays twiddle table: separate
reandimvectors. - Wisdom
Entry - Wisdom entry for plan caching.
Enums§
- Problem
Kind - Problem kind identifier.
- Solver
Choice - Solver selection strategy.
- Twiddle
Direction - Direction for twiddle factor computation.
- Wake
Mode - Wake mode for plan initialization.
- Wake
State - Wake state of a plan.
Traits§
- Float
- Trait for floating-point types supported by OxiFFT.
- Plan
- Base trait for all FFT plans.
- Problem
- Base trait for all FFT problems.
- Solver
- Solver creates plans for specific problem types.
Functions§
- clear_
twiddle_ cache - Clear the global twiddle cache, forcing recomputation on next access.
- factor
- Factor a number into primes.
- get_
twiddle_ table_ f32 - Get or compute twiddle factors for the given size and direction (f32).
- get_
twiddle_ table_ f64 - Get or compute twiddle factors for the given size and direction (f64).
- get_
twiddle_ table_ soa_ f32 - Get or compute the SoA twiddle table for the given size and direction (f32).
- get_
twiddle_ table_ soa_ f64 - Get or compute the SoA twiddle table for the given size and direction (f64).
- is_
prime - Check if a number is prime.
- mod_pow
- Modular exponentiation: base^exp mod modulus.
- primitive_
root - Compute the smallest primitive root modulo p (p must be prime).
- twiddle_
mul_ scalar_ f32 - Scalar fallback:
data[i] *= twiddles[i]with no SIMD. - twiddle_
mul_ scalar_ f64 - Scalar fallback:
data[i] *= twiddles[i]with no SIMD. - twiddle_
mul_ simd_ f32 - Apply twiddle factors to
datain-place:data[i] *= twiddles[i]. - twiddle_
mul_ simd_ f64 - Apply twiddle factors to
datain-place:data[i] *= twiddles[i]. - twiddle_
mul_ soa_ scalar_ f32 - Scalar SoA fallback for f32.
- twiddle_
mul_ soa_ scalar_ f64 - Scalar SoA fallback:
data[i] *= Complex { re: twiddle_re[i], im: twiddle_im[i] }. - twiddle_
mul_ soa_ simd_ f32 - Apply SoA twiddle factors to
datain-place (f32). - twiddle_
mul_ soa_ simd_ f64 - Apply twiddle factors from separate
twiddle_re/twiddle_imSoA arrays todatain-place. - twiddles_
mixed_ radix - Generate per-stage twiddle factor tables for a mixed-radix DIT FFT.
- twiddles_
mixed_ radix_ f32 - Generate per-stage twiddle factor tables for a mixed-radix DIT FFT (f32 variant).