Previous: saxpy Up: ../linpack.html Next: schdd
SUBROUTINE SCHDC(A,LDA,P,WORK,JPVT,JOB,INFO) INTEGER LDA,P,JPVT(1),JOB,INFO REAL A(LDA,1),WORK(1) C C SCHDC COMPUTES THE CHOLESKY DECOMPOSITION OF A POSITIVE DEFINIT C MATRIX. A PIVOTING OPTION ALLOWS THE USER TO ESTIMATE THE C CONDITION OF A POSITIVE DEFINITE MATRIX OR DETERMINE THE RANK C OF A POSITIVE SEMIDEFINITE MATRIX. C C ON ENTRY C C A REAL(LDA,P). C A CONTAINS THE MATRIX WHOSE DECOMPOSITION IS TO C BE COMPUTED. ONLT THE UPPER HALF OF A NEED BE STORE C THE LOWER PART OF THE ARRAY A IS NOT REFERENCED. C C LDA INTEGER. C LDA IS THE LEADING DIMENSION OF THE ARRAY A. C C P INTEGER. C P IS THE ORDER OF THE MATRIX. C C WORK REAL. C WORK IS A WORK ARRAY. C C JPVT INTEGER(P). C JPVT CONTAINS INTEGERS THAT CONTROL THE SELECTION C OF THE PIVOT ELEMENTS, IF PIVOTING HAS BEEN REQUESTE C EACH DIAGONAL ELEMENT A(K,K) C IS PLACED IN ONE OF THREE CLASSES ACCORDING TO THE C VALUE OF JPVT(K). C C IF JPVT(K) .GT. 0, THEN X(K) IS AN INITIAL C ELEMENT. C C IF JPVT(K) .EQ. 0, THEN X(K) IS A FREE ELEMENT. C C IF JPVT(K) .LT. 0, THEN X(K) IS A FINAL ELEMENT. C C BEFORE THE DECOMPOSITION IS COMPUTED, INITIAL ELEMEN C ARE MOVED BY SYMMETRIC ROW AND COLUMN INTERCHANGES T C THE BEGINNING OF THE ARRAY A AND FINAL C ELEMENTS TO THE END. BOTH INITIAL AND FINAL ELEMENT C ARE FROZEN IN PLACE DURING THE COMPUTATION AND ONLY C FREE ELEMENTS ARE MOVED. AT THE K-TH STAGE OF THE C REDUCTION, IF A(K,K) IS OCCUPIED BY A FREE ELEMENT C IT IS INTERCHANGED WITH THE LARGEST FREE ELEMENT C A(L,L) WITH L .GE. K. JPVT IS NOT REFERENCED IF C JOB .EQ. 0. C C JOB INTEGER. C JOB IS AN INTEGER THAT INITIATES COLUMN PIVOTING. C IF JOB .EQ. 0, NO PIVOTING IS DONE. C IF JOB .NE. 0, PIVOTING IS DONE. C C ON RETURN C C A A CONTAINS IN ITS UPPER HALF THE CHOLESKY FACTOR C OF THE MATRIX A AS IT HAS BEEN PERMUTED BY PIVOTING. C C JPVT JPVT(J) CONTAINS THE INDEX OF THE DIAGONAL ELEMENT C OF A THAT WAS MOVED INTO THE J-TH POSITION, C PROVIDED PIVOTING WAS REQUESTED. C C INFO CONTAINS THE INDEX OF THE LAST POSITIVE DIAGONAL C ELEMENT OF THE CHOLESKY FACTOR. C C FOR POSITIVE DEFINITE MATRICES INFO = P IS THE NORMAL RETURN. C FOR PIVOTING WITH POSITIVE SEMIDEFINITE MATRICES INFO WILL C IN GENERAL BE LESS THAN P. HOWEVER, INFO MAY BE GREATER THAN C THE RANK OF A, SINCE ROUNDING ERROR CAN CAUSE AN OTHERWISE ZERO C ELEMENT TO BE POSITIVE. INDEFINITE SYSTEMS WILL ALWAYS CAUSE C INFO TO BE LESS THAN P. C C LINPACK. THIS VERSION DATED 03/19/79 . C J.J. DONGARRA AND G.W. STEWART, ARGONNE NATIONAL LABORATORY AND C UNIVERSITY OF MARYLAND. C C C BLAS SAXPY,SSWAP C FORTRAN SQRT C