# Equivalence

This section describes functionality to test equivalence of quadratic forms. Currently only implemented over the rationals.

## `IsRationallyEquivalent(X, Y): AlgMatElt, AlgMatElt -> BoolElt, AlgMatElt`

Given two rational symmetric matrices $X$ and $Y$, determine if they are rationally equivalent, and if so, return $T$ with $Y=TXT^t$.

## `IsRationallyEquivalent(f, g): RngMPolElt, RngMPolElt -> BoolElt, AlgMatElt`

Given two quadratic forms $f$ and $g$ over ${\mathbb{Q}}$, determine whether they are rationally equivalent, and if so, return a transform.

## `IsRationallySimilar(X, Y): AlgMatElt, AlgMatElt -> BoolElt, AlgMatElt, RngIntElt`

Given two rational symmetric matrices $X$ and $Y$, determine if they are rationally similar, and if so, return $T$ and $s$ with $s Y=TXT^t$.

## `IsRationallySimilar(f, g): RngMPolElt, RngMPolElt -> BoolElt, AlgMatElt, RngIntElt`

Given two quadratic forms $f$ and $g$ over ${\mathbb{Q}}$, determine whether they are rationally similar, and if so, return a transform and a similarity factor.
