The easiest class group in the subject, and still not easy
Imaginary quadratic fields have unit rank 0, so the regulator is trivial and the class number stands alone — the only setting in the subject where it can be computed without simultaneously computing a unit group. Enumerating reduced forms is exact and costs about √|D|; the analytic formula is much faster but delivers a real number that must be rounded, so it needs an error bound. Beyond about 20 digits, only sub-exponential methods remain.
Learning objectives
- Count class numbers by enumerating reduced forms.
- Apply the analytic class number formula with a controlled error bound.
- Choose a method appropriate to the size of the discriminant.
- State the Gauss class number problem and its resolution.
Section 01Counting reduced forms
Every class contains exactly one reduced form, and a reduced form satisfies |b| ≤ a ≤ c with a ≤ √(|D|/3). Enumeration is therefore a finite double loop.
- Set h ← 0. For b from 0 (or 1) to √(|D|/3), matching the parity of D:
- Set q ← (b2 − D)/4. This must be a positive integer; the parity condition guarantees it.
- For each divisor a of q with b ≤ a ≤ √q:
- Set c ← q/a. If gcd(a, b, c) ≠ 1, skip — the form is imprimitive.
- Increment h by 1, or by 2 if 0 < b < a < c (counting the form with −b).
- Return h.
Enumeration produces every reduced form, so composing them reveals the group structure, not merely the order. That is more information than the analytic method provides, and it is often what is actually wanted.
Section 02The analytic formula
For D < −4 the class number is given by
with w the number of roots of unity (2 except for D = −3, −4) and χD the Kronecker character. The L-value is computed from a rapidly convergent series, and the result is rounded to the nearest integer.
The formula gives a real number. Rounding it is valid only if the truncation error is provably below 1/2 — and for large |D| that requires many terms. Unconditional error bounds are weak; under GRH far fewer terms suffice. A class number obtained this way inherits whatever conditionality its error bound carries.
| Range of |D| | Method | Character |
|---|---|---|
| Up to about 108 | Enumeration of reduced forms | Exact, unconditional, also gives structure |
| Up to about 1016 | Analytic formula with error bound | Fast; conditional if a GRH bound is used |
| Up to about 1020 | Shanks baby-step giant-step | O(|D|1/4); gives the group structure |
| Beyond | Sub-exponential (McCurley, Buchmann) | L[1/2] complexity; conditional on GRH |
Section 03The Gauss class number problem
Gauss conjectured that h(D) → ∞ as D → −∞, and asked for the complete list of discriminants with each small class number. The case h = 1 has exactly nine solutions.
- 1934Heilbronn and LinfootProved h(D) → ∞, and that at most one further discriminant with h = 1 could exist beyond the nine known — an ineffective result, giving no bound on where it might be.
- 1952 / 1967Heegner, Baker and StarkThe class number one problem resolved: exactly nine discriminants, −3, −4, −7, −8, −11, −19, −43, −67, −163.
- 1980sGoldfeld, Gross and ZagierAn effective lower bound for h(D), via the arithmetic of elliptic curves — making complete determination for small h a finite computation.
- 1990s onwardComplete lists for small hThe full lists for each small class number were established computationally on the back of the effective bound.
Because h(−163) = 1, the value exp(π√163) is within 10−12 of an integer. This is not a numerical accident but a consequence of complex multiplication: the j-invariant of the corresponding curve is a rational integer exactly because the class number is 1.
ReferenceFrequently asked questions
Why is the imaginary case easier than the real case?
Because the unit group is finite, so the regulator is 1 and the class number is isolated. In the real case the analytic formula constrains only the product hR, so neither can be determined without the other.
How accurate must the L-value be?
Accurate enough that the error is provably below one half after multiplication by the prefactor. Since the prefactor grows like √|D|, the required relative accuracy in the L-value tightens as |D| grows.
Does enumeration give the group structure directly?
It gives every element, so composing them determines the structure. In practice one composes reduced forms to find element orders and assembles the abelian group from those — more work than counting, but the same enumeration underlies both.
NavigateContinue in this stream
Curated next steps from this page. The site also surfaces algorithmically related reading below.
ProvenanceSources and further reading
This page is an original KEVOS explanatory article. It presents the underlying mathematics — definitions, algorithms, complexity results and selection criteria — in KEVOS editorial voice. No text is reproduced from any copyrighted source. Where numerical tables are relevant, KEVOS links to live authoritative databases rather than republishing static values.
