Re: [eigen] banded matrices in Eigen

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi Gael,

Apologies for the confusion. The ThreadedConjugateSolver is a personal derived version from the Conjugate Gradient Solver class.

Concerning the matrices, the problem is that I am dealing with fully complete secondary diagonals, and implementing this with Sparse matrices implies a memory overhead that I would like to avoid.
BandMatrix is an approach which is very close to what I am looking for, but the problem is, as far as I have understood, that it would store all the super/sub diagonals up to a certain given number.
In my case, this is just not feasible. As an example, I would have a square matrix of size 9e6, in which I would only need to store 4 diagonals: the main one, and those with offsets 1, 300 and 90000 for instance.
(In the general case, I would always have an uppermost diagonal which is considerably far away from the rest.) Therefore, storing all the intermediate diagonals, which in this case would be full of zeros, is not possible.
 
If I could create my own class, derived from one of the existing ones (possibly the Diagonal one?), I could add some methods that suit the problem I am working on. Therefore, my question would be whether there are any suggestions
for that.
 
Thank you,
 
Laura


2014-02-12 23:17 GMT+01:00 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
There is a BandMatrix class for efficient band storage but there is no algorithms to work on them yet. So SparseMatrix is the way to go. What is the "ThreadedConjugateGradient" solver? There is no such class in Eigen.

gael


On Fri, Feb 7, 2014 at 4:49 PM, Laura Flores <laura.floresanchez@xxxxxxxxx> wrote:
Hi Rhys,
Yes, I meant a sparse matrix with that kind of structure (symmetric and multi-diagonal). I was using a SparseMatrix, but maybe it is better to use something more similar to the Diagonal class.

Thinking of another approach, could somebody tell if it is possible to use the ThreadedConjugateGradient solver with a custom matrix (that is to say, a matrix class defined by myself)? Or maybe with a matrix which is derived from the Diagonal class?

Thank you,
Laura


2014-02-07 4:06 GMT+01:00 Rhys Ulerich <rhys.ulerich@xxxxxxxxx>:

Hi Laura,

> I would also be interested in sparse multi-diagonal symmetric matrices.. I am
> dealing with sparse matrices that are composed only of a certain number of
> diagonals, and, since they are symmetric, some of this diagonals are
> identical.

Just to be clear, do you mean dense, symmetric, banded a la BLAS SBMV?
 Or do you mean a genuinely sparse matrix (so compressed storage of
some sort) that happens to exhibit the same structure?

> Has there been by any chance some improvement since the last question
> about this topic?

I'm not aware of any but would eagerly hear news.  Banded matrices are
the ugly stepchild of linear algebra libraries.

- Rhys







Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/