|Re: [eigen] Diagonal matrices diff|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Diagonal matrices diff
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Sun, 10 May 2009 16:22:02 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=Tn8gn4JxNSkQye19zEgQD/JRbmrOgKEQiIEZKp0163E=; b=kGouyQwX3SvbBxhHiKrpSA7nGOVTrAMhXo0oAdomj4yIK8efsLWdYV9H3MRVuJ+saR 1Fj4XPlz+aMd5T1pbUDT+Y3BN6i5NTjathjaSg36OUguOnU7HF16mcUrri1XXT3zdRw0 f1TTWe5vr6pmdwggIKPTKgC6KdAIAZ1VSnRH0=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=IARIDJ/AWtGQJlsx5bJX+h/xiIEXffD/mlnhvGZcOqlX3ihbop2x1DNj6FWj6MGh44 hOk813ZCUu7QK2b1ZbLin4x2yys9st/UUdty+8R4uPtUf8OQIhk6Lrco+KkX8nxNR1pQ Eaq1OLK5i++KoWibhwOMhZF6pOqTTk+dFykKU=
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:
> 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).