This is Parametrization.info, produced by Macaulay2, version 1.25.05

Parametrization -- Rational parametrization of rational curves and related computations
***************************************************************************************

Description
===========

Overview:

Parametrization is a package to compute rational parametrizations of rational
curves defined over \mathbb{Q}.

Suppose C is a rational plane curve C of degree n defined over \mathbb{Q}.

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 \mathbb{P}^{n-2}.

Iterating the anticanonical map we give a projection of the rational normal
curve to \mathbb{P}^{1} for n odd or to a conic C_2 in \mathbb{P}^{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 \mathbb{P}^{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 \mathbb{P}^{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, https://agag-jboehm.math.rptu.de/~boehm/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.

See testParametrization,  --  Test a parametrization.

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

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

Author
======

  * Janko Boehm (see https://agag-jboehm.math.rptu.de/~boehm/ )
    <boehm@mathematik.uni-kl.de>

Version
=======

This documentation describes version 0.6 of Parametrization.

Citation
========

If you have used this package in your research, please cite it as follows:

+-----------------------------------------------------------------------------+
|@misc{ParametrizationSource,                                                 |
|  title = {{Parametrization: rational parametrization of rational            |
|  author = {Janko Boehm},                                                    |
|  howpublished = {A \emph{Macaulay2} package available at                    |
|    \url{https://github.com/Macaulay2/M2/tree/master/M2/Macaulay2/           |
|}                                                                            |
|-----------------------------------------------------------------------------|
|plane curves and related computations. Version~0.6}},                        |
|                                                                             |
|                                                                             |
|packages}}                                                                   |
+-----------------------------------------------------------------------------+

Exports
=======

  * 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.
  * Methods
      * "chineseRemainder(List,List)" -- see chineseRemainder,
        -- Solve simultaneous congruences.
      * "invertBirationalMap(Ideal,Matrix)" -- see invertBirationalMap,
        -- Computes the inverse of a birational map.
      * "isomorphicProjectionOfRNC(Ideal)" -- see
        isomorphicProjectionOfRNC, -- Parametrizing
        linear system of a rational normal curve.
      * "legendreSymbol(ZZ,ZZ)" -- see legendreSymbol, --
        Compute the Legendresymbol.
      * "mapToRNC(Ideal)" -- see mapToRNC, -- Map plane
        rational curve to rational normal curve.
      * "mapToRNC(Ideal,Ideal)" -- see mapToRNC, -- Map plane
        rational curve to rational normal curve.
      * "mapToRNC(Ideal,Matrix)" -- see mapToRNC, -- Map plane
        rational curve to rational normal curve.
      * "modularInverse(ZZ,ZZ)" -- see modularInverse, --
        Compute the inverse in Z/nZ.
      * "modularPower(ZZ,ZZ,ZZ)" -- see modularPower, --
        Compute the modular power.
      * "modularSquareRoot(ZZ,ZZ)" -- see modularSquareRoot,
        -- Compute the modular square root.
      * "parametrize(Ideal)" -- see parametrize, -- Rational
        parametrization of rational curves.
      * "parametrize(Ideal,Ideal)" -- see parametrize, --
        Rational parametrization of rational curves.
      * "rationalPointOnConic(Ideal)" -- see rationalPointOnConic,
        -- Rational point on a conic.
      * "rParametrizeConic(Ideal)" -- see rParametrizeConic,
        -- Compute a rational parametrization of a conic.
      * "rParametrizePlaneCurve(Ideal,Ideal)" -- see
        rParametrizePlaneCurve, -- Rational
        parametrization of rational plane curves.
      * "rParametrizeRNC(Ideal)" -- see rParametrizeRNC,
        -- Compute a rational parametrization of a rational normal curve.
      * "testParametrization(Ideal,Matrix)" -- see testParametrization,
        -- Test if parametrization.
  * Symbols
      * parametrizeConic -- Option whether to
        rationally parametrize conics.
      * vb -- Option whether to print intermediate results.

For the programmer
==================

The object Parametrization, is a package (Macaulay2Doc),
defined in Parametrization.m2, with auxiliary files in
Parametrization/.

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1167:0.

chineseRemainder -- Solve simultaneous congruences.
***************************************************

  * Usage:
        chineseRemainder(L,M)
  * Inputs:
      * L, a list (Macaulay2Doc), of integers.
      * M, a list (Macaulay2Doc), of positive integers, which are
        relatively prime.
  * Outputs:
      * x, an integer (Macaulay2Doc), an integer x between 0 and the
        product of the entries of M minus 1 representing the solution of the
        simultaneous congruences x=L#i mod M#i.

Description
===========

Solves the simultaneous congruences x=L#i mod M#i.

+--------------------------------------+
|i1 : chineseRemainder({1,2,3},{3,5,7})|
|                                      |
|o1 = 52                               |
+--------------------------------------+

Caveat
======

This should be extended slightly to non prime integers.

Ways to use chineseRemainder:
=============================

  * "chineseRemainder(List,List)"

For the programmer
==================

The object chineseRemainder, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1314:0.

invertBirationalMap -- Computes the inverse of a birational map.
****************************************************************

  * Usage:
        invertBirationalMap(I,phi)
  * Inputs:
      * I, an ideal (Macaulay2Doc), defining the source variety
      * phi, a matrix (Macaulay2Doc), a row matrix over the ring
        of I with linear system defining the map.
  * Outputs:
      * a list (Macaulay2Doc), of a matrix with the inverse of the
        birational map and the ideal of its image.

Description
===========

Computes the inverse of a birational map.

+-----------------------------------------------------------------------------+
|i1 : K=QQ;                                                                   |
+-----------------------------------------------------------------------------+
|i2 : R=K[v,u,z];                                                             |
+-----------------------------------------------------------------------------+
|i3 : I=ideal(v^8-u^3*(z+u)^5);                                               |
|                                                                             |
|o3 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+
|i4 : linsys=matrix {{u^6+4*u^5*z+6*u^4*z^2+4*u^3*z^3+u^2*z^4,v*u^5+3*v*u^4*z+|
|                                                                             |
|             1       7                                                       |
|o4 : Matrix R  <--- R                                                        |
|-----------------------------------------------------------------------------|
|3*v*u^3*z^2+v*u^2*z^3,v^2*u^4+3*v^2*u^3*z+3*v^2*u^2*z^2+v^2*u*z^3,v^3*u^3+2*v|
|-----------------------------------------------------------------------------|
|^3*u^2*z+v^3*u*z^2,v^4*u^2+v^4*u*z,v^5*u+v^5*z,v^6}};                        |
+-----------------------------------------------------------------------------+
|i5 : invertBirationalMap(I,linsys)                                           |
|                                                                             |
|                                                                             |
|o5 = {| -t_5t_6       |, ideal (t t  - t t , t t  - t t , t t  - t t , t t  -|
|      | -t_4t_6       |          4 5    3 6   3 5    2 6   1 5    0 6   3 4  |
|      | -t_5^2+t_4t_6 |                                                      |
|     ------------------------------------------------------------------------|
|                                2   2                              2         |
|     t t , t t  - t t , t t  - t , t  - t t , t t  - t t , t t  - t , t t  - |
|      1 6   2 4    0 6   0 4    6   3    0 6   2 3    0 5   1 3    6   0 3   |
|     ------------------------------------------------------------------------|
|                                2   2                       2                |
|     t t , t t  - t t , t t  - t , t  - t t , t t  - t t , t  - t t )}       |
|      5 6   1 2    5 6   0 2    5   1    4 6   0 1    3 6   0    2 6         |
|                                                                             |
|o5 : List                                                                    |
+-----------------------------------------------------------------------------+

Caveat
======

Speed this up. Perhaps give as argument just phi in R/I. Does not check whether
phi is birational.

Ways to use invertBirationalMap:
================================

  * "invertBirationalMap(Ideal,Matrix)"

For the programmer
==================

The object invertBirationalMap, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1379:0.

isomorphicProjectionOfRNC -- Parametrizing linear system of a rational normal curve.
************************************************************************************

  * Usage:
        isomorphicProjectionOfRNC(I)
  * Inputs:
      * I, an ideal (Macaulay2Doc), of a rational normal curve
  * Outputs:
      * a matrix (Macaulay2Doc), over the ring if I containing
        the linear system.

Description
===========

Compute the parametrizing linear system of a rational normal curve over
\mathbb{P}^{1} if the degree is odd or a conic if the degree even.

+-----------------------------------------------------------------------------+
|i1 : K=QQ;                                                                   |
+-----------------------------------------------------------------------------+
|i2 : R=K[v,u,z];                                                             |
+-----------------------------------------------------------------------------+
|i3 : I0=ideal(v^8-u^3*(z+u)^5);                                              |
|                                                                             |
|o3 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+
|i4 : J=ideal matrix {{u^6+4*u^5*z+6*u^4*z^2+4*u^3*z^3+u^2*z^4,v*u^5+3*v*u^4*z|
|                                                                             |
|o4 : Ideal of R                                                              |
|-----------------------------------------------------------------------------|
|+3*v*u^3*z^2+v*u^2*z^3,v^2*u^4+3*v^2*u^3*z+3*v^2*u^2*z^2+v^2*u*z^3,v^3*u^3+2*|
|-----------------------------------------------------------------------------|
|v^3*u^2*z+v^3*u*z^2,v^4*u^2+v^4*u*z,v^5*u+v^5*z,v^6}};                       |
+-----------------------------------------------------------------------------+
|i5 : I=mapToRNC(I0,J)                                                        |
|                                                                             |
|                                                                             |
|o5 = ideal (x x  - x x , x x  - x x , x x  - x x , x x  - x x , x x  - x x , |
|             4 5    3 6   3 5    2 6   1 5    0 6   3 4    1 6   2 4    0 6  |
|     ------------------------------------------------------------------------|
|             2   2                              2                            |
|     x x  - x , x  - x x , x x  - x x , x x  - x , x x  - x x , x x  - x x , |
|      0 4    6   3    0 6   2 3    0 5   1 3    6   0 3    5 6   1 2    5 6  |
|     ------------------------------------------------------------------------|
|             2   2                       2                                   |
|     x x  - x , x  - x x , x x  - x x , x  - x x )                           |
|      0 2    5   1    4 6   0 1    3 6   0    2 6                            |
|                                                                             |
|o5 : Ideal of QQ[x , x , x , x , x , x , x ]                                 |
|                  0   1   2   3   4   5   6                                  |
+-----------------------------------------------------------------------------+
|i6 : isomorphicProjectionOfRNC(I)                                            |
|                                                                             |
|o6 = | x_0 -x_3 x_6 |                                                        |
|                                                                             |
|                                            1                                |
|o6 : Matrix (QQ[x , x , x , x , x , x , x ])  <--- (QQ[x , x , x , x , x ,   |
|                 0   1   2   3   4   5   6              0   1   2   3   4    |
|-----------------------------------------------------------------------------|
|        3                                                                    |
|x , x ])                                                                     |
| 5   6                                                                       |
+-----------------------------------------------------------------------------+

Ways to use isomorphicProjectionOfRNC:
======================================

  * "isomorphicProjectionOfRNC(Ideal)"

For the programmer
==================

The object isomorphicProjectionOfRNC, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1539:0.

legendreSymbol -- Compute the Legendresymbol.
*********************************************

  * Usage:
        legendreSymbol(a,p)
  * Inputs:
      * a, an integer (Macaulay2Doc),
      * p, an integer (Macaulay2Doc), an odd prime.
  * Outputs:
      * an integer (Macaulay2Doc), 0 if a is divisible by p, 1 if a
        is a quadratic residue mod p and -1 if a is not a quadratic residue mod
        p.

Description
===========

Computes Legendre-symbol a over p.

+-------------------------+
|i1 : legendreSymbol(4,7) |
|                         |
|o1 = 1                   |
+-------------------------+
|i2 : legendreSymbol(5,7) |
|                         |
|o2 = -1                  |
+-------------------------+
|i3 : legendreSymbol(14,7)|
|                         |
|o3 = 0                   |
+-------------------------+

See also
========

  * modularPower -- Compute the modular power.

Ways to use legendreSymbol:
===========================

  * "legendreSymbol(ZZ,ZZ)"

For the programmer
==================

The object legendreSymbol, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1407:0.

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

  * Usage:
        mapToRNC(I)
        mapToRNC(I,J)
  * Inputs:
      * I, an ideal (Macaulay2Doc), defining the plane curve
      * J, an ideal (Macaulay2Doc), the adjoint ideal of I.
  * Outputs:
      * an ideal (Macaulay2Doc), of the rational normal curve.

Description
===========

Maps a plane rational curve birationally to a rational normal curve by the
adjoints of degree=degree(C)-2 Applied to a curve of genus >1 it uses the
adjoints of degree=degree(C)-3.

If the second argument J is not specified and degree of C is bigger than 2 then
J is being computed via the package AdjointIdeal.

+------------------------------+
|i1 : K=QQ;                    |
+------------------------------+
|i2 : R=K[v,u,z];              |
+------------------------------+
|i3 : I=ideal(v^8-u^3*(z+u)^5);|
|                              |
|o3 : Ideal of R               |
+------------------------------+
|i4 : betti mapToRNC(I)        |
|                              |
|            0  1              |
|o4 = total: 1 15              |
|         0: 1  .              |
|         1: . 15              |
|                              |
|o4 : BettiTally               |
+------------------------------+

+-----------------------------------------------------------------------------+
|i5 : K=QQ;                                                                   |
+-----------------------------------------------------------------------------+
|i6 : R=K[v,u,z];                                                             |
+-----------------------------------------------------------------------------+
|i7 : I=ideal(v^8-u^3*(z+u)^5);                                               |
|                                                                             |
|o7 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+
|i8 : J=ideal(u^6+4*u^5*z+6*u^4*z^2+4*u^3*z^3+u^2*z^4,v*u^5+3*v*u^4*z+3*v*u^3*|
|                                                                             |
|o8 : Ideal of R                                                              |
|-----------------------------------------------------------------------------|
|z^2+v*u^2*z^3,v^2*u^4+3*v^2*u^3*z+3*v^2*u^2*z^2+v^2*u*z^3,v^3*u^3+2*v^3*u^2*z|
|-----------------------------------------------------------------------------|
|+v^3*u*z^2,v^4*u^2+v^4*u*z,v^5*u+v^5*z,v^6);                                 |
+-----------------------------------------------------------------------------+
|i9 : betti mapToRNC(I,J)                                                     |
|                                                                             |
|            0  1                                                             |
|o9 = total: 1 15                                                             |
|         0: 1  .                                                             |
|         1: . 15                                                             |
|                                                                             |
|o9 : BettiTally                                                              |
+-----------------------------------------------------------------------------+

Ways to use mapToRNC:
=====================

  * "mapToRNC(Ideal)"
  * "mapToRNC(Ideal,Ideal)"
  * "mapToRNC(Ideal,Matrix)"

For the programmer
==================

The object mapToRNC, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1647:0.

modularInverse -- Compute the inverse in Z/nZ.
**********************************************

  * Usage:
        modularInverse(a,n)
  * Inputs:
      * a, an integer (Macaulay2Doc), an integer.
      * n, an integer (Macaulay2Doc), a positive integer.
  * Outputs:
      * an integer (Macaulay2Doc), an integer between 0 and n-1
        representing the inverse of a, or
      * a Boolean value (Macaulay2Doc), false if the inverse
        does not exist.

Description
===========

Computes the inverse of a in $\mathbb{Z}/n\mathbb{Z}$.

+-------------------------------------+
|i1 : modularInverse(5,7)             |
|                                     |
|o1 = 3                               |
+-------------------------------------+
|i2 : modularInverse(5,16)            |
|                                     |
|o2 = 13                              |
+-------------------------------------+
|i3 : modularInverse(4,16)            |
|                                     |
|o3 = false                           |
+-------------------------------------+
|i4 : modularInverse(1234567,12345678)|
|                                     |
|o4 = 10802467                        |
+-------------------------------------+

Ways to use modularInverse:
===========================

  * "modularInverse(ZZ,ZZ)"

For the programmer
==================

The object modularInverse, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1286:0.

modularPower -- Compute the modular power.
******************************************

  * Usage:
        modularPower(a,b,p)
  * Inputs:
      * a, an integer (Macaulay2Doc),
      * b, an integer (Macaulay2Doc), positive.
      * p, an integer (Macaulay2Doc), prime.
  * Outputs:
      * an integer (Macaulay2Doc), in 0,...,p-1 representing a^b in
        $\mathbb{Z}/p\mathbb{Z}$.

Description
===========

Computes the b-th power of a in $\mathbb{Z}/p\mathbb{Z}$. This function is here
to also deal with large p.

+------------------------------+
|i1 : modularPower(8,10003,101)|
|                              |
|o1 = 7                        |
+------------------------------+

Ways to use modularPower:
=========================

  * "modularPower(ZZ,ZZ,ZZ)"

For the programmer
==================

The object modularPower, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1471:0.

modularSquareRoot -- Compute the modular square root.
*****************************************************

  * Usage:
        modularSquareRoot(a,n)
  * Inputs:
      * a, an integer (Macaulay2Doc),
      * n, an integer (Macaulay2Doc), positive, squarefree.
  * Outputs:
      * an integer (Macaulay2Doc), in 0,...,n-1 representing the
        square root of a in $\mathbb{Z}/n\mathbb{Z}$, or -1 if it does not
        exist.

Description
===========

Computes the square root of a in $\mathbb{Z}/n\mathbb{Z}$

+-----------------------------------+
|i1 : modularSquareRoot(626,1180943)|
|                                   |
|o1 = 832737                        |
+-----------------------------------+
|i2 : modularSquareRoot(3,13)       |
|                                   |
|o2 = 4                             |
+-----------------------------------+
|i3 : modularSquareRoot(7,14)       |
|                                   |
|o3 = 7                             |
+-----------------------------------+
|i4 : modularSquareRoot(3,14)       |
|                                   |
|o4 = FAIL                          |
|                                   |
|o4 : Symbol                        |
+-----------------------------------+

Caveat
======

This should be extended slightly to non squarefree n. We use this function as
we have to handle very large numbers. This function is no longer used, as we
call Maple to compute the modular square root.

See also
========

  * legendreSymbol -- Compute the Legendresymbol.
  * modularPower -- Compute the modular power.
  * chineseRemainder -- Solve simultaneous
    congruences.

Ways to use modularSquareRoot:
==============================

  * "modularSquareRoot(ZZ,ZZ)"

For the programmer
==================

The object modularSquareRoot, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1349:0.

parametrize -- Rational parametrization of rational curves.
***********************************************************

  * Usage:
        parametrize(I)
        parametrize(I,J)
  * Inputs:
      * I, an ideal (Macaulay2Doc), defining a rational plane
        curve C or rational normal curve
      * J, an ideal (Macaulay2Doc), the adjoint ideal of the plane
        curve C.
  * Optional inputs (Macaulay2Doc),:
      * parametrizeConic, => ..., default value null,
        Option whether to rationally parametrize conics.
  * Outputs:
      * pI, a matrix (Macaulay2Doc), a column matrix with the
        rational parametrization of C.

Description
===========

Computes a rational parametrization pI of C.

If the degree of C odd, pI is over \mathbb{P}^{1}.

If the degree of C even, pI is over a conic. So to get the conic apply
ideal (Macaulay2Doc), ring (Macaulay2Doc), to the
parametrization pI. If the Option (Macaulay2Doc),
parametrizeConic=>true is given and C has a rational point then the conic is
parametrized hence pI is over \mathbb{P}^{1}.

If the second argument J is not specified and degree of C is bigger than 2 then
J is being computed via the package AdjointIdeal.

If the function is applied to a rational normal curve it calls
rParametrizeRNC.

If it is applied to a plane conic it calls rParametrizeConic.

+----------------------------------------------------+
|i1 : K=QQ;                                          |
+----------------------------------------------------+
|i2 : R=K[v,u,z];                                    |
+----------------------------------------------------+
|i3 : I=ideal(v^8-u^3*(z+u)^5);                      |
|                                                    |
|o3 : Ideal of R                                     |
+----------------------------------------------------+
|i4 : p=parametrize(I)                               |
|                                                    |
|o4 = | t_0^2t_1t_2  |                               |
|     | -t_2^4       |                               |
|     | -t_0^4+t_2^4 |                               |
|                                                    |
|            /QQ[t , t , t ]\       /QQ[t , t , t ]\ |
|            |    0   1   2 |3      |    0   1   2 |1|
|o4 : Matrix |--------------|  <--- |--------------| |
|            |    2         |       |    2         | |
|            |   t  - t t   |       |   t  - t t   | |
|            \    1    0 2  /       \    1    0 2  / |
+----------------------------------------------------+
|i5 : parametrize(I,parametrizeConic=>true)          |
|                                                    |
|o5 = | t_0^3t_1^5  |                                |
|     | -t_0^8      |                                |
|     | t_0^8-t_1^8 |                                |
|                                                    |
|                        3                  1        |
|o5 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])         |
|                 0   1              0   1           |
+----------------------------------------------------+
|i6 : Irnc=mapToRNC(I);                              |
|                                                    |
|o6 : Ideal of QQ[x , x , x , x , x , x , x ]        |
|                  0   1   2   3   4   5   6         |
+----------------------------------------------------+
|i7 : parametrize(Irnc)                              |
|                                                    |
|o7 = | t_0^2t_2   |                                 |
|     | -t_1t_2^2  |                                 |
|     | t_0^3      |                                 |
|     | -t_0t_1t_2 |                                 |
|     | t_2^3      |                                 |
|     | -t_0^2t_1  |                                 |
|     | t_0t_2^2   |                                 |
|                                                    |
|            /QQ[t , t , t ]\       /QQ[t , t , t ]\ |
|            |    0   1   2 |7      |    0   1   2 |1|
|o7 : Matrix |--------------|  <--- |--------------| |
|            |    2         |       |    2         | |
|            |   t  - t t   |       |   t  - t t   | |
|            \    1    0 2  /       \    1    0 2  / |
+----------------------------------------------------+
|i8 : parametrize(Irnc,parametrizeConic=>true)       |
|                                                    |
|o8 = | -t_0^2t_1^4 |                                |
|     | t_0^5t_1    |                                |
|     | -t_1^6      |                                |
|     | t_0^3t_1^3  |                                |
|     | -t_0^6      |                                |
|     | t_0t_1^5    |                                |
|     | -t_0^4t_1^2 |                                |
|                                                    |
|                        7                  1        |
|o8 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])         |
|                 0   1              0   1           |
+----------------------------------------------------+
|i9 : Iconic=ideal ring p                            |
|                                                    |
|            2                                       |
|o9 = ideal(t  - t t )                               |
|            1    0 2                                |
|                                                    |
|o9 : Ideal of QQ[t , t , t ]                        |
|                  0   1   2                         |
+----------------------------------------------------+
|i10 : parametrize(Iconic)                           |
|                                                    |
|o10 = | -t_1^2  |                                   |
|      | -t_0t_1 |                                   |
|      | -t_0^2  |                                   |
|                                                    |
|                         3                  1       |
|o10 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])        |
|                  0   1              0   1          |
+----------------------------------------------------+

