|Re: [eigen] memory savings in Tridiagonalization::decomposeInPlace|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] memory savings in Tridiagonalization::decomposeInPlace
- From: "Mauro Iazzi" <mauro.iazzi@xxxxxxxxx>
- Date: Tue, 30 Dec 2008 18:14:17 +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=GQ4zQNfFHJdHZPFJRdApMQfbgaScQCA71SImTcho39M=; b=dpPkVgE6iDg/xiYNApVYt1Zbi1Ed86rtuhUZKtMrqpX0kIT9WB4m8i63hMWCzzRr74 EGbmMeLlgxJXg0QmnTTr6P4xMbxpSH576od+jqtxHI4RzQSdaJqbLpI4qyvc9uG4QgD0 wb7XYiMi2jyeMPh5hCf6ZLsXcg1/i9r2RrfvA=
- 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=tvT5EBiYdavb5hWVLs4qm9HA+ZL0nTs/ixhPmP8tM283j27nfHkGPT96v1RRr+VnIP OKd0Jm61RWU80uEOpDM3PJcavbBzjJOCA+0MXSpYN4Jo+3oHCmZssl6DuEHAPia5ep6j jSDCfraVtLLjhGkC+vvAnF1dbOpWjQbuzDBBw=
no problem, I understand perfectly...
thank you and happy new year!
2008/12/30 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> 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
> 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,