An introspective algorithm for the integer determinant
Résumé
We present an algorithm computing the determinant of an integer matrix $A$. The algorithm is introspective in the sense that it uses several distinct algorithms than run in a concurrent manner. During the course of the algorithm partial results coming from distinct methods can be combined. Then, depending on the current running time of each method, the algorithm can emphasize a particular variant. With the use of very fast modular routines for linear algebra, our implementation is an order of magnitude faster than other existing implementations. Moreover, we prove that the expected complexity of our algorithm is only $O\left(n^3 (\log(n)+\log(||A||))^2 \log(n)\right) $ bit operations, where $||A||$ is the largest entry in absolute value of the matrix.