|RE: [eigen] SelfAjointView::ldlt()|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: <eigen@xxxxxxxxxxxxxxxxxxx>
- Subject: RE: [eigen] SelfAjointView::ldlt()
- From: "SHIROKOBROD Oleg" <Oleg.Shirokobrod@xxxxxxxxxx>
- Date: Tue, 27 Apr 2010 08:53:29 +0100
- Thread-index: Acrl2+GiKfFOzOTfQbWnTljl3gvyLQAAPZDQ
- Thread-topic: [eigen] SelfAjointView::ldlt()
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.
Behalf Of Márton Danóczy
Sent: Tuesday, April 27, 2010
Subject: Re: [eigen]
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.
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
+= 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?
This e-mail is confidential and is for the addressee only. Please
for regulatory information.
+++ Virus-scanned by MailControl for Oxford Instruments +++