169 SUBROUTINE csysv( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK,
178 INTEGER INFO, LDA, LDB, LWORK, N, NRHS
182 COMPLEX A( LDA, * ), B( LDB, * ), WORK( * )
194 EXTERNAL lsame, sroundup_lwork
207 lquery = ( lwork.EQ.-1 )
208 IF( .NOT.lsame( uplo,
'U' ) .AND. .NOT.lsame( uplo,
'L' ) )
THEN
210 ELSE IF( n.LT.0 )
THEN
212 ELSE IF( nrhs.LT.0 )
THEN
214 ELSE IF( lda.LT.max( 1, n ) )
THEN
216 ELSE IF( ldb.LT.max( 1, n ) )
THEN
218 ELSE IF( lwork.LT.1 .AND. .NOT.lquery )
THEN
226 CALL csytrf( uplo, n, a, lda, ipiv, work, -1, info )
227 lwkopt = int( work( 1 ) )
229 work( 1 ) = sroundup_lwork(lwkopt)
233 CALL xerbla(
'CSYSV ', -info )
235 ELSE IF( lquery )
THEN
241 CALL csytrf( uplo, n, a, lda, ipiv, work, lwork, info )
246 IF ( lwork.LT.n )
THEN
250 CALL csytrs( uplo, n, nrhs, a, lda, ipiv, b, ldb, info )
256 CALL csytrs2( uplo,n,nrhs,a,lda,ipiv,b,ldb,work,info )
262 work( 1 ) = sroundup_lwork(lwkopt)
subroutine xerbla(srname, info)
subroutine csysv(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info)
CSYSV computes the solution to system of linear equations A * X = B for SY matrices
subroutine csytrf(uplo, n, a, lda, ipiv, work, lwork, info)
CSYTRF
subroutine csytrs2(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, info)
CSYTRS2
subroutine csytrs(uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
CSYTRS