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

## Description

Overview:

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 trancendental 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, http://www.math.fsu.edu/~hoeij/papers/comments/jsc1994.html, 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, http://www.math.uni-sb.de/ag/schreyer/jb/diplom%20janko%20boehm.pdf.

Key user functions:

adjointIdeal -- compute the adjoint ideal

geometricGenus -- compute the geometric genus of a plane curve

Setup:

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

installPackage("AdjointIdeal")

## Version

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/.

## Exports

• Functions and commands
• Methods
• "adjointIdeal(Ideal)" -- see adjointIdeal -- Compute the adjoint ideal of a plane curve
• "adjointIdeal(Ideal,Matrix)" -- see adjointIdeal -- Compute the adjoint ideal of a plane curve
• "adjointIdeal(Ideal,Matrix,ZZ)" -- see adjointIdeal -- Compute the adjoint ideal of a plane curve
• "backwardSubstitution(Matrix,Matrix)" -- see backwardSubstitution -- Backward substitution.
• "extractLeftLower(Matrix)" -- see extractLeftLower -- Extract L from the LR decomposition result.
• "extractRightUpper(Matrix)" -- see extractRightUpper -- Extract R from the LR decomposition result.
• "forwardSubstitution(Matrix,Matrix)" -- see forwardSubstitution -- Forward substitution.
• "geometricGenus(Ideal)" -- see geometricGenus -- Geometric genus of a plane curve
• "geometricGenus(Ideal,Matrix)" -- see geometricGenus -- Geometric genus of a plane curve
• "LRdecomposition(Matrix,Function)" -- see LRdecomposition -- LR decomposition
• "traceMatrix(Ideal,Matrix)" -- see traceMatrix -- Compute trace matrix.
• "traceMatrix(Matrix,Matrix,List)" -- see traceMatrix -- Compute trace matrix.

## For the programmer

The object AdjointIdeal is .