Apply ROUNDUP_LWORK (Reference-LAPACK PR 904)

This commit is contained in:
Martin Kroeker 2023-11-12 13:56:06 +01:00 committed by GitHub
parent 225036fd92
commit c9378badd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 334 additions and 317 deletions

View File

@ -189,7 +189,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEeigen
*> \ingroup gees
*
* =====================================================================
SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
@ -230,13 +230,13 @@
* ..
* .. External Subroutines ..
EXTERNAL CCOPY, CGEBAK, CGEBAL, CGEHRD, CHSEQR, CLACPY,
$ CLASCL, CTRSEN, CUNGHR, SLABAD, XERBLA
$ CLASCL, CTRSEN, CUNGHR, XERBLA
* ..
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANGE, SLAMCH
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC MAX, SQRT
@ -292,7 +292,7 @@
MAXWRK = MAX( MAXWRK, HSWORK )
END IF
END IF
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
*
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
INFO = -12
@ -318,7 +318,6 @@
EPS = SLAMCH( 'P' )
SMLNUM = SLAMCH( 'S' )
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
SMLNUM = SQRT( SMLNUM ) / EPS
BIGNUM = ONE / SMLNUM
*
@ -413,7 +412,7 @@
CALL CCOPY( N, A, LDA+1, W, 1 )
END IF
*
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
RETURN
*
* End of CGEES

View File

@ -230,7 +230,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEeigen
*> \ingroup geesx
*
* =====================================================================
SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
@ -274,13 +274,13 @@
* ..
* .. External Subroutines ..
EXTERNAL CCOPY, CGEBAK, CGEBAL, CGEHRD, CHSEQR, CLACPY,
$ CLASCL, CTRSEN, CUNGHR, SLABAD, SLASCL, XERBLA
$ CLASCL, CTRSEN, CUNGHR, SLASCL, XERBLA
* ..
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANGE, SLAMCH
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC MAX, SQRT
@ -350,7 +350,7 @@
IF( .NOT.WANTSN )
$ LWRK = MAX( LWRK, ( N*N )/2 )
END IF
WORK( 1 ) = LWRK
WORK( 1 ) = SROUNDUP_LWORK(LWRK)
*
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
INFO = -15
@ -376,7 +376,6 @@
EPS = SLAMCH( 'P' )
SMLNUM = SLAMCH( 'S' )
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
SMLNUM = SQRT( SMLNUM ) / EPS
BIGNUM = ONE / SMLNUM
*
@ -488,7 +487,7 @@
END IF
END IF
*
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
RETURN
*
* End of CGEESX

View File

@ -172,7 +172,7 @@
*
* @generated from zgeev.f, fortran z -> c, Tue Apr 19 01:47:44 2016
*
*> \ingroup complexGEeigen
*> \ingroup geev
*
* =====================================================================
SUBROUTINE CGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR,
@ -212,14 +212,15 @@
REAL DUM( 1 )
* ..
* .. External Subroutines ..
EXTERNAL SLABAD, XERBLA, CSSCAL, CGEBAK, CGEBAL, CGEHRD,
EXTERNAL XERBLA, CSSCAL, CGEBAK, CGEBAL, CGEHRD,
$ CHSEQR, CLACPY, CLASCL, CSCAL, CTREVC3, CUNGHR
* ..
* .. External Functions ..
LOGICAL LSAME
INTEGER ISAMAX, ILAENV
REAL SLAMCH, SCNRM2, CLANGE
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE
REAL SLAMCH, SCNRM2, CLANGE, SROUNDUP_LWORK
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE,
$ SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC REAL, CMPLX, CONJG, AIMAG, MAX, SQRT
@ -291,7 +292,7 @@
HSWORK = INT( WORK(1) )
MAXWRK = MAX( MAXWRK, HSWORK, MINWRK )
END IF
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
*
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
INFO = -12
@ -315,7 +316,6 @@
EPS = SLAMCH( 'P' )
SMLNUM = SLAMCH( 'S' )
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
SMLNUM = SQRT( SMLNUM ) / EPS
BIGNUM = ONE / SMLNUM
*
@ -493,7 +493,7 @@
END IF
END IF
*
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
RETURN
*
* End of CGEEV

View File

@ -279,7 +279,7 @@
*
* @generated from zgeevx.f, fortran z -> c, Tue Apr 19 01:47:44 2016
*
*> \ingroup complexGEeigen
*> \ingroup geevx
*
* =====================================================================
SUBROUTINE CGEEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL,
@ -323,15 +323,16 @@
REAL DUM( 1 )
* ..
* .. External Subroutines ..
EXTERNAL SLABAD, SLASCL, XERBLA, CSSCAL, CGEBAK, CGEBAL,
EXTERNAL SLASCL, XERBLA, CSSCAL, CGEBAK, CGEBAL,
$ CGEHRD, CHSEQR, CLACPY, CLASCL, CSCAL, CTREVC3,
$ CTRSNA, CUNGHR
* ..
* .. External Functions ..
LOGICAL LSAME
INTEGER ISAMAX, ILAENV
REAL SLAMCH, SCNRM2, CLANGE
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE
REAL SLAMCH, SCNRM2, CLANGE, SROUNDUP_LWORK
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE,
$ SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC REAL, CMPLX, CONJG, AIMAG, MAX, SQRT
@ -434,7 +435,7 @@
END IF
MAXWRK = MAX( MAXWRK, MINWRK )
END IF
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
*
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
INFO = -20
@ -458,7 +459,6 @@
EPS = SLAMCH( 'P' )
SMLNUM = SLAMCH( 'S' )
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
SMLNUM = SQRT( SMLNUM ) / EPS
BIGNUM = ONE / SMLNUM
*
@ -657,7 +657,7 @@
END IF
END IF
*
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
RETURN
*
* End of CGEEVX

