Generalized Inverse of a Matrix using a custom tolerance or SVD implementation

Usage

gginv(tol = sqrt(.Machine$double.eps), svd = base::svd)

Arguments

tol
A relative tolerance to detect zero singular values.
svd
A function that computes the singular value decomposition of a matrix

Value

A function that accepts one argument X that computes a MP generalized inverse matrix for it.

Description

The gginv function creates a function that calculates the Moore-Penrose generalized inverse of a matrix X using a fixed tolerance value and a custom implementation for computing the singular value decomposition.

Details

The svd argument is expected to adhere to the interface of base::svd. It will be called as svd(x) (with the nu and nv arguments unset) and is expected to return a named list with components d, u and v.

See also

ginv, svd

Author

Adapted implementation from the MASS package.