Multiplying Faster Than n log n

The school method multiplies each digit of one number by each digit of the other. With n digits in each number, that is n×n=n2 small products. For two numbers with a billion digits, it is 1018 small products.

Faster methods cut the numbers into short pieces and mix the pieces in rounds. This mixing, a Fourier transform, turns one long multiplication into many short ones. Most of its work is one action, called a butterfly. A butterfly takes two numbers a and b, and it gives a+b and a−b. A list of 8 pieces takes 3 rounds of 4 butterflies, so 12 in all.

Round 1Round 2Round 33141592681067−2−82−51417230−13−4−331−35−1−1313−7−1
Here the pieces are the digits of 31,415,926. The marked butterfly turns 3 and 5 into 8 and −2.

Each time the list doubles, it needs one more round. So n digits need about log⁡n rounds. Here log⁡n, the logarithm of n, counts how many times you must double 1 to reach n. So log⁡8=3 and log⁡1,024=10, and the logarithm of a billion is about 30.

Each round passes over all n digits, so the method takes about nlog⁡n steps. With a billion digits, that is about 30 billion steps. A count like this leaves out a fixed multiplier.

A step here is one move of a Turing machine, a simple model of a computer. It has a fixed number of long tapes. Each move reads and writes one symbol on each tape, and it shifts each tape by at most one place. So moving data also costs steps.

In 1971, Arnold Schönhage and Volker Strassen proposed that nlog⁡n is the limit for such a machine. David Harvey and Joris van der Hoeven reached this count in 2019, and Harvey wrote that the limit had seemed like a law of physics.

A paper from OpenAI, produced by an unreleased AI model, reports a method below that limit. It takes about n(log⁡n)1−κ steps, where κ, the Greek letter kappa, is a fixed number above 0. It always gives the exact product, on one fixed Turing machine, for every n. Harvey calls the claim plausible, without having checked most of the details.

A power does not have to be a whole number, and the usual rule still holds: x1−κ=x÷xκ. So the new count is nlog⁡n divided by (log⁡n)κ. For example, if κ were 1/4 and log⁡n were 16, the divisor would be 161/4=2. As n grows, the divisor grows without limit, so it eventually beats any fixed multiplier. That is what below nlog⁡n means.

The real κ is far smaller. A public project reports a complete proof in Lean, a computer program that checks each step of a proof. It covers the project's own version of the method. Community work reaches a larger κ, but it relies on 5 assumptions. In each case, the divisor reaches 2 only when log⁡n=21/κ.

Sourceκlog⁡n for a divisor of 2
OpenAI paper2−18222182
Lean proofabout 0.00006about 216,665
Community workabout 0.0031about 2320

The observable universe has only about 2266 atoms, so no computer could hold numbers with so many digits. The paper also says that its fixed multiplier is extremely large. So this is not a faster way to multiply on a real computer. What changes is the theory: nlog⁡n is not the limit.

The new idea is to work on many lists at once. Done one by one, 14,336 lists of 273 pieces need 73 rounds each, or 1,046,528 rounds in all. One network adds lists to each other between rounds, and it needs only 1,041,408, or about 72.64 for each list. A block of rounds is a smaller copy of the same task, so the network can run inside itself. With enough levels, r rounds shrink to about r0.9989, and r is about log⁡n. Other parts of the method save less, such as moving data along the tapes, so the final κ is smaller.