View File

@ -120,7 +120,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEcomputational
*> \ingroup gehrd
*
*> \par Further Details:
* =====================
@ -201,7 +201,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. Executable Statements ..
*
@ -227,7 +228,7 @@
*
NB = MIN( NBMAX, ILAENV( 1, 'CGEHRD', ' ', N, ILO, IHI, -1 ) )
LWKOPT = N*NB + TSIZE
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
END IF
*
IF( INFO.NE.0 ) THEN
@ -344,7 +345,7 @@
* Use unblocked code to reduce the rest of the matrix
*
CALL CGEHD2( N, I, IHI, A, LDA, TAU, WORK, IINFO )
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -166,6 +166,8 @@
*> the LQ factorization.
*> \endverbatim
*>
*> \ingroup gelq
*>
* =====================================================================
SUBROUTINE CGELQ( M, N, A, LDA, T, TSIZE, WORK, LWORK,
$ INFO )
@ -190,7 +192,8 @@
* ..
* .. External Functions ..
LOGICAL LSAME
EXTERNAL LSAME
REAL SROUNDUP_LWORK
EXTERNAL LSAME, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CGELQT, CLASWLQ, XERBLA
@ -292,9 +295,9 @@
T( 2 ) = MB
T( 3 ) = NB
IF( MINW ) THEN
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
ELSE
WORK( 1 ) = LWREQ
WORK( 1 ) = SROUNDUP_LWORK(LWREQ)
END IF
END IF
IF( INFO.NE.0 ) THEN
@ -319,7 +322,7 @@
$ LWORK, INFO )
END IF
*
WORK( 1 ) = LWREQ
WORK( 1 ) = SROUNDUP_LWORK(LWREQ)
*
RETURN
*

View File

@ -118,7 +118,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEcomputational
*> \ingroup gelqf
*
*> \par Further Details:
* =====================
@ -167,7 +167,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. Executable Statements ..
*
@ -176,7 +177,7 @@
INFO = 0
NB = ILAENV( 1, 'CGELQF', ' ', M, N, -1, -1 )
LWKOPT = M*NB
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
LQUERY = ( LWORK.EQ.-1 )
IF( M.LT.0 ) THEN
INFO = -1
@ -266,7 +267,7 @@
$ CALL CGELQ2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), WORK,
$ IINFO )
*
WORK( 1 ) = IWS
WORK( 1 ) = SROUNDUP_LWORK(IWS)
RETURN
*
* End of CGELQF

View File

@ -204,7 +204,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEsolve
*> \ingroup gelsd
*
*> \par Contributors:
* ==================
@ -249,13 +249,13 @@
* .. External Subroutines ..
EXTERNAL CGEBRD, CGELQF, CGEQRF, CLACPY,
$ CLALSD, CLASCL, CLASET, CUNMBR,
$ CUNMLQ, CUNMQR, SLABAD, SLASCL,
$ CUNMLQ, CUNMQR, SLASCL,
$ SLASET, XERBLA
* ..
* .. External Functions ..
INTEGER ILAENV
REAL CLANGE, SLAMCH
EXTERNAL CLANGE, SLAMCH, ILAENV
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
EXTERNAL CLANGE, SLAMCH, ILAENV, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC INT, LOG, MAX, MIN, REAL
@ -367,7 +367,7 @@
END IF
END IF
MINWRK = MIN( MINWRK, MAXWRK )
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
IWORK( 1 ) = LIWORK
RWORK( 1 ) = LRWORK
*
@ -396,7 +396,6 @@
SFMIN = SLAMCH( 'S' )
SMLNUM = SFMIN / EPS
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
*
* Scale A if max entry outside range [SMLNUM,BIGNUM].
*
@ -647,7 +646,7 @@
END IF
*
10 CONTINUE
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
IWORK( 1 ) = LIWORK
RWORK( 1 ) = LRWORK
RETURN

View File

@ -218,8 +218,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
REAL CLANGE, SLAMCH
EXTERNAL ILAENV, CLANGE, SLAMCH
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
EXTERNAL ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC MAX, MIN
@ -361,7 +361,7 @@
END IF
MAXWRK = MAX( MINWRK, MAXWRK )
END IF
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
*
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY )
$ INFO = -12
@ -758,7 +758,7 @@
CALL CLASCL( 'G', 0, 0, BIGNUM, BNRM, N, NRHS, B, LDB, INFO )
END IF
70 CONTINUE
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
RETURN
*
* End of CGELSS

View File

