Purpose: Multiply two -bit integers in — the first improvement on Schönhage-Strassen after 36 years (Martin Fürer, 2007).
The Idea
Schönhage-Strassen works in , where roots of unity are powers of 2 and twiddle multiplications are free shifts — but only of them exist, which forces the recursion to shrink block sizes by a square root each level, costing the factor.
Fürer works instead in a ring
that contains both:
- a small set of “fast” roots of unity (powers of , so multiplying by them is a cyclic shift — free), and
- a large set of ordinary roots of unity (which cost real multiplications).
The FFT is then arranged so that most levels use the fast roots and only levels need the expensive ones. That is where the iterated logarithm comes from.
Complexity
Since for every below , the factor is a constant for all practical purposes — but a constant nobody has ever measured, because the algorithm has never been implemented competitively.
A galactic algorithm
Fürer’s is the textbook example of a galactic algorithm: asymptotically superior, but only for inputs larger than anything that will ever exist. Estimates put the crossover with Schönhage-Strassen far beyond the number of atoms in the observable universe.
The others in this category worth recognising:
| Algorithm | Beats the practical option above | Practical? |
|---|---|---|
| Fürer multiplication | astronomically large | no |
| Harvey-van der Hoeven | no | |
| Coppersmith-Winograd matrix multiply | enormous matrices | no |
| Pettie-Ramachandran MST | — | no (unanalysable) |
| Chen et al. max flow | — | not yet |
| AKS primality | never | no |
Why it matters anyway
The 2019 Harvey-van der Hoeven algorithm — which matches the conjectured lower bound — built directly on Fürer’s technique of mixing cheap and expensive roots of unity. Fürer’s paper broke a 36-year barrier and showed the was not intrinsic; that opened the door.
For a competitive programmer the lesson is a healthy one: asymptotic complexity is not running time. The Schönhage-Strassen and the Toom-3 both beat “faster” algorithms across every input size you will meet.
Variants / Use Cases
- Schönhage-Strassen — what production libraries use
- Big Integer Multiplication — the topic page
- Complexity Theory — asymptotics versus practice