For an m-by-n matrix A with m >= n, the singular value decomposition is an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and an n-by-n orthogonal matrix V so that A = U*S*V'.

The singular values, sigma[k] = S[k][k], are ordered so that sigma[0] >= sigma[1] >= ... >= sigma[n-1].

The singular value decompostion always exists, so MatSVD(a()) will never fail. The matrix condition number and the effective numerical rank can be computed from this decomposition.

## svd = MatSVD(a())- This function returns an object which contains the singular value decomposition Structure to access U, S and V. The following funcions return the results of the decomposition. |

## c = MatSVDCond(svd)- Two norm condition number. |

## c = MatSVDRank(svd)- Effective numerical matrix rank. |

## c = MatSVDNorm2(svd)- Two norm. |

## c() = MatSVDSingularValues(svd)- Return the one-dimensional array of singular values. |

## c() = MatSVDLeftSingular(svd)- Return the left singular vectors. |

## c() = MatSVDRightSingular(svd)- Return the right singular vectors. |

## c() = MatSVDSingularDiagonal(svd)- Return the diagonal matrix of singular values. |