@ -176,7 +176,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEsolve
*> \ingroup gelst
*
*> \par Contributors:
* ==================
@ -224,15 +224,15 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL SLAMCH, CLANGE
EXTERNAL LSAME, ILAENV, SLAMCH, CLANGE
REAL SLAMCH, CLANGE, SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, SLAMCH, CLANGE, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CGELQT, CGEQRT, CGEMLQT, CGEMQRT, SLABAD,
EXTERNAL CGELQT, CGEQRT, CGEMLQT, CGEMQRT,
$ CLASCL, CLASET, CTRTRS, XERBLA
* ..
* .. Intrinsic Functions ..
INTRINSIC REAL, MAX, MIN
INTRINSIC MAX, MIN
* ..
* .. Executable Statements ..
*
@ -270,7 +270,7 @@
*
MNNRHS = MAX( MN, NRHS )
LWOPT = MAX( 1, (MN+MNNRHS)*NB )
WORK( 1 ) = REAL( LWOPT )
WORK( 1 ) = SROUNDUP_LWORK( LWOPT )
*
END IF
*
@ -285,7 +285,7 @@
*
IF( MIN( M, N, NRHS ).EQ.0 ) THEN
CALL CLASET( 'Full', MAX( M, N ), NRHS, CZERO, CZERO, B, LDB )
WORK( 1 ) = REAL( LWOPT )
WORK( 1 ) = SROUNDUP_LWORK( LWOPT )
RETURN
END IF
*
@ -311,7 +311,6 @@
*
SMLNUM = SLAMCH( 'S' ) / SLAMCH( 'P' )
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
*
* Scale A, B if max element outside range [SMLNUM,BIGNUM]
*
@ -334,7 +333,7 @@
* Matrix all zero. Return zero solution.
*
CALL CLASET( 'Full', MAX( M, N ), NRHS, CZERO, CZERO, B, LDB )
WORK( 1 ) = REAL( LWOPT )
WORK( 1 ) = SROUNDUP_LWORK( LWOPT )
RETURN
END IF
*
@ -524,7 +523,7 @@
$ INFO )
END IF
*
WORK( 1 ) = REAL( LWOPT )
WORK( 1 ) = SROUNDUP_LWORK( LWOPT )
*
RETURN
*

View File

@ -113,7 +113,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEcomputational
*> \ingroup geqlf
*
*> \par Further Details:
* =====================
@ -162,7 +162,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. Executable Statements ..
*
@ -186,7 +187,7 @@
NB = ILAENV( 1, 'CGEQLF', ' ', M, N, -1, -1 )
LWKOPT = N*NB
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN
INFO = -7
@ -276,7 +277,7 @@
IF( MU.GT.0 .AND. NU.GT.0 )
$ CALL CGEQL2( MU, NU, A, LDA, TAU, WORK, IINFO )
*
WORK( 1 ) = IWS
WORK( 1 ) = SROUNDUP_LWORK(IWS)
RETURN
*
* End of CGEQLF

View File

@ -121,7 +121,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEcomputational
*> \ingroup geqrf
*
*> \par Further Details:
* =====================
@ -170,7 +170,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. Executable Statements ..
*
@ -199,7 +200,7 @@
ELSE
LWKOPT = N*NB
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
RETURN
END IF
*
@ -274,7 +275,7 @@
$ CALL CGEQR2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), WORK,
$ IINFO )
*
WORK( 1 ) = IWS
WORK( 1 ) = SROUNDUP_LWORK(IWS)
RETURN
*
* End of CGEQRF

View File

@ -122,7 +122,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEcomputational
*> \ingroup geqrfp
*
*> \par Further Details:
* =====================
@ -173,7 +173,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. Executable Statements ..
*
@ -182,7 +183,7 @@
INFO = 0
NB = ILAENV( 1, 'CGEQRF', ' ', M, N, -1, -1 )
LWKOPT = N*NB
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
LQUERY = ( LWORK.EQ.-1 )
IF( M.LT.0 ) THEN
INFO = -1
@ -272,7 +273,7 @@
$ CALL CGEQR2P( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), WORK,
$ IINFO )
*
WORK( 1 ) = IWS
WORK( 1 ) = SROUNDUP_LWORK(IWS)
RETURN
*
* End of CGEQRFP

View File

@ -114,7 +114,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEcomputational
*> \ingroup gerqf
*
*> \par Further Details:
* =====================
@ -163,7 +163,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. Executable Statements ..
*
@ -187,7 +188,7 @@
NB = ILAENV( 1, 'CGERQF', ' ', M, N, -1, -1 )
LWKOPT = M*NB
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
IF ( .NOT.LQUERY ) THEN
IF( LWORK.LE.0 .OR. ( N.GT.0 .AND. LWORK.LT.MAX( 1, M ) ) )
@ -278,7 +279,7 @@
IF( MU.GT.0 .AND. NU.GT.0 )
$ CALL CGERQ2( MU, NU, A, LDA, TAU, WORK, IINFO )
*
WORK( 1 ) = IWS
WORK( 1 ) = SROUNDUP_LWORK(IWS)
RETURN
*
* End of CGERQF

View File

@ -206,7 +206,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEsing
*> \ingroup gesvd
*
* =====================================================================
SUBROUTINE CGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, LDVT,
@ -259,8 +259,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANGE, SLAMCH
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC MAX, MIN, SQRT
@ -615,7 +615,7 @@
END IF
END IF
MAXWRK = MAX( MINWRK, MAXWRK )
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
*
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
INFO = -13
@ -3694,7 +3694,7 @@
*
* Return optimal workspace in WORK(1)
*
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
*
RETURN
*

View File

@ -107,7 +107,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEcomputational
*> \ingroup getri
*
* =====================================================================
SUBROUTINE CGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO )
@ -138,7 +138,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CGEMM, CGEMV, CSWAP, CTRSM, CTRTRI, XERBLA
@ -153,7 +154,7 @@
INFO = 0
NB = ILAENV( 1, 'CGETRI', ' ', N, -1, -1, -1 )
LWKOPT = N*NB
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
LQUERY = ( LWORK.EQ.-1 )
IF( N.LT.0 ) THEN
INFO = -1
@ -251,7 +252,7 @@
$ CALL CSWAP( N, A( 1, J ), 1, A( 1, JP ), 1 )
60 CONTINUE
*
WORK( 1 ) = IWS
WORK( 1 ) = SROUNDUP_LWORK(IWS)
RETURN
*
* End of CGETRI

View File

