Apply rounding up to workspace calculations done with reals (Reference-LAPACK PR 904)tags/v0.3.25^2
| @@ -176,7 +176,8 @@ C> | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Executable Statements .. | |||
| @@ -225,13 +226,13 @@ C> | |||
| * Optimal workspace for dlarfb = MAX(1,N)*NT | |||
| * | |||
| LWKOPT = (LBWORK+LLWORK)*NB | |||
| WORK( 1 ) = (LWKOPT+NT*NT) | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT+NT*NT) | |||
| ELSE | |||
| LBWORK = CEILING(REAL(K)/REAL(NB))*NB | |||
| LWKOPT = (LBWORK+LLWORK-NB)*NB | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| @@ -413,7 +414,7 @@ C> | |||
| END IF | |||
| WORK( 1 ) = IWS | |||
| WORK( 1 ) = SROUNDUP_LWORK(IWS) | |||
| RETURN | |||
| * | |||
| * End of CGEQRF | |||
| @@ -176,7 +176,8 @@ C> | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| DOUBLE PRECISION DROUNDUP_LWORK | |||
| EXTERNAL ILAENV, DROUNDUP_LWORK | |||
| * .. | |||
| * .. Executable Statements .. | |||
| @@ -225,13 +226,13 @@ C> | |||
| * Optimal workspace for dlarfb = MAX(1,N)*NT | |||
| * | |||
| LWKOPT = (LBWORK+LLWORK)*NB | |||
| WORK( 1 ) = (LWKOPT+NT*NT) | |||
| WORK( 1 ) = DROUNDUP_LWORK(LWKOPT+NT*NT) | |||
| ELSE | |||
| LBWORK = CEILING(REAL(K)/REAL(NB))*NB | |||
| LWKOPT = (LBWORK+LLWORK-NB)*NB | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = DROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| @@ -413,7 +414,7 @@ C> | |||
| END IF | |||
| WORK( 1 ) = IWS | |||
| WORK( 1 ) = DROUNDUP_LWORK(IWS) | |||
| RETURN | |||
| * | |||
| * End of DGEQRF | |||
| @@ -176,7 +176,8 @@ C> | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| DOUBLE PRECISION DROUNDUP_LWORK | |||
| EXTERNAL ILAENV, DROUNDUP_LWORK | |||
| * .. | |||
| * .. Executable Statements .. | |||
| @@ -225,13 +226,13 @@ C> | |||
| * Optimal workspace for dlarfb = MAX(1,N)*NT | |||
| * | |||
| LWKOPT = (LBWORK+LLWORK)*NB | |||
| WORK( 1 ) = (LWKOPT+NT*NT) | |||
| WORK( 1 ) = DROUNDUP_LWORK(LWKOPT+NT*NT) | |||
| ELSE | |||
| LBWORK = CEILING(REAL(K)/REAL(NB))*NB | |||
| LWKOPT = (LBWORK+LLWORK-NB)*NB | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = DROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| @@ -413,7 +414,7 @@ C> | |||
| END IF | |||
| WORK( 1 ) = IWS | |||
| WORK( 1 ) = DROUNDUP_LWORK(IWS) | |||
| RETURN | |||
| * | |||
| * End of SGEQRF | |||
| @@ -176,7 +176,8 @@ C> | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Executable Statements .. | |||
| @@ -225,13 +226,13 @@ C> | |||
| * Optimal workspace for dlarfb = MAX(1,N)*NT | |||
| * | |||
| LWKOPT = (LBWORK+LLWORK)*NB | |||
| WORK( 1 ) = (LWKOPT+NT*NT) | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT+NT*NT) | |||
| ELSE | |||
| LBWORK = CEILING(REAL(K)/REAL(NB))*NB | |||
| LWKOPT = (LBWORK+LLWORK-NB)*NB | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| @@ -413,7 +414,7 @@ C> | |||
| END IF | |||
| WORK( 1 ) = IWS | |||
| WORK( 1 ) = SROUNDUP_LWORK(IWS) | |||
| RETURN | |||
| * | |||
| * End of ZGEQRF | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -132,7 +132,7 @@ | |||
| *> \verbatim | |||
| *> LWORK is INTEGER | |||
| *> The length of the array WORK. LWORK >= 1, when N <= 1; | |||
| *> otherwise | |||
| *> otherwise | |||
| *> If JOBZ = 'N' and N > 1, LWORK must be queried. | |||
| *> LWORK = MAX(1, dimension) where | |||
| *> dimension = (2KD+1)*N + KD*NTHREADS | |||
| @@ -171,7 +171,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHEReigen | |||
| *> \ingroup hbev_2stage | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -189,7 +189,7 @@ | |||
| *> http://doi.acm.org/10.1145/2063384.2063394 | |||
| *> | |||
| *> A. Haidar, J. Kurzak, P. Luszczek, 2013. | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> for multicore hardware, In Proceedings of 2013 International Conference | |||
| *> for High Performance Computing, Networking, Storage and Analysis (SC '13). | |||
| *> Denver, Colorado, USA, 2013. | |||
| @@ -197,11 +197,11 @@ | |||
| *> http://doi.acm.org/10.1145/2503210.2503292 | |||
| *> | |||
| *> A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra. | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> calculations based on fine-grained memory aware tasks. | |||
| *> International Journal of High Performance Computing Applications. | |||
| *> Volume 28 Issue 2, Pages 196-209, May 2014. | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> | |||
| *> \endverbatim | |||
| * | |||
| @@ -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 ) | |||
| @@ -351,7 +352,7 @@ | |||
| LLWORK = LWORK - INDWRK + 1 | |||
| * | |||
| CALL CHETRD_HB2ST( "N", JOBZ, UPLO, N, KD, AB, LDAB, W, | |||
| $ RWORK( INDE ), WORK( INDHOUS ), LHTRD, | |||
| $ RWORK( INDE ), WORK( INDHOUS ), LHTRD, | |||
| $ WORK( INDWRK ), LLWORK, IINFO ) | |||
| * | |||
| * For eigenvalues only, call SSTERF. For eigenvectors, call CSTEQR. | |||
| @@ -377,7 +378,7 @@ | |||
| * | |||
| * Set WORK(1) to optimal workspace size. | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -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 | |||
| @@ -22,7 +22,7 @@ | |||
| * | |||
| * SUBROUTINE CHBEVX_2STAGE( JOBZ, RANGE, UPLO, N, KD, AB, LDAB, | |||
| * Q, LDQ, VL, VU, IL, IU, ABSTOL, M, W, | |||
| * Z, LDZ, WORK, LWORK, RWORK, IWORK, | |||
| * Z, LDZ, WORK, LWORK, RWORK, IWORK, | |||
| * IFAIL, INFO ) | |||
| * | |||
| * IMPLICIT NONE | |||
| @@ -233,7 +233,7 @@ | |||
| *> \verbatim | |||
| *> LWORK is INTEGER | |||
| *> The length of the array WORK. LWORK >= 1, when N <= 1; | |||
| *> otherwise | |||
| *> otherwise | |||
| *> If JOBZ = 'N' and N > 1, LWORK must be queried. | |||
| *> LWORK = MAX(1, dimension) where | |||
| *> dimension = (2KD+1)*N + KD*NTHREADS | |||
| @@ -285,7 +285,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHEReigen | |||
| *> \ingroup hbevx_2stage | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -303,7 +303,7 @@ | |||
| *> http://doi.acm.org/10.1145/2063384.2063394 | |||
| *> | |||
| *> A. Haidar, J. Kurzak, P. Luszczek, 2013. | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> for multicore hardware, In Proceedings of 2013 International Conference | |||
| *> for High Performance Computing, Networking, Storage and Analysis (SC '13). | |||
| *> Denver, Colorado, USA, 2013. | |||
| @@ -311,18 +311,18 @@ | |||
| *> http://doi.acm.org/10.1145/2503210.2503292 | |||
| *> | |||
| *> A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra. | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> calculations based on fine-grained memory aware tasks. | |||
| *> International Journal of High Performance Computing Applications. | |||
| *> Volume 28 Issue 2, Pages 196-209, May 2014. | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> | |||
| *> \endverbatim | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CHBEVX_2STAGE( JOBZ, RANGE, UPLO, N, KD, AB, LDAB, | |||
| $ Q, LDQ, VL, VU, IL, IU, ABSTOL, M, W, | |||
| $ Z, LDZ, WORK, LWORK, RWORK, IWORK, | |||
| $ Z, LDZ, WORK, LWORK, RWORK, IWORK, | |||
| $ IFAIL, INFO ) | |||
| * | |||
| IMPLICIT NONE | |||
| @@ -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,16 +425,16 @@ | |||
| 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 ) | |||
| LHTRD = ILAENV2STAGE( 3, 'CHETRD_HB2ST', JOBZ, | |||
| LHTRD = ILAENV2STAGE( 3, 'CHETRD_HB2ST', JOBZ, | |||
| $ N, KD, IB, -1 ) | |||
| LWTRD = ILAENV2STAGE( 4, 'CHETRD_HB2ST', JOBZ, | |||
| 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 | |||
| * | |||
| @@ -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 | |||
| @@ -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 | |||
| * | |||
| @@ -106,12 +106,12 @@ | |||
| *> \verbatim | |||
| *> LWORK is INTEGER | |||
| *> The length of the array WORK. LWORK >= 1, when N <= 1; | |||
| *> otherwise | |||
| *> otherwise | |||
| *> If JOBZ = 'N' and N > 1, LWORK must be queried. | |||
| *> LWORK = MAX(1, dimension) where | |||
| *> dimension = max(stage1,stage2) + (KD+1)*N + N | |||
| *> = N*KD + N*max(KD+1,FACTOPTNB) | |||
| *> + max(2*KD*KD, KD*NTHREADS) | |||
| *> = N*KD + N*max(KD+1,FACTOPTNB) | |||
| *> + max(2*KD*KD, KD*NTHREADS) | |||
| *> + (KD+1)*N + N | |||
| *> where KD is the blocking size of the reduction, | |||
| *> FACTOPTNB is the blocking used by the QR or LQ | |||
| @@ -149,7 +149,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexHEeigen | |||
| *> \ingroup heev_2stage | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -167,7 +167,7 @@ | |||
| *> http://doi.acm.org/10.1145/2063384.2063394 | |||
| *> | |||
| *> A. Haidar, J. Kurzak, P. Luszczek, 2013. | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> for multicore hardware, In Proceedings of 2013 International Conference | |||
| *> for High Performance Computing, Networking, Storage and Analysis (SC '13). | |||
| *> Denver, Colorado, USA, 2013. | |||
| @@ -175,11 +175,11 @@ | |||
| *> http://doi.acm.org/10.1145/2503210.2503292 | |||
| *> | |||
| *> A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra. | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> calculations based on fine-grained memory aware tasks. | |||
| *> International Journal of High Performance Computing Applications. | |||
| *> Volume 28 Issue 2, Pages 196-209, May 2014. | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> | |||
| *> \endverbatim | |||
| * | |||
| @@ -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 | |||
| @@ -314,7 +315,7 @@ | |||
| LLWORK = LWORK - INDWRK + 1 | |||
| * | |||
| CALL CHETRD_2STAGE( JOBZ, UPLO, N, A, LDA, W, RWORK( INDE ), | |||
| $ WORK( INDTAU ), WORK( INDHOUS ), LHTRD, | |||
| $ WORK( INDTAU ), WORK( INDHOUS ), LHTRD, | |||
| $ WORK( INDWRK ), LLWORK, IINFO ) | |||
| * | |||
| * For eigenvalues only, call SSTERF. For eigenvectors, first call | |||
| @@ -343,7 +344,7 @@ | |||
| * | |||
| * Set WORK(1) to optimal complex workspace size. | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -209,12 +209,12 @@ | |||
| *> \verbatim | |||
| *> LWORK is INTEGER | |||
| *> The length of the array WORK. LWORK >= 1, when N <= 1; | |||
| *> otherwise | |||
| *> otherwise | |||
| *> If JOBZ = 'N' and N > 1, LWORK must be queried. | |||
| *> LWORK = MAX(1, 8*N, dimension) where | |||
| *> dimension = max(stage1,stage2) + (KD+1)*N + N | |||
| *> = N*KD + N*max(KD+1,FACTOPTNB) | |||
| *> + max(2*KD*KD, KD*NTHREADS) | |||
| *> = N*KD + N*max(KD+1,FACTOPTNB) | |||
| *> + max(2*KD*KD, KD*NTHREADS) | |||
| *> + (KD+1)*N + N | |||
| *> where KD is the blocking size of the reduction, | |||
| *> FACTOPTNB is the blocking used by the QR or LQ | |||
| @@ -265,7 +265,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexHEeigen | |||
| *> \ingroup heevx_2stage | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -283,7 +283,7 @@ | |||
| *> http://doi.acm.org/10.1145/2063384.2063394 | |||
| *> | |||
| *> A. Haidar, J. Kurzak, P. Luszczek, 2013. | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> for multicore hardware, In Proceedings of 2013 International Conference | |||
| *> for High Performance Computing, Networking, Storage and Analysis (SC '13). | |||
| *> Denver, Colorado, USA, 2013. | |||
| @@ -291,11 +291,11 @@ | |||
| *> http://doi.acm.org/10.1145/2503210.2503292 | |||
| *> | |||
| *> A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra. | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> calculations based on fine-grained memory aware tasks. | |||
| *> International Journal of High Performance Computing Applications. | |||
| *> Volume 28 Issue 2, Pages 196-209, May 2014. | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> | |||
| *> \endverbatim | |||
| * | |||
| @@ -335,7 +335,7 @@ | |||
| CHARACTER ORDER | |||
| INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, INDIBL, | |||
| $ INDISP, INDIWK, INDRWK, INDTAU, INDWRK, ISCALE, | |||
| $ ITMP1, J, JJ, LLWORK, | |||
| $ ITMP1, J, JJ, LLWORK, | |||
| $ NSPLIT, LWMIN, LHTRD, LWTRD, KD, IB, INDHOUS | |||
| REAL ABSTLL, ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, | |||
| $ SIGMA, SMLNUM, TMP1, VLL, VUU | |||
| @@ -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 ) | |||
| @@ -499,7 +500,7 @@ | |||
| LLWORK = LWORK - INDWRK + 1 | |||
| * | |||
| CALL CHETRD_2STAGE( JOBZ, UPLO, N, A, LDA, RWORK( INDD ), | |||
| $ RWORK( INDE ), WORK( INDTAU ), | |||
| $ RWORK( INDE ), WORK( INDTAU ), | |||
| $ WORK( INDHOUS ), LHTRD, WORK( INDWRK ), | |||
| $ LLWORK, IINFO ) | |||
| * | |||
| @@ -610,7 +611,7 @@ | |||
| * | |||
| * Set WORK(1) to optimal complex workspace size. | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -144,12 +144,12 @@ | |||
| *> \verbatim | |||
| *> LWORK is INTEGER | |||
| *> The length of the array WORK. LWORK >= 1, when N <= 1; | |||
| *> otherwise | |||
| *> otherwise | |||
| *> If JOBZ = 'N' and N > 1, LWORK must be queried. | |||
| *> LWORK = MAX(1, dimension) where | |||
| *> dimension = max(stage1,stage2) + (KD+1)*N + N | |||
| *> = N*KD + N*max(KD+1,FACTOPTNB) | |||
| *> + max(2*KD*KD, KD*NTHREADS) | |||
| *> = N*KD + N*max(KD+1,FACTOPTNB) | |||
| *> + max(2*KD*KD, KD*NTHREADS) | |||
| *> + (KD+1)*N + N | |||
| *> where KD is the blocking size of the reduction, | |||
| *> FACTOPTNB is the blocking used by the QR or LQ | |||
| @@ -192,7 +192,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexHEeigen | |||
| *> \ingroup hegv_2stage | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -210,7 +210,7 @@ | |||
| *> http://doi.acm.org/10.1145/2063384.2063394 | |||
| *> | |||
| *> A. Haidar, J. Kurzak, P. Luszczek, 2013. | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> for multicore hardware, In Proceedings of 2013 International Conference | |||
| *> for High Performance Computing, Networking, Storage and Analysis (SC '13). | |||
| *> Denver, Colorado, USA, 2013. | |||
| @@ -218,11 +218,11 @@ | |||
| *> http://doi.acm.org/10.1145/2503210.2503292 | |||
| *> | |||
| *> A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra. | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> calculations based on fine-grained memory aware tasks. | |||
| *> International Journal of High Performance Computing Applications. | |||
| *> Volume 28 Issue 2, Pages 196-209, May 2014. | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> | |||
| *> \endverbatim | |||
| * | |||
| @@ -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 | |||
| @@ -327,7 +328,7 @@ | |||
| * Transform problem to standard eigenvalue problem and solve. | |||
| * | |||
| CALL CHEGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) | |||
| CALL CHEEV_2STAGE( JOBZ, UPLO, N, A, LDA, W, | |||
| CALL CHEEV_2STAGE( JOBZ, UPLO, N, A, LDA, W, | |||
| $ WORK, LWORK, RWORK, INFO ) | |||
| * | |||
| IF( WANTZ ) THEN | |||
| @@ -367,7 +368,7 @@ | |||
| END IF | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -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 | |||
| * | |||
| @@ -18,7 +18,7 @@ | |||
| * Definition: | |||
| * =========== | |||
| * | |||
| * SUBROUTINE CHETRD_HB2ST( STAGE1, VECT, UPLO, N, KD, AB, LDAB, | |||
| * SUBROUTINE CHETRD_HB2ST( STAGE1, VECT, UPLO, N, KD, AB, LDAB, | |||
| * D, E, HOUS, LHOUS, WORK, LWORK, INFO ) | |||
| * | |||
| * #if defined(_OPENMP) | |||
| @@ -53,12 +53,12 @@ | |||
| *> \param[in] STAGE1 | |||
| *> \verbatim | |||
| *> STAGE1 is CHARACTER*1 | |||
| *> = 'N': "No": to mention that the stage 1 of the reduction | |||
| *> = 'N': "No": to mention that the stage 1 of the reduction | |||
| *> from dense to band using the chetrd_he2hb routine | |||
| *> was not called before this routine to reproduce AB. | |||
| *> In other term this routine is called as standalone. | |||
| *> = 'Y': "Yes": to mention that the stage 1 of the | |||
| *> reduction from dense to band using the chetrd_he2hb | |||
| *> was not called before this routine to reproduce AB. | |||
| *> In other term this routine is called as standalone. | |||
| *> = 'Y': "Yes": to mention that the stage 1 of the | |||
| *> reduction from dense to band using the chetrd_he2hb | |||
| *> routine has been called to produce AB (e.g., AB is | |||
| *> the output of chetrd_he2hb. | |||
| *> \endverbatim | |||
| @@ -66,10 +66,10 @@ | |||
| *> \param[in] VECT | |||
| *> \verbatim | |||
| *> VECT is CHARACTER*1 | |||
| *> = 'N': No need for the Housholder representation, | |||
| *> = 'N': No need for the Housholder representation, | |||
| *> and thus LHOUS is of size max(1, 4*N); | |||
| *> = 'V': the Householder representation is needed to | |||
| *> either generate or to apply Q later on, | |||
| *> = 'V': the Householder representation is needed to | |||
| *> either generate or to apply Q later on, | |||
| *> then LHOUS is to be queried and computed. | |||
| *> (NOT AVAILABLE IN THIS RELEASE). | |||
| *> \endverbatim | |||
| @@ -147,7 +147,7 @@ | |||
| *> message related to LHOUS is issued by XERBLA. | |||
| *> LHOUS = MAX(1, dimension) where | |||
| *> dimension = 4*N if VECT='N' | |||
| *> not available now if VECT='H' | |||
| *> not available now if VECT='H' | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[out] WORK | |||
| @@ -188,7 +188,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup hetrd_hb2st | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -208,7 +208,7 @@ | |||
| *> http://doi.acm.org/10.1145/2063384.2063394 | |||
| *> | |||
| *> A. Haidar, J. Kurzak, P. Luszczek, 2013. | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> An improved parallel singular value algorithm and its implementation | |||
| *> for multicore hardware, In Proceedings of 2013 International Conference | |||
| *> for High Performance Computing, Networking, Storage and Analysis (SC '13). | |||
| *> Denver, Colorado, USA, 2013. | |||
| @@ -216,16 +216,16 @@ | |||
| *> http://doi.acm.org/10.1145/2503210.2503292 | |||
| *> | |||
| *> A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra. | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure | |||
| *> calculations based on fine-grained memory aware tasks. | |||
| *> International Journal of High Performance Computing Applications. | |||
| *> Volume 28 Issue 2, Pages 196-209, May 2014. | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> http://hpc.sagepub.com/content/28/2/196 | |||
| *> | |||
| *> \endverbatim | |||
| *> | |||
| * ===================================================================== | |||
| SUBROUTINE CHETRD_HB2ST( STAGE1, VECT, UPLO, N, KD, AB, LDAB, | |||
| SUBROUTINE CHETRD_HB2ST( STAGE1, VECT, UPLO, N, KD, AB, LDAB, | |||
| $ D, E, HOUS, LHOUS, WORK, LWORK, INFO ) | |||
| * | |||
| * | |||
| @@ -259,11 +259,11 @@ | |||
| * .. | |||
| * .. Local Scalars .. | |||
| LOGICAL LQUERY, WANTQ, UPPER, AFTERS1 | |||
| INTEGER I, M, K, IB, SWEEPID, MYID, SHIFT, STT, ST, | |||
| INTEGER I, M, K, IB, SWEEPID, MYID, SHIFT, STT, ST, | |||
| $ ED, STIND, EDIND, BLKLASTIND, COLPT, THED, | |||
| $ STEPERCOL, GRSIZ, THGRSIZ, THGRNB, THGRID, | |||
| $ NBTILES, TTYPE, TID, NTHREADS, DEBUG, | |||
| $ ABDPOS, ABOFDPOS, DPOS, OFDPOS, AWPOS, | |||
| $ ABDPOS, ABOFDPOS, DPOS, OFDPOS, AWPOS, | |||
| $ INDA, INDW, APOS, SIZEA, LDA, INDV, INDTAU, | |||
| $ SICEV, SIZETAU, LDV, LHMIN, LWMIN | |||
| REAL ABSTMP | |||
| @@ -277,8 +277,9 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV2STAGE | |||
| EXTERNAL LSAME, ILAENV2STAGE | |||
| INTEGER 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 | |||
| @@ -358,7 +359,7 @@ | |||
| ABDPOS = KD + 1 | |||
| ABOFDPOS = KD | |||
| ELSE | |||
| APOS = INDA | |||
| APOS = INDA | |||
| AWPOS = INDA + KD + 1 | |||
| DPOS = APOS | |||
| OFDPOS = DPOS + 1 | |||
| @@ -366,11 +367,11 @@ | |||
| ABOFDPOS = 2 | |||
| ENDIF | |||
| * | |||
| * Case KD=0: | |||
| * The matrix is diagonal. We just copy it (convert to "real" for | |||
| * complex because D is double and the imaginary part should be 0) | |||
| * and store it in D. A sequential code here is better or | |||
| * | |||
| * Case KD=0: | |||
| * The matrix is diagonal. We just copy it (convert to "real" for | |||
| * complex because D is double and the imaginary part should be 0) | |||
| * and store it in D. A sequential code here is better or | |||
| * in a parallel environment it might need two cores for D and E | |||
| * | |||
| IF( KD.EQ.0 ) THEN | |||
| @@ -385,17 +386,17 @@ | |||
| WORK( 1 ) = 1 | |||
| RETURN | |||
| END IF | |||
| * | |||
| * Case KD=1: | |||
| * The matrix is already Tridiagonal. We have to make diagonal | |||
| * | |||
| * Case KD=1: | |||
| * The matrix is already Tridiagonal. We have to make diagonal | |||
| * and offdiagonal elements real, and store them in D and E. | |||
| * For that, for real precision just copy the diag and offdiag | |||
| * to D and E while for the COMPLEX case the bulge chasing is | |||
| * performed to convert the hermetian tridiagonal to symmetric | |||
| * tridiagonal. A simpler conversion formula might be used, but then | |||
| * For that, for real precision just copy the diag and offdiag | |||
| * to D and E while for the COMPLEX case the bulge chasing is | |||
| * performed to convert the hermetian tridiagonal to symmetric | |||
| * tridiagonal. A simpler conversion formula might be used, but then | |||
| * updating the Q matrix will be required and based if Q is generated | |||
| * or not this might complicate the story. | |||
| * | |||
| * or not this might complicate the story. | |||
| * | |||
| IF( KD.EQ.1 ) THEN | |||
| DO 50 I = 1, N | |||
| D( I ) = REAL( AB( ABDPOS, I ) ) | |||
| @@ -444,7 +445,7 @@ C END IF | |||
| RETURN | |||
| END IF | |||
| * | |||
| * Main code start here. | |||
| * Main code start here. | |||
| * Reduce the hermitian band of A to a tridiagonal matrix. | |||
| * | |||
| THGRSIZ = N | |||
| @@ -453,7 +454,7 @@ C END IF | |||
| NBTILES = CEILING( REAL(N)/REAL(KD) ) | |||
| STEPERCOL = CEILING( REAL(SHIFT)/REAL(GRSIZ) ) | |||
| THGRNB = CEILING( REAL(N-1)/REAL(THGRSIZ) ) | |||
| * | |||
| * | |||
| CALL CLACPY( "A", KD+1, N, AB, LDAB, WORK( APOS ), LDA ) | |||
| CALL CLASET( "A", KD, N, ZERO, ZERO, WORK( AWPOS ), LDA ) | |||
| * | |||
| @@ -462,7 +463,7 @@ C END IF | |||
| * | |||
| #if defined(_OPENMP) | |||
| !$OMP PARALLEL PRIVATE( TID, THGRID, BLKLASTIND ) | |||
| !$OMP$ PRIVATE( THED, I, M, K, ST, ED, STT, SWEEPID ) | |||
| !$OMP$ PRIVATE( THED, I, M, K, ST, ED, STT, SWEEPID ) | |||
| !$OMP$ PRIVATE( MYID, TTYPE, COLPT, STIND, EDIND ) | |||
| !$OMP$ SHARED ( UPLO, WANTQ, INDV, INDTAU, HOUS, WORK) | |||
| !$OMP$ SHARED ( N, KD, IB, NBTILES, LDA, LDV, INDA ) | |||
| @@ -471,7 +472,7 @@ C END IF | |||
| #endif | |||
| * | |||
| * main bulge chasing loop | |||
| * | |||
| * | |||
| DO 100 THGRID = 1, THGRNB | |||
| STT = (THGRID-1)*THGRSIZ+1 | |||
| THED = MIN( (STT + THGRSIZ -1), (N-1)) | |||
| @@ -482,7 +483,7 @@ C END IF | |||
| ST = STT | |||
| DO 130 SWEEPID = ST, ED | |||
| DO 140 K = 1, GRSIZ | |||
| MYID = (I-SWEEPID)*(STEPERCOL*GRSIZ) | |||
| MYID = (I-SWEEPID)*(STEPERCOL*GRSIZ) | |||
| $ + (M-1)*GRSIZ + K | |||
| IF ( MYID.EQ.1 ) THEN | |||
| TTYPE = 1 | |||
| @@ -508,16 +509,16 @@ C END IF | |||
| ENDIF | |||
| * | |||
| * Call the kernel | |||
| * | |||
| * | |||
| #if defined(_OPENMP) && _OPENMP >= 201307 | |||
| IF( TTYPE.NE.1 ) THEN | |||
| IF( TTYPE.NE.1 ) THEN | |||
| !$OMP TASK DEPEND(in:WORK(MYID+SHIFT-1)) | |||
| !$OMP$ DEPEND(in:WORK(MYID-1)) | |||
| !$OMP$ DEPEND(out:WORK(MYID)) | |||
| TID = OMP_GET_THREAD_NUM() | |||
| CALL CHB2ST_KERNELS( UPLO, WANTQ, TTYPE, | |||
| CALL CHB2ST_KERNELS( UPLO, WANTQ, TTYPE, | |||
| $ STIND, EDIND, SWEEPID, N, KD, IB, | |||
| $ WORK ( INDA ), LDA, | |||
| $ WORK ( INDA ), LDA, | |||
| $ HOUS( INDV ), HOUS( INDTAU ), LDV, | |||
| $ WORK( INDW + TID*KD ) ) | |||
| !$OMP END TASK | |||
| @@ -525,20 +526,20 @@ C END IF | |||
| !$OMP TASK DEPEND(in:WORK(MYID+SHIFT-1)) | |||
| !$OMP$ DEPEND(out:WORK(MYID)) | |||
| TID = OMP_GET_THREAD_NUM() | |||
| CALL CHB2ST_KERNELS( UPLO, WANTQ, TTYPE, | |||
| CALL CHB2ST_KERNELS( UPLO, WANTQ, TTYPE, | |||
| $ STIND, EDIND, SWEEPID, N, KD, IB, | |||
| $ WORK ( INDA ), LDA, | |||
| $ WORK ( INDA ), LDA, | |||
| $ HOUS( INDV ), HOUS( INDTAU ), LDV, | |||
| $ WORK( INDW + TID*KD ) ) | |||
| !$OMP END TASK | |||
| ENDIF | |||
| #else | |||
| CALL CHB2ST_KERNELS( UPLO, WANTQ, TTYPE, | |||
| CALL CHB2ST_KERNELS( UPLO, WANTQ, TTYPE, | |||
| $ STIND, EDIND, SWEEPID, N, KD, IB, | |||
| $ WORK ( INDA ), LDA, | |||
| $ WORK ( INDA ), LDA, | |||
| $ HOUS( INDV ), HOUS( INDTAU ), LDV, | |||
| $ WORK( INDW ) ) | |||
| #endif | |||
| #endif | |||
| IF ( BLKLASTIND.GE.(N-1) ) THEN | |||
| STT = STT + 1 | |||
| EXIT | |||
| @@ -553,14 +554,14 @@ C END IF | |||
| !$OMP END MASTER | |||
| !$OMP END PARALLEL | |||
| #endif | |||
| * | |||
| * | |||
| * Copy the diagonal from A to D. Note that D is REAL thus only | |||
| * the Real part is needed, the imaginary part should be zero. | |||
| * | |||
| DO 150 I = 1, N | |||
| D( I ) = REAL( WORK( DPOS+(I-1)*LDA ) ) | |||
| 150 CONTINUE | |||
| * | |||
| * | |||
| * Copy the off diagonal from A to E. Note that E is REAL thus only | |||
| * the Real part is needed, the imaginary part should be zero. | |||
| * | |||
| @@ -575,10 +576,10 @@ C END IF | |||
| ENDIF | |||
| * | |||
| HOUS( 1 ) = LHMIN | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| RETURN | |||
| * | |||
| * End of CHETRD_HB2ST | |||
| * | |||
| END | |||
| @@ -158,7 +158,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexHEcomputational | |||
| *> \ingroup hetrd_he2hb | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -283,7 +283,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV2STAGE | |||
| EXTERNAL LSAME, ILAENV2STAGE | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV2STAGE, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Executable Statements .. | |||
| * | |||
| @@ -313,7 +314,7 @@ | |||
| CALL XERBLA( 'CHETRD_HE2HB', -INFO ) | |||
| RETURN | |||
| ELSE IF( LQUERY ) THEN | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| RETURN | |||
| END IF | |||
| * | |||
| @@ -506,7 +507,7 @@ | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| RETURN | |||
| * | |||
| * End of CHETRD_HE2HB | |||
| @@ -130,7 +130,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexHEcomputational | |||
| *> \ingroup hetrf | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -197,7 +197,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CHETF2, CLAHEF, XERBLA | |||
| @@ -228,7 +229,7 @@ | |||
| * | |||
| NB = ILAENV( 1, 'CHETRF', UPLO, N, -1, -1, -1 ) | |||
| LWKOPT = N*NB | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -346,7 +347,7 @@ | |||
| END IF | |||
| * | |||
| 40 CONTINUE | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CHETRF | |||
| @@ -125,7 +125,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexHEcomputational | |||
| *> \ingroup hetrf_aa | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CHETRF_AA( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO) | |||
| @@ -159,7 +159,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLAHEF_AA, CGEMM, CCOPY, CSWAP, CSCAL, XERBLA | |||
| @@ -190,7 +191,7 @@ | |||
| * | |||
| IF( INFO.EQ.0 ) THEN | |||
| LWKOPT = (NB+1)*N | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -459,7 +460,7 @@ | |||
| END IF | |||
| * | |||
| 20 CONTINUE | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CHETRF_AA | |||
| @@ -229,7 +229,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexHEcomputational | |||
| *> \ingroup hetrf_rk | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -280,7 +280,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLAHEF_RK, CHETF2_RK, CSWAP, XERBLA | |||
| @@ -311,7 +312,7 @@ | |||
| * | |||
| NB = ILAENV( 1, 'CHETRF_RK', UPLO, N, -1, -1, -1 ) | |||
| LWKOPT = N*NB | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -487,7 +488,7 @@ | |||
| * | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CHETRF_RK | |||
| @@ -150,7 +150,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexHEcomputational | |||
| *> \ingroup hetrf_rook | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -232,7 +232,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLAHEF_ROOK, CHETF2_ROOK, XERBLA | |||
| @@ -263,7 +264,7 @@ | |||
| * | |||
| NB = ILAENV( 1, 'CHETRF_ROOK', UPLO, N, -1, -1, -1 ) | |||
| LWKOPT = MAX( 1, N*NB ) | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -386,7 +387,7 @@ | |||
| END IF | |||
| * | |||
| 40 CONTINUE | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CHETRF_ROOK | |||
| @@ -152,7 +152,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexHEcomputational | |||
| *> \ingroup hetri_3 | |||
| * | |||
| *> \par Contributors: | |||
| * ================== | |||
| @@ -190,7 +190,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CHETRI_3X, XERBLA | |||
| @@ -225,7 +226,7 @@ | |||
| CALL XERBLA( 'CHETRI_3', -INFO ) | |||
| RETURN | |||
| ELSE IF( LQUERY ) THEN | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| END IF | |||
| * | |||
| @@ -236,7 +237,7 @@ | |||
| * | |||
| CALL CHETRI_3X( UPLO, N, A, LDA, E, IPIV, WORK, NB, INFO ) | |||
| * | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -123,7 +123,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexHEcomputational | |||
| *> \ingroup hetrs_aa | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CHETRS_AA( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, | |||
| @@ -155,7 +155,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME,SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLACPY, CLACGV, CGTSV, CSWAP, CTRSM, XERBLA | |||
| @@ -186,7 +187,7 @@ | |||
| RETURN | |||
| ELSE IF( LQUERY ) THEN | |||
| LWKOPT = (3*N-2) | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| END IF | |||
| * | |||
| @@ -186,7 +186,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHEReigen | |||
| *> \ingroup hpevd | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CHPEVD( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK, | |||
| @@ -223,8 +223,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| REAL CLANHP, SLAMCH | |||
| EXTERNAL LSAME, CLANHP, SLAMCH | |||
| REAL CLANHP, SLAMCH, SROUNDUP_LWORK | |||
| EXTERNAL LSAME, CLANHP, SLAMCH, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CHPTRD, CSSCAL, CSTEDC, CUPMTR, SSCAL, SSTERF, | |||
| @@ -268,7 +268,7 @@ | |||
| LIWMIN = 1 | |||
| END IF | |||
| END IF | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| RWORK( 1 ) = LRWMIN | |||
| IWORK( 1 ) = LIWMIN | |||
| * | |||
| @@ -359,7 +359,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 | |||
| @@ -212,7 +212,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHEReigen | |||
| *> \ingroup hpgvd | |||
| * | |||
| *> \par Contributors: | |||
| * ================== | |||
| @@ -246,7 +246,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CHPEVD, CHPGST, CPPTRF, CTPMV, CTPSV, XERBLA | |||
| @@ -292,7 +293,7 @@ | |||
| END IF | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| RWORK( 1 ) = LRWMIN | |||
| IWORK( 1 ) = LIWMIN | |||
| IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY ) THEN | |||
| @@ -374,7 +375,7 @@ | |||
| END IF | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| RWORK( 1 ) = LRWMIN | |||
| IWORK( 1 ) = LIWMIN | |||
| RETURN | |||
| @@ -216,7 +216,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup hseqr | |||
| * | |||
| *> \par Contributors: | |||
| * ================== | |||
| @@ -343,7 +343,8 @@ | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| LOGICAL LSAME | |||
| EXTERNAL ILAENV, LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CCOPY, CLACPY, CLAHQR, CLAQR0, CLASET, XERBLA | |||
| @@ -189,6 +189,8 @@ | |||
| *> SIAM J. Sci. Comput, vol. 34, no. 1, 2012 | |||
| *> \endverbatim | |||
| *> | |||
| *> \ingroup lamswlq | |||
| *> | |||
| * ===================================================================== | |||
| SUBROUTINE CLAMSWLQ( SIDE, TRANS, M, N, K, MB, NB, A, LDA, T, | |||
| $ LDT, C, LDC, WORK, LWORK, INFO ) | |||
| @@ -215,7 +217,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SROUNDUP_LWORK | |||
| * .. External Subroutines .. | |||
| EXTERNAL CTPMLQT, CGEMLQT, XERBLA | |||
| * .. | |||
| @@ -259,10 +262,10 @@ | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| CALL XERBLA( 'CLAMSWLQ', -INFO ) | |||
| WORK(1) = LW | |||
| WORK(1) = SROUNDUP_LWORK(LW) | |||
| RETURN | |||
| ELSE IF (LQUERY) THEN | |||
| WORK(1) = LW | |||
| WORK(1) = SROUNDUP_LWORK(LW) | |||
| RETURN | |||
| END IF | |||
| * | |||
| @@ -401,7 +404,7 @@ | |||
| * | |||
| END IF | |||
| * | |||
| WORK(1) = LW | |||
| WORK(1) = SROUNDUP_LWORK(LW) | |||
| RETURN | |||
| * | |||
| * End of CLAMSWLQ | |||
| @@ -191,6 +191,8 @@ | |||
| *> SIAM J. Sci. Comput, vol. 34, no. 1, 2012 | |||
| *> \endverbatim | |||
| *> | |||
| *> \ingroup lamtsqr | |||
| *> | |||
| * ===================================================================== | |||
| SUBROUTINE CLAMTSQR( SIDE, TRANS, M, N, K, MB, NB, A, LDA, T, | |||
| $ LDT, C, LDC, WORK, LWORK, INFO ) | |||
| @@ -217,7 +219,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SROUNDUP_LWORK | |||
| * .. External Subroutines .. | |||
| EXTERNAL CGEMQRT, CTPMQRT, XERBLA | |||
| * .. | |||
| @@ -264,7 +267,7 @@ | |||
| * Determine the block size if it is tall skinny or short and wide | |||
| * | |||
| IF( INFO.EQ.0) THEN | |||
| WORK(1) = LW | |||
| WORK(1) = SROUNDUP_LWORK(LW) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -409,7 +412,7 @@ | |||
| * | |||
| END IF | |||
| * | |||
| WORK(1) = LW | |||
| WORK(1) = SROUNDUP_LWORK(LW) | |||
| RETURN | |||
| * | |||
| * End of CLAMTSQR | |||
| @@ -159,6 +159,8 @@ | |||
| *> SIAM J. Sci. Comput, vol. 34, no. 1, 2012 | |||
| *> \endverbatim | |||
| *> | |||
| *> \ingroup laswlq | |||
| *> | |||
| * ===================================================================== | |||
| SUBROUTINE CLASWLQ( M, N, MB, NB, A, LDA, T, LDT, WORK, LWORK, | |||
| $ INFO) | |||
| @@ -183,16 +185,14 @@ | |||
| * .. | |||
| * .. EXTERNAL FUNCTIONS .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| INTEGER ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. EXTERNAL SUBROUTINES .. | |||
| EXTERNAL CGELQT, CTPLQT, XERBLA | |||
| * .. INTRINSIC FUNCTIONS .. | |||
| INTRINSIC MAX, MIN, MOD | |||
| * .. | |||
| * .. EXTERNAL FUNCTIONS .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| * .. | |||
| * .. EXECUTABLE STATEMENTS .. | |||
| * | |||
| * TEST THE INPUT ARGUMENTS | |||
| @@ -217,7 +217,7 @@ | |||
| INFO = -10 | |||
| END IF | |||
| IF( INFO.EQ.0) THEN | |||
| WORK(1) = MB*M | |||
| WORK(1) = SROUNDUP_LWORK(MB*M) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -266,7 +266,7 @@ | |||
| $ WORK, INFO ) | |||
| END IF | |||
| * | |||
| WORK( 1 ) = M * MB | |||
| WORK( 1 ) = SROUNDUP_LWORK(M * MB) | |||
| RETURN | |||
| * | |||
| * End of CLASWLQ | |||
| @@ -161,6 +161,8 @@ | |||
| *> SIAM J. Sci. Comput, vol. 34, no. 1, 2012 | |||
| *> \endverbatim | |||
| *> | |||
| *> \ingroup latsqr | |||
| *> | |||
| * ===================================================================== | |||
| SUBROUTINE CLATSQR( M, N, MB, NB, A, LDA, T, LDT, WORK, | |||
| $ LWORK, INFO) | |||
| @@ -185,7 +187,8 @@ | |||
| * .. | |||
| * .. EXTERNAL FUNCTIONS .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SROUNDUP_LWORK | |||
| * .. EXTERNAL SUBROUTINES .. | |||
| EXTERNAL CGEQRT, CTPQRT, XERBLA | |||
| * .. INTRINSIC FUNCTIONS .. | |||
| @@ -215,7 +218,7 @@ | |||
| INFO = -10 | |||
| END IF | |||
| IF( INFO.EQ.0) THEN | |||
| WORK(1) = NB*N | |||
| WORK(1) = SROUNDUP_LWORK(NB*N) | |||
| END IF | |||
| IF( INFO.NE.0 ) THEN | |||
| CALL XERBLA( 'CLATSQR', -INFO ) | |||
| @@ -262,7 +265,7 @@ | |||
| $ WORK, INFO ) | |||
| END IF | |||
| * | |||
| work( 1 ) = N*NB | |||
| WORK( 1 ) = SROUNDUP_LWORK(N*NB) | |||
| RETURN | |||
| * | |||
| * End of CLATSQR | |||
| @@ -192,7 +192,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup stedc | |||
| * | |||
| *> \par Contributors: | |||
| * ================== | |||
| @@ -233,8 +233,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| REAL SLAMCH, SLANST | |||
| EXTERNAL ILAENV, LSAME, SLAMCH, SLANST | |||
| REAL SLAMCH, SLANST, SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, LSAME, SLAMCH, SLANST, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL XERBLA, CLACPY, CLACRM, CLAED0, CSTEQR, CSWAP, | |||
| @@ -295,7 +295,7 @@ | |||
| LRWMIN = 1 + 4*N + 2*N**2 | |||
| LIWMIN = 3 + 5*N | |||
| END IF | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| RWORK( 1 ) = LRWMIN | |||
| IWORK( 1 ) = LIWMIN | |||
| * | |||
| @@ -466,7 +466,7 @@ | |||
| END IF | |||
| * | |||
| 70 CONTINUE | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| RWORK( 1 ) = LRWMIN | |||
| IWORK( 1 ) = LIWMIN | |||
| * | |||
| @@ -376,8 +376,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| REAL SLAMCH, SLANST | |||
| EXTERNAL LSAME, SLAMCH, SLANST | |||
| REAL SLAMCH, SLANST, SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SLAMCH, SLANST, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLARRV, CSWAP, SCOPY, SLAE2, SLAEV2, SLARRC, | |||
| @@ -462,7 +462,7 @@ | |||
| RMAX = MIN( SQRT( BIGNUM ), ONE / SQRT( SQRT( SAFMIN ) ) ) | |||
| * | |||
| IF( INFO.EQ.0 ) THEN | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| IWORK( 1 ) = LIWMIN | |||
| * | |||
| IF( WANTZ .AND. ALLEIG ) THEN | |||
| @@ -801,7 +801,7 @@ | |||
| ENDIF | |||
| * | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| IWORK( 1 ) = LIWMIN | |||
| RETURN | |||
| * | |||
| @@ -163,7 +163,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYsolve | |||
| *> \ingroup hesv | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CSYSV( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, | |||
| @@ -190,7 +190,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL XERBLA, CSYTRF, CSYTRS, CSYTRS2 | |||
| @@ -225,7 +226,7 @@ | |||
| CALL CSYTRF( UPLO, N, A, LDA, 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 | |||
| @@ -258,7 +259,7 @@ | |||
| * | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -154,7 +154,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYsolve | |||
| *> \ingroup hesv_aa | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CSYSV_AA( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, | |||
| @@ -182,7 +182,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV, LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL XERBLA, CSYTRF_AA, CSYTRS_AA | |||
| @@ -217,7 +218,7 @@ | |||
| $ -1, INFO ) | |||
| LWKOPT_SYTRS = INT( WORK(1) ) | |||
| LWKOPT = MAX( LWKOPT_SYTRF, LWKOPT_SYTRS ) | |||
| 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 | |||
| * | |||
| @@ -177,7 +177,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYcomputational | |||
| *> \ingroup hesv_aa_2stage | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CSYSV_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 CSYTRF_AA_2STAGE, | |||
| @@ -267,7 +268,7 @@ | |||
| * | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -205,7 +205,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYsolve | |||
| *> \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, CSYTRF_RK, CSYTRS_3 | |||
| @@ -282,7 +283,7 @@ | |||
| CALL CSYTRF_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 | |||
| * | |||
| @@ -181,7 +181,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYsolve | |||
| *> \ingroup hesv_rook | |||
| * | |||
| *> \par Contributors: | |||
| * ================== | |||
| @@ -223,7 +223,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL XERBLA, CSYTRF_ROOK, CSYTRS_ROOK | |||
| @@ -258,7 +259,7 @@ | |||
| CALL CSYTRF_ROOK( UPLO, N, A, LDA, 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 | |||
| @@ -281,7 +282,7 @@ | |||
| * | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -276,7 +276,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYsolve | |||
| *> \ingroup hesvx | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CSYSVX( FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, | |||
| @@ -313,8 +313,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| REAL CLANSY, SLAMCH | |||
| EXTERNAL ILAENV, LSAME, CLANSY, SLAMCH | |||
| REAL CLANSY, SLAMCH, SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, LSAME, CLANSY, SLAMCH, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLACPY, CSYCON, CSYRFS, CSYTRF, CSYTRS, XERBLA | |||
| @@ -356,7 +356,7 @@ | |||
| NB = ILAENV( 1, 'CSYTRF', 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 | |||
| * | |||
| @@ -135,7 +135,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYcomputational | |||
| *> \ingroup hetrf | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -202,7 +202,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLASYF, CSYTF2, XERBLA | |||
| @@ -233,7 +234,7 @@ | |||
| * | |||
| NB = ILAENV( 1, 'CSYTRF', UPLO, N, -1, -1, -1 ) | |||
| LWKOPT = MAX( 1, N*NB ) | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -351,7 +352,7 @@ | |||
| END IF | |||
| * | |||
| 40 CONTINUE | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CSYTRF | |||
| @@ -125,7 +125,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYcomputational | |||
| *> \ingroup hetrf_aa | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CSYTRF_AA( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO) | |||
| @@ -159,7 +159,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLASYF_AA, CGEMM, CGEMV, CSCAL, CSWAP, CCOPY, | |||
| @@ -191,7 +192,7 @@ | |||
| * | |||
| IF( INFO.EQ.0 ) THEN | |||
| LWKOPT = (NB+1)*N | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -457,7 +458,7 @@ | |||
| END IF | |||
| * | |||
| 20 CONTINUE | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CSYTRF_AA | |||
| @@ -152,7 +152,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYcomputational | |||
| *> \ingroup hetrf_aa_2stage | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CSYTRF_AA_2STAGE( UPLO, N, A, LDA, TB, LTB, IPIV, | |||
| @@ -188,7 +188,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CCOPY, CGBTRF, CGEMM, CGETRF, CLACPY, | |||
| @@ -230,7 +231,7 @@ | |||
| TB( 1 ) = (3*NB+1)*N | |||
| END IF | |||
| IF( WQUERY ) THEN | |||
| WORK( 1 ) = N*NB | |||
| WORK( 1 ) = SROUNDUP_LWORK(N*NB) | |||
| END IF | |||
| END IF | |||
| IF( TQUERY .OR. WQUERY ) THEN | |||
| @@ -229,7 +229,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYcomputational | |||
| *> \ingroup hetrf_rk | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -280,7 +280,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLASYF_RK, CSYTF2_RK, CSWAP, XERBLA | |||
| @@ -311,7 +312,7 @@ | |||
| * | |||
| NB = ILAENV( 1, 'CSYTRF_RK', UPLO, N, -1, -1, -1 ) | |||
| LWKOPT = MAX( 1, N*NB ) | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -487,7 +488,7 @@ | |||
| * | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CSYTRF_RK | |||
| @@ -146,7 +146,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYcomputational | |||
| *> \ingroup hetrf_rook | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -228,7 +228,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLASYF_ROOK, CSYTF2_ROOK, XERBLA | |||
| @@ -259,7 +260,7 @@ | |||
| * | |||
| NB = ILAENV( 1, 'CSYTRF_ROOK', UPLO, N, -1, -1, -1 ) | |||
| LWKOPT = MAX( 1, N*NB ) | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -382,7 +383,7 @@ | |||
| END IF | |||
| * | |||
| 40 CONTINUE | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CSYTRF_ROOK | |||
| @@ -152,7 +152,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYcomputational | |||
| *> \ingroup hetri_3 | |||
| * | |||
| *> \par Contributors: | |||
| * ================== | |||
| @@ -190,7 +190,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CSYTRI_3X, XERBLA | |||
| @@ -225,7 +226,7 @@ | |||
| CALL XERBLA( 'CSYTRI_3', -INFO ) | |||
| RETURN | |||
| ELSE IF( LQUERY ) THEN | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| END IF | |||
| * | |||
| @@ -236,7 +237,7 @@ | |||
| * | |||
| CALL CSYTRI_3X( UPLO, N, A, LDA, E, IPIV, WORK, NB, INFO ) | |||
| * | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -123,7 +123,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYcomputational | |||
| *> \ingroup hetrs_aa | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CSYTRS_AA( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, | |||
| @@ -155,7 +155,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLACPY, CGTSV, CSWAP, CTRSM, XERBLA | |||
| @@ -186,7 +187,7 @@ | |||
| RETURN | |||
| ELSE IF( LQUERY ) THEN | |||
| LWKOPT = (3*N-2) | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| END IF | |||
| * | |||
| @@ -290,7 +290,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup tgsen | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -467,6 +467,10 @@ | |||
| * .. Local Arrays .. | |||
| INTEGER ISAVE( 3 ) | |||
| * .. | |||
| * .. External Functions .. | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| REAL SLAMCH | |||
| EXTERNAL CLACN2, CLACPY, CLASSQ, CSCAL, CTGEXC, CTGSYL, | |||
| @@ -537,7 +541,7 @@ | |||
| LIWMIN = 1 | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| IWORK( 1 ) = LIWMIN | |||
| * | |||
| IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY ) THEN | |||
| @@ -771,7 +775,7 @@ | |||
| * | |||
| 70 CONTINUE | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| IWORK( 1 ) = LIWMIN | |||
| * | |||
| RETURN | |||
| @@ -213,7 +213,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup tgsna | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -343,12 +343,13 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| REAL SCNRM2, SLAMCH, SLAPY2 | |||
| REAL SCNRM2, SLAMCH, SLAPY2, SROUNDUP_LWORK | |||
| COMPLEX CDOTC | |||
| EXTERNAL LSAME, SCNRM2, SLAMCH, SLAPY2, CDOTC | |||
| EXTERNAL LSAME, SCNRM2, SLAMCH, SLAPY2, SROUNDUP_LWORK, | |||
| $ CDOTC | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CGEMV, CLACPY, CTGEXC, CTGSYL, SLABAD, XERBLA | |||
| EXTERNAL CGEMV, CLACPY, CTGEXC, CTGSYL, XERBLA | |||
| * .. | |||
| * .. Intrinsic Functions .. | |||
| INTRINSIC ABS, CMPLX, MAX | |||
| @@ -402,7 +403,7 @@ | |||
| ELSE | |||
| LWMIN = N | |||
| END IF | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| * | |||
| IF( MM.LT.M ) THEN | |||
| INFO = -15 | |||
| @@ -428,7 +429,6 @@ | |||
| EPS = SLAMCH( 'P' ) | |||
| SMLNUM = SLAMCH( 'S' ) / EPS | |||
| BIGNUM = ONE / SMLNUM | |||
| CALL SLABAD( SMLNUM, BIGNUM ) | |||
| KS = 0 | |||
| DO 20 K = 1, N | |||
| * | |||
| @@ -508,7 +508,7 @@ | |||
| END IF | |||
| * | |||
| 20 CONTINUE | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| RETURN | |||
| * | |||
| * End of CTGSNA | |||
| @@ -260,7 +260,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexSYcomputational | |||
| *> \ingroup tgsyl | |||
| * | |||
| *> \par Contributors: | |||
| * ================== | |||
| @@ -329,7 +329,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL LSAME, ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CGEMM, CLACPY, CLASET, CSCAL, CTGSY2, XERBLA | |||
| @@ -382,7 +383,7 @@ | |||
| ELSE | |||
| LWMIN = 1 | |||
| END IF | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| * | |||
| IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY ) THEN | |||
| INFO = -20 | |||
| @@ -683,7 +684,7 @@ | |||
| 210 CONTINUE | |||
| END IF | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -222,7 +222,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup trevc3 | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -278,12 +278,13 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV, ICAMAX | |||
| REAL SLAMCH, SCASUM | |||
| EXTERNAL LSAME, ILAENV, ICAMAX, SLAMCH, SCASUM | |||
| REAL SLAMCH, SCASUM, SROUNDUP_LWORK | |||
| EXTERNAL LSAME, ILAENV, ICAMAX, SLAMCH, SCASUM, | |||
| $ SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL XERBLA, CCOPY, CLASET, CSSCAL, CGEMM, CGEMV, | |||
| $ CLATRS, CLACPY, SLABAD | |||
| $ CLATRS, CLACPY | |||
| * .. | |||
| * .. Intrinsic Functions .. | |||
| INTRINSIC ABS, REAL, CMPLX, CONJG, AIMAG, MAX | |||
| @@ -322,7 +323,7 @@ | |||
| INFO = 0 | |||
| NB = ILAENV( 1, 'CTREVC', SIDE // HOWMNY, N, -1, -1, -1 ) | |||
| MAXWRK = MAX( 1, N + 2*N*NB ) | |||
| WORK(1) = MAXWRK | |||
| WORK(1) = SROUNDUP_LWORK(MAXWRK) | |||
| RWORK(1) = MAX( 1, N ) | |||
| LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 ) | |||
| IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN | |||
| @@ -371,7 +372,6 @@ | |||
| * | |||
| UNFL = SLAMCH( 'Safe minimum' ) | |||
| OVFL = ONE / UNFL | |||
| CALL SLABAD( UNFL, OVFL ) | |||
| ULP = SLAMCH( 'Precision' ) | |||
| SMLNUM = UNFL*( N / ULP ) | |||
| * | |||
| @@ -182,7 +182,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup trsen | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -293,8 +293,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| REAL CLANGE | |||
| EXTERNAL LSAME, CLANGE | |||
| REAL CLANGE, SROUNDUP_LWORK | |||
| EXTERNAL LSAME, CLANGE, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CLACN2, CLACPY, CTREXC, CTRSYL, XERBLA | |||
| @@ -350,7 +350,7 @@ | |||
| END IF | |||
| * | |||
| IF( INFO.EQ.0 ) THEN | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -444,7 +444,7 @@ | |||
| W( K ) = T( K, K ) | |||
| 50 CONTINUE | |||
| * | |||
| WORK( 1 ) = LWMIN | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWMIN) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -116,7 +116,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup tzrzf | |||
| * | |||
| *> \par Contributors: | |||
| * ================== | |||
| @@ -179,7 +179,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Executable Statements .. | |||
| * | |||
| @@ -207,7 +208,7 @@ | |||
| LWKOPT = M*NB | |||
| LWKMIN = MAX( 1, M ) | |||
| END IF | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| * | |||
| IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN | |||
| INFO = -7 | |||
| @@ -301,7 +302,7 @@ | |||
| IF( MU.GT.0 ) | |||
| $ CALL CLATRZ( MU, N, N-M, A, LDA, TAU, WORK ) | |||
| * | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| * | |||
| RETURN | |||
| * | |||
| @@ -255,7 +255,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup unbdb | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -320,9 +320,9 @@ | |||
| * | |||
| * .. | |||
| * .. External Functions .. | |||
| REAL SCNRM2 | |||
| REAL SCNRM2, SROUNDUP_LWORK | |||
| LOGICAL LSAME | |||
| EXTERNAL SCNRM2, LSAME | |||
| EXTERNAL SCNRM2, SROUNDUP_LWORK, LSAME | |||
| * .. | |||
| * .. Intrinsic Functions | |||
| INTRINSIC ATAN2, COS, MAX, MIN, SIN | |||
| @@ -377,7 +377,7 @@ | |||
| IF( INFO .EQ. 0 ) THEN | |||
| LWORKOPT = M - Q | |||
| LWORKMIN = M - Q | |||
| WORK(1) = LWORKOPT | |||
| WORK(1) = SROUNDUP_LWORK(LWORKOPT) | |||
| IF( LWORK .LT. LWORKMIN .AND. .NOT. LQUERY ) THEN | |||
| INFO = -21 | |||
| END IF | |||
| @@ -173,7 +173,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup unbdb1 | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -230,8 +230,8 @@ | |||
| EXTERNAL CLACGV | |||
| * .. | |||
| * .. External Functions .. | |||
| REAL SCNRM2 | |||
| EXTERNAL SCNRM2 | |||
| REAL SCNRM2, SROUNDUP_LWORK | |||
| EXTERNAL SCNRM2, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Intrinsic Function .. | |||
| INTRINSIC ATAN2, COS, MAX, SIN, SQRT | |||
| @@ -264,7 +264,7 @@ | |||
| LORBDB5 = Q-2 | |||
| LWORKOPT = MAX( ILARF+LLARF-1, IORBDB5+LORBDB5-1 ) | |||
| LWORKMIN = LWORKOPT | |||
| WORK(1) = LWORKOPT | |||
| WORK(1) = SROUNDUP_LWORK(LWORKOPT) | |||
| IF( LWORK .LT. LWORKMIN .AND. .NOT.LQUERY ) THEN | |||
| INFO = -14 | |||
| END IF | |||
| @@ -173,7 +173,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup unbdb2 | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -231,8 +231,8 @@ | |||
| $ XERBLA | |||
| * .. | |||
| * .. External Functions .. | |||
| REAL SCNRM2 | |||
| EXTERNAL SCNRM2 | |||
| REAL SCNRM2, SROUNDUP_LWORK | |||
| EXTERNAL SCNRM2, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Intrinsic Function .. | |||
| INTRINSIC ATAN2, COS, MAX, SIN, SQRT | |||
| @@ -265,7 +265,7 @@ | |||
| LORBDB5 = Q-1 | |||
| LWORKOPT = MAX( ILARF+LLARF-1, IORBDB5+LORBDB5-1 ) | |||
| LWORKMIN = LWORKOPT | |||
| WORK(1) = LWORKOPT | |||
| WORK(1) = SROUNDUP_LWORK(LWORKOPT) | |||
| IF( LWORK .LT. LWORKMIN .AND. .NOT.LQUERY ) THEN | |||
| INFO = -14 | |||
| END IF | |||
| @@ -173,7 +173,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup unbdb3 | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -229,8 +229,8 @@ | |||
| EXTERNAL CLARF, CLARFGP, CUNBDB5, CSROT, CLACGV, XERBLA | |||
| * .. | |||
| * .. External Functions .. | |||
| REAL SCNRM2 | |||
| EXTERNAL SCNRM2 | |||
| REAL SCNRM2, SROUNDUP_LWORK | |||
| EXTERNAL SCNRM2, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Intrinsic Function .. | |||
| INTRINSIC ATAN2, COS, MAX, SIN, SQRT | |||
| @@ -263,7 +263,7 @@ | |||
| LORBDB5 = Q-1 | |||
| LWORKOPT = MAX( ILARF+LLARF-1, IORBDB5+LORBDB5-1 ) | |||
| LWORKMIN = LWORKOPT | |||
| WORK(1) = LWORKOPT | |||
| WORK(1) = SROUNDUP_LWORK(LWORKOPT) | |||
| IF( LWORK .LT. LWORKMIN .AND. .NOT.LQUERY ) THEN | |||
| INFO = -14 | |||
| END IF | |||
| @@ -183,7 +183,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup unbdb4 | |||
| * | |||
| *> \par Further Details: | |||
| * ===================== | |||
| @@ -242,8 +242,8 @@ | |||
| $ XERBLA | |||
| * .. | |||
| * .. External Functions .. | |||
| REAL SCNRM2 | |||
| EXTERNAL SCNRM2 | |||
| REAL SCNRM2, SROUNDUP_LWORK | |||
| EXTERNAL SCNRM2, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Intrinsic Function .. | |||
| INTRINSIC ATAN2, COS, MAX, SIN, SQRT | |||
| @@ -277,7 +277,7 @@ | |||
| LWORKOPT = ILARF + LLARF - 1 | |||
| LWORKOPT = MAX( LWORKOPT, IORBDB5 + LORBDB5 - 1 ) | |||
| LWORKMIN = LWORKOPT | |||
| WORK(1) = LWORKOPT | |||
| WORK(1) = SROUNDUP_LWORK(LWORKOPT) | |||
| IF( LWORK .LT. LWORKMIN .AND. .NOT.LQUERY ) THEN | |||
| INFO = -14 | |||
| END IF | |||
| @@ -308,7 +308,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup uncsd | |||
| * | |||
| * ===================================================================== | |||
| RECURSIVE SUBROUTINE CUNCSD( JOBU1, JOBU2, JOBV1T, JOBV2T, TRANS, | |||
| @@ -365,7 +365,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Intrinsic Functions | |||
| INTRINSIC INT, MAX, MIN | |||
| @@ -504,7 +505,8 @@ | |||
| $ IORBDB + LORBDBWORKOPT ) - 1 | |||
| LWORKMIN = MAX( IORGQR + LORGQRWORKMIN, IORGLQ + LORGLQWORKMIN, | |||
| $ IORBDB + LORBDBWORKMIN ) - 1 | |||
| WORK(1) = MAX(LWORKOPT,LWORKMIN) | |||
| LWORKOPT = MAX(LWORKOPT,LWORKMIN) | |||
| WORK(1) = SROUNDUP_LWORK(LWORKOPT) | |||
| * | |||
| IF( LWORK .LT. LWORKMIN | |||
| $ .AND. .NOT. ( LQUERY .OR. LRQUERY ) ) THEN | |||
| @@ -247,7 +247,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup uncsd2by1 | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CUNCSD2BY1( JOBU1, JOBU2, JOBV1T, M, P, Q, X11, LDX11, | |||
| @@ -299,7 +299,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Intrinsic Function .. | |||
| INTRINSIC INT, MAX, MIN | |||
| @@ -508,7 +509,7 @@ | |||
| LWORKOPT = MAX( IORBDB+LORBDB-1, | |||
| $ IORGQR+LORGQROPT-1, | |||
| $ IORGLQ+LORGLQOPT-1 ) | |||
| WORK(1) = LWORKOPT | |||
| WORK(1) = SROUNDUP_LWORK(LWORKOPT) | |||
| IF( LWORK .LT. LWORKMIN .AND. .NOT.LQUERY ) THEN | |||
| INFO = -19 | |||
| END IF | |||
| @@ -150,7 +150,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexGBcomputational | |||
| *> \ingroup ungbr | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CUNGBR( VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) | |||
| @@ -180,7 +180,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| EXTERNAL LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CUNGLQ, CUNGQR, XERBLA | |||
| @@ -241,7 +242,7 @@ | |||
| CALL XERBLA( 'CUNGBR', -INFO ) | |||
| RETURN | |||
| ELSE IF( LQUERY ) THEN | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| END IF | |||
| * | |||
| @@ -327,7 +328,7 @@ | |||
| END IF | |||
| END IF | |||
| END IF | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CUNGBR | |||
| @@ -119,7 +119,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup unghr | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CUNGHR( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO ) | |||
| @@ -151,7 +151,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Intrinsic Functions .. | |||
| INTRINSIC MAX, MIN | |||
| @@ -178,7 +179,7 @@ | |||
| IF( INFO.EQ.0 ) THEN | |||
| NB = ILAENV( 1, 'CUNGQR', ' ', NH, NH, NH, -1 ) | |||
| LWKOPT = MAX( 1, NH )*NB | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -230,7 +231,7 @@ | |||
| CALL CUNGQR( NH, NH, NH, A( ILO+1, ILO+1 ), LDA, TAU( ILO ), | |||
| $ WORK, LWORK, IINFO ) | |||
| END IF | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CUNGHR | |||
| @@ -120,7 +120,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup unglq | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CUNGLQ( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) | |||
| @@ -155,7 +155,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Executable Statements .. | |||
| * | |||
| @@ -164,7 +165,7 @@ | |||
| INFO = 0 | |||
| NB = ILAENV( 1, 'CUNGLQ', ' ', M, N, K, -1 ) | |||
| LWKOPT = MAX( 1, M )*NB | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| LQUERY = ( LWORK.EQ.-1 ) | |||
| IF( M.LT.0 ) THEN | |||
| INFO = -1 | |||
| @@ -278,7 +279,7 @@ | |||
| 50 CONTINUE | |||
| END IF | |||
| * | |||
| WORK( 1 ) = IWS | |||
| WORK( 1 ) = SROUNDUP_LWORK(IWS) | |||
| RETURN | |||
| * | |||
| * End of CUNGLQ | |||
| @@ -121,7 +121,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup ungql | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CUNGQL( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) | |||
| @@ -156,7 +156,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Executable Statements .. | |||
| * | |||
| @@ -181,7 +182,7 @@ | |||
| NB = ILAENV( 1, 'CUNGQL', ' ', M, N, K, -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 = -8 | |||
| @@ -121,7 +121,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup ungqr | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CUNGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) | |||
| @@ -156,7 +156,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Executable Statements .. | |||
| * | |||
| @@ -165,7 +166,7 @@ | |||
| INFO = 0 | |||
| NB = ILAENV( 1, 'CUNGQR', ' ', M, N, K, -1 ) | |||
| LWKOPT = MAX( 1, N )*NB | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| LQUERY = ( LWORK.EQ.-1 ) | |||
| IF( M.LT.0 ) THEN | |||
| INFO = -1 | |||
| @@ -279,7 +280,7 @@ | |||
| 50 CONTINUE | |||
| END IF | |||
| * | |||
| WORK( 1 ) = IWS | |||
| WORK( 1 ) = SROUNDUP_LWORK(IWS) | |||
| RETURN | |||
| * | |||
| * End of CUNGQR | |||
| @@ -121,7 +121,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup ungrq | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CUNGRQ( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) | |||
| @@ -156,7 +156,8 @@ | |||
| * .. | |||
| * .. External Functions .. | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, SROUNDUP_LWORK | |||
| * .. | |||
| * .. Executable Statements .. | |||
| * | |||
| @@ -181,7 +182,7 @@ | |||
| NB = ILAENV( 1, 'CUNGRQ', ' ', M, N, K, -1 ) | |||
| LWKOPT = M*NB | |||
| END IF | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| * | |||
| IF( LWORK.LT.MAX( 1, M ) .AND. .NOT.LQUERY ) THEN | |||
| INFO = -8 | |||
| @@ -286,7 +287,7 @@ | |||
| 50 CONTINUE | |||
| END IF | |||
| * | |||
| WORK( 1 ) = IWS | |||
| WORK( 1 ) = SROUNDUP_LWORK(IWS) | |||
| RETURN | |||
| * | |||
| * End of CUNGRQ | |||
| @@ -116,7 +116,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup ungtr | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CUNGTR( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO ) | |||
| @@ -147,7 +147,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV, LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CUNGQL, CUNGQR, XERBLA | |||
| @@ -179,7 +180,7 @@ | |||
| NB = ILAENV( 1, 'CUNGQR', ' ', N-1, N-1, N-1, -1 ) | |||
| END IF | |||
| LWKOPT = MAX( 1, N-1 )*NB | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -245,7 +246,7 @@ | |||
| $ LWORK, IINFO ) | |||
| END IF | |||
| END IF | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CUNGTR | |||
| @@ -189,7 +189,7 @@ | |||
| *> \author Univ. of Colorado Denver | |||
| *> \author NAG Ltd. | |||
| * | |||
| *> \ingroup complexOTHERcomputational | |||
| *> \ingroup unmbr | |||
| * | |||
| * ===================================================================== | |||
| SUBROUTINE CUNMBR( VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, | |||
| @@ -218,7 +218,8 @@ | |||
| * .. External Functions .. | |||
| LOGICAL LSAME | |||
| INTEGER ILAENV | |||
| EXTERNAL ILAENV, LSAME | |||
| REAL SROUNDUP_LWORK | |||
| EXTERNAL ILAENV, LSAME, SROUNDUP_LWORK | |||
| * .. | |||
| * .. External Subroutines .. | |||
| EXTERNAL CUNMLQ, CUNMQR, XERBLA | |||
| @@ -290,7 +291,7 @@ | |||
| ELSE | |||
| LWKOPT = 1 | |||
| END IF | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| END IF | |||
| * | |||
| IF( INFO.NE.0 ) THEN | |||
| @@ -367,7 +368,7 @@ | |||
| $ TAU, C( I1, I2 ), LDC, WORK, LWORK, IINFO ) | |||
| END IF | |||
| END IF | |||
| WORK( 1 ) = LWKOPT | |||
| WORK( 1 ) = SROUNDUP_LWORK(LWKOPT) | |||
| RETURN | |||
| * | |||
| * End of CUNMBR | |||