# RationalMaps -- rational maps between projective varieties

## Description

RationalMaps is a package for computing things related to maps between projective varieties.

It focuses on finding where a birational map is undefined, checking whether a map is a closed embedding, checking birationality and computing inverse maps

Mathematical background:
• A. V. Dória, S. H. Hassanzadeh, A. Simis, A characteristic free criterion of birationality, Advances in Mathematics, Volume 230, Issue 1, 1 May 2012, Pages 390-413.
• A. Simis, Cremona Transformations and some Related Algebras, Journal of Algebra, Volume 280, Issue 1, 1 October 2004, Pages 162--179
Functionality overlap with other packages:

Parametrization: While the package Parametrization focuses mostly on curves, it also includes a function invertBirationalMap that has the same functionality as inverseOfMap. On the other hand, these two functions were implemented differently and so sometimes one function can be substantially faster than the other.

Cremona: The package Cremona focuses on fast probabilistic computations in general cases and deterministic computations for special kinds of maps from projective space. More precisely,
• isBirational gives a probabilistic answer to the question of whether a map between varieties is birational. Furthermore, if the source is projective space, then degreeOfRationalMap with MathMode=>true gives a deterministic correct answer. In some cases, the speed of the latter is comparable with isBirationalMap with AssumeDominant=>true.
• inverseMap gives a fast computation of the inverse of a birational map if the source is projective space and the map has maximal linear rank. In some cases, even if the map has maximal linear rank, our function inverseOfMap appears to be competitive however. If you pass inverseMap a map not from projective space, then it calls a modified and improved version of invertBirationalMap from Parametrization.

## Version

This documentation describes version 1.0 of RationalMaps.

## Source code

The source code from which this documentation is derived is in the file RationalMaps.m2.

## Exports

• Types
• Functions and commands
• baseLocusOfMap -- the base locus of a map from a projective variety to projective space
• idealOfImageOfMap -- finds defining equations for the image of a rational map between varieties or schemes
• inverseOfMap -- inverse of a birational map between projective varieties
• isBirationalMap -- whether a map between projective varieties is birational
• isBirationalOntoImage -- whether a map between projective varieties is birational onto its image
• isEmbedding -- whether a rational map of projective varieties is a closed embedding
• isRegularMap -- whether a map to projective space is regular
• isSameMap -- whether two rational maps to between projective varieties are really the same
• jacobianDualMatrix -- computes the Jacobian dual matrix
• mapOntoImage -- the induced map from a variety to the closure of its image under a rational map
• "rationalMapping" -- see RationalMapping -- a rational mapping between projective varieties
• sourceInversionFactor -- computes the common factor among the components of the composition of the inverse map and the original map
• Methods
• "baseLocusOfMap(RationalMapping)" -- see baseLocusOfMap -- the base locus of a map from a projective variety to projective space
• "baseLocusOfMap(RingMap)" -- see baseLocusOfMap -- the base locus of a map from a projective variety to projective space
• "idealOfImageOfMap(RationalMapping)" -- see idealOfImageOfMap -- finds defining equations for the image of a rational map between varieties or schemes
• "idealOfImageOfMap(RingMap)" -- see idealOfImageOfMap -- finds defining equations for the image of a rational map between varieties or schemes
• "inverseOfMap(RationalMapping)" -- see inverseOfMap -- inverse of a birational map between projective varieties
• "inverseOfMap(RingMap)" -- see inverseOfMap -- inverse of a birational map between projective varieties
• "isBirationalMap(RationalMapping)" -- see isBirationalMap -- whether a map between projective varieties is birational
• "isBirationalMap(RingMap)" -- see isBirationalMap -- whether a map between projective varieties is birational
• "isBirationalOntoImage(RationalMapping)" -- see isBirationalOntoImage -- whether a map between projective varieties is birational onto its image
• "isBirationalOntoImage(RingMap)" -- see isBirationalOntoImage -- whether a map between projective varieties is birational onto its image
• "isEmbedding(RationalMapping)" -- see isEmbedding -- whether a rational map of projective varieties is a closed embedding
• "isEmbedding(RingMap)" -- see isEmbedding -- whether a rational map of projective varieties is a closed embedding
• "isRegularMap(RationalMapping)" -- see isRegularMap -- whether a map to projective space is regular
• "isRegularMap(RingMap)" -- see isRegularMap -- whether a map to projective space is regular
• "isSameMap(RationalMapping,RationalMapping)" -- see isSameMap -- whether two rational maps to between projective varieties are really the same
• "isSameMap(RingMap,RingMap)" -- see isSameMap -- whether two rational maps to between projective varieties are really the same
• "RationalMapping == RationalMapping" -- see isSameMap -- whether two rational maps to between projective varieties are really the same
• "jacobianDualMatrix(RationalMapping)" -- see jacobianDualMatrix -- computes the Jacobian dual matrix
• "jacobianDualMatrix(RingMap)" -- see jacobianDualMatrix -- computes the Jacobian dual matrix
• map(RationalMapping) -- the ring map associated to a RationalMapping between projective varieties
• "mapOntoImage(RationalMapping)" -- see mapOntoImage -- the induced map from a variety to the closure of its image under a rational map
• "mapOntoImage(RingMap)" -- see mapOntoImage -- the induced map from a variety to the closure of its image under a rational map
• "rationalMapping(ProjectiveVariety,ProjectiveVariety,BasicList)" -- see RationalMapping -- a rational mapping between projective varieties
• "rationalMapping(ProjectiveVariety,ProjectiveVariety,Matrix)" -- see RationalMapping -- a rational mapping between projective varieties
• "rationalMapping(Ring,Ring,BasicList)" -- see RationalMapping -- a rational mapping between projective varieties
• "rationalMapping(Ring,Ring,Matrix)" -- see RationalMapping -- a rational mapping between projective varieties
• "rationalMapping(RingMap)" -- see RationalMapping -- a rational mapping between projective varieties
• RationalMapping * RationalMapping -- compose rational maps between projective varieties
• "RationalMapping ^ ZZ" -- see RationalMapping * RationalMapping -- compose rational maps between projective varieties
• source(RationalMapping) -- returns the source or target of a RationalMapping between projective varieties.
• "target(RationalMapping)" -- see source(RationalMapping) -- returns the source or target of a RationalMapping between projective varieties.
• "sourceInversionFactor(RingMap)" -- see sourceInversionFactor -- computes the common factor among the components of the composition of the inverse map and the original map
• Symbols
• AssumeDominant -- whether to assume a rational map between projective varieties is dominant
• CheckBirational -- whether to check birationality
• HybridLimit -- an option to control HybridStrategy
• HybridStrategy -- A strategy for determining whether a map is birational and computing its inverse
• MinorsLimit -- an option to limit the number of random minors computed
• QuickRank -- an option for controlling how rank is computed
• ReesStrategy -- a strategy for determining whether a map is birational and computing its inverse
• SaturateOutput -- whether the value returned should be saturated
• SaturationStrategy -- a strategy for determining whether a map is birational and computing its inverse
• SimisStrategy -- a strategy for determining whether a map is birational and computing its inverse

## For the programmer

The object RationalMaps is .