+-------------------------------------------------------------------+
|i11 : K=QQ;                                                        |
+-------------------------------------------------------------------+
|i12 : R=K[v,u,z];                                                  |
+-------------------------------------------------------------------+
|i13 : I=ideal(u^5+2*u^2*v*z^2+2*u^3*v*z+u*v^2*z^2-4*u*v^3*z+2*v^5);|
|                                                                   |
|o13 : Ideal of R                                                   |
+-------------------------------------------------------------------+
|i14 : parametrize(I)                                               |
|                                                                   |
|o14 = | -2t_0^2t_1^3+t_0t_1^4 |                                    |
|      | 4t_0^4t_1-2t_0^3t_1^2 |                                    |
|      | -4t_0^5+t_1^5         |                                    |
|                                                                   |
|                         3                  1                      |
|o14 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])                       |
|                  0   1              0   1                         |
+-------------------------------------------------------------------+
|i15 : Irnc=mapToRNC(I);                                            |
|                                                                   |
|o15 : Ideal of QQ[x , x , x , x ]                                  |
|                   0   1   2   3                                   |
+-------------------------------------------------------------------+
|i16 : parametrize(Irnc)                                            |
|                                                                   |
|o16 = | 2t_0^2t_1 |                                                |
|      | -t_1^3    |                                                |
|      | 2t_0^3    |                                                |
|      | -t_0t_1^2 |                                                |
|                                                                   |
|                         4                  1                      |
|o16 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])                       |
|                  0   1              0   1                         |
+-------------------------------------------------------------------+

