Macaulay2 » Documentation
Packages » AdjointIdeal :: AdjointIdeal
next | previous | forward | backward | up | index | toc

AdjointIdeal -- Adjoint ideal of a plane curve and related computations



AdjointIdeal is a package to compute the adjoint ideal and the geometric genus of projective plane curves.

This is used in particular in the case of genus 0 in the package Parametrization to map any singular plane rational curve to a (smooth) rational normal curve.

Suppose (note, that the implementation in adjointIdeal does not require this) the curve C is given by {f(x,y,z) = 0} and C does not have singularities at infinity {z = 0} and the point (1:0:0) is not on C. Note that these conditions can always be met by a projective automorphism.

Considering the affine curve in z!=0 we take y as transcendental and x as algebraic and compute an integral basis in CC(y)[x] of the integral closure of CC[y] in CC(x,y) using the algorithm from

Mark van Hoeij: An algorithm for computing an integral basis in an algebraic function field,, Journal of Symbolic Computation, Volume 18 , Issue 4 (October 1994), Pages: 353 - 363.

So far we call Maple using the MapleInterface package, but once the functionality will be available natively in Macaulay2 this will no longer be necessary.

From this data the adjoint ideal can be obtained by linear algebra.

The package is work in progress, so there will be future improvements and more testing is necessary.

For more theoretical details see J. Boehm: Rational parametrization of rational curves,

Key user functions:

adjointIdeal -- compute the adjoint ideal

geometricGenus -- compute the geometric genus of a plane curve


This package uses the package MapleInterface, so install this first.

Place the file AdjointIdeal.m2 somewhere into the M2 search path (type path to see it) and install the package by doing




This documentation describes version 0.6 of AdjointIdeal.

Source code

The source code from which this documentation is derived is in the file AdjointIdeal.m2. The auxiliary files accompanying it are in the directory AdjointIdeal/.


For the programmer

The object AdjointIdeal is a package.