dlasd6 man page on YellowDog

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

DLASD6(l)			       )			     DLASD6(l)

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

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

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

	   DOUBLE	  PRECISION ALPHA, BETA, C, S

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

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

PURPOSE
       DLASD6 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,
       DLASD1, handles the case in which all singular values and singular vec‐
       tors of the bidiagonal matrix are desired.

       DLASD6 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 else‐
       where; and the entry b is empty if SQRE = 0.

       The singular values of B can be computed using D1, D2, the first compo‐
       nents  of  all  the  right singular vectors of the lower block, and the
       last components of all the right singular vectors of the	 upper	block.
       These  components are stored and updated in VF and VL, respectively, in
       DLASD6. 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 DLASD7.

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

       DLASD6 is called from DLASDA.

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) DOUBLE PRECISION 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) DOUBLE PRECISION 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)  con‐
	      tains  the first components 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) DOUBLE PRECISION 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) con‐
	      tains the last components 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) DOUBLE PRECISION
	      Contains the diagonal element associated with the added row.

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

       IDXQ   (output) INTEGER array, dimension ( N )
	      This contains the permutation which will	reintegrate  the  sub‐
	      problem  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 referenced 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 indicates 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) DOUBLE PRECISION array, dimension ( LDGNUM, 2 )
	      Each number indicates the C or S value to be used in the	corre‐
	      sponding Givens rotation. Not referenced if ICOMPQ = 0.

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

       POLES  (output) DOUBLE PRECISION array, dimension ( LDGNUM, 2 )
	      On exit, POLES(1,*) is an array containing the new singular val‐
	      ues  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) DOUBLE PRECISION array, dimension ( N )
	      On  exit,	 DIFL(I)  is  the distance between I-th updated (unde‐
	      flated) singular value and the I-th  (undeflated)	 old  singular
	      value.

       DIFR   (output) DOUBLE PRECISION 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  normaliz‐
	      ing factors for the right singular vector matrix.

	      See DLASD8 for details on DIFL and DIFR.

       Z      (output) DOUBLE PRECISION 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) DOUBLE PRECISION
	      C	 contains garbage if SQRE =0 and the C-value of a Givens rota‐
	      tion related to the right null space if SQRE = 1.

       S      (output) DOUBLE PRECISION
	      S contains garbage if SQRE =0 and the S-value of a Givens	 rota‐
	      tion related to the right null space if SQRE = 1.

       WORK   (workspace) DOUBLE PRECISION 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			     DLASD6(l)
[top]

List of man pages available for YellowDog

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