Integral matrices and lattices
Linear equations over the integers and Integral Matrices
<#Include Label="NullspaceIntMat"> <#Include Label="SolutionIntMat"> <#Include Label="SolutionNullspaceIntMat"> <#Include Label="BaseIntMat"> <#Include Label="BaseIntersectionIntMats"> <#Include Label="ComplementIntMat">

Normal Forms over the Integers

This section describes the computation of the Hermite and Smith normal form of integer matrices.

The Hermite Normal Form (HNF) H of an integer matrix A is a row equivalent upper triangular form such that all off-diagonal entries are reduced modulo the diagonal entry of the column they are in. There exists a unique unimodular matrix Q such that Q A = H.

The Smith Normal Form S of an integer matrix A is the unique equivalent diagonal form with S_i dividing S_j for i < j. There exist unimodular integer matrices P, Q such that P A Q = S.

All routines described in this section build on the workhorse routine .

<#Include Label="TriangulizedIntegerMat"> <#Include Label="TriangulizedIntegerMatTransform"> <#Include Label="TriangulizeIntegerMat"> <#Include Label="HermiteNormalFormIntegerMat"> <#Include Label="HermiteNormalFormIntegerMatTransform"> <#Include Label="SmithNormalFormIntegerMat"> <#Include Label="SmithNormalFormIntegerMatTransforms"> <#Include Label="DiagonalizeIntMat"> <#Include Label="NormalFormIntMat"> <#Include Label="AbelianInvariantsOfList">

Determinant of an integer matrix
<#Include Label="DeterminantIntMat">

Decompositions
<#Include Label="[1]{zlattice}"> <#Include Label="Decomposition"> <#Include Label="LinearIndependentColumns"> <#Include Label="PadicCoefficients"> <#Include Label="IntegralizedMat"> <#Include Label="DecompositionInt">

Lattice Reduction
<#Include Label="LLLReducedBasis"> <#Include Label="LLLReducedGramMat">

Orthogonal Embeddings
<#Include Label="OrthogonalEmbeddings"> <#Include Label="ShortestVectors">