# Transforms

## Mattson–Solomon Transforms

### `MattsonSolomonTransform(f, n): RngUPolElt, RngIntElt -> RngUPolElt`

Given $f$, a polynomial over a finite field containing a primitive $n$-th root of unity, return the Mattson–Solomon transform of parameter $n$.

### `InverseMattsonSolomonTransform(A, n): RngUPolElt, RngIntElt -> RngUPolElt`

Given $A$, a polynomial over a finite field containing a primitive $n$-th root of unity, return the inverse Mattson–Solomon transform of parameter $n$.

### `Example: Mattson Solomon Transform (ex-15eadc)`

We compute the Mattson–Solomon transform of parameter $n=7$ of the polynomial $x^4 + x^2 + x + 1$ over ${\bf F}_{2^{12}}$.

```magma
> n := 7;
> K := GF(2, 12);
> FP<x> := PolynomialRing(K);
> f := x^4 + x^2 + x + 1;
> A := MattsonSolomonTransform(f, n);
> A;
x^6 + x^5 + x^3

```

## Krawchouk Polynomials

### `KrawchoukPolynomial(K, n, k): FldFin, RngIntElt, RngIntElt -> RngUPolElt`

Return the Krawchouk polynomial of parameters $k$ and $n$ in $K$ over the rational field.

### `KrawchoukTransform(f, K, n): RngUPolElt, FldFin, RngIntElt -> RngUPolElt`

Return the Krawchouk transform of the polynomial $f$ over the rational field with respect to the vector space $K^n$.

### `InverseKrawchouk(A, K, n): RngUPolElt, FldFin, RngIntElt -> RngUPolElt`

Return the inverse Krawchouk transform of the polynomial $A$ over the rational field with respect to the vector space $K^n$.
