101 SUBROUTINE cpotrf ( UPLO, N, A, LDA, INFO )
121 parameter( one = 1.0e+0, cone = ( 1.0e+0, 0.0e+0 ) )
143 upper =
lsame( uplo,
'U' )
144 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
146 ELSE IF( n.LT.0 )
THEN
148 ELSE IF( lda.LT.max( 1, n ) )
THEN
152 CALL
xerbla(
'CPOTRF', -info )
163 nb =
ilaenv( 1,
'CPOTRF', uplo, n, -1, -1, -1 )
164 IF( nb.LE.1 .OR. nb.GE.n )
THEN
168 CALL
cpotf2( uplo, n, a, lda, info )
182 jb = min( nb, n-j+1 )
184 CALL
cpotf2(
'Upper', jb, a( j, j ), lda, info )
193 CALL
ctrsm(
'Left',
'Upper',
'Conjugate Transpose',
194 $
'Non-unit', jb, n-j-jb+1, cone, a( j, j ),
195 $ lda, a( j, j+jb ), lda )
196 CALL
cherk(
'Upper',
'Conjugate transpose', n-j-jb+1,
197 $ jb, -one, a( j, j+jb ), lda,
198 $ one, a( j+jb, j+jb ), lda )
211 jb = min( nb, n-j+1 )
213 CALL
cpotf2(
'Lower', jb, a( j, j ), lda, info )
222 CALL
ctrsm(
'Right',
'Lower',
'Conjugate Transpose',
223 $
'Non-unit', n-j-jb+1, jb, cone, a( j, j ),
224 $ lda, a( j+jb, j ), lda )
226 CALL
cherk(
'Lower',
'No Transpose', n-j-jb+1, jb,
227 $ -one, a( j+jb, j ), lda,
228 $ one, a( j+jb, j+jb ), lda )