Boost logo

Ublas :

From: Andreas Klöckner (kloeckner_at_[hidden])
Date: 2005-03-15 06:44:32


Hi all,

As I outlined in a previous post, UBlas allows a compressed_matrix to
have a partially-filled index pointer array, which (I assume) is deemed
necessary to have an efficient implementation of
compressed_matrix::push_back(). I've encountered two spots where this
causes trouble:

- axpy_prod for compressed_matrix assumes that the index pointer array
is always completely filled. (i.e. size1_ == filled1_-1). This is
typically true, but not always, and the present code leads to a
hard-to-find segfault if not. Hunk 2 of ublas-compressed-fill.patch
fixes this.

- UMFPACK also assumes that its arguments (which are compressed_matrix
workalikes) have fully filled index pointer arrays. Since we can't
change UMFPACK, we need to accomodate its needs. The code presently in
the UMFPACK bindings tries to do this, but fails to compile against
present UBlas CVS. I assume this is due to the changes from the recent
ublas_pure merge. I propose the following change: Add a method
"complete_index1_data()" to compressed_matrix that fills up the index1_
array (Hunk 1 of ublas-compressed-fill.patch). Modify bindings to use
this change. (bindings-compressed-traits.patch)

Comments? Commit?

I also have more UBlas codes that I'd be willing to submit:

- bindings to ARPACK (a sparse eigensolver)
- implementations of preconditioned CG and BiCGSTAB
- an implementation of Cholesky decomposition

Andreas

--
--------------------------------------+-----------------------------
Dipl.-Math. techn. Andreas Klöckner   | FON +49 721 608-7982
Institut für Angewandte Mathematik II | FAX +49 721 608-6679
Universität Karlsruhe                 | EMAIL kloeckner_at_[hidden]
Englerstraße 2                        |
76128 Karlsruhe                       | RAUM 022
Germany                               | Kollegiengebäude Mathematik
--------------------------------------+-----------------------------