Fast computation of the Smith form of a sparse integer matrix
We present a new probabilistic algorithm to compute the Smith normal form of a sparse integer matrix A is an element of Z(m*n). The algorithm treats A as a "black box"-A is only used to compute matrix-vector products and we do not access individual entries in A directly. The algorithm requires about O(m(2) log parallel toAparallel to) black box evaluations w Aw mod p for word-sized primes p and w is an element of Z(p)(n*1), plus O(m(2) n log parallel toAparallel to + m(3) log(2) parallel toAparallel to) additional bit operations. For sparse matrices this represents a substantial improvement over previously known algorithms. The new algorithm suffers from no "fill-in" or intermediate value explosion, and uses very little additional space. We also present an asymptotically fast algorithm for dense matrices which requires about O(n . MM(m) log parallel toAparallel to + m(3) log(2) parallel toAparallel to) bit operations, where O(MM(m)) operations are sufficient to multiply two m x m matrices over a field. Both algorithms are probabilistic of the Monte Carlo type-on any input they return the correct answer with a controllable, exponentially small probability of error.
smith form sparse integer matrix probabilistic algorithms