Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages

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

DLATRD(l)					)					DLATRD(l)

NAME
       DLATRD  - reduce NB rows and columns of a real symmetric matrix A to symmetric tridiagonal
       form by an orthogonal similarity transformation Q' * A * Q, and returns the matrices V and
       W which are needed to apply the transformation to the unreduced part of A

SYNOPSIS
       SUBROUTINE DLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW )

	   CHARACTER	  UPLO

	   INTEGER	  LDA, LDW, N, NB

	   DOUBLE	  PRECISION A( LDA, * ), E( * ), TAU( * ), W( LDW, * )

PURPOSE
       DLATRD  reduces	NB rows and columns of a real symmetric matrix A to symmetric tridiagonal
       form by an orthogonal similarity transformation Q' * A * Q, and returns the matrices V and
       W which are needed to apply the transformation to the unreduced part of A.  If UPLO = 'U',
       DLATRD reduces the last NB rows and columns of a matrix, of which the  upper  triangle  is
       supplied;
       if  UPLO  =  'L',  DLATRD  reduces the first NB rows and columns of a matrix, of which the
       lower triangle is supplied.

       This is an auxiliary routine called by DSYTRD.

ARGUMENTS
       UPLO    (input) CHARACTER
	       Specifies whether the upper or lower triangular part of the symmetric matrix A  is
	       stored:
	       = 'U': Upper triangular
	       = 'L': Lower triangular

       N       (input) INTEGER
	       The order of the matrix A.

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

       A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
	       On  entry, the symmetric matrix A.  If UPLO = 'U', the leading n-by-n upper trian-
	       gular part of A contains the upper triangular  part  of	the  matrix  A,  and  the
	       strictly lower triangular part of A is not referenced.  If UPLO = 'L', the leading
	       n-by-n lower triangular part of A contains the lower triangular part of the matrix
	       A,  and	the  strictly  upper triangular part of A is not referenced.  On exit: if
	       UPLO = 'U', the last NB columns have been reduced to tridiagonal  form,	with  the
	       diagonal  elements  overwriting the diagonal elements of A; the elements above the
	       diagonal with the array TAU, represent the orthogonal matrix Q  as  a  product  of
	       elementary  reflectors;	if  UPLO = 'L', the first NB columns have been reduced to
	       tridiagonal form, with the diagonal elements overwriting the diagonal elements  of
	       A;  the	elements below the diagonal with the array TAU, represent the  orthogonal
	       matrix Q as a  product  of  elementary  reflectors.   See  Further  Details.   LDA
	       (input) INTEGER The leading dimension of the array A.  LDA >= (1,N).

       E       (output) DOUBLE PRECISION array, dimension (N-1)
	       If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal elements of the last NB col-
	       umns of the reduced matrix; if UPLO = 'L', E(1:nb) contains the	subdiagonal  ele-
	       ments of the first NB columns of the reduced matrix.

       TAU     (output) DOUBLE PRECISION array, dimension (N-1)
	       The scalar factors of the elementary reflectors, stored in TAU(n-nb:n-1) if UPLO =
	       'U', and in TAU(1:nb) if UPLO = 'L'.  See Further Details.  W	   (output)  DOU-
	       BLE  PRECISION  array,  dimension (LDW,NB) The n-by-nb matrix W required to update
	       the unreduced part of A.

       LDW     (input) INTEGER
	       The leading dimension of the array W. LDW >= max(1,N).

FURTHER DETAILS
       If UPLO = 'U', the matrix Q is represented as a product of elementary reflectors

	  Q = H(n) H(n-1) . . . H(n-nb+1).

       Each H(i) has the form

	  H(i) = I - tau * v * v'

       where tau is a real scalar, and v is a real vector with
       v(i:n) = 0 and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i), and tau in TAU(i-1).

       If UPLO = 'L', the matrix Q is represented as a product of elementary reflectors

	  Q = H(1) H(2) . . . H(nb).

       Each H(i) has the form

	  H(i) = I - tau * v * v'

       where tau is a real scalar, and v is a real vector with
       v(1:i) = 0 and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), and tau in TAU(i).

       The elements of the vectors v together form the n-by-nb matrix V which is needed, with  W,
       to apply the transformation to the unreduced part of the matrix, using a symmetric rank-2k
       update of the form: A := A - V*W' - W*V'.

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

       if UPLO = 'U':			    if UPLO = 'L':

	 (  a	a   a	v4  v5 )	      (  d		    )
	 (	a   a	v4  v5 )	      (  1   d		    )
	 (	    a	1   v5 )	      (  v1  1	 a	    )
	 (		d   1  )	      (  v1  v2  a   a	    )
	 (		    d  )	      (  v1  v2  a   a	 a  )

       where d denotes a diagonal element of the reduced matrix, a  denotes  an  element  of  the
       original matrix that is unchanged, and vi denotes an element of the vector defining H(i).

LAPACK version 3.0			   15 June 2000 				DLATRD(l)


All times are GMT -4. The time now is 04:28 PM.

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