Re: [eigen] Diagonal matrices diff

[ Thread Index | Date Index | More Archives ]


I did not read your patch carefully (no time right now) but initially
I thought it would be better to keep DiagonalCoeffs and add a new Band
class (for compilation time, more specialized API, etc...).

see what I wrote:

Also I don't understand how your patch works.  The former
DiagonalCoeffs class is able to represent any sub/super diagonal but
that's it, and I don't see where is the extra parameter allowing to
represent a band, i.e., a set of sub/super diagonal....

more comments when I'll more time...


On Sat, May 9, 2009 at 6:17 AM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
> Hi,
> before i can do the svd i need Banded matrices, for which i needed
> some improvements in DiagonalCoeffs.
> So here's a patch but as it is changing several things i thought i'd
> ask for your opinion (you know who you are) before committing.

> * rename DiagonalCoeffs (clumsy name) to Band. I tried first Diagonal,
> but that name was already taken by a constant Diagonal which is used
> for various things already.
> * rename the template parameter DiagId to Index.
> * keep diagonal() unchanged, returns a Band<Derived, 0>
> * rename diagonal<int>() to band<int>()
> * introduce diagonal(int), returning a Band<Derived, Dynamic>. The
> trick here is as we already do in Block : use ei_int_if_dynamic to
> store the Index in Band.
>   ---> that is the improvement that i need in order to code
> BandedMatrix. No need to unroll an outer loop there, and that also
> will reduce compilation times (only one Band type instantiated).
> Cheers,
> Benoit

Mail converted by MHonArc 2.6.19+