Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices |

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

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices*From*: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>*Date*: Wed, 16 Jun 2010 19:05:41 +0200*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:content-type; bh=2/pqY7LO/WDQMRLAeqJN8cFaAPGFxke7N/NTuqP9J8c=; b=nvX18rj/SboMQNJM05oSZkvaVBUjB8bpqiJwDvtwCg4Mm/JnA+smvIWUpXsjuaOBF2 9foMk4+26TfrpMWgAZ64VLWxDWaWWG3vl/N6ijkCVDHg4zJlUzYhIm0ZL81OZVUSk/Us K6jwCVob5G1qE1a77zjS57MtnQsFohiohc/+I=*Domainkey-signature*: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; b=VweaTfqQMtIzJssU5GVH0ib4oCnzNx+WUkbl4OZ+zE+6rFyPMFK3uKVq2+YsNrXw4Q /ZoKXXbO2oMUYHEamYip6CJjwG5dM2OkURusQI/MhgkDSRtp9tD1goA53ZTvckeVrNla BMaYY2oOi6MQ5c1YVfnU/rWPMvV81xvzwW8cg=

On Sun, Jun 6, 2010 at 5:34 AM, Ben Goodrich <bgokgm@xxxxxxxxxxxxxx> wrote: > Hi, > > On Sun, Feb 28, 2010 at 1:44 AM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote: >> If I understand correctly your other email, you'd be happy with >> instead a non-pivoting LDLt. That sounds more reasonable than >> "unpivoting" a pivoting LDLt. >> >> So: OK to add a non-pivoting option to LDLt. >> >> Benoit > > Here is a unified patch to reimplement the non-pivoting option. Sorry > for the more than 3 month delay; had to write words in dissertation > rather than code :( . > > Some thoughts: > > 0) If you changed your mind and don't want this option anymore, that's > fine. I can apply the patch locally. That said, having a pivot option > makes it possible to be compatible with eigen2 and is probably useful > to someone besides just me. And it is easy to do. When I redesigned LDLT to support blocking and to work fully inplace, I also thought it might be cool to have such a pivoting option, however I was unsure whether this should be a runtime and or compile time option. And if it is a runtime option, shall it be set once for all by the ctor, or modifiable when calling compute, or via a specific function... Finally, we can consider this option to be in pair with the compute* options for the other decompositions, so let's do the same here, i.e.: add a "int option" parameter to all LDLT ctor and to the compute method defaulting to "Pivoting". To disable pivoting will use the NoPivoting constant. That's better than meaningless booleans. > 2) For example, in the positive semi-definite but (numerically) > rank-deficient case, I had to put exact zeros on the diagonal of D to > get the reconstruction right. This contravenes Benoit's statement > earlier in this thread that Eigen does not "finish" decompositions of > rank-deficient matrices. But I didn't immediately see any other good > way to do it, in light of Gael's recent changes to LDLT. maybe this is fixed now ? > > 3) I implemented the option like > > if(pivot) > { > .... > } > else > { > ... // mostly copy-and-paste from above > } > > which resulted in some code duplication but avoids the need to > repeatedly evaluate if(pivot) inside the loop. I guess that is > slightly faster and clearer, but if you would rather not have the code > duplication, I can do it the other way. yes I'd much prefer the other way, such code duplication is prone to bugs. > 5) I copied-and-pasted a block inside /test/cholesky.cpp and exercised > the pivot=false option. It seems to work when you do ./check.sh > cholesky. I did some other tests locally with singular matrices, but > /test/cholesky.cpp does not seem to have any tests with singular > matrices, so maybe some should be added? why not. You should also make the solve function skips the transpositions when no pivoting has been computed. cheers, gael

**Follow-Ups**:**Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices***From:*Gael Guennebaud

**Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices***From:*Ben Goodrich

**References**:**Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices***From:*Ben Goodrich

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] Matrix product between some MatrixType and triangularView<UnitLower>** - Next by Date:
**Re: [eigen] Generalized selfadjoint eigenvalues** - Previous by thread:
**Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices** - Next by thread:
**Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices**

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