Macaulay2 » Documentation
Packages » RandomCurvesOverVerySmallFiniteFields :: RandomCurvesOverVerySmallFiniteFields
next | previous | forward | backward | up | index | toc

# 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 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), 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 ).

The g=15 construction relies on matrix factorizations and is based on the Macaulay2 Package Matrix factorizations and families of curves of genus 15.

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.

## Caveat

This package requires Macaulay2 Version 1.9 or newer.

## Authors

- Christian Bopp <bopp@math.uni-sb.de>
- Frank-Olaf 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. Version~0.3}},
      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}}
    }

## 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, defined in RandomCurvesOverVerySmallFiniteFields.m2.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/RandomCurvesOverVerySmallFiniteFields.m2:1048:0.