@ -154,7 +154,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEsolve
*> \ingroup getsls
*
* =====================================================================
SUBROUTINE CGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
@ -191,15 +191,15 @@
* ..
* .. External Functions ..
LOGICAL LSAME
REAL SLAMCH, CLANGE
EXTERNAL LSAME, SLABAD, SLAMCH, CLANGE
REAL SLAMCH, CLANGE, SROUNDUP_LWORK
EXTERNAL LSAME, SLAMCH, CLANGE, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CGEQR, CGEMQR, CLASCL, CLASET,
$ CTRTRS, XERBLA, CGELQ, CGEMLQ
* ..
* .. Intrinsic Functions ..
INTRINSIC REAL, MAX, MIN, INT
INTRINSIC MAX, MIN, INT
* ..
* .. Executable Statements ..
*
@ -265,7 +265,7 @@
INFO = -10
END IF
*
WORK( 1 ) = REAL( WSIZEO )
WORK( 1 ) = SROUNDUP_LWORK( WSIZEO )
*
END IF
*
@ -274,7 +274,7 @@
RETURN
END IF
IF( LQUERY ) THEN
IF( LWORK.EQ.-2 ) WORK( 1 ) = REAL( WSIZEM )
IF( LWORK.EQ.-2 ) WORK( 1 ) = SROUNDUP_LWORK( WSIZEM )
RETURN
END IF
IF( LWORK.LT.WSIZEO ) THEN
@ -297,7 +297,6 @@
*
SMLNUM = SLAMCH( 'S' ) / SLAMCH( 'P' )
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
*
* Scale A, B if max element outside range [SMLNUM,BIGNUM]
*
@ -485,7 +484,7 @@
END IF
*
50 CONTINUE
WORK( 1 ) = REAL( TSZO + LWO )
WORK( 1 ) = SROUNDUP_LWORK( TSZO + LWO )
RETURN
*
* End of CGETSLS

View File

@ -261,7 +261,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEeigen
*> \ingroup gges
*
* =====================================================================
SUBROUTINE CGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB,
@ -312,14 +312,13 @@
* ..
* .. External Subroutines ..
EXTERNAL CGEQRF, CGGBAK, CGGBAL, CGGHRD, CHGEQZ, CLACPY,
$ CLASCL, CLASET, CTGSEN, CUNGQR, CUNMQR, SLABAD,
$ XERBLA
$ CLASCL, CLASET, CTGSEN, CUNGQR, CUNMQR, XERBLA
* ..
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANGE, SLAMCH
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC MAX, SQRT
@ -390,7 +389,7 @@
LWKOPT = MAX( LWKOPT, N +
$ N*ILAENV( 1, 'CUNGQR', ' ', N, 1, N, -1 ) )
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY )
$ INFO = -18
@ -415,7 +414,6 @@
EPS = SLAMCH( 'P' )
SMLNUM = SLAMCH( 'S' )
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
SMLNUM = SQRT( SMLNUM ) / EPS
BIGNUM = ONE / SMLNUM
*
@ -587,7 +585,7 @@
*
30 CONTINUE
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -320,7 +320,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEeigen
*> \ingroup ggesx
*
* =====================================================================
SUBROUTINE CGGESX( JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, LDA,
@ -373,14 +373,13 @@
* ..
* .. External Subroutines ..
EXTERNAL CGEQRF, CGGBAK, CGGBAL, CGGHRD, CHGEQZ, CLACPY,
$ CLASCL, CLASET, CTGSEN, CUNGQR, CUNMQR, SLABAD,
$ XERBLA
$ CLASCL, CLASET, CTGSEN, CUNGQR, CUNMQR, XERBLA
* ..
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANGE, SLAMCH
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC MAX, SQRT
@ -476,7 +475,7 @@
MAXWRK = 1
LWRK = 1
END IF
WORK( 1 ) = LWRK
WORK( 1 ) = SROUNDUP_LWORK(LWRK)
IF( WANTSN .OR. N.EQ.0 ) THEN
LIWMIN = 1
ELSE
@ -510,7 +509,6 @@
EPS = SLAMCH( 'P' )
SMLNUM = SLAMCH( 'S' )
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
SMLNUM = SQRT( SMLNUM ) / EPS
BIGNUM = ONE / SMLNUM
*
@ -705,7 +703,7 @@
*
40 CONTINUE
*
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
IWORK( 1 ) = LIWMIN
*
RETURN

View File

@ -209,7 +209,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEeigen
*> \ingroup ggev
*
* =====================================================================
SUBROUTINE CGGEV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA,
@ -254,14 +254,13 @@
* ..
* .. External Subroutines ..
EXTERNAL CGEQRF, CGGBAK, CGGBAL, CGGHRD, CHGEQZ, CLACPY,
$ CLASCL, CLASET, CTGEVC, CUNGQR, CUNMQR, SLABAD,
$ XERBLA
$ CLASCL, CLASET, CTGEVC, CUNGQR, CUNMQR, XERBLA
* ..
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANGE, SLAMCH
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, AIMAG, MAX, REAL, SQRT
@ -336,7 +335,7 @@
LWKOPT = MAX( LWKOPT, N +
$ N*ILAENV( 1, 'CUNGQR', ' ', N, 1, N, -1 ) )
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY )
$ INFO = -15
@ -359,7 +358,6 @@
EPS = SLAMCH( 'E' )*SLAMCH( 'B' )
SMLNUM = SLAMCH( 'S' )
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
SMLNUM = SQRT( SMLNUM ) / EPS
BIGNUM = ONE / SMLNUM
*
@ -547,7 +545,7 @@
IF( ILBSCL )
$ CALL CLASCL( 'G', 0, 0, BNRMTO, BNRM, N, 1, BETA, N, IERR )
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
RETURN
*
* End of CGGEV

