# Twists

Using classical reductions to compute the cohomology set $H^1({\rm Gal}(\overline{k}/k),{\rm Aut}(C))$ over finite fields, the function `Twists` computes a list of representatives of all twists of a smooth plane quartic over a finite field. This relies on the prior computation of the geometric automorphism group of $C$, which the algorithms return as a second value when requested.

## `TwistsOfPlaneQuartic(C, Autos): Crv, SeqEnum -> SeqEnum[Crv], GrpPerm`

```magma
AutomorphismGroup: BoolElt                    Default: false
```

Compute the twists of the plane quartic curve $C$ from its geometric automorphism group $Autos$. If `AutomorphismGroup` is set to `true`, then the furnished automorphism group is additionally returned as an abstract group.

For more details, see [[Lercier *et al.*, 2014](../../references.md#cite-lrrs14), [Meagher and Top, 2010](../../references.md#cite-meto10)].

## `Twists(C): Crv -> SeqEnum, GrpPerm`

```magma
AutomorphismGroup: BoolElt                    Default: false
```

Compute the twists of the elliptic, hyperelliptic or plane quartic curve $C$. If `AutomorphismGroup` is set to `true`, then the geometric automorphism group of $C$ is additionally returned as an abstract group.

## `Example: Twists Ex (ex-ae635c)`

We compute the twists of the Klein quartic over ${\mathbb{F}}_{31}$.

```magma
> P<x,y,z> := PolynomialRing(GF(31), 3);
> PP := ProjectiveSpace(P);
> f := x^3*y + y^3*z + z^3*x;
> C := Curve(ProjectiveSpace(P), f);
> #Twists(C);
4

```