Specifying J:

+-----------------------------------------------------------------------------+
|i17 : K=QQ;                                                                  |
+-----------------------------------------------------------------------------+
|i18 : R=K[v,u,z];                                                            |
+-----------------------------------------------------------------------------+
|i19 : I=ideal(v^8-u^3*(z+u)^5);                                              |
|                                                                             |
|o19 : Ideal of R                                                             |
+-----------------------------------------------------------------------------+
|i20 : J=ideal(u^6+4*u^5*z+6*u^4*z^2+4*u^3*z^3+u^2*z^4,v*u^5+3*v*u^4*z+3*v*u^3|
|                                                                             |
|o20 : Ideal of R                                                             |
|-----------------------------------------------------------------------------|
|*z^2+v*u^2*z^3,v^2*u^4+3*v^2*u^3*z+3*v^2*u^2*z^2+v^2*u*z^3,v^3*u^3+2*v^3*u^2*|
|-----------------------------------------------------------------------------|
|z+v^3*u*z^2,v^4*u^2+v^4*u*z,v^5*u+v^5*z,v^6);                                |
+-----------------------------------------------------------------------------+
|i21 : p=parametrize(I,J)                                                     |
|                                                                             |
|o21 = | t_0^2t_1t_2  |                                                       |
|      | -t_2^4       |                                                       |
|      | -t_0^4+t_2^4 |                                                       |
|                                                                             |
|             /QQ[t , t , t ]\       /QQ[t , t , t ]\                         |
|             |    0   1   2 |3      |    0   1   2 |1                        |
|o21 : Matrix |--------------|  <--- |--------------|                         |
|             |    2         |       |    2         |                         |
|             |   t  - t t   |       |   t  - t t   |                         |
|             \    1    0 2  /       \    1    0 2  /                         |
+-----------------------------------------------------------------------------+
|i22 : parametrize(I,J,parametrizeConic=>true)                                |
|                                                                             |
|o22 = | t_0^3t_1^5  |                                                        |
|      | -t_0^8      |                                                        |
|      | t_0^8-t_1^8 |                                                        |
|                                                                             |
|                         3                  1                                |
|o22 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])                                 |
|                  0   1              0   1                                   |
+-----------------------------------------------------------------------------+
|i23 : Irnc=mapToRNC(I,J);                                                    |
|                                                                             |
|o23 : Ideal of QQ[x , x , x , x , x , x , x ]                                |
|                   0   1   2   3   4   5   6                                 |
+-----------------------------------------------------------------------------+
|i24 : parametrize(Irnc)                                                      |
|                                                                             |
|o24 = | t_0^2t_2   |                                                         |
|      | -t_1t_2^2  |                                                         |
|      | t_0^3      |                                                         |
|      | -t_0t_1t_2 |                                                         |
|      | t_2^3      |                                                         |
|      | -t_0^2t_1  |                                                         |
|      | t_0t_2^2   |                                                         |
|                                                                             |
|             /QQ[t , t , t ]\       /QQ[t , t , t ]\                         |
|             |    0   1   2 |7      |    0   1   2 |1                        |
|o24 : Matrix |--------------|  <--- |--------------|                         |
|             |    2         |       |    2         |                         |
|             |   t  - t t   |       |   t  - t t   |                         |
|             \    1    0 2  /       \    1    0 2  /                         |
+-----------------------------------------------------------------------------+
|i25 : parametrize(Irnc,parametrizeConic=>true)                               |
|                                                                             |
|o25 = | -t_0^2t_1^4 |                                                        |
|      | t_0^5t_1    |                                                        |
|      | -t_1^6      |                                                        |
|      | t_0^3t_1^3  |                                                        |
|      | -t_0^6      |                                                        |
|      | t_0t_1^5    |                                                        |
|      | -t_0^4t_1^2 |                                                        |
|                                                                             |
|                         7                  1                                |
|o25 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])                                 |
|                  0   1              0   1                                   |
+-----------------------------------------------------------------------------+
|i26 : Iconic=ideal ring p                                                    |
|                                                                             |
|             2                                                               |
|o26 = ideal(t  - t t )                                                       |
|             1    0 2                                                        |
|                                                                             |
|o26 : Ideal of QQ[t , t , t ]                                                |
|                   0   1   2                                                 |
+-----------------------------------------------------------------------------+
|i27 : parametrize(Iconic)                                                    |
|                                                                             |
|o27 = | -t_1^2  |                                                            |
|      | -t_0t_1 |                                                            |
|      | -t_0^2  |                                                            |
|                                                                             |
|                         3                  1                                |
|o27 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])                                 |
|                  0   1              0   1                                   |
+-----------------------------------------------------------------------------+

