Svd() and Ginv()

Svd() provides a singular valued decomposition. It is a direct translation of the EISPACK routine with the same name ([24]). The routine decomposes an rxc matrix A as A = UDV', where U'U = UU' = Ir, V'V = VV' = Ic, and a vector S containing the diagonal elements of D, which are the square roots of the eigenvalues of A'A. The default is to produce U and V, but this may be turned off by supplying makev=FFALSE or makeu=FFALSE.

Ginv() produces a generalized inverse of A using the singular valued decomposition: A+ = VD+U'. The matrix D+ is a diagonal matrix with the reciprocals of the nonzero singular values of A.