TOMS581 Singular Value Decomposition (SVD) of a Rectangular Matrix

TOMS581 is a FORTRAN77 library which implements an improved algorithm for the singular value decomposition (SVD) of a rectangular matrix, by Tony Chan.

The original, true, correct version of ACM TOMS Algorithm 581 is available through ACM: http://www.acm.org/pubs/calgo or NETLIB: http://www.netlib.org/toms/index.html.

Languages:

TOMS581 is available in a FORTRAN77 version.

Related Data and Programs:

EISPACK, a FORTRAN77 library which carries out eigenvalue computations; it includes a function to compute the singular value decomposition (SVD) of a rectangular matrix. superseded by LAPACK;

LAWSON, a FORTRAN77 library which contains routines for solving least squares problems and singular value decompositions (SVD), by Charles Lawson, Richard Hanson.

LINPACK, a FORTRAN77 library which solves linear systems for a variety of matrix storage schemes, real or complex arithmetic, and single or double precision. It includes a routine for computing the singular value decomposition (SVD) of a rectangular matrix.

SVD_DEMO, a FORTRAN77 program which demonstrates the Singular Value Decomposition (SVD) for a simple example.

TOMS358, a FORTRAN77 library which computes the singular value decomposition (SVD) of a complex matrix; this is ACM TOMS algorithm 358.

Tony Chan

Reference:

1. Tony Chan,
An improved algorithm for computing the singular value decomposition,
ACM Transactions on Mathematical Software,
Volume 8, Number 1, March 1982, pages 72-83.

List of Routines:

• GRSVD determines the singular value decomposition of a matrix with N <= M.
• HYBSVD computes the singular value decomposition of a rectangular matrix.
• MGNSVD computes the singular value decomposition for a matrix with N <= M.
• MINFIT determines the singular value decomposition of a real M by N matrix.
• SASUM takes the sum of the absolute values.
• SAXPY computes constant times a vector plus a vector.
• SDOT forms the dot product of two vectors.
• SNRM2 returns the euclidean norm of a real vector.
• SRELPR computes the floating point relative precision.
• SROT applies a plane rotation.
• SROTG constructs a Givens plane rotation.
• SSCAL scales a vector by a constant.
• SSVDC orthogonally reduces a real NxP matrix X to diagonal form.
• SSWAP interchanges two vectors.
• SVD computes the singular value decomposition of a real rectangular matrix.
• TIMESTAMP prints out the current YMDHMS date as a timestamp.

You can go up one level to the FORTRAN77 source codes.

Last revised on 21 June 2012.