+-------------------------------------------------------------------+
|i28 : K=QQ;                                                        |
+-------------------------------------------------------------------+
|i29 : R=K[v,u,z];                                                  |
+-------------------------------------------------------------------+
|i30 : I=ideal(u^5+2*u^2*v*z^2+2*u^3*v*z+u*v^2*z^2-4*u*v^3*z+2*v^5);|
|                                                                   |
|o30 : Ideal of R                                                   |
+-------------------------------------------------------------------+
|i31 : J=ideal(u^3+v*u*z,v*u^2+v^2*z,v^2*u-u^2*z,v^3-v*u*z);        |
|                                                                   |
|o31 : Ideal of R                                                   |
+-------------------------------------------------------------------+
|i32 : parametrize(I,J)                                             |
|                                                                   |
|o32 = | -2t_0^2t_1^3+t_0t_1^4 |                                    |
|      | 4t_0^4t_1-2t_0^3t_1^2 |                                    |
|      | -4t_0^5+t_1^5         |                                    |
|                                                                   |
|                         3                  1                      |
|o32 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])                       |
|                  0   1              0   1                         |
+-------------------------------------------------------------------+
|i33 : Irnc=mapToRNC(I,J);                                          |
|                                                                   |
|o33 : Ideal of QQ[x , x , x , x ]                                  |
|                   0   1   2   3                                   |
+-------------------------------------------------------------------+
|i34 : parametrize(Irnc)                                            |
|                                                                   |
|o34 = | 2t_0^2t_1 |                                                |
|      | -t_1^3    |                                                |
|      | 2t_0^3    |                                                |
|      | -t_0t_1^2 |                                                |
|                                                                   |
|                         4                  1                      |
|o34 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])                       |
|                  0   1              0   1                         |
+-------------------------------------------------------------------+

See also
========

  * rParametrizePlaneCurve -- Rational
    parametrization of rational plane curves.
  * rParametrizeRNC -- Compute a rational
    parametrization of a rational normal curve.
  * rParametrizeConic -- Compute a rational
    parametrization of a conic.

Ways to use parametrize:
========================

  * "parametrize(Ideal)"
  * "parametrize(Ideal,Ideal)"

For the programmer
==================

The object parametrize, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1255:0.

parametrizeConic -- Option whether to rationally parametrize conics.
********************************************************************

Description
===========

If this option is set true and the computation of rParametrizePlaneCurve,
or parametrize, leads to a conic
(even degree case) and this conic has a rational point then this conic is also
parametrized. So the final result will be a parametrization over
\mathbb{P}^{1}. If the conic does not have a rational point a warning is
displayed and the parametrization over the conic is returned.

+-----------------------------------------------------------------------------+
|i1 : K=QQ;                                                                   |
+-----------------------------------------------------------------------------+
|i2 : R=K[v,u,z];                                                             |
+-----------------------------------------------------------------------------+
|i3 : I=ideal(v^8-u^3*(z+u)^5);                                               |
|                                                                             |
|o3 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+
|i4 : J=ideal(u^6+4*u^5*z+6*u^4*z^2+4*u^3*z^3+u^2*z^4,v*u^5+3*v*u^4*z+3*v*u^3*|
|                                                                             |
|o4 : Ideal of R                                                              |
|-----------------------------------------------------------------------------|
|z^2+v*u^2*z^3,v^2*u^4+3*v^2*u^3*z+3*v^2*u^2*z^2+v^2*u*z^3,v^3*u^3+2*v^3*u^2*z|
|-----------------------------------------------------------------------------|
|+v^3*u*z^2,v^4*u^2+v^4*u*z,v^5*u+v^5*z,v^6);                                 |
+-----------------------------------------------------------------------------+
|i5 : rParametrizePlaneCurve(I,J,parametrizeConic=>true)                      |
|                                                                             |
|o5 = | t_0^3t_1^5  |                                                         |
|     | -t_0^8      |                                                         |
|     | t_0^8-t_1^8 |                                                         |
|                                                                             |
|                        3                  1                                 |
|o5 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])                                  |
|                 0   1              0   1                                    |
+-----------------------------------------------------------------------------+

