The hnfproj package provides C routines for efficiently computing the Hermite normal form of integer matrices.
This package requires both GMP (http://gmplib.org/) and ATLAS (http://math-atlas.sourceforge.net).
M1 Medium Amazon EC2 instance: 64-bit Intel Xeon E5-2650 at 2GHz; 3.75 GiB RAM. GCC 4.6.3, ATLAS 3.10.1, GMP 5.1.1.
All times in seconds.
Random square matrices of dimension n (rows, in the table below) with entry of bitlength l (columns, below).
| hnfproj
 | Sage 5.5
 | 
For the following table only, experiments on larger matrices with 8-bit entries were performed on an 64-bit Intel Itanium2 at 1.3 GHz with 192 GB RAM. All times in seconds.
| n | hnfproj | Sage 5.5 | 
|---|---|---|
| 1000 | 74.23 | 659 | 
| 1600 | 286.8 | 2590 | 
| 2000 | 587.3 | 5663 | 
| 3200 | 2587 | |
| 4000 | 5408 | |
| 6400 | 31790 | |
| 8000 | 75810 | |
| 10000 | 182300 | 
Following the method of Jaeger and Wagner ("Efficient paralleizations of Hermite and Smith normal form algorithms", Parallel Computation, 35(6):345-57, 2009.), we construct a special class of matrices to provide particularly difficult examples. The (i,j)th entry of each matrix is (i-1)^(j-1) mod n. For prime n, the resulting matrix is nonsingular with many (generally more than n/2) non-trivial columns in Hermite form (denoted k in the table below).
| n | k | hnfproj | Sage 5.5 | 
|---|---|---|---|
| 101 | 56 | 0.53 | 1.13 | 
| 127 | 77 | 0.82 | 2.24 | 
| 211 | 118 | 3.21 | 19.4 | 
| 251 | 132 | 5.92 | 44.6 | 
| 401 | 266 | 18.69 | 531 | 
| 503 | 252 | 31.73 | 1520 | 
| 809 | 503 | 117.23 | |
| 1009 | 663 | 222.72 | |
| 1601 | 1060 | 836.51 | |
| 2003 | 1041 | 1411.54 | 
Random rectangular matrices with 8-bit entries, n rows and n+1, n+100, or 2n columns.
| hnfproj
 | Sage 5.5
 | 
C. Pauderis and A. Storjohann, Computing the invariant structure of integer matrices: fast algorithms into practice. Proceedings of the International Symposium on Symbolic and Algebraic Computation (ISSAC'13), ACM Press, 2013, 8pp. pdf
ECCAD'13 poster: Fast Heuristic Hermite Form