Registered Member
|
Hi all, I am new with Cholesky decomposition, just started with it today. Can anyone tell me how to get matrixL and matrixU from CholmodSupernodalLLT and PardisoLLT/PardisoLDLT? If it is not easy for users to implement these functions, should we consider it as a feature request for next Eigen? Thanks.
|
Moderator
|
If you really need access to the factor to do your own cooking, then better use the built-in SimplicialL{D}LT<> class. Extracting the factors from the supernodal internal represations of Cholmod/Pardiso is indeed not straightforward and very rarely needed. We have to check, but if Cholmod/Pardiso provide routines to manipulate the factors, like applying it to a vector, then we could let matrix{L,U}() returns a pseudo expression wrapping these routines.... What do you need to do with the factors?
|
Registered Member
|
Thanks for your help. I am trying to speedup the update process of sparse direct solver in some special cases of rank-one update. The first step is breaking matrix L into blocks after permutation. I did a comparison and realized that CholmodSupernodalLLT/PardisoLLT beat all other solvers in term of running time , so I want to stick with the winners. |
Registered Member
|
Hi ggael,
How can we access parameter m_cholmodFactor in CholmodSupport.h? I tried a small example with Eigen::viewAsEigen() and got errors First I added a normal function in CholmodSupport.h
And then call it later as follow:
Since Eigen::viewAsEigen() gives us only shared data, how to use it safely in my case? |
Moderator
|
The factor is stored through supernodes using an internal representation of Cholmod, so you first need to look at Cholmod to see how to convert it to a standard sparse representation..
|
Registered users: Bing [Bot], Google [Bot], q.ignora, watchstar