Message from discussion
Looking for a sparse-matrix template-based C++ library
Path: g2news2.google.com!news4.google.com!news.glorb.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: "Jugoslav Dujic" <jdu...@yahoo.com>
Newsgroups: sci.math.num-analysis
Subject: Looking for a sparse-matrix template-based C++ library
Date: Tue, 3 Oct 2006 18:06:13 +0200
Lines: 44
Message-ID: <4ofg4dFeephvU1@individual.net>
Mime-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Trace: individual.net /xn9TtZAowAYNstxF5mUVAmM2Dj9hyrHIWSFzpa5eiY6bzhvZH
X-Priority: 3
X-MSMail-Priority: Normal
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.
--
Jugoslav
___________
www.xeffort.com
Please reply to the newsgroup.
You can find my real e-mail on my home page above.