chetrf man page on YellowDog

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

CHETRF(l)			       )			     CHETRF(l)

NAME
       CHETRF  -  compute  the	factorization  of a complex Hermitian matrix A
       using the Bunch-Kaufman diagonal pivoting method

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

	   CHARACTER	  UPLO

	   INTEGER	  INFO, LDA, LWORK, N

	   INTEGER	  IPIV( * )

	   COMPLEX	  A( LDA, * ), WORK( * )

PURPOSE
       CHETRF computes the factorization of a complex Hermitian matrix A using
       the  Bunch-Kaufman diagonal pivoting method. The form of the factoriza‐
       tion is

	  A = U*D*U**H	or  A = L*D*L**H

       where U (or L) is a product of permutation and unit upper (lower)  tri‐
       angular matrices, and D is Hermitian 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) COMPLEX array, dimension (LDA,N)
	       On entry, the Hermitian 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) COMPLEX 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.

       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			     CHETRF(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