|Re: [eigen] Diagonal matrices diff|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Diagonal matrices diff
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Sun, 10 May 2009 18:50:30 +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=FQ+UyROk7JpjnKWacZd6dauZEusVCULJdjZtVGhxkoA=; b=K/pKA+772OTsZdZWlDZVpkloU6NOSI0CIAuKe3MUOAjUXXyRYvbgT5Lp7DQM/ouwi/ u6oviHgSjdVmvXMfm+M7c9jc4n6HdnZ4pBH30ygDM/jJHyULDrrVAy9569UYneeWKtfB T/RIi1jyWc2iwhvoVUG4EI26uj8ckef+eqkpU=
- 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=nvlMy2hqUcb+CDN2GHdrDAW1Cy2+17RELzR7Gc06G9sw9ft6xOmUwbhW6Yb7DXm7sy O70C5Nt3x8ghpasfQtizj0yggpJ6sxsdDl5nNhvv1LQOxhSNocjWF8uYYa+Z0yj6Stur wwSy3R82JO/PRE87GgHy91ELi6KKHUq7fSRI4=
ok, i committed because my local svn directory was a complete mess
(good we're soon moving to hg !)
Here's a summary of the changes: hope you agree, otherwise i can revert.
- the constant Diagonal is renamed to DiagonalBits
- a helper ei_is_diagonal is introduced to check for these bits: it is
used many times
- DiagonalCoeffs is renamed Diagonal (instead of Band)
- Diagonal's Index parameter may now be Dynamic
- add MatrixBase::diagonal(int) returning a Diagonal<Derived,Dynamic>
2009/5/10 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> ok, since we don't want to allow Part<Diagonal> anyway, the only way
> it remains used is to check whether a given expression is diagonal
> --> solution (doing it now):
> remove Diagonal constant
> add ei_is_diagonal<T>::ret (instead of doing the same slippery
> cooking everytime)
> rename DiagonalCoeffs to Diagonal, instead of Band
> 2009/5/10 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
>> ok, thinking about it: I agree that the terminology "Band" here was
>> very misleading.
>> But the name "DiagonalCoeffs" was ugly.
>> Ideally, we want to call that "Diagonal", but that symbol is already
>> taken in Constants.h.
>> Is it time to namespace the constants, a la Qt?
>> 2009/5/10 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
>>> 2009/5/10 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
>>>> 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...).
>>> There's a misunderstanding. By "Band" I mean exactly one
>>> diagonal/subdiagonal/superdiagonal. I'm using "band" as a shorter,
>>> unified synonym for all that.
>>> The only difference between Band and DiagonalCoeffs, is that now the
>>> index (positive for superdiagonal, negative for subdiagonal) can be a
>>> runtime variable.
>>> When I add a class for banded matrix allowing multiple bands, I'll
>>> call it "BandedMatrix".
>>> Is this terminology OK?
>>>> see what I wrote:
>>> Yes, I read it, btw i made comments here,
>>> i'd be interested in your thoughts before i do BandedMatrix.