Recursive block decomposition algorithms (also known as quadtree algorithms when the
blocks are all square) have been proposed to solve well-known problems such as matrix
addition, multiplication, inversion, determinant computation, block LDU decomposition and
Cholesky and QR factorization. Until now, such algorithms have been seen as impractical,
since they require leading submatrices of the input matrix to be invertible (which is rarely
guaranteed). We show how to randomize an input matrix to guarantee that submatrices meet
these requirements, and to make recursive block decomposition methods practical on well-conditioned input matrices. The resulting algorithms are elegant, and we show the recursive
programs can perform well for both dense and sparse matrices, although with randomization
dense computations seem most practical. By ‘homogenizing’ the input, randomization provides
a way to avoid degeneracy in numerical problems that permits simple recursive quadtree
algorithms to solve these problems.