This is RandomCurvesOverVerySmallFiniteFields.info, produced by Macaulay2, version 1.25.11

RandomCurvesOverVerySmallFiniteFields -- randomly chosen smooth canonical curves over small finite fields
*********************************************************************************************************

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

This package can be seen as a refined version of the
RandomCanonicalCurves, package, which catches all
possible missteps in the constructions. The construction follows the
unirationality proof of M_g for g<=14 and the article Matrix factorizations and
families of curves of genus 15 (see http://arxiv.org/abs/1311.6962 ) for the
genus g=15 case. Since a unirational parametrization of M_g is only a rational
map, bad choices of parameters in the construction might end up in the
indeterminacy locus or other undesired subloci. Since for example a
hypersurface in characteristic 2 contains about 90% of the F_2-rational points
(see A quick and dirty irreducibility Test for Multivariate Polynomials over
F_q (see http://arxiv.org/abs/math/0404342 )), a failure of the construction in
the various steps is quite likely. We catch all possible missteps, and try
again until success.

For g<=10 we construct the canonical curves via plane models.

For 10<g<14 the canonical curves are constructed via space models.

For g=14 the construction is based on Verra's proof of the unirationality of
M_14 (see  The unirationality of the moduli space of curves of genus ≤14 (see
http://arxiv.org/abs/math/0402032 ) ).

The g=15 construction relies on matrix factorizations and is based on the
Macaulay2 Package Matrix factorizations and families of curves of genus 15 (see
http://arxiv.org/abs/1311.6962 ).

 For g <=14, the methods used in this package are based on the Macaulay2
Package RandomCurves,  and the methods for the g=15
case are based on the Macaulay2-package MatFac15 (see
http://www.math.uni-sb.de/ag-schreyer/images/data/computeralgebra/M2/doc/
Macaulay2/MatFac15/html/index.html ).

Caveat
======

This package requires Macaulay2 Version 1.9 or newer.

Authors
=======

  * Christian Bopp (see http://www.math.uni-sb.de/ag-schreyer/index.php/people/
    researchers/75-christian-bopp ) <bopp@math.uni-sb.de>
  * Frank-Olaf Schreyer (see https://www.math.uni-sb.de/ag/schreyer )
    <schreyer@math.uni-sb.de>

Version
=======

This documentation describes version 0.3 of
RandomCurvesOverVerySmallFiniteFields, released March 20, 2018.

Citation
========

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

+-----------------------------------------------------------------------------+
|@misc{RandomCurvesOverVerySmallFiniteFieldsSource,                           |
|  title = {{RandomCurvesOverVerySmallFiniteFields: A \emph{Macaulay2} package|
|  author = {Christian Bopp and Frank-Olaf Schreyer},                         |
|  howpublished = {A \emph{Macaulay2} package available at                    |
|    \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}} |
|}                                                                            |
|-----------------------------------------------------------------------------|
|. Version~0.3}},                                                             |
+-----------------------------------------------------------------------------+

Exports
=======

  * Functions and commands
      * isSmoothCurve -- Tests smoothness of a curve
      * smoothCanonicalCurve -- Computes the ideal
        of canonical curve
      * smoothCanonicalCurveGenus14, --
        Compute a random canonical curve of genus 14
      * smoothCanonicalCurveGenus15, --
        Computes the ideal of canonical curve of genus 15
      * smoothCanonicalCurveViaPlaneModel
        -- Computes the ideal of canonical
        curve via plane models
      * smoothCanonicalCurveViaSpaceModel
        -- Computes the ideal of canonical
        curve via space models
  * Methods
      * "isSmoothCurve(Ideal)" -- see isSmoothCurve, --
        Tests smoothness of a curve
      * "smoothCanonicalCurve(ZZ,ZZ)" -- see smoothCanonicalCurve,
        -- Computes the ideal of canonical curve
      * "smoothCanonicalCurveGenus14(ZZ)" -- see
        smoothCanonicalCurveGenus14, -- Compute a
        random canonical curve of genus 14
      * "smoothCanonicalCurveGenus15(ZZ)" -- see
        smoothCanonicalCurveGenus15, -- Computes
        the ideal of canonical curve of genus 15
      * "smoothCanonicalCurveViaPlaneModel(ZZ,ZZ)" -- see
        smoothCanonicalCurveViaPlaneModel,
        -- Computes the ideal of canonical curve via plane models
      * "smoothCanonicalCurveViaSpaceModel(ZZ,ZZ)" -- see
        smoothCanonicalCurveViaSpaceModel,
        -- Computes the ideal of canonical curve via space models
  * Symbols
      * Details -- keeps track of the precise step in the
        construction of canonical genus 14 and 15 curves. Default value is
        "false".
      * Printing -- displays information about the current
        step in the constructions. Default value is "false".

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

The object RandomCurvesOverVerySmallFiniteFields, is a
package (Macaulay2Doc), defined in
RandomCurvesOverVerySmallFiniteFields.m2.

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

The source of this document is in
RandomCurvesOverVerySmallFiniteFields.m2:1048:0.

Details -- keeps track of the precise step in the construction of canonical genus 14 and 15 curves. Default value is "false".
*****************************************************************************************************************************

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

Setting the option Details to true displays the precise step in the
construction which is currently performed. This option displays additional
information compared to the option Printing. The purpose of this additional
option is to further test and tweak the genus 14 and 15 construction. The
output displayed uses the notation from the sourcecode. Thus, without having a
look into the sourcecode this option might not be helpful.

The default value for all functions is false.

Enabling this option also enable the option Printing.

See also
========

  * Printing -- displays information about the current step in
    the constructions. Default value is "false".
  * smoothCanonicalCurve -- Computes the ideal of
    canonical curve
  * smoothCanonicalCurveGenus14 -- Compute
    a random canonical curve of genus 14
  * smoothCanonicalCurveGenus15 -- Computes
    the ideal of canonical curve of genus 15

Functions with optional argument named Details:
===============================================

  * "smoothCanonicalCurve(...,Details=>...)"
  * "smoothCanonicalCurveGenus14(...,Details=>...)"
  * "smoothCanonicalCurveGenus15(...,Details=>...)"

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

The object Details, is a symbol (Macaulay2Doc).

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

The source of this document is in
RandomCurvesOverVerySmallFiniteFields.m2:1308:0.

isSmoothCurve -- Tests smoothness of a curve
********************************************

  * Usage:
        isSmoothCurve(IC)
  * Inputs:
      * IC, an ideal (Macaulay2Doc), the Ideal of a curve
  * Outputs:
      * a Boolean value (Macaulay2Doc), , whether the curve is
        smooth or not

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

Checks whether a curve is smooth or not

+-------------------------------+
|i1 : S = QQ[x,y,z];            |
+-------------------------------+
|i2 : IC = ideal(x*y);          |
|                               |
|o2 : Ideal of S                |
+-------------------------------+
|i3 : isSmoothCurve(IC)         |
|                               |
|o3 = false                     |
+-------------------------------+
|i4 : IC2 = ideal (x^2+y^2+z^2);|
|                               |
|o4 : Ideal of S                |
+-------------------------------+
|i5 : isSmoothCurve(IC2)        |
|                               |
|o5 = true                      |
+-------------------------------+

Ways to use isSmoothCurve:
==========================

  * "isSmoothCurve(Ideal)"

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

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

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

The source of this document is in
RandomCurvesOverVerySmallFiniteFields.m2:1074:0.

Printing -- displays information about the current step in the constructions. Default value is "false".
*******************************************************************************************************

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

Setting the option Printings to true displays information about step in the
construction which is currently performed. The default value for all functions
is false.

This might be helpful in order to check how often a particular construction
step fails in small characteristic.

See also
========

  * smoothCanonicalCurve -- Computes the ideal of
    canonical curve
  * smoothCanonicalCurveViaPlaneModel,
    -- Computes the ideal of canonical curve via plane models
  * smoothCanonicalCurveViaSpaceModel,
    -- Computes the ideal of canonical curve via space models
  * smoothCanonicalCurveGenus14 -- Compute
    a random canonical curve of genus 14
  * smoothCanonicalCurveGenus15 -- Computes
    the ideal of canonical curve of genus 15

Functions with optional argument named Printing:
================================================

  * "smoothCanonicalCurve(...,Printing=>...)"
  * "smoothCanonicalCurveGenus14(...,Printing=>...)"
  * "smoothCanonicalCurveGenus15(...,Printing=>...)"
  * "smoothCanonicalCurveViaPlaneModel(...,Printing=>...)"
  * "smoothCanonicalCurveViaSpaceModel(...,Printing=>...)"

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

The object Printing, is a symbol (Macaulay2Doc).

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

The source of this document is in
RandomCurvesOverVerySmallFiniteFields.m2:1283:0.

smoothCanonicalCurve -- Computes the ideal of canonical curve
*************************************************************

  * Usage:
        smoothCanonicalCurve(g,p)
  * Inputs:
      * g, an integer (Macaulay2Doc), the genus
      * p, an integer (Macaulay2Doc), a prime number defining the
        characteristic
  * Optional inputs (Macaulay2Doc),:
      * Details, => ..., default value false, keeps track of the
        precise step in the construction of canonical genus 14 and 15 curves.
        Default value is "false".
      * Printing, => ..., default value false, displays
        information about the current step in the constructions. Default value
        is "false".
  * Outputs:
      * ICan, an ideal (Macaulay2Doc), the ideal of a (smooth)
        canonical curve of genus g over a field with characteristic p

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

Computes a smooth canonical curve of genus g<=15 over a field of characteristic
p. For genus g<=14 are based on the unirationality of M_g for g<=14 and the
RandomCurves-package. A unirational parametrization of M_g is only a rational
map and bad choices of parameters (which are quite likely over small fields)
might end up in the indeterminacy locus or some other undesired subloci. In
this construction, we catch the steps which do not work out for very small
characteristic by catching all possible missteps.

For g<=10 the curves are constructed via plane models.

For g<=13 the curves are constructed via space models.

For g=14 the curves are constructed by Verra's method.

For g=15 the curves are constructed via matrix factorizations.

If the option Printing is set to true then printings about the current step in
the construction are displayed.

+---------------------------------------------------+
|i1 : time ICan = smoothCanonicalCurve(11,5);       |
| -- used 1.44092s (cpu); 1.30021s (thread); 0s (gc)|
|                                                   |
|              ZZ                                   |
|o1 : Ideal of --[t ..t  ]                          |
|               5  0   10                           |
+---------------------------------------------------+
|i2 : (dim ICan, genus ICan, degree ICan)           |
|                                                   |
|o2 = (2, 11, 20)                                   |
|                                                   |
|o2 : Sequence                                      |
+---------------------------------------------------+
|i3 : betti ICan                                    |
|                                                   |
|            0  1                                   |
|o3 = total: 1 36                                   |
|         0: 1  .                                   |
|         1: . 36                                   |
|                                                   |
|o3 : BettiTally                                    |
+---------------------------------------------------+

See also
========

  * smoothCanonicalCurveViaPlaneModel,
    -- Computes the ideal of canonical curve via plane models
  * smoothCanonicalCurveViaSpaceModel,
    -- Computes the ideal of canonical curve via space models
  * smoothCanonicalCurveGenus14 -- Compute
    a random canonical curve of genus 14
  * smoothCanonicalCurveGenus15 -- Computes
    the ideal of canonical curve of genus 15

Ways to use smoothCanonicalCurve:
=================================

  * "smoothCanonicalCurve(ZZ,ZZ)"

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

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

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

The source of this document is in
RandomCurvesOverVerySmallFiniteFields.m2:1122:0.

smoothCanonicalCurveGenus14 -- Compute a random canonical curve of genus 14
***************************************************************************

  * Usage:
        smoothCanonicalCurveGenus14(p)
  * Inputs:
      * p, an integer (Macaulay2Doc), a prime number defining the
        characteristic
  * Optional inputs (Macaulay2Doc),:
      * Details, => ..., default value false, keeps track of the
        precise step in the construction of canonical genus 14 and 15 curves.
        Default value is "false".
      * Printing, => ..., default value false, displays
        information about the current step in the constructions. Default value
        is "false".
  * Outputs:
      * ICan, an ideal (Macaulay2Doc), the ideal of a smooth
        canonically embedded genus 14 curve

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

Computes a smooth canonical curve of genus 14 over a field of characteristc p.
The constructions are based on the unirationality proof of M_14 by A. Verra
(See "http://arxiv.org/abs/math/0402032") and the methods in the
Macaulay2-Package "RandomGenus14Curves". A unirational parametrization of M_g
is only a rational map and bad choices of parameters (which are quite likely
over small fields) might end up in the indeterminacy locus or some other
undesired subloci. In this constructions we catch the steps which do not work
out for very small characteristic.

If the option Printing is set to true then printings about the current step in
the construction are displayed.

See also
========

  * smoothCanonicalCurve -- Computes the ideal of
    canonical curve
  * smoothCanonicalCurveViaPlaneModel,
    -- Computes the ideal of canonical curve via plane models
  * smoothCanonicalCurveViaSpaceModel,
    -- Computes the ideal of canonical curve via space models
  * smoothCanonicalCurveGenus15 -- Computes
    the ideal of canonical curve of genus 15

Ways to use smoothCanonicalCurveGenus14:
========================================

  * "smoothCanonicalCurveGenus14(ZZ)"

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

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

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

The source of this document is in
RandomCurvesOverVerySmallFiniteFields.m2:1259:0.

smoothCanonicalCurveGenus15 -- Computes the ideal of canonical curve of genus 15
********************************************************************************

  * Usage:
        smoothCanonicalCurveGenus15(p)
  * Inputs:
      * p, an integer (Macaulay2Doc), the characteristic
  * Optional inputs (Macaulay2Doc),:
      * Details, => ..., default value false, keeps track of the
        precise step in the construction of canonical genus 14 and 15 curves.
        Default value is "false".
      * Printing, => ..., default value false, displays
        information about the current step in the constructions. Default value
        is "false".
  * Outputs:
      * ICan, an ideal (Macaulay2Doc), the ideal of a (smooth)
        canonical curve of genus g over a field with characteristic p

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

Computes a smooth canonical curve of genus g over a field of characteristc p.
The construction uses matrixfactorizations and we catch the steps which do not
work out for very small characteristic. The whole construction is based on the
Macaulay2 package "MatFac15"

If the option Printing is set to true then printings about the current step in
the construction are displayed.

See also
========

  * smoothCanonicalCurve -- Computes the ideal of
    canonical curve
  * smoothCanonicalCurveViaPlaneModel,
    -- Computes the ideal of canonical curve via plane models
  * smoothCanonicalCurveViaSpaceModel,
    -- Computes the ideal of canonical curve via space models
  * smoothCanonicalCurveGenus14 -- Compute
    a random canonical curve of genus 14

Ways to use smoothCanonicalCurveGenus15:
========================================

  * "smoothCanonicalCurveGenus15(ZZ)"

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

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

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

The source of this document is in
RandomCurvesOverVerySmallFiniteFields.m2:1225:0.

smoothCanonicalCurveViaPlaneModel -- Computes the ideal of canonical curve via plane models
*******************************************************************************************

  * Usage:
        smoothCanonicalCurveViaPlaneModel(g,p)
  * Inputs:
      * g, an integer (Macaulay2Doc), the genus
      * p, an integer (Macaulay2Doc), a prime number defining the
        characteristic
  * Optional inputs (Macaulay2Doc),:
      * Printing, => ..., default value false, displays
        information about the current step in the constructions. Default value
        is "false".
  * Outputs:
      * ICan, an ideal (Macaulay2Doc), the ideal of a (smooth)
        canonical curve of genus g over a field with characteristic p

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

Computes a smooth canonical curve of genus g over a field of characteristc p.
The constructions are based on the unirationality proofs of M_g for g<=10 and
the methods in the RandomCurves-package. A unirational parametrization of M_g
is only a rational map and bad choices of parameters (which are quite likely
over small fields) might end up in the indeterminacy locus or some other
undesired subloci. In this constructions we catch the steps which do not work
out for very small characteristic. The function works for g<=10.

If the option Printing is set to true then printings about the current step in
the construction are displayed.

See also
========

  * smoothCanonicalCurve -- Computes the ideal of
    canonical curve
  * smoothCanonicalCurveViaSpaceModel,
    -- Computes the ideal of canonical curve via space models
  * smoothCanonicalCurveGenus14 -- Compute
    a random canonical curve of genus 14
  * smoothCanonicalCurveGenus15 -- Computes
    the ideal of canonical curve of genus 15

Ways to use smoothCanonicalCurveViaPlaneModel:
==============================================

  * "smoothCanonicalCurveViaPlaneModel(ZZ,ZZ)"

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

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

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

The source of this document is in
RandomCurvesOverVerySmallFiniteFields.m2:1159:0.

smoothCanonicalCurveViaSpaceModel -- Computes the ideal of canonical curve via space models
*******************************************************************************************

  * Usage:
        smoothCanonicalCurveViaSpaceModel(g,p)
  * Inputs:
      * g, an integer (Macaulay2Doc), the genus
      * p, an integer (Macaulay2Doc), a prime number defining the
        characteristic
  * Optional inputs (Macaulay2Doc),:
      * Printing, => ..., default value false, displays
        information about the current step in the constructions. Default value
        is "false".
  * Outputs:
      * ICan, an ideal (Macaulay2Doc), the ideal of a (smooth)
        canonical curve of genus g over a field with characteristic p

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

Computes a smooth canonical curve of genus g over a field of characteristc p.
The constructions are based on the unirationality proofs of M_g for g<=10 and
the methods in the RandomCurves-package. A unirational parametrization of M_g
is only a rational map and bad choices of parameters (which are quite likely
over small fields) might end up in the indeterminacy locus or some other
undesired subloci. In this constructions we catch the steps which do not work
out for very small characteristic. The Function works for 11<=g<=13.

If the option Printing is set to true then printings about the current step in
the construction are displayed.

See also
========

  * smoothCanonicalCurve -- Computes the ideal of
    canonical curve
  * smoothCanonicalCurveViaPlaneModel,
    -- Computes the ideal of canonical curve via plane models
  * smoothCanonicalCurveGenus14 -- Compute
    a random canonical curve of genus 14
  * smoothCanonicalCurveGenus15 -- Computes
    the ideal of canonical curve of genus 15

Ways to use smoothCanonicalCurveViaSpaceModel:
==============================================

  * "smoothCanonicalCurveViaSpaceModel(ZZ,ZZ)"

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

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

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

The source of this document is in
RandomCurvesOverVerySmallFiniteFields.m2:1196:0.