129 SUBROUTINE chegs2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO )
138 INTEGER INFO, ITYPE, LDA, LDB, N
141 COMPLEX A( LDA, * ), B( LDB, * )
148 parameter( one = 1.0e+0, half = 0.5e+0 )
150 parameter( cone = ( 1.0e+0, 0.0e+0 ) )
174 upper = lsame( uplo,
'U' )
175 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
177 ELSE IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
179 ELSE IF( n.LT.0 )
THEN
181 ELSE IF( lda.LT.max( 1, n ) )
THEN
183 ELSE IF( ldb.LT.max( 1, n ) )
THEN
187 CALL xerbla(
'CHEGS2', -info )
191 IF( itype.EQ.1 )
THEN
205 CALL csscal( n-k, one / bkk, a( k, k+1 ), lda )
207 CALL clacgv( n-k, a( k, k+1 ), lda )
208 CALL clacgv( n-k, b( k, k+1 ), ldb )
209 CALL caxpy( n-k, ct, b( k, k+1 ), ldb, a( k, k+1 ),
211 CALL cher2( uplo, n-k, -cone, a( k, k+1 ), lda,
212 $ b( k, k+1 ), ldb, a( k+1, k+1 ), lda )
213 CALL caxpy( n-k, ct, b( k, k+1 ), ldb, a( k, k+1 ),
215 CALL clacgv( n-k, b( k, k+1 ), ldb )
216 CALL ctrsv( uplo,
'Conjugate transpose',
'Non-unit',
217 $ n-k, b( k+1, k+1 ), ldb, a( k, k+1 ),
219 CALL clacgv( n-k, a( k, k+1 ), lda )
235 CALL csscal( n-k, one / bkk, a( k+1, k ), 1 )
237 CALL caxpy( n-k, ct, b( k+1, k ), 1, a( k+1, k ), 1 )
238 CALL cher2( uplo, n-k, -cone, a( k+1, k ), 1,
239 $ b( k+1, k ), 1, a( k+1, k+1 ), lda )
240 CALL caxpy( n-k, ct, b( k+1, k ), 1, a( k+1, k ), 1 )
241 CALL ctrsv( uplo,
'No transpose',
'Non-unit', n-k,
242 $ b( k+1, k+1 ), ldb, a( k+1, k ), 1 )
257 CALL ctrmv( uplo,
'No transpose',
'Non-unit', k-1, b,
258 $ ldb, a( 1, k ), 1 )
260 CALL caxpy( k-1, ct, b( 1, k ), 1, a( 1, k ), 1 )
261 CALL cher2( uplo, k-1, cone, a( 1, k ), 1, b( 1, k ), 1,
263 CALL caxpy( k-1, ct, b( 1, k ), 1, a( 1, k ), 1 )
264 CALL csscal( k-1, bkk, a( 1, k ), 1 )
265 a( k, k ) = akk*bkk**2
277 CALL clacgv( k-1, a( k, 1 ), lda )
278 CALL ctrmv( uplo,
'Conjugate transpose',
'Non-unit', k-1,
279 $ b, ldb, a( k, 1 ), lda )
281 CALL clacgv( k-1, b( k, 1 ), ldb )
282 CALL caxpy( k-1, ct, b( k, 1 ), ldb, a( k, 1 ), lda )
283 CALL cher2( uplo, k-1, cone, a( k, 1 ), lda, b( k, 1 ),
285 CALL caxpy( k-1, ct, b( k, 1 ), ldb, a( k, 1 ), lda )
286 CALL clacgv( k-1, b( k, 1 ), ldb )
287 CALL csscal( k-1, bkk, a( k, 1 ), lda )
288 CALL clacgv( k-1, a( k, 1 ), lda )
289 a( k, k ) = akk*bkk**2