Message from discussion Looking for a sparse-matrix template-based C++ library
From: "Jugoslav Dujic" <jdu...@yahoo.com>
Subject: Looking for a sparse-matrix template-based C++ library
Date: Tue, 3 Oct 2006 18:06:13 +0200
X-Trace: individual.net /xn9TtZAowAYNstxF5mUVAmM2Dj9hyrHIWSFzpa5eiY6bzhvZH
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
Apologies if this is off-topic, but it's certainly off-topic in
comp.lang.c++ (you know...), so...
I'm looking for a C++ library for solving sparse linear equations
systems with the following properties:
1) Ideally, it would be template (and/or STL)-based so that the
interfaces are easy to write, read and debug
2) having a free license
3) reasonably fast and stable
4) containing a symmetric linear LU or QR solver (iterative ones
are also fine, but they might be an overkill for the use)
I'd really like to hear some recommendations before I proceed
(I can kind of glue some of the ones below, but I'd rather not
reinvent the wheel).
So far, I've found:
http://math.nist.gov/spblas/ - NIST sparse BLAS. Powerful, fast, a bit
ugly interface (heck, 5 arguments for a matrix/vector multiplication,
and reuse of input storage for output, but that is wrappable). However,
it doesn't contain symmetric solvers, only triangular ones.
http://math.nist.gov/sparselib++ - Older SparseLib++ package (not maintained).
Arcane to build and difficult to port; has a LU solver based on a
"home-grown BLAS" routines (quote from the source). The ugliest thing
about it is really awkward filling of matrices; it doesn't do any dynamic
storage (std::vector or like) within, so to add an element to the matrix
after the painful construction is a pain++.
http://math.nist.gov/iml++/ - Didn't look at it in detail, but iterative
methods kind of scared me, plus SparseLib++ is a requirement.
http://www.cise.ufl.edu/research/sparse/umfpack/ - unsymmetric, non-template,
difficult to build. Didn't really look at it.
Please reply to the newsgroup.
You can find my real e-mail on my home page above.