View File

@ -335,7 +335,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexGEeigen
*> \ingroup ggevx
*
*> \par Further Details:
* =====================
@ -416,13 +416,13 @@
* .. External Subroutines ..
EXTERNAL CGEQRF, CGGBAK, CGGBAL, CGGHRD, CHGEQZ, CLACPY,
$ CLASCL, CLASET, CTGEVC, CTGSNA, CUNGQR, CUNMQR,
$ SLABAD, SLASCL, XERBLA
$ SLASCL, XERBLA
* ..
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANGE, SLAMCH
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, AIMAG, MAX, REAL, SQRT
@ -521,7 +521,7 @@
$ N*ILAENV( 1, 'CUNGQR', ' ', N, 1, N, 0 ) )
END IF
END IF
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
*
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
INFO = -25
@ -545,7 +545,6 @@
EPS = SLAMCH( 'P' )
SMLNUM = SLAMCH( 'S' )
BIGNUM = ONE / SMLNUM
CALL SLABAD( SMLNUM, BIGNUM )
SMLNUM = SQRT( SMLNUM ) / EPS
BIGNUM = ONE / SMLNUM
*
@ -793,7 +792,7 @@
IF( ILBSCL )
$ CALL CLASCL( 'G', 0, 0, BNRMTO, BNRM, N, 1, BETA, N, IERR )
*
WORK( 1 ) = MAXWRK
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
RETURN
*
* End of CGGEVX

View File

@ -177,7 +177,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexOTHEReigen
*> \ingroup ggglm
*
* =====================================================================
SUBROUTINE CGGGLM( N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK,
@ -213,7 +213,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC INT, MAX, MIN
@ -252,7 +253,7 @@
LWKMIN = M + N + P
LWKOPT = M + NP + MAX( N, P )*NB
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN
INFO = -12

View File

@ -172,7 +172,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexOTHERsolve
*> \ingroup gglse
*
* =====================================================================
SUBROUTINE CGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK,
@ -207,7 +207,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC INT, MAX, MIN
@ -246,7 +247,7 @@
LWKMIN = M + N + P
LWKOPT = P + MN + MAX( M, N )*NB
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN
INFO = -12

View File

@ -173,7 +173,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexOTHERcomputational
*> \ingroup ggqrf
*
*> \par Further Details:
* =====================
@ -236,7 +236,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC INT, MAX, MIN
@ -251,7 +252,7 @@
NB3 = ILAENV( 1, 'CUNMQR', ' ', N, M, P, -1 )
NB = MAX( NB1, NB2, NB3 )
LWKOPT = MAX( N, M, P)*NB
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
LQUERY = ( LWORK.EQ.-1 )
IF( N.LT.0 ) THEN
INFO = -1

View File

@ -172,7 +172,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexOTHERcomputational
*> \ingroup ggrqf
*
*> \par Further Details:
* =====================
@ -235,7 +235,8 @@
* ..
* .. External Functions ..
INTEGER ILAENV
EXTERNAL ILAENV
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, SROUNDUP_LWORK
* ..
* .. Intrinsic Functions ..
INTRINSIC INT, MAX, MIN
@ -250,7 +251,7 @@
NB3 = ILAENV( 1, 'CUNMRQ', ' ', M, N, P, -1 )
NB = MAX( NB1, NB2, NB3 )
LWKOPT = MAX( N, M, P)*NB
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
LQUERY = ( LWORK.EQ.-1 )
IF( M.LT.0 ) THEN
INFO = -1

View File

@ -171,7 +171,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexOTHEReigen
*> \ingroup hbev_2stage
*
*> \par Further Details:
* =====================
@ -240,8 +240,9 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV2STAGE
REAL SLAMCH, CLANHB
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV2STAGE
REAL SLAMCH, CLANHB, SROUNDUP_LWORK
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV2STAGE,
$ SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL SSCAL, SSTERF, XERBLA, CLASCL, CSTEQR,
@ -276,7 +277,7 @@
IF( INFO.EQ.0 ) THEN
IF( N.LE.1 ) THEN
LWMIN = 1
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
ELSE
IB = ILAENV2STAGE( 2, 'CHETRD_HB2ST', JOBZ,
$ N, KD, -1, -1 )
@ -285,7 +286,7 @@
LWTRD = ILAENV2STAGE( 4, 'CHETRD_HB2ST', JOBZ,
$ N, KD, IB, -1 )
LWMIN = LHTRD + LWTRD
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
ENDIF
*
IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY )
@ -377,7 +378,7 @@
*
* Set WORK(1) to optimal workspace size.
*
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
*
RETURN
*

View File

