Skip to main content

Module gen_rader

Module gen_rader 

Source
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-2

where:

  • 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 TokenStream for the given prime ∈ {11, 13}.
is_primitive_root
Check whether g is a primitive root mod p (p must be prime).