Caveat
======

If rParametrizeConic is changed such that it passes to a degree 2 field
extension if the degree of C is even and the conic does not have a rational
point, then the result will have entries in the homogeneous coordinate ring of
\mathbb{P}^{1} over this extension.

See also
========

  * parametrize -- Rational parametrization of rational
    curves.
  * rParametrizePlaneCurve -- Rational
    parametrization of rational plane curves.
  * rParametrizeConic -- Compute a rational
    parametrization of a conic.

Functions with optional argument named parametrizeConic:
========================================================

  * "parametrize(...,parametrizeConic=>...)"
  * "rParametrizePlaneCurve(...,parametrizeConic=>...)"

For the programmer
==================

The object parametrizeConic, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1676:0.

rationalPointOnConic -- Rational point on a conic.
**************************************************

  * Usage:
        rationalPointOnConic(I)
  * Inputs:
      * I, an ideal (Macaulay2Doc), the ideal of an irreducible
        conic.
  * Optional inputs (Macaulay2Doc),:
      * vb, => ..., default value 0, Option whether to print
        intermediate results.
  * Outputs:
      * a matrix (Macaulay2Doc), a row matrix over \mathbb{Q}
        with homogeneous integer coordinates of a rational point on the conic
        or 0-matrix if there is none.

Description
===========

Decides whether a conic has a rational point and if so computes one.

+----------------------------------------------------------------+
|i1 : R=QQ[y_0..y_2];                                            |
+----------------------------------------------------------------+
|i2 : I=ideal(7*y_0^2+11*y_2^2+13*y_0*y_2+17*y_1^2+19*y_1*y_2);  |
|                                                                |
|o2 : Ideal of R                                                 |
+----------------------------------------------------------------+
|i3 : p=rationalPointOnConic I                                   |
|                                                                |
|o3 = | 67 49 -70 |                                              |
|                                                                |
|              1        3                                        |
|o3 : Matrix QQ  <--- QQ                                         |
+----------------------------------------------------------------+
|i4 : sub(I,{y_0=>p_(0,0),y_1=>p_(0,1),y_2=>p_(0,2)})            |
|                                                                |
|o4 = ideal 0                                                    |
|                                                                |
|o4 : Ideal of QQ                                                |
+----------------------------------------------------------------+
|i5 : I=ideal(y_0^2+y_1^2+2*y_0*y_1+y_2^2);                      |
|                                                                |
|o5 : Ideal of R                                                 |
+----------------------------------------------------------------+
|i6 : p=rationalPointOnConic I                                   |
|                                                                |
|o6 = | -1 1 0 |                                                 |
|                                                                |
|              1        3                                        |
|o6 : Matrix QQ  <--- QQ                                         |
+----------------------------------------------------------------+
|i7 : sub(I,{y_0=>p_(0,0),y_1=>p_(0,1),y_2=>p_(0,2)})            |
|                                                                |
|o7 = ideal 0                                                    |
|                                                                |
|o7 : Ideal of QQ                                                |
+----------------------------------------------------------------+
|i8 : I=ideal(y_0^2+y_2^2+2*y_0*y_2+2*y_1^2+2*y_1*y_2+4*y_0*y_1);|
|                                                                |
|o8 : Ideal of R                                                 |
+----------------------------------------------------------------+
|i9 : p=rationalPointOnConic I                                   |
|                                                                |
|o9 = | 1 -1 1 |                                                 |
|                                                                |
|              1        3                                        |
|o9 : Matrix QQ  <--- QQ                                         |
+----------------------------------------------------------------+
|i10 : sub(I,{y_0=>p_(0,0),y_1=>p_(0,1),y_2=>p_(0,2)})           |
|                                                                |
|o10 = ideal 0                                                   |
|                                                                |
|o10 : Ideal of QQ                                               |
+----------------------------------------------------------------+
|i11 : I=ideal(y_0^2+y_2^2+y_1^2);                               |
|                                                                |
|o11 : Ideal of R                                                |
+----------------------------------------------------------------+
|i12 : p=rationalPointOnConic I                                  |
|                                                                |
|o12 = 0                                                         |
|                                                                |
|               1        3                                       |
|o12 : Matrix QQ  <--- QQ                                        |
+----------------------------------------------------------------+

Caveat
======

Returns the 0-matrix if there is no rational point.

See also
========

  * modularSquareRoot -- Compute the modular square
    root.
  * modularInverse -- Compute the inverse in Z/nZ.

Ways to use rationalPointOnConic:
=================================

  * "rationalPointOnConic(Ideal)"

For the programmer
==================

The object rationalPointOnConic, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1511:0.

rParametrizeConic -- Compute a rational parametrization of a conic.
*******************************************************************

  * Usage:
        rParametrizeConic(I)
  * Inputs:
      * I, an ideal (Macaulay2Doc), of an irreducible conic.
  * Outputs:
      * a matrix (Macaulay2Doc), with the rational
        parametrization, or the 0-matrix if the conic does not have a rational
        point.

Description
===========

Computes a rational parametrization of a conic or returns the 0-matrix if the
conic does not have a rational point.

+--------------------------------------------+
|i1 : K=QQ;                                  |
+--------------------------------------------+
|i2 : R=K[y_0..y_2];                         |
+--------------------------------------------+
|i3 : I=ideal(y_0*y_2-y_1^2+y_2^2);          |
|                                            |
|o3 : Ideal of R                             |
+--------------------------------------------+
|i4 : rParametrizeConic(I)                   |
|                                            |
|o4 = | t_0^2-t_1^2 |                        |
|     | -t_0t_1     |                        |
|     | -t_0^2      |                        |
|                                            |
|                        3                  1|
|o4 : Matrix (QQ[t , t ])  <--- (QQ[t , t ]) |
|                 0   1              0   1   |
+--------------------------------------------+

