Skip to main content

Module kernel

Module kernel 

Source
Expand description

Core planner and data structures.

This module contains the fundamental types and traits that power OxiFFT:

  • Float trait for generic floating-point operations
  • Complex<T> for complex numbers
  • Tensor and IoDim for N-dimensional data representation
  • Problem, Plan, and Solver trait hierarchies
  • The Planner that 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.
PlannerFlags
Planning flags that control algorithm selection.
ProblemHash
Hash a problem for wisdom lookup.
Tensor
N-dimensional tensor representation.
TrigTable
Precomputed trigonometric table.
TwiddleCache
Cache for twiddle factors.
TwiddleKey
Cache key for a global twiddle table.
TwiddleTable
A precomputed table of twiddle factors.
TwiddleTableSoA
Struct-of-Arrays twiddle table: separate re and im vectors.
WisdomEntry
Wisdom entry for plan caching.

Enums§

ProblemKind
Problem kind identifier.
SolverChoice
Solver selection strategy.
TwiddleDirection
Direction for twiddle factor computation.
WakeMode
Wake mode for plan initialization.
WakeState
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 data in-place: data[i] *= twiddles[i].
twiddle_mul_simd_f64
Apply twiddle factors to data in-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 data in-place (f32).
twiddle_mul_soa_simd_f64
Apply twiddle factors from separate twiddle_re/twiddle_im SoA arrays to data in-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).