Apply ROUNDUP_LWORK (Reference-LAPACK PR 904)
This commit is contained in:
parent
225036fd92
commit
c9378badd9
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue