Parametrization -- Rational parametrization of rational curves and related computations

Description

Overview:

Parametrization is a package to compute rational parametrizations of rational curves defined over ℚ.

Suppose C is a rational plane curve C of degree n defined over ℚ.

We use the package AdjointIdeal to compute the adjoint ideal of C. (The package exports also all functions available in AdjointIdeal, e.g., geometricGenus.)

The corresponding linear system maps the curve birationally to a rational normal curve in ℙn-2.

Iterating the anticanonical map we give a projection of the rational normal curve to ℙ1 for n odd or to a conic C2 in ℙ2 for n even.

In the case that n is even we test for the existence of a rational point on the conic and if so give a rational parametrization of the conic.

By inverting the birational map of C to ℙ1 or the conic we obtain a rational parametrization of C. If n is odd or C2 has a rational point C is parametrized by ℙ1 otherwise by C2.

The main focus of the algorithm is to avoid unnecessary choices to obtain a parametrization of small height.

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.

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

Key user functions:

parametrize -- This is the universal rational parametrization function, it works for plane rational curves, in particular conics, and rational normal curves.

testParametrization -- Test a parametrization.

rationalPointOnConic -- Test for a rational point on a conic and find it if it exists.

mapToRNC -- Map a plane rational curve to a rational normal curve.

Setup:

This package uses the package AdjointIdeal, so set up this first.

Place the file Parametrization.m2 somewhere into the M2 search path and install the package by doing

installPackage("Parametrization")

Version

This documentation describes version 0.6 of Parametrization.

Source code

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