Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages

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

SLATRD(l)					)					SLATRD(l)

NAME
       SLATRD  - 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 SLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW )

	   CHARACTER	  UPLO

	   INTEGER	  LDA, LDW, N, NB

	   REAL 	  A( LDA, * ), E( * ), TAU( * ), W( LDW, * )

PURPOSE
       SLATRD  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',
       SLATRD reduces the last NB rows and columns of a matrix, of which the  upper  triangle  is
       supplied;
       if  UPLO  =  'L',  SLATRD  reduces the first NB rows and columns of a matrix, of which the
       lower triangle is supplied.

       This is an auxiliary routine called by SSYTRD.

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) REAL 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) REAL 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) REAL 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)  REAL
	       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 				SLATRD(l)


All times are GMT -4. The time now is 07:56 PM.

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