Quern: a sparse QR library

Robert Bridson

Quern is a library for computing the QR factorization of a sparse matrix, using a very simple row-oriented uplooking Givens algorithm; versions that compute just R, or return R with a sparse representation of Q (as a product of Givens rotations and row swaps) are both included, along with some simple column and row ordering methods. More interestingly, an incomplete factorization using a drop tolerance is included, for use in preconditioning iterative solvers.

It provides a plain C API which should be straightforward to access from any decent language. The routines are robust against out-of-memory errors, returning an error code instead of crashing. I've also included an example program illustrating usage of the library, and MEX files to provide easier access from MATLAB.

Here is the code, released into the public domain: