dsytrf man page on YellowDog

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

DSYTRF(l)			       )			     DSYTRF(l)

NAME
       DSYTRF  -  compute the factorization of a real symmetric matrix A using
       the Bunch-Kaufman diagonal pivoting method

SYNOPSIS
       SUBROUTINE DSYTRF( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )

	   CHARACTER	  UPLO

	   INTEGER	  INFO, LDA, LWORK, N

	   INTEGER	  IPIV( * )

	   DOUBLE	  PRECISION A( LDA, * ), WORK( * )

PURPOSE
       DSYTRF computes the factorization of a real symmetric  matrix  A	 using
       the  Bunch-Kaufman diagonal pivoting method. The form of the factoriza‐
       tion is

	  A = U*D*U**T	or  A = L*D*L**T

       where U (or L) is a product of permutation and unit upper (lower)  tri‐
       angular matrices, and D is symmetric and block diagonal with 1-by-1 and
       2-by-2 diagonal blocks.

       This is the blocked version of the algorithm, calling Level 3 BLAS.

ARGUMENTS
       UPLO    (input) CHARACTER*1
	       = 'U':  Upper triangle of A is stored;
	       = 'L':  Lower triangle of A is stored.

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

       A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
	       On entry, the symmetric matrix A.  If UPLO = 'U',  the  leading
	       N-by-N upper triangular 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, the block diagonal matrix D and the  multipliers  used
	       to obtain the factor U or L (see below for further details).

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

       IPIV    (output) INTEGER array, dimension (N)
	       Details	of  the interchanges and the block structure of D.  If
	       IPIV(k) > 0, then rows and columns k and	 IPIV(k)  were	inter‐
	       changed	and  D(k,k) is a 1-by-1 diagonal block.	 If UPLO = 'U'
	       and IPIV(k) = IPIV(k-1) < 0, then  rows	and  columns  k-1  and
	       -IPIV(k) were interchanged and D(k-1:k,k-1:k) is a 2-by-2 diag‐
	       onal block.  If UPLO = 'L' and IPIV(k) = IPIV(k+1)  <  0,  then
	       rows  and  columns  k+1	and  -IPIV(k)  were  interchanged  and
	       D(k:k+1,k:k+1) is a 2-by-2 diagonal block.

       WORK    (workspace/output) DOUBLE PRECISION array, dimension (LWORK)
	       On exit, if INFO = 0, WORK(1) returns the optimal LWORK.

       LWORK   (input) INTEGER
	       The length of WORK.  LWORK >=1.	For best performance LWORK  >=
	       N*NB, where NB is the block size returned by ILAENV.

	       If  LWORK  = -1, then a workspace query is assumed; the routine
	       only calculates the optimal size of  the	 WORK  array,  returns
	       this  value  as the first entry of the WORK array, and no error
	       message related to LWORK is issued by XERBLA.

       INFO    (output) INTEGER
	       = 0:  successful exit
	       < 0:  if INFO = -i, the i-th argument had an illegal value
	       > 0:  if INFO = i, D(i,i) is exactly zero.   The	 factorization
	       has  been completed, but the block diagonal matrix D is exactly
	       singular, and division by zero will occur  if  it  is  used  to
	       solve a system of equations.

FURTHER DETAILS
       If UPLO = 'U', then A = U*D*U', where
	  U = P(n)*U(n)* ... *P(k)U(k)* ...,
       i.e.,  U is a product of terms P(k)*U(k), where k decreases from n to 1
       in steps of 1 or 2, and D is a block diagonal matrix  with  1-by-1  and
       2-by-2  diagonal	 blocks D(k).  P(k) is a permutation matrix as defined
       by IPIV(k), and U(k) is a unit upper triangular matrix,	such  that  if
       the diagonal block D(k) is of order s (s = 1 or 2), then

		  (   I	   v	0   )	k-s
	  U(k) =  (   0	   I	0   )	s
		  (   0	   0	I   )	n-k
		     k-s   s   n-k

       If  s = 1, D(k) overwrites A(k,k), and v overwrites A(1:k-1,k).	If s =
       2, the upper triangle of	 D(k)  overwrites  A(k-1,k-1),	A(k-1,k),  and
       A(k,k), and v overwrites A(1:k-2,k-1:k).

       If UPLO = 'L', then A = L*D*L', where
	  L = P(1)*L(1)* ... *P(k)*L(k)* ...,
       i.e.,  L is a product of terms P(k)*L(k), where k increases from 1 to n
       in steps of 1 or 2, and D is a block diagonal matrix  with  1-by-1  and
       2-by-2  diagonal	 blocks D(k).  P(k) is a permutation matrix as defined
       by IPIV(k), and L(k) is a unit lower triangular matrix,	such  that  if
       the diagonal block D(k) is of order s (s = 1 or 2), then

		  (   I	   0	 0   )	k-1
	  L(k) =  (   0	   I	 0   )	s
		  (   0	   v	 I   )	n-k-s+1
		     k-1   s  n-k-s+1

       If  s = 1, D(k) overwrites A(k,k), and v overwrites A(k+1:n,k).	If s =
       2,  the	lower  triangle	 of  D(k)  overwrites  A(k,k),	A(k+1,k),  and
       A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).

LAPACK version 3.0		 15 June 2000			     DSYTRF(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