Re: [eigen] memory savings in Tridiagonalization::decomposeInPlace |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] memory savings in Tridiagonalization::decomposeInPlace
- From: "Benoit Jacob" <jacob.benoit.1@xxxxxxxxx>
- Date: Tue, 30 Dec 2008 12:27:01 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=TQCzc4fNAAubaUg0TK8VJpS+ObECI17Z0biCNOnzJQQ=; b=DeNvhm/DFDSk36lq2Ls+YJFol6bZifWUTgh+Q1HJe0WbiDE6tBpM+p1Caa7B17ItEy m1TxecATB/kqMq2bYcOdTaNlr7f9hXH2sxKuY0YeSjIgKSBeOmAjZk19sDmuX8EFhggp NuL2RIO75ylmnq99bWIP4Ql90yeluQDQ7YtPA=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=KeNfW8mujmj5WIiarP1g7ZqXkpj9NEX8F1ZnebpJrqVhZjsKBYsantkx0GhdTcrGLa /O/Nk5mYA3BWSz9iVoFG3anNyCA/XeU8BP0QQRV1Kjb8w2+uD5txjYCfLqJnI5CQId+l a4oVyezNCUQzwCfqtHCfVU0W6NOUNAxFqfcVk=
Hi Mauro,
Just to say don't worry that nobody replied so far. It's just a combination of
1) holidays
2) holidays
3) the 1% of our brains that is still not drowning in goose fat is
busy with the tridiagonal stuff you got us thinking abot
Cheers,
Benoit
2008/12/22 Mauro Iazzi <mauro.iazzi@xxxxxxxxx>:
> Hi again,
> the change MatrixType->SquareMatrixType in SelfAdjointEigenSolver
> needs Gael approval. Tridiagonal support will require both this and
> the change to exclusive flags in Part.h. Since this will require some
> time, in the meanwhile I went serching for other low hanging fruits.
>
> I think that Tridiagonalization::decomposeInPlace unnecessarily
> creates a new matrix instead of reusing the one it is given. Reusing
> the old one reduces the space required to 2/3 for large matrices (can
> be aroung 200Mb in my simple examples). I attach the patch, again
> quite simple. For the sake of symmetry the matrixT() method could be
> changed as well like diagonal(), subDiagonal() and matrixQ() but it is
> not strictly necessary.
>
> There is a difference in the behaviour of decomposeInPlace(...). In my
> patch, if eigenvectors are not required, the given matrix is still
> overwritten, instead of staying unchanged. I think it is however
> preferrable to save memory in the general case. If the caller needs
> the original matrix it can simply store it... after all it is an
> "InPlace" method. What do you think?
>
> Cheers and happy holydays to everyone,
>
> mauro
>
---