From Circles to Ellipses

Pythagorean Triples via Rational Points on Conics

The Classical Picture: Gaussian Integers

The Pythagorean equation x² + y² = z² is intimately connected to the geometry of the unit circle. Finding integer solutions is equivalent to finding rational points on X² + Y² = 1.

The key insight: draw lines through the rational point (−1, 0) with rational slope t = q/p. Each such line intersects the circle at exactly one other rational point, yielding a Pythagorean triple.

Line: Y = t(X + 1)   ⟹   (X, Y) = ((1 − t²)/(1 + t²), 2t/(1 + t²))

Setting t = q/p and clearing denominators gives the classical parametrisation:

(a, b, c) = (|p² − q²|, 2pq, p² + q²)

Where the 3 Comes From

The Eisenstein norm form x² − xy + y² looks unfamiliar next to the Gaussian x² + y². But one line of algebra reveals them as the same object — with a single coefficient changed. Complete the square in x:

1
x² − xy + y²  =  (x − y/2)² + y² − y²/4
complete the square on x
2
=  (x − y/2)²  +  3y²/4
the 3 appears
3
=  (x − y/2)²  +  (√3 · y/2)²
a sum of two squares — just like the Gaussian norm

So x² − xy + y² is a sum of two squares: it's U² + V² where U = x − y/2 and V = √3 · y/2. The Eisenstein norm is the Gaussian norm, viewed through coordinates that stretch one axis by √3.

This is why the unit curve x² − xy + y² = 1 is an ellipse rather than a circle: the √3 compresses the y-direction relative to the x-direction. The eccentricity of the ellipse (≈ 0.816) is determined entirely by this factor.

U² + V² = 1
U² + 3V² = 1

Now homogenise: set U = X/Z, V = Y/Z, and clear denominators. The unit curve U² + 3V² = 1 becomes

Gaussian Pythagorean:  X² + Y² = Z²
Eisenstein Pythagorean:  X² + 3Y² = Z²

That single 3 is the entire difference between Gaussian and Eisenstein arithmetic, made visible. It is the discriminant of the ring ℤ[ω], the factor that determines which primes split and which remain inert, and geometrically it is the ratio of the eigenvalues of the Eisenstein quadratic form.

The dictionary. Every fact about Pythagorean triples has an Eisenstein analogue, obtained by replacing "+ Y²" with "+ 3Y²":
 
Gaussian (circle)
Eisenstein (ellipse)
Ring
ℤ[i],  i² = −1
ℤ[ω],  ω² + ω + 1 = 0
Norm form
x² + y²
x² − xy + y²
Completed square
U² + V²
U² + 3
Unit curve
circle (e = 0)
ellipse (e = √(2/3))
Pythagorean equation
X² + Y² = Z²
X² + 3Y² = Z²
Discriminant
−4  (≡ 1 governs splitting)
3  (≡ 1 governs splitting)
Primes that split
p ≡ 1 (mod 4)
p ≡ 1 (mod 3)
Base point
(−1, 0) on the circle
(−1, 0) on the ellipse
Parametrisation
(p²−q², 2pq, p²+q²)
(m²−n², n(2m−n), m²−mn+n²)

The passage from Gaussian to Eisenstein is not a different kind of mathematics — it is the same structure with a different discriminant. The 3 is not a curiosity; it is the organising constant of the entire theory.

Gaussian: The Unit Circle

X² + Y² = 1
t = 1/2
Triple: (3, 4, 5)
Eccentricity: e = 0 (circle)
Curve: X² + Y² = 1
Matrix: I = diag(1, 1)

Eisenstein: The Unit Ellipse

X² − XY + Y² = 1
t = 1/3
Triple: (8, 5, 7) — Canonical
Eccentricity: e = √(2/3) ≈ 0.816
Curve: X² − XY + Y² = 1
Matrix: E = [[1, −½], [−½, 1]]

The Eccentricity of the Eisenstein Ellipse

The quadratic form X² − XY + Y² = 1 can be written in matrix form as:

(X, Y) · E · (X, Y)ᵀ = 1,   where E = ⎛1   −½⎞
⎝−½   1⎠

The eigenvalues of E are λ₁ = 1/2 and λ₂ = 3/2, giving semi-axes a = √2 (along λ₁) and b = √(2/3) (along λ₂).

The eccentricity is:

e = √(1 − b²/a²) = √(1 − (2/3)/2) = √(1 − 1/3) = √(2/3) ≈ 0.8165

This is a fairly eccentric ellipse — closer to a parabola (e = 1) than to a circle (e = 0). Notice that the eigenvalue ratio is exactly 3 — the same 3 from the completed square.

The Pencil of Lines and Triple Classification

Lines through (−1, 0) with slope t = n/m intersect the Eisenstein ellipse at rational points corresponding to E-P triples.

Y = t(X + 1)   ⟹   (X, Y) = ((1 − t²)/(1 − t + t²), t(2 − t)/(1 − t + t²))

Setting t = n/m with gcd(m, n) = 1 yields:

(a, b, c) = (m² − n², n(2m − n), m² − mn + n²)
The Three-Way Classification: The boundary t = 1/2 (i.e., m = 2n) forces m + n ≡ 0 (mod 3), so no self-conjugate primitive triple exists.

Interactive Explorer

Base point (−1, 0)
Canonical (a > b)
Conjugate (a < b)
Non-primitive
Current line
t = 1/2 boundary
(m, n) = (7, 3) → t = 3/7 ≈ 0.429
Triple: (40, 33, 37) — Canonical primitive

Sample Triples by Slope

m n t = n/m a b c Classification