hermite normal form