Transformations between Genus One Models#
A transformation between two genus one models of degree \(n=2\), 3, 4, or 5 is an isomorphism of the underlying data which preserves some additional structure.
Transformations of genus one models have their own type TransG1. A transformation can be applied to a model using '*'. The syntax for creating transformations, and for extracting data from them, is described in this section.
For degree 2 models \(q(x,z)\) without cross terms, or for degree 3 models, a transformation is a tuple \(\left< k, S \right>\), where \(k\) is an element of the coefficient ring; the transformed model is obtained by making the substitution of coordinate variables determined by \(S\) and multiplying the equation by \(k\). For degree 2 models with cross terms a transformation is a tuple \(\left< k, [A,B,C], S \right>\), where \(k\) and \(S\) are as above and in addition \(y+Ax^2+Bx z + Cz^2\) is substituted for \(y\) in the transformation. For degree 4, the first element is a \(2 \times 2\) matrix; a model of degree 4 is given by two quadric equations, and the \(2 \times 2\) matrix determines a change of basis of the quadrics (acting on them from the left). A transformation of degree \(5\) models is a tuple \(\left< T,S \right>\) where \(T\) and \(S\) are both \(5 \times 5\) matrices; a model of degree \(5\) is given by a \(5 \times 5\) matrix of linear forms \(M\), and the transformed model is given by \(TM_ST^{tr}\) where \(M_S\) is obtained from \(M\) by making the substitution of coordinate variables specified by \(S\).
Two genus one models are said to be equivalent if they differ by such a transformation. Equivalent models have the same invariants up to scaling by the 4th and 6th powers of some element.
- IsTransformation(n, g): RngIntElt, Tup -> BoolElt, TransG1#
This returns
trueif and only if the tuple \(g\) represents a transformation of genus one models of degree \(n\). If so, it also returns the transformation as an object of typeTransG1.
- Tuple(g): TransG1 -> Tup#
This returns a tuple containing the data that defines the given transformation of genus one models.
- ChangeRing(g, R): TransG1, Rng -> TransG1#
For a transformation \(g\) of genus one models, this constructs the same transformation over the ring \(R\).
- IdentityTransformation(n, R): RngIntElt, Rng -> TransG1#
The identity transformation of genus one models of degree \(n\).
- RandomTransformation(n : parameters): RngIntElt -> TransG1#
Size : RngIntElt Default: 5 Unimodular: BoolElt Default: false CrossTerms: BoolElt Default: false
A random transformation of genus one models of degree \(n\). When
Unimodularis set totruethen the returned transformation is integrally invertible.The optional parameter
Sizeis passed toRandomSLorRandomGL.In degree 2, if
CrossTermsis false then the returned transformation preserves the set of models with no cross terms.
- g * model: TransG1, ModelG1 -> ModelG1#
- ApplyTransformation(g, model): TransG1, ModelG1 -> ModelG1#
The result of applying the transformation \(g\) to the genus one model.
- g1 * g2: TransG1, TransG1 -> TransG1#
- ComposeTransformations(g1, g2): TransG1, TransG1 -> TransG1#
- MultiplyTransformations(g1, g2): TransG1, TransG1 -> TransG1#
The composition \(g1*g2\) of two transformations of genus one models. Transformations of genus one models act on the left: \((g1 * g2) * model = g1 * (g2 * model)\).
- Inverse(g): TransG1 -> TransG1#
- InverseTransformation(g): TransG1 -> TransG1#
- InverseTransformation(n, g): RngIntElt, TransG1 -> TransG1#
The inverse of the transformation \(g\) of genus one models.
- ScalingFactor(g): TransG1 -> RngElt#
- ScalingFactor(n, g): RngIntElt, TransG1 -> RngElt#
The scaling factor of the transformation \(g\) of genus one models. This an element \(\lambda\) such that if a genus one model has invariants \(c_4\) and \(c_6\) then the transformed model has invariants \(\lambda^4 c_4\) and \(\lambda^6 c_6\).
- Determinant(g): TransG1 -> RngElt#
The determinant of the matrix associated with the transformation \(g\).