👤
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 zlabrd (redhat section l)

ZLABRD(l)					)					ZLABRD(l)

NAME
       ZLABRD  -  reduce  the  first  NB rows and columns of a complex general m by n matrix A to
       upper or lower real bidiagonal form by a unitary transformation Q' * A *  P,  and  returns
       the matrices X and Y which are needed to apply the transformation to the unreduced part of
       A

SYNOPSIS
       SUBROUTINE ZLABRD( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y, LDY )

	   INTEGER	  LDA, LDX, LDY, M, N, NB

	   DOUBLE	  PRECISION D( * ), E( * )

	   COMPLEX*16	  A( LDA, * ), TAUP( * ), TAUQ( * ), X( LDX, * ), Y( LDY, * )

PURPOSE
       ZLABRD reduces the first NB rows and columns of a complex general m by n matrix A to upper
       or  lower  real	bidiagonal  form  by a unitary transformation Q' * A * P, and returns the
       matrices X and Y which are needed to apply the transformation to the unreduced part of  A.
       If m >= n, A is reduced to upper bidiagonal form; if m < n, to lower bidiagonal form.

       This is an auxiliary routine called by ZGEBRD

ARGUMENTS
       M       (input) INTEGER
	       The number of rows in the matrix A.

       N       (input) INTEGER
	       The number of columns in the matrix A.

       NB      (input) INTEGER
	       The number of leading rows and columns of A to be reduced.

       A       (input/output) COMPLEX*16 array, dimension (LDA,N)
	       On entry, the m by n general matrix to be reduced.  On exit, the first NB rows and
	       columns of the matrix are overwritten; the rest of the array is unchanged.   If	m
	       >=  n,  elements on and below the diagonal in the first NB columns, with the array
	       TAUQ, represent the unitary matrix Q as a product of  elementary  reflectors;  and
	       elements  above	the diagonal in the first NB rows, with the array TAUP, represent
	       the unitary matrix P as a product of elementary reflectors.  If m  <  n,  elements
	       below  the  diagonal  in  the first NB columns, with the array TAUQ, represent the
	       unitary matrix Q as a product of elementary reflectors, and elements on and  above
	       the  diagonal  in  the  first  NB rows, with the array TAUP, represent the unitary
	       matrix P as a  product  of  elementary  reflectors.   See  Further  Details.   LDA
	       (input) INTEGER The leading dimension of the array A.  LDA >= max(1,M).

       D       (output) DOUBLE PRECISION array, dimension (NB)
	       The  diagonal  elements	of  the  first NB rows and columns of the reduced matrix.
	       D(i) = A(i,i).

       E       (output) DOUBLE PRECISION array, dimension (NB)
	       The off-diagonal elements of the first NB rows and columns of the reduced matrix.

       TAUQ    (output) COMPLEX*16 array dimension (NB)
	       The scalar factors of the elementary reflectors which represent the unitary matrix
	       Q.  See	Further  Details.   TAUP    (output) COMPLEX*16 array, dimension (NB) The
	       scalar factors of the elementary reflectors which represent the unitary matrix  P.
	       See Further Details.  X	     (output) COMPLEX*16 array, dimension (LDX,NB) The m-
	       by-nb matrix X required to update the unreduced part of A.

       LDX     (input) INTEGER
	       The leading dimension of the array X. LDX >= max(1,M).

       Y       (output) COMPLEX*16 array, dimension (LDY,NB)
	       The n-by-nb matrix Y required to update the unreduced part of A.

       LDY     (output) INTEGER
	       The leading dimension of the array Y. LDY >= max(1,N).

FURTHER DETAILS
       The matrices Q and P are represented as products of elementary reflectors:

	  Q = H(1) H(2) . . . H(nb)  and  P = G(1) G(2) . . . G(nb)

       Each H(i) and G(i) has the form:

	  H(i) = I - tauq * v * v'  and G(i) = I - taup * u * u'

       where tauq and taup are complex scalars, and v and u are complex vectors.

       If m >= n, v(1:i-1) = 0, v(i) = 1, and v(i:m) is stored on exit in A(i:m,i); u(1:i)  =  0,
       u(i+1)  =  1,  and u(i+1:n) is stored on exit in A(i,i+1:n); tauq is stored in TAUQ(i) and
       taup in TAUP(i).

       If m < n, v(1:i) = 0, v(i+1) = 1, and v(i+1:m) is stored on exit in A(i+2:m,i); u(1:i-1) =
       0,  u(i)  =  1,	and u(i:n) is stored on exit in A(i,i+1:n); tauq is stored in TAUQ(i) and
       taup in TAUP(i).

       The elements of the vectors v and u together form the m-by-nb matrix  V	and  the  nb-by-n
       matrix  U'  which  are  needed, with X and Y, to apply the transformation to the unreduced
       part of the matrix, using a block update of the form:  A := A - V*Y' - X*U'.

       The contents of A on exit are illustrated by the following examples with nb = 2:

       m = 6 and n = 5 (m > n): 	 m = 5 and n = 6 (m < n):

	 (  1	1   u1	u1  u1 )	   (  1   u1  u1  u1  u1  u1 )
	 (  v1	1   1	u2  u2 )	   (  1   1   u2  u2  u2  u2 )
	 (  v1	v2  a	a   a  )	   (  v1  1   a   a   a   a  )
	 (  v1	v2  a	a   a  )	   (  v1  v2  a   a   a   a  )
	 (  v1	v2  a	a   a  )	   (  v1  v2  a   a   a   a  )
	 (  v1	v2  a	a   a  )

       where a denotes an element of the original matrix which is unchanged, vi denotes  an  ele-
       ment of the vector defining H(i), and ui an element of the vector defining G(i).

LAPACK version 3.0			   15 June 2000 				ZLABRD(l)


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

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