**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 C_{2} 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 C_{2} has a rational point C is parametrized by ℙ^{1} otherwise by C_{2}.

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")

- Functions and commands
- chineseRemainder -- Solve simultaneous congruences.
- invertBirationalMap -- Computes the inverse of a birational map.
- isomorphicProjectionOfRNC -- Parametrizing linear system of a rational normal curve.
- legendreSymbol -- Compute the Legendresymbol.
- mapToRNC -- Map plane rational curve to rational normal curve.
- modularInverse -- Compute the inverse in Z/nZ.
- modularPower -- Compute the modular power.
- modularSquareRoot -- Compute the modular square root.
- parametrize -- Rational parametrization of rational curves.
- rationalPointOnConic -- Rational point on a conic.
- rParametrizeConic -- Compute a rational parametrization of a conic.
- rParametrizePlaneCurve -- Rational parametrization of rational plane curves.
- rParametrizeRNC -- Compute a rational parametrization of a rational normal curve.
- testParametrization -- Test if parametrization.

- Symbols
- parametrizeConic -- Option whether to rationally parametrize conics.
- vb -- Option whether to print intermediate results.