|Re: [eigen] Solving a tridiagonal linear system|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Solving a tridiagonal linear system
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 26 Nov 2010 09:48:26 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=bQGsiePDBXV8OMQ3/6qM0Th91ow51cdQC0WZxaVr538=; b=lpVBPfRw3JHq4Nrls7Cn/3XR6V/aE27qhKU6Iukp6yVEs7quFHdhtjqUrCG/e0s1sQ NPnnj83nqvU4nb8Iuo1dkCoZVEuco3lpLTsKh4Lcy36AcDdp5AY7mXSeOKb0WV/MZIGL LQbtIODS3N4+mRrb/3XG1m2gfLCSdGEcxUftA=
- 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; b=dS5yMUlfLeu+/UKEn2Q0dZbByMG2My85SJO1F9gulhSNRvpGQebmgUF+iB9/pHKjoD qgFtfNHLTYMHZTlav5bB0sj4i/M59oDVTsciLLsySDlOMWvrdu8L98ZIYMC4GKttyOfw tj/UEWgwG17lXu/jT2HexRzYR72EtpQ9pyURo=
2010/11/26 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
> On Fri, Nov 26, 2010 at 2:45 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>> So I'm 100% OK to make UpperBidiagonalization and BandMatrix internal.
>> For good measure we could also do it for Hessenberg.
>> I remember that someone earlier objected against removing them (he was
>> using Hessenberg IIRC) but making them internal should be OK, it's
>> just a matter for him of doing internal::
> yes I've also been thinking about making the Tridiagonalization and
> HessenbergDecomposition classes internal but their current public API
> is consistent with the rest of Eigen, and the internal storage is
> LAPACK compatible.
Since Tridiagonalization inherits publicly BandMatrix, if we don't
make Tridiagonalization internal, then in effect we're not making
BandMatrix's API internal at all. So I still think that we should make
Then I don't have much of an opinion about Hessenberg but if we don't
have a public Tridiag class, what's the point of having a public
Hessenberg class. Seems like an inconsistent feature set.
> So unless we want to change the internal
> representation is the future (and lost LAPACK compatibility), I don't
> see any reason to make them internal.
> In the future me might add an Upper/Lower template option to
> Tridiagonalization but source compatibility will be preserved my
> assuming Lower by default. Same for SelfAdjointEigenSolver btw.
> I'm only changing the current Tridiagonalization::matrixT() method
> which currently returns a temporary dense matrix to return an abstract
> "ReturnByValue" object. In the future we will still be able to return
> a kind of self-adjoint BandView (or TridiagonalView) without breaking
> source compatibility since the API of ReturnByValue is minimalistic.