131 SUBROUTINE zsytrf_aa( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
141 INTEGER N, LDA, LWORK,
145 COMPLEX*16 A( , * ), WORK( * )
151 parameter( zero = 0.0d+0, one = 1.0d+0 )
154 LOGICAL LQUERY, UPPER
156 INTEGER NB, MJ, NJ, K1, K2, J1, J2, J3, JB
162 EXTERNAL lsame, ilaenv
175 nb = ilaenv( 1,
'ZSYTRF_AA', uplo, n, -1, -1, -1 )
180 upper = lsame( uplo, 'u
' )
181.EQ.
LQUERY = ( LWORK-1 )
182.NOT..AND..NOT.
IF( UPPER LSAME( UPLO, 'l
' ) ) THEN
184.LT.
ELSE IF( N0 ) THEN
186.LT.
ELSE IF( LDAMAX( 1, N ) ) THEN
188.LT..AND..NOT.
ELSE IF( LWORKMAX( 1, 2*N ) LQUERY ) THEN
200 ELSE IF( LQUERY ) THEN
216.LT.
IF( LWORK((1+NB)*N) ) THEN
228 CALL ZCOPY( N, A( 1, 1 ), LDA, WORK( 1 ), 1 )
247 JB = MIN( N-J1+1, NB )
252 CALL ZLASYF_AA( UPLO, 2-K1, N-J, JB,
253 $ A( MAX(1, J), J+1 ), LDA,
254 $ IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
258 DO J2 = J+2, MIN(N, J+JB+1)
259 IPIV( J2 ) = IPIV( J2 ) + J
260.NE..AND..GT.
IF( (J2IPIV(J2)) ((J1-K1)2) ) THEN
261 CALL ZSWAP( J1-K1-2, A( 1, J2 ), 1,
262 $ A( 1, IPIV(J2) ), 1 )
275.GT..OR..GT.
IF( J11 JB1 ) THEN
281 CALL ZCOPY( N-J, A( J-1, J+1 ), LDA,
282 $ WORK( (J+1-J1+1)+JB*N ), 1 )
283 CALL ZSCAL( N-J, ALPHA, WORK( (J+1-J1+1)+JB*N ), 1 )
306 NJ = MIN( NB, N-J2+1 )
312 CALL ZGEMV( 'no transpose
', MJ, JB+1,
313 $ -ONE, WORK( J3-J1+1+K1*N ), N,
315 $ ONE, A( J3, J3 ), LDA )
321 CALL ZGEMM( 'transpose
', 'transpose
',
323 $ -ONE, A( J1-K2, J2 ), LDA,
324 $ WORK( J3-J1+1+K1*N ), N,
325 $ ONE, A( J2, J3 ), LDA )
335 CALL ZCOPY( N-J, A( J+1, J+1 ), LDA, WORK( 1 ), 1 )
347 CALL ZCOPY( N, A( 1, 1 ), 1, WORK( 1 ), 1 )
366 JB = MIN( N-J1+1, NB )
371 CALL ZLASYF_AA( UPLO, 2-K1, N-J, JB,
372 $ A( J+1, MAX(1, J) ), LDA,
373 $ IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) )
377 DO J2 = J+2, MIN(N, J+JB+1)
378 IPIV( J2 ) = IPIV( J2 ) + J
379.NE..AND..GT.
IF( (J2IPIV(J2)) ((J1-K1)2) ) THEN
380 CALL ZSWAP( J1-K1-2, A( J2, 1 ), LDA,
381 $ A( IPIV(J2), 1 ), LDA )
394.GT..OR..GT.
IF( J11 JB1 ) THEN
400 CALL ZCOPY( N-J, A( J+1, J-1 ), 1,
401 $ WORK( (J+1-J1+1)+JB*N ), 1 )
402 CALL ZSCAL( N-J, ALPHA, WORK( (J+1-J1+1)+JB*N ), 1 )
425 NJ = MIN( NB, N-J2+1 )
431 CALL ZGEMV( 'no transpose
', MJ, JB+1,
432 $ -ONE, WORK( J3-J1+1+K1*N ), N,
433 $ A( J3, J1-K2 ), LDA,
434 $ ONE, A( J3, J3 ), 1 )
440 CALL ZGEMM( 'no transpose
', 'transpose
',
442 $ -ONE, WORK( J3-J1+1+K1*N ), N,
443 $ A( J2, J1-K2 ), LDA,
444 $ ONE, A( J3, J2 ), LDA )
454 CALL ZCOPY( N-J, A( J+1, J+1 ), 1, WORK( 1 ), 1 )
subroutine xerbla(srname, info)
XERBLA
subroutine zlasyf_aa(uplo, j1, m, nb, a, lda, ipiv, h, ldh, work)
ZLASYF_AA
subroutine zsytrf_aa(uplo, n, a, lda, ipiv, work, lwork, info)
ZSYTRF_AA
subroutine zswap(n, zx, incx, zy, incy)
ZSWAP
subroutine zcopy(n, zx, incx, zy, incy)
ZCOPY
subroutine zscal(n, za, zx, incx)
ZSCAL
subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
ZGEMV
subroutine zgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
ZGEMM