# Invariant Forms

Let $G$ be a finite matrix group $G < {\operatorname{GL}}_n({\mathbb{Q}})$. A matrix $F \in M_n({\mathbb{Q}})$ is $G$-invariant if $gFg^{tr} = F$ for all $g \in G$.

## `PositiveDefiniteForm(G): GrpMat -> Mtrx`

For a finite integral or rational matrix group $G$, return a positive definite symmetric $G$-invariant form.

## `InvariantForms(G): GrpMat -> [ AlgMatElt ]`

## `SymmetricForms(G): GrpMat -> [ AlgMatElt ]`

## `AntisymmetricForms(G): GrpMat -> [ AlgMatElt ]`

For an integral or rational matrix group $G$, return a basis for the space of $G$-linear forms or for the subspace of (anti-) symmetric forms respectively.

The first form returned by `InvariantForms` and `SymmetricForms` will be positive definite.

## `InvariantForms(G, n): GrpMat, RngIntElt -> [ AlgMatElt ]`

## `SymmetricForms(G, n): GrpMat, RngIntElt -> [ AlgMatElt ]`

## `AntisymmetricForms(G, n): GrpMat, RngIntElt -> [ AlgMatElt ]`

For an integral or rational matrix group $G$, return a sequence consisting of $n\geq 0$ $G$-invariant (symmetric or antisymmetric) bilinear forms for $G$.

## `NumberOfInvariantForms(G): GrpMat -> RngIntElt, RngIntElt`

## `NumberOfSymmetricForms(G): GrpMat -> RngIntElt`

## `NumberOfAntisymmetricForms(G): GrpMat -> RngIntElt`

For an integral or rational matrix group $G$ or a $G$-lattice $L$, return the dimension of the space of (symmetric or anti-symmetric) invariant bilinear forms for $G$.

The algorithm uses a modular method which is much faster than the actual computation of the forms.
