167 SUBROUTINE csysv( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK,
176 INTEGER INFO, LDA, LDB, LWORK, N, NRHS
180 COMPLEX A( LDA, * ), B( LDB, * ), WORK( * )
192 EXTERNAL lsame, sroundup_lwork
205 lquery = ( lwork.EQ.-1 )
206 IF( .NOT.lsame( uplo,
'U' ) .AND.
207 $ .NOT.lsame( uplo,
'L' ) )
THEN
209 ELSE IF( n.LT.0 )
THEN
211 ELSE IF( nrhs.LT.0 )
THEN
213 ELSE IF( lda.LT.max( 1, n ) )
THEN
215 ELSE IF( ldb.LT.max( 1, n ) )
THEN
217 ELSE IF( lwork.LT.1 .AND. .NOT.lquery )
THEN
225 CALL csytrf( uplo, n, a, lda, ipiv, work, -1, info )
226 lwkopt = int( work( 1 ) )
228 work( 1 ) = sroundup_lwork(lwkopt)
232 CALL xerbla(
'CSYSV ', -info )
234 ELSE IF( lquery )
THEN
240 CALL csytrf( uplo, n, a, lda, ipiv, work, lwork, info )
245 IF ( lwork.LT.n )
THEN
249 CALL csytrs( uplo, n, nrhs, a, lda, ipiv, b, ldb, info )
255 CALL csytrs2( uplo,n,nrhs,a,lda,ipiv,b,ldb,work,info )
261 work( 1 ) = sroundup_lwork(lwkopt)
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