ihermite takes as argument a matrix A with coefficients
ihermite returns two matrices U and B such that B=U*A, U is invertible in ℤ (det(U) = ± 1) and B is upper-triangular. Moreover, the absolute value of the coefficients above the diagonal of B are smaller than the pivot of the column divided by 2.
The answer is obtained by a Gauss-like reduction algorithm
using only operations of rows with integer coefficients
and invertible in ℤ.
Application: Compute a ℤ-basis of the kernel of a
matrix having integer coefficients
Let M be a matrix with integer coefficients.
This returns U and A such that A=U*transpose(M) hence
The columns of transpose(A) which are identically 0 (at the right, coming from the rows of A which are identically 0 at the bottom) correspond to columns of transpose(U) which form a basis of Ker(M). In other words, the rows of A which are identically 0 correspond to rows of U which form a basis of Ker(M).
Let M:=[[1,4,7],[2,5,8],[3,6,9]]. Input
Since A=[0,0,0], a ℤ-basis of Ker(M) is