The Math Forum

Ask Dr. Math - Questions and Answers from our Archives
Associated Topics || Dr. Math Home || Search Dr. Math

Genus of a Plane Curve

Date: 05/04/2007 at 12:20:03
From: Jaakko
Subject: Genus of Curves

How one can determine the genus of a given curve F(X,Y) in

Date: 05/12/2007 at 13:13:00
From: Doctor Vogler
Subject: Re: Genus of Elliptic Curves

Hi Jaakko,

Thanks for writing to Dr. Math.  That is a very good question!  I
spent a long time trying to find the answer to this question. 
Computing the genus of a curve defined by one equation is a
straight-forward process (and some math programs will do it for you,
such as Magma), but I found it especially difficult to find this
process described completely anywhere.  Most of this comes from
Walker's book "Algebraic Curves."

Suppose you have a plane curve (let's call it C) defined by one equation

  f(x, y) = 0,

where f(x, y) is a polynomial in two variables (x and y).  Suppose
that the degree of this polynomial is d.  (That is, add up the
exponents of x and y in each term, and take the largest sum.  That's
d.)  Then the genus of C is *at most* (d-1)(d-2)/2.  In fact, the
genus is exactly (d-1)(d-2)/2 if and only if C is nonsingular.

What is a nonsingular curve?  Every curve has finitely many singular
points.  If there are none, then the curve is nonsingular (also called

What is a singular point?  Intuitively, a singular point is where
something "funny" happens on the curve, such as two branches crossing
(y^2 = x^3 + x^2) or a sharp corner (y^2 = x^3).  Mathematically, it
is where you have a simultaneous solution (in any complex numbers, not
just rational numbers) to the three equations

  f(x, y) = 0
  f_x(x, y) = 0
  f_y(x, y) = 0

That is, the polynomial function and its two partial derivatives (with
respect to x and to y) are all zero.  Since there are more equations
in this system than variables, you *usually* have no solutions (in the
sense that most real numbers are not rational, but then most numbers
you encounter in math class are rational).  When you *do* have
solutions, then every such solution is a singular point on your curve.
Not all singular points are rational points.

For example, let's find the singular points on the curve

  x^2*y^2 + 36x + 24y + 108 = 0.

Taking derivatives with respect to x and y, we get the equations

  2xy^2 + 36 = 0
  2yx^2 + 24 = 0,

which means that any singular point (x, y) must satisfy

  xy^2 = -18
  yx^2 = -12
  y = -12/x^2
  x(-12/x^2)^2 = -18
  1/x^3 = -18/12^2
  x^3 = -8.

You might be tempted to conclude that x = -2, but there are actually
three complex solutions to this equation.  But we still need to use
the third equation:

  x^2*y^2 + 36x + 24y + 108 = 0
  x^2*(-12/x^2)^2 + 36x + 24(-12/x^2) + 108 = 0
  144/x^2 + 36x - 288/x^2 + 108 = 0
  36x - 144/x^2 + 108 = 0

And since we already know x^3 = -8, that means that 1/x^2 = -x/8 and

  36x - 144(-x/8) + 108 = 0
  36x + 18x = -108
  x = -108/54 = -2

(of course, this example was carefully crafted to have a rational
singular point), and

  y = -12/x^2 = -12/4 = -3.

And then you should double-check that (-2, -3) does indeed satisfy all
three equations (which it does).

Each singular point reduces the genus (from the starting point of
(d-1)(d-2)/2) by at least 1.  Consequently, for example, if d=3 and
you have a singular point, then the genus must be 0 (because the genus
is never negative).  To determine exactly how much the singular point
reduces the genus, you should compute the multiplicity r of the
singular point.  How do you compute this?  Let (a, b) be your singular
point (and let x, y, and t be variables), and write out the polynomial

  f(a + xt, b + yt)

is a polynomial in t.  The first term (coefficient of t^0) is

  f(a, b)

which is 0 whenever (a, b) is a point on your curve.  The next term
(coefficient of t^1) is

  (f_x(a, b)*x + f_y(a, b)*y)t

which is 0 whenever (a, b) is a singular point on your curve.  The
smallest integer r such that the coefficient of t^r is *not* the zero
polynomial (as a polynomial in x and y) is the multiplicity of the
point (a, b).  So points not on the curve have multiplicity 0,
nonsingular points on the curve have multiplicity 1, and singular
points have multiplicity at least 2.  Each ordinary singular point
reduces the genus by exactly r(r-1)/2.

So what is an ordinary singular point?  Let's look again at the polynomial

  f(a + xt, b + yt).

The coefficient of t^r is a homogeneous polynomial in x and y of
degree r.  (Homogeneous means that *every* term has degree r.)  That
means that you can write this coefficient as


for some polynomial g of degree at most r.  If you think of the
polynomial g(z) as a degree-r polynomial in one complex variable z,
then it has exactly z complex roots, counting multiplicity.  (The
multiplicity of the point at infinity is r minus the actual degree of
g.  Note that you can also switch x and y and get the reverse
polynomial, which changes roots z to roots 1/z, and switches 0 and
infinity.)  Each of these roots z gives you a tangent line to the
curve, namely

  y = z*(x - a) + b

(or the vertical line x = a when z = infinity).  (Note that some
tangent lines might be rational, in the sense that the root z is
rational, but they won't always be.)  The singular point is *ordinary*
if all of these r tangent lines are distinct, that is, if there are no
multiple roots of the polynomial g(z) and its degree is either r or
r-1 (so that infinity is not a multiple root).  Note that you can
check that a polynomial has no multiple roots without computing all of
the complex roots; all you need to do is take the polynomial GCD of
g(z) and its derivative g'(z).  You'll get 1 if there are no multiple

Now let's compute the genus of the curve we described earlier,

  x^2*y^2 + 36x + 24y + 108 = 0,

which we already determined to have exactly one singular point at (-2,
-3).  We look at the polynomial

  f(-2 + xt, -3 + yt)
   = (-2 + xt)^2*(-3 + yt)^2 + 36(-2 + xt) + 24(-3 + yt) + 108
   = (9x^2 + 24xy + 4y^2)t^2 - (6yx^2 + 4xy^2)t^3 + (y^2*x^2)t^4

and we find that the multiplicity is r = 2, since that is the smallest
exponent of t that we see, and the tangent lines are given by the

  g(z) = 9z^2 + 24z + 4,

which is a quadratic with nonzero discriminant, so it has two distinct
roots.  Therefore, the singular point (-2, -3) is ordinary, and since
the degree of the curve is 4, the genus is

  (4-1)(4-2)/2 - 2(2-1)/2 = 2.

So what happens if your singular point is not ordinary?  Well, then
things get a little more complicated.  These will still reduce the
genus by at least r(r-1)/2, and sometimes they will reduce the genus
by more.  I'm not sure if there is a more direct way to compute the
amount by which these points reduce the genus, but one way (described
in Walker) is to transform the curve into another one where the
singular point is ordinary.  Walker describes how to transform the
curve into one with the same genus but with *only* ordinary singular
points.  But you can actually do each singular point separately
instead of all at once, which can keep things manageable when you have
many non-ordinary singular points.  The trick is to keep track of things.

A birational transformation from one curve C to another curve C' is a map

  (x, y) -> (x', y')

from points (x, y) on the curve C to points (x', y') on the curve C',
where x' and y' can each be written as a rational function of x and y
(that is, a polynomial in x and y divided by another polynomial in x
and y), and the inverse map

  (x', y') -> (x, y)

also has the same property, that x and y can each be written as
rational functions of x' and y'.  Such birational maps are nice
because they generally map rational points on one curve to rational
points on the other, but sometimes they do funny things to certain
points (such as where denominators are 0) although only finitely many
such points.  Importantly, not all pairs of curves have birational
maps between them.  In fact, if two curves are birational (there exist
such maps), then the two curves have the same genus.  So if we can
transform our curve to a birational curve with only ordinary singular
points, then we can compute the genus of our original curve by
computing the genus of the other one.  Better yet, by watching where
singular points go, we can compute the contributions of each singular
point individually.

Walker does this using a quadratic transformation of homogeneous
curves, so let's first convert your curve into a homogeneous one.  The

  F(X0, X1, X2) = X0^d * f(X1/X0, X2/X0)

is a degree-d homogeneous polynomial in the three variables X0, X1,
and X2 (sometimes people use z, x, and y, but I won't in order to
avoid confusing by repeating so many variable names), from which you
can get f again by the formula

  f(x, y) = F(1, x, y).

Dealing with your curve in the homogeneous form makes certain concepts
(such as points at infinity) much more natural.  In our case, the
transformation that changes x to 1/x and y to 1/y can be written in
terms of polynomials in the homogeneous (also called projective)
variables by mapping

  X0 -> X2*X1
  X1 -> X2*X0
  X2 -> X1*X0.

This map causes some of those "funny things" to happen in a useful
way, in certain circumstances.  Those circumstances are the following:

  (1) The point that concerns us (generally a non-ordinary singular
      point) is (1, 0, 0) in projective coordinates.
  (2) The points (0, 1, 0) and (0, 0, 1) are not on the curve.
  (3) The line x0 = 0 intersects the curve with no multiple points.
  (4) The lines x1 = 0 and x2 = 0 intersect the curve with no multiple
      points other than (1, 0, 0), which has multiplicity r.

Satisfying all of these conditions, however, only requires a bit of
simple shifting of the curve.  I shall first describe what happens
when these conditions are satisfied, and then I'll show you the kind
of shifting to do using a couple of examples.

Recall that our curve, in projective coordinates, is defined by the
homogeneous polynomial

  F(X0, X1, X2) = X0^d * f(X1/X0, X2/X0).

Now we will define a new function by the formula

  G(Y0, Y1, Y2) = F(Y1*Y2, Y0*Y2, Y0*Y1).

It turns out that conditions (1) and (2) guarantee that this new
homogeneous polynomial is divisible by Y0^r (where r is the
multiplicity of the point (1, 0, 0) on our curve).  The other factor,

  H(Y0, Y1, Y2) = G(Y0, Y1, Y2)/Y0^r

defines a new curve, and this new curve is birational to the first by
the same map, so it has the same genus.  Its degree is 2d-r, which is
generally higher than d (the degree of F), but this new curve split
the singularity (1, 0, 0).  It also gained several new singular
points, namely at (1, 0, 0) and (0, 1, 0) and (0, 0, 1), but
conditions (3) and (4) guarantee that these are ordinary singular
points of multiplicity d, d-r, and d-r, respectively.  Other singular
points map to identical singular points, but the point (1, 0, 0)
splits apart.  Namely, the line Y0 = 0 intersects the curve H(Y0, Y1,
Y2) = 0 in two of the new singular points (0, 1, 0) and (0, 0, 1) and
also in one point for each tangent line (namely (0, 1, z) for the root
z), preserving multiplicity.  These points are what (1, 0, 0) splits
into; it splits into different points for each tangent line.  For a
non-ordinary point (with double tangent lines, for example), some of
the multiplicity of this intersection will be caused by multiplicity
of points on the curve, and some will be caused by the line being
tangent to the curve.  The overall effect is to reduce the number of
non-ordinary singular points on your curve.  You can find proofs for
all of this in Walker's book.

A "random" point will generally not lie on your curve.  Similarly, a
"random" point on your curve will generally not be singular.  In this
sense, conditions (2), (3), and (4) will usually be satisfied for a
"random" curve, but condition (1) will not.  So let's say we have a
(non-ordinary singular) point on our curve (a, b) and we want to move
it to (0, 0).  So we translate the whole curve by (-a, -b) by changing
the defining polynomial f(x, y) to

  f(x + a, y + b).

(The birational maps, between our curve and the translated curve, and
their inverses respectively add and subtract a and b.)  Next, we
homogenize by defining the homogeneous polynomial

  F(X0, X1, X2) = X0^d * f(X1/X0 + a, X2/X0 + b)

which now has the point in question at (1, 0, 0), just like we wanted.
You could also think of doing the homogenizing first, and then
translate the homogenized curve by changing the homogeneous function to

  F2(Z0, Z1, Z2) = F(Z0, Z1 + a*Z0, Z2 + a*Z0).

After doing this, you should check if the other conditions, (2), (3),
and (4), are satisfied already.  If not, then you can cause them to be
so by doing things like switching variables, or adding some multiple
of one variable to another.

Let's do this to the curve

  y^2 = x^3.

If we homogenize, the curve takes the form

  X0*X2^2 = X1^3.

This has a singular point at (1, 0, 0), a non-ordinary double point
whose double tangent is y = 0.  This satisfies condition (1), but the
point (0, 0, 1) is also on the curve, conflicting condition (2), the
line X0 = 0 intersects the curve with a triple point at (0, 0, 1),
conflicting condition (3), and the line X2 = 0 intersects the curve
with a triple point at (1, 0, 0), conflicting condition (4), since the
point (1, 0, 0) has multiplicity 2, not 3.

If we set Z0 = X0 + X2, Z1 = X1, Z2 = X2, (the inverse map is X0 = Z0
- Z2, X1 = Z1, X2 = Z2), then our curve becomes

  (Z0 - Z2)*Z2^2 = Z1^3,

which now satisfies conditions (1), (2), and (3), but still doesn't
satisfy (4).

If we set Z0 = X0 + X2 - X1, Z1 = X1, Z2 = X2 - X1, (the inverse map
is X0 = Z0 - Z2, X1 = Z1, X2 = Z1 + Z2), then our curve becomes

  (Z0 - Z2)*(Z1 + Z2)^2 = Z1^3,

which now satisfies all four conditions.

Then we can transform our curve by replacing Z0 by Y1*Y2, Z1 by Y0*Y2,
and Z2 by Y0*Y1, giving

  G(Y0, Y1, Y2) = (Y1*Y2 - Y0*Y1)*(Y0*Y2 + Y0*Y1)^2 - (Y0*Y2)^3,

which, sure enough, is divisible by Y0^2, and the remaining curve is

  H(Y0, Y1, Y2) = G(Y0, Y1, Y2)/Y0^2
                = Y1*(Y2 - Y0)*(Y2 + Y1)^2 - Y0*Y2^3.

You'll see the double tangent that our singular point had appearing
now as the double intersection of the line Y0 = 0 with our curve at
the point (0, 1, -1), but this is due to the line being tangent there,
because the point (0, 1, -1) is not a singular point on the new curve.
This new curve has degree 4 and has one ordinary singular point at
(1, 0, 0) of multiplicity 3, which means that it has genus

  (4 - 1)(4 - 2)/2 - 3(3 - 1)/2 = 0.

There is also much to be learned about singular points by examining
"places" in the form of power series representations of the curve at
points on the curve, which I find to be very helpful in defining
rational maps when you get zeros in the denominator (that is, in
describing the "funny things" that happen).  But I won't get into this
here, and will instead only recommend that you read Walker's book.

I hope all of this has been helpful.  If you have any questions about
this, please write back, and I will elucidate further.

- Doctor Vogler, The Math Forum 

Date: 05/15/2007 at 10:50:29
From: Jaakko
Subject: Thank you (Genus of Elliptic Curves)

Thanks for an excellent answer!
Associated Topics:
College Number Theory

Search the Dr. Math Library:

Find items containing (put spaces between keywords):
Click only once for faster results:

[ Choose "whole words" when searching for a word like age.]

all keywords, in any order at least one, that exact phrase
parts of words whole words

Submit your own question to Dr. Math

[Privacy Policy] [Terms of Use]

Math Forum Home || Math Library || Quick Reference || Math Forum Search

Ask Dr. MathTM
© 1994- The Math Forum at NCTM. All rights reserved.