CHOLMOD: sparse supernodal Cholesky factorization and update/downdate