Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages

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

SLASD6(l)					)					SLASD6(l)

NAME
       SLASD6  -  compute the SVD of an updated upper bidiagonal matrix B obtained by merging two
       smaller ones by appending a row

SYNOPSIS
       SUBROUTINE SLASD6( ICOMPQ, NL, NR, SQRE, D, VF, VL, ALPHA, BETA, IDXQ, PERM, GIVPTR,  GIV-
			  COL,	LDGCOL,  GIVNUM,  LDGNUM,  POLES,  DIFL,  DIFR, Z, K, C, S, WORK,
			  IWORK, INFO )

	   INTEGER	  GIVPTR, ICOMPQ, INFO, K, LDGCOL, LDGNUM, NL, NR, SQRE

	   REAL 	  ALPHA, BETA, C, S

	   INTEGER	  GIVCOL( LDGCOL, * ), IDXQ( * ), IWORK( * ), PERM( * )

	   REAL 	  D( * ), DIFL( * ), DIFR( * ), GIVNUM( LDGNUM, * ), POLES( LDGNUM, *  ),
			  VF( * ), VL( * ), WORK( * ), Z( * )

PURPOSE
       SLASD6  computes  the  SVD of an updated upper bidiagonal matrix B obtained by merging two
       smaller ones by appending a row. This routine is used only for the problem which  requires
       all  singular values and optionally singular vector matrices in factored form.  B is an N-
       by-M matrix with N = NL + NR + 1 and M = N + SQRE.  A related subroutine, SLASD1,  handles
       the  case  in  which all singular values and singular vectors of the bidiagonal matrix are
       desired.

       SLASD6 computes the SVD as follows:

		     ( D1(in)  0    0	  0 )
	 B = U(in) * (	 Z1'   a   Z2'	  b ) * VT(in)
		     (	 0     0   D2(in) 0 )

	   = U(out) * ( D(out) 0) * VT(out)

       where Z' = (Z1' a Z2' b) = u' VT', and u is a vector of dimension M with ALPHA and BETA in
       the NL+1 and NL+2 th entries and zeros elsewhere; and the entry b is empty if SQRE = 0.

       The  singular  values  of  B can be computed using D1, D2, the first components of all the
       right singular vectors of the lower block, and the last components of all the right singu-
       lar  vectors  of  the  upper  block. These components are stored and updated in VF and VL,
       respectively, in SLASD6. Hence U and VT are not explicitly referenced.

       The singular values are stored in D. The algorithm consists of two stages:

	     The first stage consists of deflating the size of the problem
	     when there are multiple singular values or if there is a zero
	     in the Z vector. For each such occurence the dimension of the
	     secular equation problem is reduced by one. This stage is
	     performed by the routine SLASD7.

	     The second stage consists of calculating the updated
	     singular values. This is done by finding the roots of the
	     secular equation via the routine SLASD4 (as called by SLASD8).
	     This routine also updates VF and VL and computes the distances
	     between the updated singular values and the old singular
	     values.

       SLASD6 is called from SLASDA.

