# rank_downdate

function rank_downdate(S:LLT, x:Real[_]) -> LLT

Rank one downdate of a Cholesky decomposition.

• S: Existing Cholesky decomposition of the symmetric positive definite matrix $S$.
• x: Vector $x$.

Returns: A new Cholesky decomposition of the symmetric positive definite matrix $S - xx^\top$.

function rank_downdate(S:LLT, X:Real[_,_]) -> LLT

Rank $k$ downdate of a Cholesky decomposition.

• S: Existing Cholesky decomposition of the symmetric positive definite matrix $S$.
• X: Matrix $X$.

Returns: A new Cholesky decomposition of the symmetric positive definite matrix $S - XX^\top$.

The computation is performed as $k$ separate rank-1 downdates using the columns of `X

function rank_downdate(y:Expression<LLT>, z:Expression<Real[_]>) -> MatrixRankDowndate<Expression<Real[_]>, Real[_], Real[_]>

Lazy rank 1 downdate.

function rank_downdate(y:LLT, z:Expression<Real[_]>) -> MatrixRankDowndate<Expression<Real[_]>, Real[_], Real[_]>

Lazy rank 1 downdate.

function rank_downdate(y:Expression<LLT>, z:Real[_]) -> MatrixRankDowndate<Expression<Real[_]>, Real[_], Real[_]>

Lazy rank 1 downdate.

function rank_downdate(y:Expression<LLT>, z:Expression<Real[_,_]>) -> MatrixRankDowndate<Expression<Real[_,_]>, Real[_,_], Real[_,_]>

Lazy rank $k$ downdate.

function rank_downdate(y:LLT, z:Expression<Real[_,_]>) -> MatrixRankDowndate<Expression<Real[_,_]>, Real[_,_], Real[_,_]>

Lazy rank $k$ downdate.

function rank_downdate(y:Expression<LLT>, z:Real[_,_]) -> MatrixRankDowndate<Expression<Real[_,_]>, Real[_,_], Real[_,_]>

Lazy rank $k$ downdate.