👤
Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

RedHat 9 (Linux i386) - man page for dbdsdc (redhat section l)

DBDSDC(l)					)					DBDSDC(l)

NAME
       DBDSDC  - compute the singular value decomposition (SVD) of a real N-by-N (upper or lower)
       bidiagonal matrix B

SYNOPSIS
       SUBROUTINE DBDSDC( UPLO, COMPQ, N, D, E, U, LDU, VT, LDVT, Q, IQ, WORK, IWORK, INFO )

	   CHARACTER	  COMPQ, UPLO

	   INTEGER	  INFO, LDU, LDVT, N

	   INTEGER	  IQ( * ), IWORK( * )

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

PURPOSE
       DBDSDC computes the singular value decomposition (SVD) of a real N-by-N (upper  or  lower)
       bidiagonal matrix B: B = U * S * VT, using a divide and conquer method, where S is a diag-
       onal matrix with non-negative diagonal elements (the singular values of B), and U  and  VT
       are  orthogonal	matrices  of left and right singular vectors, respectively. DBDSDC can be
       used to compute all singular values, and optionally, singular vectors or singular  vectors
       in compact form.

       This  code  makes  very	mild assumptions about floating point arithmetic. It will work on
       machines with a guard digit in add/subtract, or on those  binary  machines  without  guard
       digits  which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2.  It could con-
       ceivably fail on hexadecimal or decimal machines without guard  digits,	but  we  know  of
       none.  See DLASD3 for details.

       The  code  currently  call DLASDQ if singular values only are desired.  However, it can be
       slightly modified to compute singular values using the divide and conquer method.

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

       COMPQ   (input) CHARACTER*1
	       Specifies whether singular vectors are to be computed as follows:
	       = 'N':  Compute singular values only;
	       = 'P':  Compute singular values and compute singular vectors in	compact  form;	=
	       'I':  Compute singular values and singular vectors.

       N       (input) INTEGER
	       The order of the matrix B.  N >= 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.

       E       (input/output) DOUBLE PRECISION array, dimension (N)
	       On entry, the elements of E contain the offdiagonal  elements  of  the  bidiagonal
	       matrix whose SVD is desired.  On exit, E has been destroyed.

       U       (output) DOUBLE PRECISION array, dimension (LDU,N)
	       If   COMPQ = 'I', then: On exit, if INFO = 0, U contains the left singular vectors
	       of the bidiagonal matrix.  For other values of COMPQ, U is not referenced.

       LDU     (input) INTEGER
	       The leading dimension of the array U.  LDU >= 1.  If singular vectors are desired,
	       then LDU >= max( 1, N ).

       VT      (output) DOUBLE PRECISION array, dimension (LDVT,N)
	       If   COMPQ = 'I', then: On exit, if INFO = 0, VT' contains the right singular vec-
	       tors of the bidiagonal matrix.  For other values of COMPQ, VT is not referenced.

       LDVT    (input) INTEGER
	       The leading dimension of the array VT.	LDVT  >=  1.   If  singular  vectors  are
	       desired, then LDVT >= max( 1, N ).

       Q       (output) DOUBLE PRECISION array, dimension (LDQ)
	       If   COMPQ  = 'P', then: On exit, if INFO = 0, Q and IQ contain the left and right
	       singular vectors in a compact form, requiring O(N log N) space instead of  2*N**2.
	       In particular, Q contains all the DOUBLE PRECISION data in LDQ >= N*(11 + 2*SMLSIZ
	       + 8*INT(LOG_2(N/(SMLSIZ+1)))) words of memory, where SMLSIZ is returned by  ILAENV
	       and  is equal to the maximum size of the subproblems at the bottom of the computa-
	       tion tree (usually about 25).  For other values of COMPQ, Q is not referenced.

       IQ      (output) INTEGER array, dimension (LDIQ)
	       If  COMPQ = 'P', then: On exit, if INFO = 0, Q and IQ contain the left  and  right
	       singular  vectors in a compact form, requiring O(N log N) space instead of 2*N**2.
	       In particular, IQ contains all INTEGER data in LDIQ >= N*(3 +  3*INT(LOG_2(N/(SML-
	       SIZ+1))))  words of memory, where SMLSIZ is returned by ILAENV and is equal to the
	       maximum size of the subproblems at the bottom of  the  computation  tree  (usually
	       about 25).  For other values of COMPQ, IQ is not referenced.

       WORK    (workspace) DOUBLE PRECISION array, dimension (LWORK)
	       If  COMPQ  = 'N' then LWORK >= (4 * N).	If COMPQ = 'P' then LWORK >= (6 * N).  If
	       COMPQ = 'I' then LWORK >= (3 * N**2 + 4 * N).

       IWORK   (workspace) INTEGER array, dimension (8*N)

       INFO    (output) INTEGER
	       = 0:  successful exit.
	       < 0:  if INFO = -i, the i-th argument had an illegal value.
	       > 0:  The algorithm failed to compute an singular value.  The  update  process  of
	       divide and conquer failed.

FURTHER DETAILS
       Based on contributions by
	  Ming Gu and Huan Ren, Computer Science Division, University of
	  California at Berkeley, USA

LAPACK version 3.0			   15 June 2000 				DBDSDC(l)


All times are GMT -4. The time now is 12:12 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password