This is documentation for Mathematica 8, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

HermiteDecomposition

HermiteDecomposition[m]
gives the Hermite normal form decomposition of an integer matrix .
  • The result is given in the form where is a unimodular matrix, is an upper-triangular matrix, and .
Decompose m into a unimodular matrix u and an upper-triangular matrix r:
The determinant of u is a unit:
Decompose m into a unimodular matrix u and an upper-triangular matrix r:
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
In[3]:=
Click for copyable input
Out[3]=
The determinant of u is a unit:
In[4]:=
Click for copyable input
Out[4]=
A singular matrix m:
The number of nonzero rows in r is equal to the rank of m:
Rectangular matrices m:
A rational matrix m:
u is a unimodular integer matrix; r is an upper-triangular rational matrix:
A Gaussian integer matrix m:
u is a unimodular Gaussian integer matrix; r is an upper-triangular Gaussian integer matrix:
A Gaussian rational matrix m:
u is a unimodular Gaussian integer matrix; r is an upper-triangular Gaussian rational matrix:
Solve a linear Diophantine equation :
Form a homogenized system:
Rows of r are integer combinations of rows of m:
The second row of r gives a solution of :
The last two rows of r give a basis of solutions to the homogeneous equation :
Reduce uses HermiteDecomposition to solve linear Diophantine equations:
HermiteDecomposition gives a unimodular matrix and an upper-triangular matrix:
The matrices satisfy the equation :
Det of a unimodular matrix is a unit:
Inverse of a unimodular integer matrix is an integer matrix:
Elements of r form an upper-triangular basis of the lattice generated by the rows of m:
The inverse of u provides an explicit representation of rows of m in terms of the basis:
LatticeReduce gives a basis consisting of shorter vectors:
New in 6