@ -201,7 +201,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexOTHEReigen
*> \ingroup hbevd
*
* =====================================================================
SUBROUTINE CHBEVD( JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK,
@ -239,8 +239,8 @@
* ..
* .. External Functions ..
LOGICAL LSAME
REAL CLANHB, SLAMCH
EXTERNAL LSAME, CLANHB, SLAMCH
REAL CLANHB, SLAMCH, SROUNDUP_LWORK
EXTERNAL LSAME, CLANHB, SLAMCH, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CGEMM, CHBTRD, CLACPY, CLASCL, CSTEDC, SSCAL,
@ -288,7 +288,7 @@
END IF
*
IF( INFO.EQ.0 ) THEN
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
RWORK( 1 ) = LRWMIN
IWORK( 1 ) = LIWMIN
*
@ -382,7 +382,7 @@
CALL SSCAL( IMAX, ONE / SIGMA, W, 1 )
END IF
*
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
RWORK( 1 ) = LRWMIN
IWORK( 1 ) = LIWMIN
RETURN

View File

@ -285,7 +285,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexOTHEReigen
*> \ingroup hbevx_2stage
*
*> \par Further Details:
* =====================
@ -367,8 +367,9 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV2STAGE
REAL SLAMCH, CLANHB
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV2STAGE
REAL SLAMCH, CLANHB, SROUNDUP_LWORK
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV2STAGE,
$ SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL SCOPY, SSCAL, SSTEBZ, SSTERF, XERBLA, CCOPY,
@ -424,7 +425,7 @@
IF( INFO.EQ.0 ) THEN
IF( N.LE.1 ) THEN
LWMIN = 1
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
ELSE
IB = ILAENV2STAGE( 2, 'CHETRD_HB2ST', JOBZ,
$ N, KD, -1, -1 )
@ -433,7 +434,7 @@
LWTRD = ILAENV2STAGE( 4, 'CHETRD_HB2ST', JOBZ,
$ N, KD, IB, -1 )
LWMIN = LHTRD + LWTRD
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
ENDIF
*
IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY )
@ -637,7 +638,7 @@
*
* Set WORK(1) to optimal workspace size.
*
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
*
RETURN
*

View File

@ -232,7 +232,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexOTHEReigen
*> \ingroup hbgvd
*
*> \par Contributors:
* ==================
@ -275,7 +275,8 @@
* ..
* .. External Functions ..
LOGICAL LSAME
EXTERNAL LSAME
REAL SROUNDUP_LWORK
EXTERNAL LSAME, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL SSTERF, XERBLA, CGEMM, CHBGST, CHBTRD, CLACPY,
@ -322,7 +323,7 @@
END IF
*
IF( INFO.EQ.0 ) THEN
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
RWORK( 1 ) = LRWMIN
IWORK( 1 ) = LIWMIN
*
@ -388,7 +389,7 @@
CALL CLACPY( 'A', N, N, WORK( INDWK2 ), N, Z, LDZ )
END IF
*
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
RWORK( 1 ) = LRWMIN
IWORK( 1 ) = LIWMIN
RETURN

View File

@ -132,7 +132,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEeigen
*> \ingroup heev
*
* =====================================================================
SUBROUTINE CHEEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK,
@ -169,8 +169,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANHE, SLAMCH
EXTERNAL ILAENV, LSAME, CLANHE, SLAMCH
REAL CLANHE, SLAMCH, SROUNDUP_LWORK
EXTERNAL ILAENV, LSAME, CLANHE, SLAMCH, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CHETRD, CLASCL, CSTEQR, CUNGTR, SSCAL, SSTERF,
@ -201,7 +201,7 @@
IF( INFO.EQ.0 ) THEN
NB = ILAENV( 1, 'CHETRD', UPLO, N, -1, -1, -1 )
LWKOPT = MAX( 1, ( NB+1 )*N )
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
IF( LWORK.LT.MAX( 1, 2*N-1 ) .AND. .NOT.LQUERY )
$ INFO = -8
@ -286,7 +286,7 @@
*
* Set WORK(1) to optimal complex workspace size.
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -149,7 +149,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEeigen
*> \ingroup heev_2stage
*
*> \par Further Details:
* =====================
@ -220,8 +220,9 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV2STAGE
REAL SLAMCH, CLANHE
EXTERNAL LSAME, SLAMCH, CLANHE, ILAENV2STAGE
REAL SLAMCH, CLANHE, SROUNDUP_LWORK
EXTERNAL LSAME, SLAMCH, CLANHE, ILAENV2STAGE,
$ SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL SSCAL, SSTERF, XERBLA, CLASCL, CSTEQR,
@ -255,7 +256,7 @@
LHTRD = ILAENV2STAGE( 3, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
LWTRD = ILAENV2STAGE( 4, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
LWMIN = N + LHTRD + LWTRD
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
*
IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY )
$ INFO = -8
@ -343,7 +344,7 @@
*
* Set WORK(1) to optimal complex workspace size.
*
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
*
RETURN
*

View File

@ -180,7 +180,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEeigen
*> \ingroup heevd
*
*> \par Further Details:
* =====================
@ -230,8 +230,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANHE, SLAMCH
EXTERNAL ILAENV, LSAME, CLANHE, SLAMCH
REAL CLANHE, SLAMCH, SROUNDUP_LWORK
EXTERNAL ILAENV, LSAME, CLANHE, SLAMCH, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CHETRD, CLACPY, CLASCL, CSTEDC, CUNMTR, SSCAL,
@ -282,7 +282,7 @@
LROPT = LRWMIN
LIOPT = LIWMIN
END IF
WORK( 1 ) = LOPT
WORK( 1 ) = SROUNDUP_LWORK(LOPT)
RWORK( 1 ) = LROPT
IWORK( 1 ) = LIOPT
*
@ -378,7 +378,7 @@
CALL SSCAL( IMAX, ONE / SIGMA, W, 1 )
END IF
*
WORK( 1 ) = LOPT
WORK( 1 ) = SROUNDUP_LWORK(LOPT)
RWORK( 1 ) = LROPT
IWORK( 1 ) = LIOPT
*

View File

@ -338,7 +338,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEeigen
*> \ingroup heevr
*
*> \par Contributors:
* ==================
@ -392,8 +392,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANSY, SLAMCH
EXTERNAL LSAME, ILAENV, CLANSY, SLAMCH
REAL CLANSY, SLAMCH, SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, CLANSY, SLAMCH, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CHETRD, CSSCAL, CSTEMR, CSTEIN, CSWAP, CUNMTR,
@ -454,7 +454,7 @@
NB = ILAENV( 1, 'CHETRD', UPLO, N, -1, -1, -1 )
NB = MAX( NB, ILAENV( 1, 'CUNMTR', UPLO, N, -1, -1, -1 ) )
LWKOPT = MAX( ( NB+1 )*N, LWMIN )
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
RWORK( 1 ) = LRWMIN
IWORK( 1 ) = LIWMIN
*
@ -710,7 +710,7 @@
*
* Set WORK(1) to optimal workspace size.
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
RWORK( 1 ) = LRWMIN
IWORK( 1 ) = LIWMIN
*

View File

@ -250,7 +250,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEeigen
*> \ingroup heevx
*
* =====================================================================
SUBROUTINE CHEEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU,
@ -294,8 +294,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL SLAMCH, CLANHE
EXTERNAL LSAME, ILAENV, SLAMCH, CLANHE
REAL SLAMCH, CLANHE, SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, SLAMCH, CLANHE, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL SCOPY, SSCAL, SSTEBZ, SSTERF, XERBLA, CSSCAL,
@ -354,7 +354,7 @@
NB = ILAENV( 1, 'CHETRD', UPLO, N, -1, -1, -1 )
NB = MAX( NB, ILAENV( 1, 'CUNMTR', UPLO, N, -1, -1, -1 ) )
LWKOPT = MAX( 1, ( NB + 1 )*N )
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
END IF
*
IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY )
@ -552,7 +552,7 @@
*
* Set WORK(1) to optimal complex workspace size.
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -265,7 +265,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEeigen
*> \ingroup heevx_2stage
*
*> \par Further Details:
* =====================
@ -343,8 +343,9 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV2STAGE
REAL SLAMCH, CLANHE
EXTERNAL LSAME, SLAMCH, CLANHE, ILAENV2STAGE
REAL SLAMCH, CLANHE, SROUNDUP_LWORK
EXTERNAL LSAME, SLAMCH, CLANHE, ILAENV2STAGE,
$ SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL SCOPY, SSCAL, SSTEBZ, SSTERF, XERBLA, CSSCAL,
@ -397,7 +398,7 @@
IF( INFO.EQ.0 ) THEN
IF( N.LE.1 ) THEN
LWMIN = 1
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
ELSE
KD = ILAENV2STAGE( 1, 'CHETRD_2STAGE', JOBZ,
$ N, -1, -1, -1 )
@ -408,7 +409,7 @@
LWTRD = ILAENV2STAGE( 4, 'CHETRD_2STAGE', JOBZ,
$ N, KD, IB, -1 )
LWMIN = N + LHTRD + LWTRD
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
END IF
*
IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY )
@ -610,7 +611,7 @@
*
* Set WORK(1) to optimal complex workspace size.
*
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
*
RETURN
*

