CCHDC(3)

SYNOPSIS
SUBROUTINE CCHDC (A, LDA, P, WORK, JPVT, JOB, INFO)

NAME
cchdc - Compute the Cholesky decomposition of a positive definite matrix. A pivoting option allows the user to estimate the condition number of a positive definite matrix or determine the rank of a positive semidefinite matrix.

LIBRARY
SLATEC (LINPACK)

CATEGORY
D2D1B

TYPE
COMPLEX (SCHDC-S, DCHDC-D, CCHDC-C)

KEYWORDS
CHOLESKY DECOMPOSITION, LINEAR ALGEBRA, LINPACK, MATRIX, POSITIVE DEFINITE

AUTHOR
Dongarra, J., (ANL) Stewart, G. W., (U. of Maryland)

DESCRIPTION
CCHDC computes the Cholesky decomposition of a positive definite matrix. A pivoting option allows the user to estimate the condition of a positive definite matrix or determine the rank of a positive semidefinite matrix. On Entry A COMPLEX(LDA,P). A contains the matrix whose decomposition is to be computed. Only the upper half of A need be stored. The lower part of The array A is not referenced. LDA INTEGER. LDA is the leading dimension of the array A. P INTEGER. P is the order of the matrix. WORK COMPLEX. WORK is a work array. JPVT INTEGER(P). JPVT contains integers that control the selection of the pivot elements, if pivoting has been requested. Each diagonal element A(K,K) is placed in one of three classes according to the value of JPVT(K)). If JPVT(K)) .GT. 0, then X(K) is an initial element. If JPVT(K)) .EQ. 0, then X(K) is a free element. If JPVT(K)) .LT. 0, then X(K) is a final element. Before the decomposition is computed, initial elements are moved by symmetric row and column interchanges to the beginning of the array A and final elements to the end. Both initial and final elements are frozen in place during the computation and only free elements are moved. At the K-th stage of the reduction, if A(K,K) is occupied by a free element it is interchanged with the largest free element A(L,L) with L .GE. K. JPVT is not referenced if JOB .EQ. 0. JOB INTEGER. JOB is an integer that initiates column pivoting. IF JOB .EQ. 0, no pivoting is done. IF JOB .NE. 0, pivoting is done. On Return A A contains in its upper half the Cholesky factor of the matrix A as it has been permuted by pivoting. JPVT JPVT(J) contains the index of the diagonal element of A that was moved into the J-th position, provided pivoting was requested. INFO contains the index of the last positive diagonal element of the Cholesky factor. For positive definite matrices INFO = P is the normal return. For pivoting with positive semidefinite matrices INFO will in general be less than P. However, INFO may be greater than the rank of A, since rounding error can cause an otherwise zero element to be positive. Indefinite systems will always cause INFO to be less than P.

REFERENCES
J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W. Stewart, LINPACK Users' Guide, SIAM, 1979.

ROUTINES CALLED
CAXPY, CSWAP

REVISION HISTORY (YYMMDD)
790319 DATE WRITTEN
890831 Modified array declarations. (WRB)
890831 REVISION DATE from Version 3.2
891214 Prologue converted to Version 4.0 format. (BAB)
900326 Removed duplicate information from DESCRIPTION section. (WRB)
920501 Reformatted the REFERENCES section. (WRB)