Fast Hermite Normal Form over ZZ
Mathematica code:
sage: mathematica.eval('a = Table[RandomInteger[{0,9}], {i,200}, {j,200}];')
sage: mathematica.eval('Timing[HermiteDecomposition[a];]')
{98.9791, Null}Maple code:
with(LinearAlgebra): n := 200: k := 9: A := RandomMatrix(n,n,generator=rand(-k..k)): time( HermiteForm(A,output=['H', 'U']) );
