Purpose: Decompose a DFT of length with into transforms of length and transforms of length — with no twiddle factors at all. Also called the prime-factor algorithm (PFA).

The Idea

Cooley-Tukey also splits , but the two sub-transforms are joined by twiddle factors — extra complex multiplications. Good-Thomas eliminates them entirely by choosing a smarter index map, available only when the factors are coprime.

Use the Chinese Remainder Theorem to re-index:

With the CRT map applied to the input index and the Ruritanian (CRT-weighted) map to the output index, the kernel factorises cleanly:

with no cross terms. So the 1-D DFT of length literally becomes a 2-D DFT on an grid: transform every row, then every column. Done.

Algorithm

  1. Reshape the input into an array using the CRT index map.
  2. Apply length- DFTs down the columns.
  3. Apply length- DFTs across the rows.
  4. Read the output back out with the inverse index map.

Complexity

  • Multiplications: strictly fewer than Cooley-Tukey — the twiddle stage is gone
  • Time: overall when applied recursively
  • The index permutations are the price, and they are cache-unfriendly

Where it is used

Good-Thomas is a real component of production FFT libraries. FFTW’s planner combines:

  • Good-Thomas for coprime factors (no twiddles),
  • Cooley-Tukey for non-coprime factors (twiddles required),
  • Rader for prime factors,
  • Bluestein as the general fallback,
  • hard-coded straight-line “codelets” for small sizes.

This is why FFTW is fast at lengths like that a naive radix-2 implementation would have to pad to 1024.

The takeaway idea

The reusable lesson is the CRT index map: when a problem has a size that factors into coprime parts, the CRT often lets you treat a 1-D problem as an independent multi-dimensional one, with no interaction terms. The same move appears in:

  • CRT for splitting modular arithmetic into independent prime-power components;
  • counting problems over that factor into independent counts over each ;
  • multiplicative function computation, where .

Variants / Use Cases

  • Cooley-Tukey — the general (non-coprime) decomposition
  • Chinese Remainder Theorem — the index map
  • FFT and NTT — the topic page
  • Winograd FFT — pushes the multiplication count even lower using minimal-multiplication convolution algorithms for small sizes