[back] [prev] [next] [index] [root]

 


MatHermiteColUpperTrans

Computes the upper column Hermite normal form together with a transformation matrix.

Syntax:

L := MatHermiteColUpperTrans(M [,"int"]);

list
  L  
matrix
  M  

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]