Charles Babbage's Difference Engine (design finalised 1849) computes values of a polynomial using only repeated addition — no multiplication or division gearing at all, once it is set up. It exploits the method of finite differences: for a polynomial f(n) of degree d, the d-th forward difference is a constant.
Δf(n) = f(n+1) − f(n)
Δ²f(n) = Δf(n+1) − Δf(n)
Δ³f(n) = Δ²f(n+1) − Δ²f(n) ← constant, for a cubic f
Once the engine's digit-wheel registers are cranked into their starting values f(0), Δf(0), Δ²f(0), Δ³f(0), every later value is produced by the "table of differences" update, applied from the bottom register upward on each turn of the crank:
f(n+1) = f(n) + Δf(n)
Δf(n+1) = Δf(n) + Δ²f(n)
Δ²f(n+1) = Δ²f(n) + Δ³f(n)
Δ³f(n+1) = Δ³f(n) (unchanged — it is the constant)
- a, b, c, d sliders — set the coefficients of f(n); the engine re-derives the four starting register values from them and resets to n = 0.
- Turn crank — applies one step of the addition chain above; every decimal digit wheel rotates to its new digit, exactly like the real mechanism's carry-propagating gear trains.
- Auto-crank — turns the crank continuously at the chosen rate, the way a steam or hand-driven engine would run a printed table.
- "Multiplications used" stays at 0 forever — that is the entire point of the design: a polynomial table of any length is produced from a handful of additions per row, which is why it was mechanically buildable with 1840s precision engineering.
Babbage's actual Difference Engine No. 2 carried 31-digit registers across 7 orders of difference; this model uses 4 registers of 6 digits and up to the 3rd difference, enough to reproduce the same principle exactly.