View source on GitHub |
Returns cholesky of chol @ chol.T + multiplier * u @ u.T.
tfp.substrates.numpy.math.cholesky_update(
chol, update_vector, multiplier=1.0, name=None
)
Given a (batch of) lower triangular cholesky factor(s) chol
, along with a
(batch of) vector(s) update_vector
, compute the lower triangular cholesky
factor of the rank-1 update chol @ chol.T + multiplier * u @ u.T
, where
multiplier
is a (batch of) scalar(s).
If chol
has shape [L, L]
, this has complexity O(L^2)
compared to the
naive algorithm which has complexity O(L^3)
.
References
[1] Oswin Krause. Christian Igel. A More Efficient Rank-one Covariance Matrix Update for Evolution Strategies. 2015 ACM Conference. https://www.researchgate.net/publication/300581419_A_More_Efficient_Rank-one_Covariance_Matrix_Update_for_Evolution_Strategies