Registered Member
|
I know this topic has come up a few times, but I am still a little confused about how permutations are applied to the SimplicialL(D)LT decompositions, and I cannot find a clear reference in the documentation.
Referring to the code and output that I pasted below, it appears that P'AP = LDL. That of course implies that A = PLDLP'. And we see that A and PLDLPinv are the same. So far, so good. Now, in the documentation for the twistedBy() function, we should expect that LDL = A.twistedBy(P). However, we see that LDL=A.twistedBy(Pinv) instead. Also, my understanding is that Cholmod has PAP' = LDL, and Eigen is the other way around. Is this correct? In any case, I'm not quite sure what I'm doing wrong here. Can you help? I'm also open to suggestions on how to make some of the sparse matrix code more efficient. Thanks. Here's the code:
and here's the output:
|
Moderator
|
alright, first of all there is a mistake in the documentation of twistedBy:
A.twistedBy(P) = P A P' Now regarding Simplicial*, I think it's probably a good idea to be consistant with other factorizations, and thus factorize P A P^-1. Just in time before we release 3.1. |
Registered users: Baidu [Spider], Bing [Bot], Google [Bot], rblackwell