# Conjugacy

## `ZClasses(G): GrpMat -> SeqEnum, SeqEnum`

```magma
Homogeneously: BoolElt                    Default: false
```

Given a finite integral or rational matrix group $G$, its ${\operatorname{GL}}_n({\mathbb{Q}})$-conjugacy class splits into finitely many ${\operatorname{GL}}(n,{\mathbb{Z}})$-conjugacy classes. Representatives of these classes are constructed as the action of $G$ on some $G$-invariant sublattices. More precisely, the ${\operatorname{GL}}(n,{\mathbb{Z}})$-conjugacy classes are in bijection with the orbits of $G$-invariant lattices under the normalizer $N$ of $G$ in ${\operatorname{GL}}(n, {\mathbb{Q}})$.

A $G$-lattice $L'$ belongs to a $G$-lattice $L$ if $L = \sum_i L' e_i$ where $e_1,\dots,e_r$ denote the central idempotents of the endomorphism ring of $G$. Further, $L$ is called *homogeneously decomposable* if $L$ belongs to itself.

The algorithm will first compute representatives $L_1, \dots,L_k$ of the orbits of homogeneously decomposable $G$-lattices under the action of $N$.

In a second step, it will then compute the $G$-lattices $L_{i, j}$ belonging to $L_i$ up to the action of $N$.

The second return value will then consist of a sequence of $k$ sequences $T_1,\dots,T_k$. The first element $T_i[1]$ is the basis matrix of $L_i$, the following entries are basis matrices of the lattices $L_{i, j}$.

The first return value is a sequence of integral matrix groups describing the action of $G$ on the lattices $L_{1,1}, L_{1,2}, \dots$. Hence these groups correspond to the ${\operatorname{GL}}_n({\mathbb{Z}})$-conjugacy classes of $G$.

If `Homogeneously` is set to `true`, the function will only compute the homogeneously decomposable lattices $L_1,\dots, L_k$ and the corresponding matrix groups. (If $G$ is reducible, this option is much faster, but will not yield all conjugacy classes / orbits of lattices.)

## `IsGLZConjugate(G, H): GrpMat[RngInt], GrpMat[RngInt] -> BoolElt, GrpMatElt`

Tests whether the finite integral matrix groups $G$ and $H$ are conjugate in ${\operatorname{GL}}_n({\mathbb{Z}})$. If so, a matrix $x$ such that $G^x = H$ is also returned.

## `IsBravaisEquivalent(G, H): GrpMat[RngInt], GrpMat[RngInt] -> BoolElt, GrpMatElt`

Given two finite integral matrix groups $G$ and $H$, tests whether their Bravais groups $B(G)$ and $B(H)$ are conjugate in ${\operatorname{GL}}_n({\mathbb{Z}})$. If so, a matrix $x$ such that $B(G)^x = B(H)$ is also returned.

Note that this function does not need to compute the Bravais groups and hence it is faster than calling `IsGLZConjugate` on the Bravais groups directly.

If $G$ and $H$ are known to be Bravais groups, this function is usually more efficient than calling `IsGLZConjugate`.

## `IsGLQConjugate(G, H): GrpMat, GrpMat -> BoolElt, GrpMatElt`

```magma
Al: MonStgElt                    Default: 
```

Tests whether the finite rational matrix groups $G$ and $H$ are conjugate in ${\operatorname{GL}}_n({\mathbb{Q}})$. If so, a matrix $x$ such that $G^x = H$ is also returned.

There are currently two algorithms available. If the optional parameter `Al` equals `"Aut"`, Magma will use the `GModule`-machinery together with the outer automorphism group of $H$. If `Al` is set to `"ZClasses"`, Magma splits the ${\operatorname{GL}}(n, {\mathbb{Q}})$-conjugacy class of $H$ into ${\operatorname{GL}}_n({\mathbb{Z}})$-conjugacy classes and then decides whether an integral copy of $G$ lies in one of these classes by several calls to `IsGLZConjugate`.

If `Al` is not provided, a sensible choice is made by the system.
