129 SUBROUTINE ssytrs_aa( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,
130 $ WORK, LWORK, INFO )
140 INTEGER N, NRHS, LDA, LDB, LWORK, INFO
144 REAL A( lda, * ), B( ldb, * ), WORK( * )
150 parameter( one = 1.0e+0 )
153 LOGICAL LQUERY, UPPER
154 INTEGER K, KP, LWKOPT
169 upper = lsame( uplo,
'U' )
170 lquery = ( lwork.EQ.-1 )
171 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN 173 ELSE IF( n.LT.0 )
THEN 175 ELSE IF( nrhs.LT.0 )
THEN 177 ELSE IF( lda.LT.max( 1, n ) )
THEN 179 ELSE IF( ldb.LT.max( 1, n ) )
THEN 181 ELSE IF( lwork.LT.max( 1, 3*n-2 ) .AND. .NOT.lquery )
THEN 185 CALL xerbla(
'SSYTRS_AA', -info )
187 ELSE IF( lquery )
THEN 195 IF( n.EQ.0 .OR. nrhs.EQ.0 )
212 $
CALL sswap( nrhs, b( k, 1 ), ldb, b( kp, 1 ), ldb )
218 CALL strsm(
'L',
'U',
'T',
'U', n-1, nrhs, one, a( 1, 2 ),
219 $ lda, b( 2, 1 ), ldb)
226 CALL slacpy(
'F', 1, n, a(1, 1), lda+1, work(n), 1)
228 CALL slacpy(
'F', 1, n-1, a(1, 2), lda+1, work(1), 1)
229 CALL slacpy(
'F', 1, n-1, a(1, 2), lda+1, work(2*n), 1)
231 CALL sgtsv(n, nrhs, work(1), work(n), work(2*n), b, ldb,
241 CALL strsm(
'L',
'U',
'N',
'U', n-1, nrhs, one, a( 1, 2 ),
250 $
CALL sswap( nrhs, b( k, 1 ), ldb, b( kp, 1 ), ldb )
269 $
CALL sswap( nrhs, b( k, 1 ), ldb, b( kp, 1 ), ldb )
275 CALL strsm(
'L',
'L',
'N',
'U', n-1, nrhs, one, a( 2, 1),
283 CALL slacpy(
'F', 1, n, a(1, 1), lda+1, work(n), 1)
285 CALL slacpy(
'F', 1, n-1, a(2, 1), lda+1, work(1), 1)
286 CALL slacpy(
'F', 1, n-1, a(2, 1), lda+1, work(2*n), 1)
288 CALL sgtsv(n, nrhs, work(1), work(n), work(2*n), b, ldb,
297 CALL strsm(
'L',
'L',
'T',
'U', n-1, nrhs, one, a( 2, 1 ),
298 $ lda, b( 2, 1 ), ldb)
306 $
CALL sswap( nrhs, b( k, 1 ), ldb, b( kp, 1 ), ldb )
subroutine ssytrs_aa(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
SSYTRS_AA
subroutine strsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
STRSM
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine sswap(N, SX, INCX, SY, INCY)
SSWAP
subroutine sgtsv(N, NRHS, DL, D, DU, B, LDB, INFO)
SGTSV computes the solution to system of linear equations A * X = B for GT matrices ...
subroutine slacpy(UPLO, M, N, A, LDA, B, LDB)
SLACPY copies all or part of one two-dimensional array to another.