HermiteDecomposition[m] gives the Hermite normal form decomposition of an integer matrix m.
Decompose m into a unimodular matrix u and an upper triangular matrix r: In[1]:=m=(1 | 2 | 3 5 | 4 | 3 8 | 7 | 9); In[2]:={u, r}=HermiteDecomposition[m]; {u//MatrixForm, r//MatrixForm} Out[2]={(1 | 0 | 0 3 | 1 | -1 -1 | -3 | 2), (1 | 2 | 3 0 | 3 | 3 0 | 0 | 6)} The determinant of u has absolute value 1: In[3]:=Abs[Det[u]] Out[3]=1 Confirm the decomposition: In[4]:=u.m = r Out[4]=True
Method
Charles Hermite
HermiteReduce | SmithDecomposition | RowReduce | LatticeReduce | ExtendedGCD
introduced in Version 6 (May 2007)