2

Let A be a positive definite matrix, and let A=L*L' be its cholesky factorization, where L is lower triangular. Let A2 = A + alpha*x*x' be a rank-1 update of matrix A, where x is a vector of appropriate dimension and alpha is a scalar.

The Cholesky factor update is a procedure for obtaining the factorization A2=L2*L2' without calculating A2 first, which is useful to speed up computations in the case of such low-rank matrix updates.

I am using BLAS/LAPACK libraries for elementary algebra manipulations. I can calculate the Cholesky factorization of a positive definite matrix with the routine spptrf. However, I have been looking around and I have not been able to find a BLAS/LAPACK function which performs Cholesky factor updates. May it be that there is not function doing so?

Additionally: In this old post, the addition of such routine was discussed. However, it is a very old post (2013) and I have not been able of finding anything more recent.

enanone
  • 923
  • 11
  • 25
  • 1
    Note that, I quote, *"Questions asking us to **recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic** for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it."* – Vladimir F Героям слава May 21 '18 at 14:17

2 Answers2

2

There is no such function. You can look at this discussion we had on SciPy. I've made up a Python script that does the update with the relevant paper. You can make use of those information.

https://github.com/scipy/scipy/issues/8188

If you feel competitive and actually write the Fortran code for this, I would really appreciate if you can submit it to LAPACK repo as a PR https://github.com/Reference-LAPACK/lapack

percusse
  • 3,006
  • 1
  • 14
  • 28
1

The BLAS libraries on Netlib as you pointed out however I doubt it is on the site. If you are looking for code simply there is code here. If you want it fast I'd just turn that code into Julia. There is a book I've never checked out which may have these in it. Also, note you cited a paper that the author wrote the code for. You could have simply contacted the author of the paper. His website appears to be here. There is a problem with that link though.