ARGUMENTS
       ICOMPQ (input) INTEGER Specifies whether singular vectors are to be computed  in  factored
       form:
       = 0: Compute singular values only.
       = 1: Compute singular vectors in factored form as well.

       NL     (input) INTEGER
	      The row dimension of the upper block.  NL >= 1.

       NR     (input) INTEGER
	      The row dimension of the lower block.  NR >= 1.

       SQRE   (input) INTEGER
	      = 0: the lower block is an NR-by-NR square matrix.
	      = 1: the lower block is an NR-by-(NR+1) rectangular matrix.

	      The bidiagonal matrix has row dimension N = NL + NR + 1, and column dimension M = N
	      + SQRE.

       D      (input/output) REAL array, dimension ( NL+NR+1 ).
	      On entry D(1:NL,1:NL) contains the singular values of the
	      upper block, and D(NL+2:N) contains the singular values
	      of the lower block. On exit D(1:N) contains the singular	values	of  the  modified
	      matrix.

       VF     (input/output) REAL array, dimension ( M )
	      On entry, VF(1:NL+1) contains the first components of all
	      right singular vectors of the upper block; and VF(NL+2:M) contains the first compo-
	      nents of all right singular vectors of the lower block. On exit,	VF  contains  the
	      first components of all right singular vectors of the bidiagonal matrix.

       VL     (input/output) REAL array, dimension ( M )
	      On entry, VL(1:NL+1) contains the  last components of all
	      right  singular vectors of the upper block; and VL(NL+2:M) contains the last compo-
	      nents of all right singular vectors of the lower block. On exit,	VL  contains  the
	      last components of all right singular vectors of the bidiagonal matrix.

       ALPHA  (input) REAL
	      Contains the diagonal element associated with the added row.

       BETA   (input) REAL
	      Contains the off-diagonal element associated with the added row.

       IDXQ   (output) INTEGER array, dimension ( N )
	      This  contains  the  permutation	which will reintegrate the subproblem just solved
	      back into sorted order, i.e.  D( IDXQ( I = 1, N ) ) will be in ascending order.

       PERM   (output) INTEGER array, dimension ( N )
	      The permutations (from deflation and sorting) to be applied to each block. Not ref-
	      erenced if ICOMPQ = 0.

	      GIVPTR  (output)	INTEGER  The  number of Givens rotations which took place in this
	      subproblem. Not referenced if ICOMPQ = 0.

	      GIVCOL (output) INTEGER array, dimension ( LDGCOL, 2 ) Each pair of  numbers  indi-
	      cates  a	pair  of  columns  to  take place in a Givens rotation. Not referenced if
	      ICOMPQ = 0.

	      LDGCOL (input) INTEGER leading dimension of GIVCOL, must be at least N.

	      GIVNUM (output) REAL array, dimension ( LDGNUM, 2 ) Each number indicates the C  or
	      S value to be used in the corresponding Givens rotation. Not referenced if ICOMPQ =
	      0.

	      LDGNUM (input) INTEGER The leading dimension of GIVNUM and POLES, must be at  least
	      N.

       POLES  (output) REAL array, dimension ( LDGNUM, 2 )
	      On  exit,  POLES(1,*)  is an array containing the new singular values obtained from
	      solving the secular equation, and POLES(2,*) is an array containing  the	poles  in
	      the secular equation. Not referenced if ICOMPQ = 0.

       DIFL   (output) REAL array, dimension ( N )
	      On  exit,  DIFL(I) is the distance between I-th updated (undeflated) singular value
	      and the I-th (undeflated) old singular value.

       DIFR   (output) REAL array,
	      dimension ( LDGNUM, 2 ) if ICOMPQ = 1 and dimension ( N ) if ICOMPQ = 0.	On  exit,
	      DIFR(I, 1) is the distance between I-th updated (undeflated) singular value and the
	      I+1-th (undeflated) old singular value.

	      If ICOMPQ = 1, DIFR(1:K,2) is an array containing the normalizing factors  for  the
	      right singular vector matrix.

	      See SLASD8 for details on DIFL and DIFR.

       Z      (output) REAL array, dimension ( M )
	      The  first  elements of this array contain the components of the deflation-adjusted
	      updating row vector.

       K      (output) INTEGER
	      Contains the dimension of the non-deflated matrix, This is the order of the related
	      secular equation. 1 <= K <=N.

       C      (output) REAL
	      C  contains  garbage if SQRE =0 and the C-value of a Givens rotation related to the
	      right null space if SQRE = 1.

       S      (output) REAL
	      S contains garbage if SQRE =0 and the S-value of a Givens rotation related  to  the
	      right null space if SQRE = 1.

       WORK   (workspace) REAL array, dimension ( 4 * M )

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

       INFO   (output) INTEGER
	      = 0:  successful exit.
	      < 0:  if INFO = -i, the i-th argument had an illegal value.
	      > 0:  if INFO = 1, an singular value did not converge

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 				SLASD6(l)


All times are GMT -4. The time now is 01:10 PM.

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