Skip to contents

Given a square matrix A, returns a diagonal matrix (zero off-diagonal) built from its diagonal – TDA's msqrtd (diag(sqrt(diag(A))); refuses a negative diagonal element) and msqrti (diag(1/sqrt(diag(A))); refuses an (almost) zero diagonal element). Off-diagonal entries of A are ignored entirely, same as tda_minvd.

Usage

tda_msqrtd(A, dir = tempfile("tda"))

tda_msqrti(A, dir = tempfile("tda"))

Arguments

A

a square numeric matrix.

dir

working directory.

Value

A diagonal numeric matrix.

Examples

tda_msqrtd(matrix(c(4, 1, 1, 9), 2))    # diag(2, 3)
#>      [,1] [,2]
#> [1,]    2    0
#> [2,]    0    3
tda_msqrti(matrix(c(4, 1, 1, 9), 2))    # diag(0.5, 1/3)
#>      [,1]      [,2]
#> [1,]  0.5 0.0000000
#> [2,]  0.0 0.3333333