The robust.inverse function attempts to return the inverse of a matrix H
by either direct means (via R's solve) or via computation from the
singular decomposition of H
Usage
robust.inverse(H, tol = sqrt(.Machine$double.eps))
Arguments
H
a matrix, presumably a Hessian
tol
the tolerance, used for determining which of the singular values
from the decompostion are postive; default=sqrt(.Machine$double.eps)
Value
returns one of:
H : the original matrix, if H could not be inverted directly and the
singular decomposition of H incurred an error
0 : a p by q matrix of 0's, where H is q by p, if none of the singular
values from the decomposition are positive
iH: the inverse of H, computed directly if possible, otherwise computed
from the components of the singular decomposition