Re: [eigen] Sparse Cholesky Factors |

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]

*To*: eigen <eigen@xxxxxxxxxxxxxxxxxxx>*Subject*: Re: [eigen] Sparse Cholesky Factors*From*: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>*Date*: Sat, 4 Apr 2015 16:45:18 +0200*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=LH70qTFavYAYOBe4ZM9NJAFIW6O4FqIfMexl+veY150=; b=l3e4+jZhC3QZapuC+9aG4X1CBOk5Ul8Fg5kPZt2h+omShfMKaOdeOdX/6S6Brz8p9j 6mBs2hDmxcOFD+8LkcVRMWM/b8eFhZIPIFIRaSD8krDbFA8R4+vj4g3fJg7Wigeh8uc8 WbREAood+HQ82Z49NGin7uv6dkYYqi/aV19BaIncFt4lJpRP3fUH3NBLc1WYyJFgPjKP hxsF7fk+o/qmqkLRfurjDSJLBemrVPU9gn40AvDQDS0FSLR7N5kPedd2Ous5dyBgIB9D 2mXwqXxyJpjcOZC1v14CqcXv5mDABcjO2BO2RQK7BDtfovPQBkPTyFw5y7QfDGHh/dJZ dtvQ==

Right, vectorD() is part of the public API. Regarding the determinant, there is a clear discrepancy across the different decomposition classes. Any decomposition allowing to compute the determinant should provide the same set of variants (i.e., sign, abs, log-abs).

cheers,

gael

On Sat, Apr 4, 2015 at 3:06 PM, Brad Bell <bradbell@xxxxxxxxxx> wrote:

My mistake, VectorD is part of the documentation for the LDL factorization. Thus I think that I have answered my own quesiton

On 4/4/2015 5:44 AM, Brad Bell wrote:

Looking at the source code

eigen-3.2.1/Eigen/src/SparseCholesky/SimplicialCholesky.h

one can see the undocumented public member function

inline const VectorType vectorD() const {

eigen_assert(Base::m_factorizationIsOk && "Simplicial Cholesky not factorized");

return Base::m_diag;

}

Is vectorD() intended to be part of the Eigen API ?

It appears that in the case of an eigen LDL Cholesky factorization

http://eigen.tuxfamily.org/dox-devel/classEigen_1_1SimplicialLDLT.html

the LDL means the same as in

http://en.wikipedia.org/wiki/Cholesky_decomposition#LDL_decomposition

It also appears that vectorD() returns the diagonal of the D matrix for this case.

Is this is true ? If so, one can uses these facts to directly compute the log of the determinant.

On 4/3/2015 6:17 AM, Brad Bell wrote:

Looking at the documentation

http://eigen.tuxfamily.org/dox-devel/classEigen_1_1SimplicialLLT.html

there is a determinant member function

Scalar Eigen::SimplicialLLT< _MatrixType, _UpLo, _Ordering >::determinant() const

For large matrices, the determinant often results in underflow or overflow. Is there also a log-determinant function (to avoid this problem) ?

**References**:**[eigen] Sparse Cholesky Factors***From:*Brad Bell

**Re: [eigen] Sparse Cholesky Factors***From:*Brad Bell

**Re: [eigen] Sparse Cholesky Factors***From:*Brad Bell

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] Using eigen shared library as a dynamic replacement for libblas** - Next by Date:
**[eigen] Conflict between coeffRef and CppAD** - Previous by thread:
**Re: [eigen] Sparse Cholesky Factors** - Next by thread:
**[eigen] Using eigen shared library as a dynamic replacement for libblas**

Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |