2
SUBROUTINE CPBSL (ABD, LDA, N, M, B)
3
C***BEGIN PROLOGUE CPBSL
4
C***PURPOSE Solve the complex Hermitian positive definite band system
5
C using the factors computed by CPBCO or CPBFA.
6
C***LIBRARY SLATEC (LINPACK)
8
C***TYPE COMPLEX (SPBSL-S, DPBSL-D, CPBSL-C)
9
C***KEYWORDS BANDED, LINEAR ALGEBRA, LINPACK, MATRIX,
10
C POSITIVE DEFINITE, SOLVE
11
C***AUTHOR Moler, C. B., (U. of New Mexico)
14
C CPBSL solves the complex Hermitian positive definite band
16
C using the factors computed by CPBCO or CPBFA.
21
C the output from CPBCO or CPBFA.
24
C the leading dimension of the array ABD .
27
C the order of the matrix A .
30
C the number of diagonals above the main diagonal.
33
C the right hand side vector.
37
C B the solution vector X .
41
C A division by zero will occur if the input factor contains
42
C a zero on the diagonal. Technically this indicates
43
C singularity but it is usually caused by improper subroutine
44
C arguments. It will not occur if the subroutines are called
45
C correctly and INFO .EQ. 0 .
47
C To compute INVERSE(A) * C where C is a matrix
49
C CALL CPBCO(ABD,LDA,N,RCOND,Z,INFO)
50
C IF (RCOND is too small .OR. INFO .NE. 0) GO TO ...
52
C CALL CPBSL(ABD,LDA,N,C(1,J))
55
C***REFERENCES J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W.
56
C Stewart, LINPACK Users' Guide, SIAM, 1979.
57
C***ROUTINES CALLED CAXPY, CDOTC
58
C***REVISION HISTORY (YYMMDD)
60
C 890531 Changed all specific intrinsics to generic. (WRB)
61
C 890831 Modified array declarations. (WRB)
62
C 890831 REVISION DATE from Version 3.2
63
C 891214 Prologue converted to Version 4.0 format. (BAB)
64
C 900326 Removed duplicate information from DESCRIPTION section.
66
C 920501 Reformatted the REFERENCES section. (WRB)
67
C***END PROLOGUE CPBSL
69
COMPLEX ABD(LDA,*),B(*)
74
C SOLVE CTRANS(R)*Y = B
76
C***FIRST EXECUTABLE STATEMENT CPBSL
81
T = CDOTC(LM,ABD(LA,K),1,B(LB),1)
82
B(K) = (B(K) - T)/ABD(M+1,K)
92
B(K) = B(K)/ABD(M+1,K)
94
CALL CAXPY(LM,T,ABD(LA,K),1,B(LB),1)