RE: [eigen] SelfAjointView::ldlt()

[ Thread Index | Date Index | More Archives ]

Thanks Marton,


The snippet of the code is part of a least squares fitter. The matrix M is the matrix of normal equations. I’ve forgotten to mention it but values is a Vector. I’d like to solve LS normal equation using Cholesky decomposition. I use also QR and SVD decomposition to solve LS problem directly without making up normal equations.







From: Listengine [mailto:listengine@xxxxxxxxxxxxxxxxx] On Behalf Of Márton Danóczy
Sent: Tuesday, April 27, 2010 10:32
To: eigen@xxxxxxxxxxxxxxxxxxx
Subject: Re: [eigen] SelfAjointView::ldlt()


I don't know about the eigen part, but in case your data are available in advance, you could gain speed and numerical accuracy by using the qr decomposition instead. If A=QR then A'A=R'Q'QR=R'R, thus R is the upper triangular cholesky factor of A'A. Just stack your values as row vectors vertically into A.




On 27.04.2010, at 07:50, "SHIROKOBROD Oleg" <Oleg.Shirokobrod@xxxxxxxxxx> wrote:



A have a symmetric matrix M with meaningful upper triangular part and arbitrary strict lower triangular part (in my case it is zero). I use development branch function M.selfadjointView<Eigen::UpperTriangular>().rankUpdate (values) at a previous step instead of Eigen2 M.part<Eigen::SelfAdjoint>() += values * values.transpose() one. I would like to use Cholesky decomposition. When I call Eigen::LDLT<Matrix> ldltOfM = M.selfadjointView<Eigen::UpperTriangular>().ldlt(), a linker issues the error message: “unresolved external symbol SelfAjointView<>::ldlt()”. There is reference “Cholesky module” before SelfAjointView::ldlt() member declaration, but I have not fond the implementation.

What is wrong?




Oleg Shirokobrod






This e-mail is confidential and is for the addressee only.   Please refer to for regulatory information.

+++ Virus-scanned by MailControl for Oxford Instruments +++

Mail converted by MHonArc 2.6.19+