# Bases

The application of the functions in this section is restricted either to vector spaces or to torsion-free modules over a Euclidean Domain. For a full description of the basis functions for a module defined over a field, the reader is referred to the chapter on vector spaces.

## `Basis(M): ModTupRng -> [ModTupRngElt]`

The current basis for the free $R$-module $M$, $R$ an ED, returned as a sequence of module elements.

## `Rank(M): ModTupRng -> RngIntElt`

The rank of the free $R$-module $M$.

## `Coordinates(M, u): ModTupRng, ModTupRngElt -> [RngElt]`

Given a vector $u$ belonging to the rank $r$ free $R$-module $M$, $R$ an Euclidean Domain, with basis $u_1, \ldots, u_r$, return a sequence $[a_1, \ldots, a_r]$ giving the coordinates of $u$ relative to the $M$-basis: $u = a_1*u_1 + \cdots +a_r*u_r$.
