Big Omicron and Big Omega and Big Theta

Donald Knuth's 1976 note formalizes the O, Omega, and Theta vocabulary adopted in computer science, argues for one-way set semantics, and records notation history, while its proposed little-omega wording needs modern qualification.

paper Big Omicron and Big Omega and Big Theta Knuth, Donald E. · 1976 originalarchived pdf

Donald Knuth's short 1976 note is a primary source for the OO, Ω\Omega, and Θ\Theta notation adopted by computer scientists. Its enduring contribution is not merely three symbols: it treats each asymptotic expression as a class of functions, distinguishes upper, lower, and two-sided eventual bounds, and explains why the conventional equals sign is directional rather than ordinary equality.

The complete seven-page scan was read and visually inspected. It is the original ACM SIGACT News article, volume 8, issue 2, April-June 1976, printed pages 18-24. The archived PDF has SHA-256 b423bfd61a4a702ed33f5441ad4d97ddb4fdaadbf7e65651a111173b1df677c6. Its source-supplied OCR corrupts Ω\Omega, Θ\Theta, and several inequality signs, so all load-bearing mathematics was checked against the 300 dpi page images.

What the paper contributes #

  • Physical pages 1-2 motivate an asymptotic upper bound and review the historical use of OO, oo, and Ω\Omega.
  • Physical page 2 gives eventual witness-style definitions for OO, Ω\Omega, and Θ\Theta.
  • Physical pages 2-3 treat O(g)O(g), Ω(g)\Omega(g), and Θ(g)\Theta(g) as sets of functions and explain the directional semantics of formulas that use an equals sign.
  • Physical pages 3-5 show how asymptotic classes participate in larger algebraic expressions and how oscillatory functions can defeat a naive total ordering by growth.
  • Physical pages 4-6 compare alternative relational notations and conclude with the proposal to standardize OO, Ω\Omega, and Θ\Theta for computer science.

Source claims audit #

Source claim or framing Verdict GTK treatment
O(g)O(g) is an eventual upper-bound class current State the nonnegative cost-function definition with explicit cc and n0n_0
Ω(g)\Omega(g) is the corresponding lower-bound class in computer science current under Knuth's convention Name the convention because analytic number theory also uses Hardy-Littlewood Ω\Omega
Θ(g)\Theta(g) captures matching upper and lower constant-factor bounds current Define it as membership in both O(g)O(g) and Ω(g)\Omega(g)
An expression such as f=O(g)f=O(g) is a one-way equality historically current but easy to misuse Prefer f∈O(g)f\in O(g) for definitions; retain conventional equality only where its directional semantics are clear
The ratio-based sentence proposed for little omega means the modern strict lower order too weak as written Use ∀c>0 ∃n0 ∀n≥n0\forall c>0\,\exists n_0\,\forall n\ge n_0 or a ratio tending to infinity, not merely an unbounded ratio
The displayed one-sided Ω\Omega and Θ\Theta definitions need no sign convention implicit assumption Restrict the algorithms chapter to eventually nonnegative cost functions
Historical priority follows from this paper alone secondary historical report Use the paper as primary evidence for Knuth's proposal, not as proof of Bachmann, Landau, or Hardy-Littlewood priority

Visual audit #

There are no plots, diagrams, charts, tables, mechanisms, or photographs. Five groups of displayed formulas are information-bearing, but native mathematics is clearer than a raster excerpt and preserves accessible notation. No source visual is retained.

The seventh physical page is mixed content: its upper portion finishes Knuth's references, while a separate Dana Angluin letter begins below an asterisk divider. The full page was read for document completeness; the unrelated letter is excluded from the claim set.

Editorial role #

GTK cites this paper for the computer-science adoption and set semantics of OO, Ω\Omega, and Θ\Theta. Modern strict oo and ω\omega definitions come from current mathematical and algorithms sources, not from the paper's informal little-omega proposal.

Searches titles, aliases, headings, summaries, and full text.↑↓ move ↵ open esc close