cbdsqr man page on OpenIndiana

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

cbdsqr(3P)		    Sun Performance Library		    cbdsqr(3P)

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

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

       CHARACTER * 1 UPLO
       COMPLEX VT(LDVT,*), U(LDU,*), C(LDC,*)
       INTEGER N, NCVT, NRU, NCC, LDVT, LDU, LDC, INFO
       REAL D(*), E(*), WORK(*)

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

       CHARACTER * 1 UPLO
       COMPLEX VT(LDVT,*), U(LDU,*), C(LDC,*)
       INTEGER*8 N, NCVT, NRU, NCC, LDVT, LDU, LDC, INFO
       REAL D(*), E(*), WORK(*)

   F95 INTERFACE
       SUBROUTINE BDSQR(UPLO, [N], [NCVT], [NRU], [NCC], D, E, VT, [LDVT],
	      U, [LDU], C, [LDC], [WORK], [INFO])

       CHARACTER(LEN=1) :: UPLO
       COMPLEX, DIMENSION(:,:) :: VT, U, C
       INTEGER :: N, NCVT, NRU, NCC, LDVT, LDU, LDC, INFO
       REAL, DIMENSION(:) :: D, E, WORK

       SUBROUTINE BDSQR_64(UPLO, [N], [NCVT], [NRU], [NCC], D, E, VT, [LDVT],
	      U, [LDU], C, [LDC], [WORK], [INFO])

       CHARACTER(LEN=1) :: UPLO
       COMPLEX, DIMENSION(:,:) :: VT, U, C
       INTEGER(8) :: N, NCVT, NRU, NCC, LDVT, LDU, LDC, INFO
       REAL, DIMENSION(:) :: D, E, WORK

   C INTERFACE
       #include <sunperf.h>

       void cbdsqr(char uplo, int n, int ncvt, int nru,	 int  ncc,  float  *d,
		 float *e, complex *vt, int ldvt, complex *u, int ldu, complex
		 *c, int ldc, int *info);

       void cbdsqr_64(char uplo, long n, long ncvt, long nru, long ncc,	 float
		 *d,  float  *e, complex *vt, long ldvt, complex *u, long ldu,
		 complex *c, long ldc, long *info);

PURPOSE
       cbdsqr computes the singular value decomposition (SVD) of a real N-by-N
       (upper  or  lower) bidiagonal matrix B:	B = Q * S * P' (P' denotes the
       transpose of P), where S is a diagonal matrix with non-negative	diago‐
       nal  elements  (the  singular  values of B), and Q and P are orthogonal
       matrices.

       The routine computes S, and optionally computes U * Q, P' * VT, or Q' *
       C, for given complex input matrices U, VT, and 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)
		 = 'U':	 B is upper bidiagonal;
		 = 'L':	 B is lower bidiagonal.

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

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

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

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

       D (input/output)
		 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)
		 On  entry, the elements of E contain the offdiagonal elements
		 of of the bidiagonal matrix whose SVD is desired.  On	normal
		 exit  (INFO  = 0), E is destroyed.  If the algorithm does not
		 converge (INFO > 0), D and E will contain  the	 diagonal  and
		 superdiagonal	elements  of  a bidiagonal matrix orthogonally
		 equivalent to the one	given  as  input.  E(N)	 is  used  for
		 workspace.

       VT (input/output)
		 On entry, an N-by-NCVT matrix VT.  On exit, VT is overwritten
		 by P' * VT.  VT is not referenced if NCVT = 0.

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

       U (input/output)
		 On entry, an NRU-by-N matrix U.  On exit, U is overwritten by
		 U * Q.	 U is not referenced if NRU = 0.

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

       C (input/output)
		 On entry, an N-by-NCC matrix C.  On exit, C is overwritten by
		 Q' * C.  C is not referenced if NCC = 0.

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

       WORK (workspace)
		 dimension (4*N)

       INFO (output)
		 = 0:  successful exit
		 < 0:  If INFO = -i, the i-th argument had an illegal value
		 > 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.

				  6 Mar 2009			    cbdsqr(3P)
[top]

List of man pages available for OpenIndiana

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