Skip to contents

Largest remaining Schur-complement diagonal as pivot (ties: lowest index), stopping when the remaining trace falls to tol times the trace of A or at max_rank columns (Harbrecht, Peters and Schneider 2012). Identical to the Python arm morie.fn.zschl.pivoted_cholesky.

Usage

PivotedCholesky(A, tol = 1e-12, max_rank = NULL)

Arguments

A

Positive semi-definite matrix.

tol

Relative trace tolerance.

max_rank

Maximum rank.

Value

List with L (n x r, original row order), pivots (1-based) and rank.

References

Harbrecht, H., Peters, M. and Schneider, R. (2012). On the low-rank approximation by the pivoted Cholesky decomposition. Applied Numerical Mathematics 62, 428-440.

Examples

PivotedCholesky(matrix(c(4, 2, 2, 1), 2))
#> $L
#>      [,1]
#> [1,]    2
#> [2,]    1
#> 
#> $pivots
#> [1] 1
#> 
#> $rank
#> [1] 1
#>