Expand description
Rader prime codelet generation for primes 11 and 13.
Rader’s algorithm reduces a prime-length DFT to a cyclic convolution. For prime p with generator g of (ℤ/pℤ)*:
X[0] = Σ_{n=0}^{p-1} x[n]
X[g^b] = x[0] + (A * B)[b] for b = 0..p-2where:
A[c] = x[g^{-c} mod p](input permuted by inverse generator powers)B[m] = e^{sign·2πi·g^m/p}(precomputed twiddles — hardcoded at codegen time)*denotes cyclic convolution of length (p-1)
The cyclic convolution is expanded as straight-line code (no sub-FFT calls),
consistent with the gen_odd.rs Winograd codelet pattern.
§DFT Convention
Forward DFT: sign < 0, W = e^{-2πi/p}
Inverse DFT: sign > 0, W = e^{+2πi/p} (unnormalized)
Functions§
- find_
generator - Find the smallest primitive root of prime p.
- generate_
from_ macro - Parse
gen_rader_codelet!(N)input and dispatch. - generate_
rader - Generate a Rader-form codelet
TokenStreamfor the given prime ∈ {11, 13}. - is_
primitive_ root - Check whether g is a primitive root mod p (p must be prime).