158 SUBROUTINE ssysv_aa( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK,
167 INTEGER INFO, LDA, LDB, LWORK, N, NRHS
171 REAL A( LDA, * ), B( LDB, * ), WORK( * )
178 INTEGER LWKMIN, LWKOPT, LWKOPT_SYTRF, LWKOPT_SYTRS
184 EXTERNAL sroundup_lwork
197 lquery = ( lwork.EQ.-1 )
198 lwkmin = max( 1, 2*n, 3*n-2 )
199 IF( .NOT.lsame( uplo,
'U' ) .AND.
200 $ .NOT.lsame( uplo,
'L' ) )
THEN
202 ELSE IF( n.LT.0 )
THEN
204 ELSE IF( nrhs.LT.0 )
THEN
206 ELSE IF( lda.LT.max( 1, n ) )
THEN
208 ELSE IF( ldb.LT.max( 1, n ) )
THEN
210 ELSE IF( lwork.LT.lwkmin .AND. .NOT.lquery )
THEN
215 CALL ssytrf_aa( uplo, n, a, lda, ipiv, work, -1, info )
216 lwkopt_sytrf = int( work( 1 ) )
217 CALL ssytrs_aa( uplo, n, nrhs, a, lda, ipiv, b, ldb, work,
219 lwkopt_sytrs = int( work( 1 ) )
220 lwkopt = max( lwkmin, lwkopt_sytrf, lwkopt_sytrs )
221 work( 1 ) = sroundup_lwork( lwkopt )
225 CALL xerbla(
'SSYSV_AA', -info )
227 ELSE IF( lquery )
THEN
233 CALL ssytrf_aa( uplo, n, a, lda, ipiv, work, lwork, info )
238 CALL ssytrs_aa( uplo, n, nrhs, a, lda, ipiv, b, ldb, work,
243 work( 1 ) = sroundup_lwork( lwkopt )
subroutine ssysv_aa(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info)
SSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices
subroutine ssytrf_aa(uplo, n, a, lda, ipiv, work, lwork, info)
SSYTRF_AA
subroutine ssytrs_aa(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info)
SSYTRS_AA