integer-only Hermite Normal Form
rectangular matrix of integers
Important: The linalg package has been deprecated. Use the superseding packages LinearAlgebra[HermiteForm], instead.
- For information on migrating linalg code to the new packages, see examples/LinearAlgebraMigration.
The function ihermite computes the Hermite Normal Form (reduced row echelon form) of a rectangular matrix of integers.
The Hermite normal form of A is an upper triangular matrix H with rank(A) = the number of nonzero rows of H. If A is an n by n matrix of full rank then ∏i],i=1..n⁢H[i.
This is not an efficient method for computing the rank or determinant except that this may yield a partial factorization of det⁡A without doing any explicit factorizations.
The Hermite normal form is obtained by doing elementary row operations. This includes interchanging rows, multiplying through a row by -1, and adding an integral multiple of one row to another.
One can use transposes to obtain column form of the Hermite Normal Form.
In the case of two arguments, the second argument U will be assigned the transformation matrix on output, such that the following holds: ihermite(A) = U A.
The command with(linalg,ihermite) allows the use of the abbreviated form of this command.
Important: The linalg package has been deprecated. Use the superseding packages, LinearAlgebra and VectorCalculus, instead.
H ≔ array⁡9,−36,30,−36,192,−180,30,−180,180
To obtain column form of Hermite Normal Form
A ≔ array⁡3,7,11,13,17,19:
B ≔ ihermite⁡A,U
evalm⁡U &* A−B
Download Help Document
What kind of issue would you like to report? (Optional)