View File

@ -173,7 +173,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEeigen
*> \ingroup hegv
*
* =====================================================================
SUBROUTINE CHEGV( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK,
@ -206,7 +206,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
EXTERNAL ILAENV, LSAME
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, LSAME, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CHEEV, CHEGST, CPOTRF, CTRMM, CTRSM, XERBLA
@ -240,7 +241,7 @@
IF( INFO.EQ.0 ) THEN
NB = ILAENV( 1, 'CHETRD', UPLO, N, -1, -1, -1 )
LWKOPT = MAX( 1, ( NB + 1 )*N )
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
IF( LWORK.LT.MAX( 1, 2*N-1 ) .AND. .NOT.LQUERY ) THEN
INFO = -11
@ -309,7 +310,7 @@
END IF
END IF
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -192,7 +192,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEeigen
*> \ingroup hegv_2stage
*
*> \par Further Details:
* =====================
@ -259,7 +259,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV2STAGE
EXTERNAL LSAME, ILAENV2STAGE
REAL SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV2STAGE, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL XERBLA, CHEGST, CPOTRF, CTRMM, CTRSM,
@ -297,7 +298,7 @@
LHTRD = ILAENV2STAGE( 3, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
LWTRD = ILAENV2STAGE( 4, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
LWMIN = N + LHTRD + LWTRD
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
*
IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY ) THEN
INFO = -11
@ -367,7 +368,7 @@
END IF
END IF
*
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
*
RETURN
*

View File

@ -219,7 +219,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEeigen
*> \ingroup hegvd
*
*> \par Further Details:
* =====================
@ -268,7 +268,8 @@
* ..
* .. External Functions ..
LOGICAL LSAME
EXTERNAL LSAME
REAL SROUNDUP_LWORK
EXTERNAL LSAME, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CHEEVD, CHEGST, CPOTRF, CTRMM, CTRSM, XERBLA
@ -316,7 +317,7 @@
END IF
*
IF( INFO.EQ.0 ) THEN
WORK( 1 ) = LOPT
WORK( 1 ) = SROUNDUP_LWORK(LOPT)
RWORK( 1 ) = LROPT
IWORK( 1 ) = LIOPT
*
@ -392,7 +393,7 @@
END IF
END IF
*
WORK( 1 ) = LOPT
WORK( 1 ) = SROUNDUP_LWORK(LOPT)
RWORK( 1 ) = LROPT
IWORK( 1 ) = LIOPT
*

View File

@ -293,7 +293,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEeigen
*> \ingroup hegvx
*
*> \par Contributors:
* ==================
@ -335,7 +335,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
EXTERNAL ILAENV, LSAME
REAL SROUNDUP_LWORK
EXTERNAL ILAENV, LSAME, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CHEEVX, CHEGST, CPOTRF, CTRMM, CTRSM, XERBLA
@ -390,7 +391,7 @@
IF( INFO.EQ.0 ) THEN
NB = ILAENV( 1, 'CHETRD', UPLO, N, -1, -1, -1 )
LWKOPT = MAX( 1, ( NB + 1 )*N )
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
IF( LWORK.LT.MAX( 1, 2*N ) .AND. .NOT.LQUERY ) THEN
INFO = -20
@ -464,7 +465,7 @@
*
* Set WORK(1) to optimal complex workspace size.
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -163,7 +163,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEsolve
*> \ingroup hesv
*
* =====================================================================
SUBROUTINE CHESV( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK,
@ -191,7 +191,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
EXTERNAL LSAME, ILAENV
REAL SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL XERBLA, CHETRF, CHETRS, CHETRS2
@ -226,7 +227,7 @@
NB = ILAENV( 1, 'CHETRF', UPLO, N, -1, -1, -1 )
LWKOPT = N*NB
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
END IF
*
IF( INFO.NE.0 ) THEN
@ -259,7 +260,7 @@
*
END IF
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -154,7 +154,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEsolve
*> \ingroup hesv_aa
*
* =====================================================================
SUBROUTINE CHESV_AA( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK,
@ -182,7 +182,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
EXTERNAL LSAME, ILAENV
REAL SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL XERBLA, CHETRF_AA, CHETRS_AA
@ -217,7 +218,7 @@
$ -1, INFO )
LWKOPT_HETRS = INT( WORK(1) )
LWKOPT = MAX( LWKOPT_HETRF, LWKOPT_HETRS )
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
END IF
*
IF( INFO.NE.0 ) THEN
@ -239,7 +240,7 @@
*
END IF
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -177,7 +177,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexSYcomputational
*> \ingroup hesv_aa_2stage
*
* =====================================================================
SUBROUTINE CHESV_AA_2STAGE( UPLO, N, NRHS, A, LDA, TB, LTB,
@ -207,7 +207,8 @@
* ..
* .. External Functions ..
LOGICAL LSAME
EXTERNAL LSAME
REAL SROUNDUP_LWORK
EXTERNAL LSAME, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CHETRF_AA_2STAGE, CHETRS_AA_2STAGE,
@ -267,7 +268,7 @@
*
END IF
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -205,7 +205,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEsolve
*> \ingroup hesv_rk
*
*> \par Contributors:
* ==================
@ -247,7 +247,8 @@
* ..
* .. External Functions ..
LOGICAL LSAME
EXTERNAL LSAME
REAL SROUNDUP_LWORK
EXTERNAL LSAME, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL XERBLA, CHETRF_RK, CHETRS_3
@ -282,7 +283,7 @@
CALL CHETRF_RK( UPLO, N, A, LDA, E, IPIV, WORK, -1, INFO )
LWKOPT = INT( WORK( 1 ) )
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
END IF
*
IF( INFO.NE.0 ) THEN
@ -304,7 +305,7 @@
*
END IF
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -184,7 +184,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEsolve
*> \ingroup hesv_rook
*>
*> \verbatim
*>
@ -225,7 +225,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
EXTERNAL LSAME, ILAENV
REAL SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL XERBLA, CHETRF_ROOK, CHETRS_ROOK
@ -260,7 +261,7 @@
NB = ILAENV( 1, 'CHETRF_ROOK', UPLO, N, -1, -1, -1 )
LWKOPT = N*NB
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
END IF
*
IF( INFO.NE.0 ) THEN
@ -283,7 +284,7 @@
*
END IF
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -276,7 +276,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexHEsolve
*> \ingroup hesvx
*
* =====================================================================
SUBROUTINE CHESVX( FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B,
@ -313,8 +313,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV
REAL CLANHE, SLAMCH
EXTERNAL ILAENV, LSAME, CLANHE, SLAMCH
REAL CLANHE, SLAMCH, SROUNDUP_LWORK
EXTERNAL ILAENV, LSAME, CLANHE, SLAMCH, SROUNDUP_LWORK
* ..
* .. External Subroutines ..
EXTERNAL CHECON, CHERFS, CHETRF, CHETRS, CLACPY, XERBLA
@ -356,7 +356,7 @@
NB = ILAENV( 1, 'CHETRF', UPLO, N, -1, -1, -1 )
LWKOPT = MAX( LWKOPT, N*NB )
END IF
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
END IF
*
IF( INFO.NE.0 ) THEN
@ -405,7 +405,7 @@
IF( RCOND.LT.SLAMCH( 'Epsilon' ) )
$ INFO = N + 1
*
WORK( 1 ) = LWKOPT
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
*
RETURN
*

View File

@ -188,7 +188,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complexOTHERcomputational
*> \ingroup hetrd_hb2st
*
*> \par Further Details:
* =====================
@ -278,7 +278,8 @@
* .. External Functions ..
LOGICAL LSAME
INTEGER ILAENV2STAGE
EXTERNAL LSAME, ILAENV2STAGE
REAL SROUNDUP_LWORK
EXTERNAL LSAME, ILAENV2STAGE, SROUNDUP_LWORK
* ..
* .. Executable Statements ..
*
@ -318,7 +319,7 @@
*
IF( INFO.EQ.0 ) THEN
HOUS( 1 ) = LHMIN
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
END IF
*
IF( INFO.NE.0 ) THEN
@ -575,7 +576,7 @@ C END IF
ENDIF
*
HOUS( 1 ) = LHMIN
WORK( 1 ) = LWMIN
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
RETURN
*
* End of CHETRD_HB2ST