|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: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Fri, 26 Nov 2010 15:06:41 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:content-type; bh=mowd9K7+XkHjQkv3FOstLj/gjik9jHsNKMYt4ozd0os=; b=sc9AN6ziZOrLJquHhte43vnpS+42h7d4aLRD3mhPj9ZWEPDVK1UG47QIUM1U+U+262 wjeujrmMw95y18xyr9XO++Lh60PZkQazw38dpFrACTDtKK725gKg+iWNmc3Q4E2MsyCQ Zmt+V75E6OJpKcSGkrzflxNaoo6rt7ksU475Y=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; b=I9uMjOOOL8AbuSwE+86itfUvCKacofovPAQO119l9PWJQTR8oU0V/N1YnBWpdu2yED revGyOnnYp29dVZNpHkWhYQhAO4qgQS5gF3NrtVgeba5Goj0uCdcV7CyMKGaeBlXYTg+ CqkFszWnqDmvpxZOZwq9qy1MHa8ovkUu+oycI=
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. 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.