[back] [prev] [next] [index] [root]
MatHermiteColUpperTrans
Computes the upper column Hermite normal form
together with a transformation matrix.
Syntax:
L := MatHermiteColUpperTrans(M [,"int"]);
Description:
The MatHermiteColUpperTrans routine computes the upper
column Hermite normal form H of the integer matrix
M. Additionally it computes the rank of M and a
transformation matrix T such that H = {\tt
M}* T. The result is a list L which contains
the rank, the Hermite normal form H and the
transformation matrix T.
If the matrix is defined over a local field and has integral
coefficients, the Hermite Normal Form over the respective valuation
ring is returned.
Example:
Compute the upper column Hermite normal form of
\left(\begin{array}{ccc} 3 & 7 & 10 20 & 25 & 40
\end{array}right).
kash> M := Mat(Z,[[3,7,10],[20,25,40]]);
[ 3 7 10]
[20 25 40]
kash> L := MatHermiteColUpperTrans(M);;
kash> L[1];
2
kash> L[2];
[0 1 0]
[0 0 5]
kash> L[3];
[ -6 1 -5]
[-16 4 -15]
[ 13 -3 12]
kash> M*L[3];
> [0 1 0]
[0 0 5]
<- back[back] [prev] [next] [index] [root]