# 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 `true` if 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 type `TransG1`.

## `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`

```magma
Size      : RngIntElt                    Default: 5
Unimodular: BoolElt                      Default: false
CrossTerms: BoolElt                      Default: false
```

A random transformation of genus one models of degree $n$. When `Unimodular` is set to `true` then the returned transformation is integrally invertible.

The optional parameter `Size` is passed to `RandomSL` or `RandomGL`.

In degree 2, if `CrossTerms` is 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$.
