aboutsummaryrefslogtreecommitdiff
path: root/math/slalib/doc/svd.hlp
diff options
context:
space:
mode:
Diffstat (limited to 'math/slalib/doc/svd.hlp')
-rw-r--r--math/slalib/doc/svd.hlp73
1 files changed, 73 insertions, 0 deletions
diff --git a/math/slalib/doc/svd.hlp b/math/slalib/doc/svd.hlp
new file mode 100644
index 00000000..14b87c43
--- /dev/null
+++ b/math/slalib/doc/svd.hlp
@@ -0,0 +1,73 @@
+.help svd Jun99 "Slalib Package"
+.nf
+
+ SUBROUTINE slSVD (M, N, MP, NP, A, W, V, WORK, JSTAT)
+
+ - - - -
+ S V D
+ - - - -
+
+ Singular value decomposition (double precision)
+
+ This routine expresses a given matrix A as the product of
+ three matrices U, W, V:
+
+ A = U x W x VT
+
+ Where:
+
+ A is any M (rows) x N (columns) matrix, where M.GE.N
+ U is an M x N column-orthogonal matrix
+ W is an N x N diagonal matrix with W(I,I).GE.0
+ VT is the transpose of an N x N orthogonal matrix
+
+ Note that M and N, above, are the LOGICAL dimensions of the
+ matrices and vectors concerned, which can be located in
+ arrays of larger PHYSICAL dimensions, given by MP and NP.
+
+ Given:
+ M,N i numbers of rows and columns in matrix A
+ MP,NP i physical dimensions of array containing matrix A
+ A d(MP,NP) array containing MxN matrix A
+
+ Returned:
+ A d(MP,NP) array containing MxN column-orthogonal matrix U
+ W d(N) NxN diagonal matrix W (diagonal elements only)
+ V d(NP,NP) array containing NxN orthogonal matrix V
+ WORK d(N) workspace
+ JSTAT i 0 = OK, -1 = A wrong shape, >0 = index of W
+ for which convergence failed. See note 2, below.
+
+ Notes:
+
+ 1) V contains matrix V, not the transpose of matrix V.
+
+ 2) If the status JSTAT is greater than zero, this need not
+ necessarily be treated as a failure. It means that, due to
+ chance properties of the matrix A, the QR transformation
+ phase of the routine did not fully converge in a predefined
+ number of iterations, something that very seldom occurs.
+ When this condition does arise, it is possible that the
+ elements of the diagonal matrix W have not been correctly
+ found. However, in practice the results are likely to
+ be trustworthy. Applications should report the condition
+ as a warning, but then proceed normally.
+
+ References:
+ The algorithm is an adaptation of the routine SVD in the EISPACK
+ library (Garbow et al 1977, EISPACK Guide Extension, Springer
+ Verlag), which is a FORTRAN 66 implementation of the Algol
+ routine SVD of Wilkinson & Reinsch 1971 (Handbook for Automatic
+ Computation, vol 2, ed Bauer et al, Springer Verlag). These
+ references give full details of the algorithm used here. A good
+ account of the use of SVD in least squares problems is given in
+ Numerical Recipes (Press et al 1986, Cambridge University Press),
+ which includes another variant of the EISPACK code.
+
+ P.T.Wallace Starlink 22 December 1993
+
+ Copyright (C) 1995 Rutherford Appleton Laboratory
+ Copyright (C) 1995 Association of Universities for Research in Astronomy Inc.
+
+.fi
+.endhelp