Caveat
======

If the conic does not have a rational point the field extension of degree 2
should be implemented.

Ways to use rParametrizeConic:
==============================

  * "rParametrizeConic(Ideal)"

For the programmer
==================

The object rParametrizeConic, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1569:0.

rParametrizePlaneCurve -- Rational parametrization of rational plane curves.
****************************************************************************

  * Usage:
        rParametrizePlaneCurve(I,J)
  * Inputs:
      * I, an ideal (Macaulay2Doc), defining the plane curve C
      * J, an ideal (Macaulay2Doc), the adjoint ideal of C.
  * Optional inputs (Macaulay2Doc),:
      * parametrizeConic, => ..., default value null,
        Option whether to rationally parametrize conics.
  * Outputs:
      * pI, a matrix (Macaulay2Doc), a column matrix with the
        rational parametrization of C.

Description
===========

Computes a rational parametrization pI of C.

If the degree of C odd:

pI is over \mathbb{P}^{1}.

If the degree of C even:

pI is over a conic. So to get the conic apply "ideal ring" to the
parametrization pI.

If the Option (Macaulay2Doc), parametrizeConic=>true is given and
C has a rational point then the conic is parametrized so pI is over
\mathbb{P}^{1}.

+-----------------------------------------------------------------------------+
|i1 : K=QQ;                                                                   |
+-----------------------------------------------------------------------------+
|i2 : R=K[v,u,z];                                                             |
+-----------------------------------------------------------------------------+
|i3 : I=ideal(v^8-u^3*(z+u)^5);                                               |
|                                                                             |
|o3 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+
|i4 : J=ideal(u^6+4*u^5*z+6*u^4*z^2+4*u^3*z^3+u^2*z^4,v*u^5+3*v*u^4*z+3*v*u^3*|
|                                                                             |
|o4 : Ideal of R                                                              |
|-----------------------------------------------------------------------------|
|z^2+v*u^2*z^3,v^2*u^4+3*v^2*u^3*z+3*v^2*u^2*z^2+v^2*u*z^3,v^3*u^3+2*v^3*u^2*z|
|-----------------------------------------------------------------------------|
|+v^3*u*z^2,v^4*u^2+v^4*u*z,v^5*u+v^5*z,v^6);                                 |
+-----------------------------------------------------------------------------+
|i5 : rParametrizePlaneCurve(I,J)                                             |
|                                                                             |
|o5 = | t_0^2t_1t_2  |                                                        |
|     | -t_2^4       |                                                        |
|     | -t_0^4+t_2^4 |                                                        |
|                                                                             |
|            /QQ[t , t , t ]\       /QQ[t , t , t ]\                          |
|            |    0   1   2 |3      |    0   1   2 |1                         |
|o5 : Matrix |--------------|  <--- |--------------|                          |
|            |    2         |       |    2         |                          |
|            |   t  - t t   |       |   t  - t t   |                          |
|            \    1    0 2  /       \    1    0 2  /                          |
+-----------------------------------------------------------------------------+
|i6 : rParametrizePlaneCurve(I,J,parametrizeConic=>true)                      |
|                                                                             |
|o6 = | t_0^3t_1^5  |                                                         |
|     | -t_0^8      |                                                         |
|     | t_0^8-t_1^8 |                                                         |
|                                                                             |
|                        3                  1                                 |
|o6 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])                                  |
|                 0   1              0   1                                    |
+-----------------------------------------------------------------------------+

+------------------------------------------------------------------+
|i7 : K=QQ;                                                        |
+------------------------------------------------------------------+
|i8 : R=K[v,u,z];                                                  |
+------------------------------------------------------------------+
|i9 : I=ideal(u^5+2*u^2*v*z^2+2*u^3*v*z+u*v^2*z^2-4*u*v^3*z+2*v^5);|
|                                                                  |
|o9 : Ideal of R                                                   |
+------------------------------------------------------------------+
|i10 : J=ideal(u^3+v*u*z,v*u^2+v^2*z,v^2*u-u^2*z,v^3-v*u*z);       |
|                                                                  |
|o10 : Ideal of R                                                  |
+------------------------------------------------------------------+
|i11 : rParametrizePlaneCurve(I,J)                                 |
|                                                                  |
|o11 = | -2t_0^2t_1^3+t_0t_1^4 |                                   |
|      | 4t_0^4t_1-2t_0^3t_1^2 |                                   |
|      | -4t_0^5+t_1^5         |                                   |
|                                                                  |
|                         3                  1                     |
|o11 : Matrix (QQ[t , t ])  <--- (QQ[t , t ])                      |
|                  0   1              0   1                        |
+------------------------------------------------------------------+

Caveat
======

If rParametrizeConic is changed such that it passes to a degree 2 field
extension if the degree of C is even and the conic does not have a rational
point, then pI will have entries in the homogeneous coordinate ring of
\mathbb{P}^{1} over this extension.

See also
========

  * mapToRNC -- Map plane rational curve to rational normal
    curve.
  * isomorphicProjectionOfRNC, --
    Parametrizing linear system of a rational normal curve.
  * rParametrizeRNC -- Compute a rational
    parametrization of a rational normal curve.
  * rationalPointOnConic -- Rational point on a
    conic.
  * rParametrizeConic -- Compute a rational
    parametrization of a conic.

Ways to use rParametrizePlaneCurve:
===================================

  * "rParametrizePlaneCurve(Ideal,Ideal)"

For the programmer
==================

The object rParametrizePlaneCurve, is a
method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1753:0.

rParametrizeRNC -- Compute a rational parametrization of a rational normal curve.
*********************************************************************************

  * Usage:
        rParametrizeRNC(I)
  * Inputs:
      * I, an ideal (Macaulay2Doc), of a rational normal curve.
  * Outputs:
      * a list (Macaulay2Doc), of a matrix phi and an ideal Ic.

Description
===========

Compute a rational parametrization of a rational normal curve C defined by I.

phi contains the rational parametrization of C over \mathbb{P}^{1} if the
degree of C is odd or over a conic if the degree of C is even.

Ic is the 0-ideal for odd degree or the ideal of the conic for even degree.

