I have implemented pivoted Cholesky from http://www.dfg-spp1324.de/download/preprints/preprint076.pdf. My expectation was that I would be able to use the resulting triangular matrix to easily solve the linear equations. However, the resulting matrix is not triangular. However, $R^TR$ indeed seems to be equal to the original matrix I decomposed.
Originally, I thought that there is error in my implementation, but when I found another one and it had the same problem (https://github.com/NathanWycoff/PivotedCholesky/blob/master/pivoted_chol.py). Then I found one in Tensorflow (https://www.tensorflow.org/probability/api_docs/python/tfp/math/pivoted_cholesky), and it has disclaimer about the resulting matrix not being triangular.
- Is it indeed true that the result of the pivoted Cholesky decomposition is not triangular?
- Can it be triangulated somehow? I tried to multiply it with the permutation matrix but that was not giving me anything resembling the triangulate matrix. The number of 0 and non-0 elements seems to be correct, but they are not located in the triangular shape.
- Is there actually sense in using pivoted Cholesky for solving $J^Tx=J^Tr$ equation where $J$ is 6x6 Jacobian coming from matching pair of 3D correspondences? Would a normal Cholesky be enough in terms of numerical stability? Or LDLT / QR decomposition?
Thank you in advance. I am more a programmer than a mathematician, so I am experiencing trouble understanding some theory behind correspondence matching.