SmithNormalForm(R, Row, Col, M)

smith.spad line 1 [edit on github]

SmithNormalForm is a package which provides some standard canonical forms for matrices.

completeHermite : M -> Record(Hermite : M, eqMat : M)

completeHermite returns a record that contains the Hermite normal form H of the matrix and the equivalence matrix U such that U*m = H

completeSmith : M -> Record(Smith : M, leftEqMat : M, rightEqMat : M)

completeSmith returns a record that contains the Smith normal form H of the matrix and the left and right equivalence matrices U and V such that U*m*v = H

diophantineSystem : (M, Col) -> Record(particular : Union(Col, "failed"), basis : List(Col))

diophantineSystem(A, B) returns a particular integer solution and an integer basis of the equation A X = B.

hermite : M -> M

hermite(m) returns the Hermite normal form of the matrix m.

smith : M -> M

smith(m) returns the Smith Normal form of the matrix m.