SmithNormalForm (hackage): This package contains an implementation of Smith normal form for arbitrary matrices over the integers. In particular, it does not assume that the matrix is invertible or square.
Keywords: library|linearalgebra|math|mit