DBDSDC man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



DBDSDC(3S)							    DBDSDC(3S)

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( * )

IMPLEMENTATION
     These routines are part of the SCSL Scientific Library and can be loaded
     using either the -lscs or the -lscs_mp option.  The -lscs_mp option
     directs the linker to use the multi-processor version of the library.

     When linking to SCSL with -lscs or -lscs_mp, the default integer size is
     4 bytes (32 bits). Another version of SCSL is available in which integers
     are 8 bytes (64 bits).  This version allows the user access to larger
     memory sizes and helps when porting legacy Cray codes.  It can be loaded
     by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
     only one of the two versions; 4-byte integer and 8-byte integer library
     calls cannot be mixed.

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 diagonal 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 conceivably 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.

									Page 1

DBDSDC(3S)							    DBDSDC(3S)

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 vectors 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 computation tree (usually about
	     25).  For other values of COMPQ, Q is not referenced.

									Page 2

DBDSDC(3S)							    DBDSDC(3S)

     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/(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
	     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

SEE ALSO
     INTRO_LAPACK(3S), INTRO_SCSL(3S)

     This man page is available only online.

									Page 3

[top]

List of man pages available for IRIX

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