+-----------------------------------------------------------------------------+
|i1 : K=QQ;                                                                   |
+-----------------------------------------------------------------------------+
|i2 : R=K[v,u,z];                                                             |
+-----------------------------------------------------------------------------+
|i3 : I0=ideal(v^8-u^3*(z+u)^5);                                              |
|                                                                             |
|o3 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+
|i4 : J=ideal matrix {{u^6+4*u^5*z+6*u^4*z^2+4*u^3*z^3+u^2*z^4,v*u^5+3*v*u^4*z|
|                                                                             |
|o4 : Ideal of R                                                              |
|-----------------------------------------------------------------------------|
|+3*v*u^3*z^2+v*u^2*z^3,v^2*u^4+3*v^2*u^3*z+3*v^2*u^2*z^2+v^2*u*z^3,v^3*u^3+2*|
|-----------------------------------------------------------------------------|
|v^3*u^2*z+v^3*u*z^2,v^4*u^2+v^4*u*z,v^5*u+v^5*z,v^6}};                       |
+-----------------------------------------------------------------------------+
|i5 : I=mapToRNC(I0,J)                                                        |
|                                                                             |
|                                                                             |
|o5 = ideal (x x  - x x , x x  - x x , x x  - x x , x x  - x x , x x  - x x , |
|             4 5    3 6   3 5    2 6   1 5    0 6   3 4    1 6   2 4    0 6  |
|     ------------------------------------------------------------------------|
|             2   2                              2                            |
|     x x  - x , x  - x x , x x  - x x , x x  - x , x x  - x x , x x  - x x , |
|      0 4    6   3    0 6   2 3    0 5   1 3    6   0 3    5 6   1 2    5 6  |
|     ------------------------------------------------------------------------|
|             2   2                       2                                   |
|     x x  - x , x  - x x , x x  - x x , x  - x x )                           |
|      0 2    5   1    4 6   0 1    3 6   0    2 6                            |
|                                                                             |
|o5 : Ideal of QQ[x , x , x , x , x , x , x ]                                 |
|                  0   1   2   3   4   5   6                                  |
+-----------------------------------------------------------------------------+
|i6 : rParametrizeRNC(I)                                                      |
|                                                                             |
|                             2                                               |
|o6 = {| t_0^2t_2   |, ideal(t  - t t )}                                      |
|      | -t_1t_2^2  |         1    0 2                                        |
|      | t_0^3      |                                                         |
|      | -t_0t_1t_2 |                                                         |
|      | t_2^3      |                                                         |
|      | -t_0^2t_1  |                                                         |
|      | t_0t_2^2   |                                                         |
|                                                                             |
|o6 : List                                                                    |
+-----------------------------------------------------------------------------+

Caveat
======

Perhaps better return just phi in the quotient ring by Ic.

Ways to use rParametrizeRNC:
============================

  * "rParametrizeRNC(Ideal)"

For the programmer
==================

The object rParametrizeRNC, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1605:0.

testParametrization -- Test if parametrization.
***********************************************

  * Usage:
        testParametrization(a,p)
  * Inputs:
      * I, an ideal (Macaulay2Doc), defining a rational curve C
      * phi, a matrix (Macaulay2Doc), with a parametrization of
        C, defined over \mathbb{P}^{1} or in the coordinate ring of a conic.
  * Outputs:
      * a Boolean value (Macaulay2Doc), true if phi is a
        parametrization or false if not.

Description
===========

Test whether phi is a parametrization of C.

+--------------------------------------------------------+
|i1 : K=QQ;                                              |
+--------------------------------------------------------+
|i2 : R=K[v,u,z];                                        |
+--------------------------------------------------------+
|i3 : I=ideal(v^8-u^3*(z+u)^5);                          |
|                                                        |
|o3 : Ideal of R                                         |
+--------------------------------------------------------+
|i4 : T=K[t_0,t_1]                                       |
|                                                        |
|o4 = T                                                  |
|                                                        |
|o4 : PolynomialRing                                     |
+--------------------------------------------------------+
|i5 : phi=matrix {{t_0^3*t_1^5}, {-t_0^8}, {t_0^8-t_1^8}}|
|                                                        |
|o5 = | t_0^3t_1^5  |                                    |
|     | -t_0^8      |                                    |
|     | t_0^8-t_1^8 |                                    |
|                                                        |
|             3       1                                  |
|o5 : Matrix T  <--- T                                   |
+--------------------------------------------------------+
|i6 : testParametrization(I,phi)                         |
|                                                        |
|o6 = true                                               |
+--------------------------------------------------------+

See also
========

  * parametrize -- Rational parametrization of rational
    curves.
  * rParametrizeConic -- Compute a rational
    parametrization of a conic.
  * rParametrizePlaneCurve -- Rational
    parametrization of rational plane curves.

Ways to use testParametrization:
================================

  * "testParametrization(Ideal,Matrix)"

For the programmer
==================

The object testParametrization, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1443:0.

vb -- Option whether to print intermediate results.
***************************************************

Description
===========

If this option is set an ZZ bigger than 1 the function will print intermediate
results.

+-------------------------------------------------------+
|i1 : R=QQ[y_0..y_2];                                   |
+-------------------------------------------------------+
|i2 : I=ideal(y_0^2 + 3*3*43*y_1^2 -2*2*2*2*11*41*y_2^2)|
|                                                       |
|            2       2        2                         |
|o2 = ideal(y  + 387y  - 7216y )                        |
|            0       1        2                         |
|                                                       |
|o2 : Ideal of R                                        |
+-------------------------------------------------------+
|i3 : p=rationalPointOnConic(I,vb=>1)                   |
|(Input: 1548, ,-17291729664)                           |
|(a,b,c) = (1,43,-451)                                  |
|(a,b,c) = (1,43,-451)                                  |
|(R1,R2,R2) = (298,8,0)                                 |
|(alpha,beta,gamma) = (-153,43,2)                       |
|(a,b,c) = (1,-13,43)                                   |
|(R1,R2,R2) = (20,3,0)                                  |
|(alpha,beta,gamma) = (20,-13,3)                        |
|(a,b,c) = (1,1,-13)                                    |
|(R1,R2,R2) = (5,0,0)                                   |
|(alpha,beta,gamma) = (5,1,1)                           |
|(a,b,c) = (1,1,-2)                                     |
|(R1,R2,R2) = (1,0,0)                                   |
|(alpha,beta,gamma) = (-1,1,1)                          |
|                                                       |
|o3 = | 502 50 -13 |                                    |
|                                                       |
|              1        3                               |
|o3 : Matrix QQ  <--- QQ                                |
+-------------------------------------------------------+

See also
========

  * rationalPointOnConic -- Rational point on a
    conic.

Functions with optional argument named vb:
==========================================

  * "rationalPointOnConic(...,vb=>...)"

For the programmer
==================

The object vb, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Parametrization.m2:1695:0.