From octave-maintainers-request at bevo dot che dot wisc dot edu Mon Nov 25 01:42:14 2002 Subject: sparse matrices From: Paul Kienzle To: jwe at bevo dot che dot wisc dot edu Cc: octave-maintainers at bevo dot che dot wisc dot edu Date: Mon, 25 Nov 2002 02:42:07 -0500 John, I was looking at Andy's sparse code trying to decide how to handle exceptions. Before going to far into it, I decided to check out the competition in the sparse solver market. A useful page is http://www-users.cs.umn.edu/~agupta/wsmp.html, which has a comparison of general solvers. The authors own package (wsmp) comes out way ahead, but I very much doubt it will be released under a GPL compatible license. The next best package (mumps) http://www.enseeiht.fr/lima/apo/MUMPS/ has a non-commercial license. The third best package (umfpack) http://www.cise.ufl.edu/research/sparse/umfpack/ has a BSD style license. SuperLU http://www.nersc.gov/~xiaoye/SuperLU/ and SPOOLES http://www.netlib.org/linalg/spooles/spooles.2.2.html are tied for last place, with the distributed version of superLU having the dubious distinction of having the only numerically inaccurate results listed in the table. Other sites say that umfpack is faster than superlu, but do nothing to back it up. Matlab 6.5 uses umfpack for its sparse solver and arpack for eigenvalues. arpack++ is a C++ library for sparse matrices which can already call superLU and umfpack. I haven't looked at it in detail, so I don't know how much work it would be to turn it into an octave value, or even what license it is released under. A recent TOMS article gives a sparse blas reference implementation. Andy's sparse ops have these as C++ macros. I don't know if it is worth changing to using sparse blas. Unfortunately, none of this investigation got me anywhere closer to releasing a 2.1.40 compatible octave-forge. Oh, well! - Paul