dbdsqr man page on Scientific

Printed from http://www.polarhome.com/service/man/?qf=dbdsqr&af=0&tf=2&of=Scientific

DBDSQR(1)		 LAPACK routine (version 3.2)		     DBDSQR(1)

NAME
       DBDSQR - computes the singular values and, optionally, the right and/or
       left singular vectors from the singular value decomposition (SVD) of  a
       real  N-by-N  (upper  or	 lower) bidiagonal matrix B using the implicit
       zero-shift QR algorithm

SYNOPSIS
       SUBROUTINE DBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU,  C,
			  LDC, WORK, INFO )

	   CHARACTER	  UPLO

	   INTEGER	  INFO, LDC, LDU, LDVT, N, NCC, NCVT, NRU

	   DOUBLE	  PRECISION  C( LDC, * ), D( * ), E( * ), U( LDU, * ),
			  VT( LDVT, * ), WORK( * )

PURPOSE
       DBDSQR computes the singular values and, optionally, the	 right	and/or
       left  singular vectors from the singular value decomposition (SVD) of a
       real N-by-N (upper or lower) bidiagonal matrix  B  using	 the  implicit
       zero-shift QR algorithm.	 The SVD of B has the form
	  B = Q * S * P**T
       where  S	 is the diagonal matrix of singular values, Q is an orthogonal
       matrix of left singular vectors, and P is an orthogonal matrix of right
       singular vectors.  If left singular vectors are requested, this subrou‐
       tine actually returns U*Q instead of Q, and, if right singular  vectors
       are  requested,	this  subroutine  returns P**T*VT instead of P**T, for
       given real input matrices U and VT.  When U and VT are  the  orthogonal
       matrices	 that  reduce  a  general  matrix  A  to bidiagonal form:  A =
       U*B*VT, as computed by DGEBRD, then
	  A = (U*Q) * S * (P**T*VT)
       is the SVD of A.	 Optionally, the subroutine may	 also  compute	Q**T*C
       for a given real input matrix C.
       See "Computing  Small Singular Values of Bidiagonal Matrices With Guar‐
       anteed High Relative Accuracy," by J. Demmel and W. Kahan, LAPACK Work‐
       ing  Note  #3  (or  SIAM	 J.  Sci. Statist. Comput. vol. 11, no. 5, pp.
       873-912, Sept 1990) and
       "Accurate singular values and differential qd algorithms," by  B.  Par‐
       lett  and  V.  Fernando, Technical Report CPAM-554, Mathematics Depart‐
       ment, University of California at Berkeley, July 1992  for  a  detailed
       description of the algorithm.

ARGUMENTS
       UPLO    (input) CHARACTER*1
	       = 'U':  B is upper bidiagonal;
	       = 'L':  B is lower bidiagonal.

       N       (input) INTEGER
	       The order of the matrix B.  N >= 0.

       NCVT    (input) INTEGER
	       The number of columns of the matrix VT. NCVT >= 0.

       NRU     (input) INTEGER
	       The number of rows of the matrix U. NRU >= 0.

       NCC     (input) INTEGER
	       The number of columns of the matrix C. NCC >= 0.

       D       (input/output) DOUBLE PRECISION array, dimension (N)
	       On  entry,  the n diagonal elements of the bidiagonal matrix B.
	       On exit, if INFO=0, the singular	 values	 of  B	in  decreasing
	       order.

       E       (input/output) DOUBLE PRECISION array, dimension (N-1)
	       On entry, the N-1 offdiagonal elements of the bidiagonal matrix
	       B.  On exit, if INFO = 0, E is destroyed; if INFO > 0, D and  E
	       will contain the diagonal and superdiagonal elements of a bidi‐
	       agonal matrix orthogonally  equivalent  to  the	one  given  as
	       input.

       VT      (input/output) DOUBLE PRECISION array, dimension (LDVT, NCVT)
	       On  entry,  an N-by-NCVT matrix VT.  On exit, VT is overwritten
	       by P**T * VT.  Not referenced if NCVT = 0.

       LDVT    (input) INTEGER
	       The leading dimension of the array VT.	LDVT  >=  max(1,N)  if
	       NCVT > 0; LDVT >= 1 if NCVT = 0.

       U       (input/output) DOUBLE PRECISION array, dimension (LDU, N)
	       On entry, an NRU-by-N matrix U.	On exit, U is overwritten by U
	       * Q.  Not referenced if NRU = 0.

       LDU     (input) INTEGER
	       The leading dimension of the array U.  LDU >= max(1,NRU).

       C       (input/output) DOUBLE PRECISION array, dimension (LDC, NCC)
	       On entry, an N-by-NCC matrix C.	On exit, C is  overwritten  by
	       Q**T * C.  Not referenced if NCC = 0.

       LDC     (input) INTEGER
	       The leading dimension of the array C.  LDC >= max(1,N) if NCC >
	       0; LDC >=1 if NCC = 0.

       WORK    (workspace) DOUBLE PRECISION array, dimension (4*N)

       INFO    (output) INTEGER
	       = 0:  successful exit
	       < 0:  If INFO = -i, the i-th argument had an illegal value
	       > 0: if NCVT = NRU = NCC = 0, = 1, a split was marked by a pos‐
	       itive value in E = 2, current block of Z not diagonalized after
	       30*N iterations (in inner while loop) = 3,  termination	crite‐
	       rion  of	 outer while loop not met (program created more than N
	       unreduced blocks) else NCVT = NRU = NCC = 0, the algorithm  did
	       not  converge;  D  and  E  contain the elements of a bidiagonal
	       matrix which is orthogonally similar to the input matrix B;  if
	       INFO = i, i elements of E have not converged to zero.

PARAMETERS
       TOLMUL  DOUBLE PRECISION, default = max(10,min(100,EPS**(-1/8)))
	       TOLMUL  controls	 the convergence criterion of the QR loop.  If
	       it is positive, TOLMUL*EPS is the desired relative precision in
	       the  computed  singular	values.	  If  it is negative, abs(TOL‐
	       MUL*EPS*sigma_max) is the desired absolute accuracy in the com‐
	       puted   singular	  values  (corresponds	to  relative  accuracy
	       abs(TOLMUL*EPS) in the  largest	singular  value.   abs(TOLMUL)
	       should  be  between 1 and 1/EPS, and preferably between 10 (for
	       fast convergence) and .1/EPS (for there to be some accuracy  in
	       the  results).  Default is to lose at either one eighth or 2 of
	       the available decimal digits in each  computed  singular	 value
	       (whichever is smaller).

       MAXITR  INTEGER, default = 6
	       MAXITR  controls	 the maximum number of passes of the algorithm
	       through its inner loop. The algorithms stops (and so  fails  to
	       converge)  if  the  number  of  passes  through	the inner loop
	       exceeds MAXITR*N**2.

 LAPACK routine (version 3.2)	 November 2008			     DBDSQR(1)
[top]

List of man pages available for Scientific

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net