Browse Source

Merge pull request #4310 from martin-frbg/lapack904

Apply rounding up to workspace calculations done with reals (Reference-LAPACK PR 904)
tags/v0.3.25^2
Martin Kroeker GitHub 1 year ago
parent
commit
d58c88cf42
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
100 changed files with 601 additions and 533 deletions
  1. +5
    -4
      lapack-netlib/SRC/VARIANTS/qr/LL/cgeqrf.f
  2. +5
    -4
      lapack-netlib/SRC/VARIANTS/qr/LL/dgeqrf.f
  3. +5
    -4
      lapack-netlib/SRC/VARIANTS/qr/LL/sgeqrf.f
  4. +5
    -4
      lapack-netlib/SRC/VARIANTS/qr/LL/zgeqrf.f
  5. +6
    -7
      lapack-netlib/SRC/cgees.f
  6. +6
    -7
      lapack-netlib/SRC/cgeesx.f
  7. +7
    -7
      lapack-netlib/SRC/cgeev.f
  8. +7
    -7
      lapack-netlib/SRC/cgeevx.f
  9. +5
    -4
      lapack-netlib/SRC/cgehrd.f
  10. +7
    -4
      lapack-netlib/SRC/cgelq.f
  11. +5
    -4
      lapack-netlib/SRC/cgelqf.f
  12. +6
    -7
      lapack-netlib/SRC/cgelsd.f
  13. +4
    -4
      lapack-netlib/SRC/cgelss.f
  14. +9
    -10
      lapack-netlib/SRC/cgelst.f
  15. +5
    -4
      lapack-netlib/SRC/cgeqlf.f
  16. +5
    -4
      lapack-netlib/SRC/cgeqrf.f
  17. +5
    -4
      lapack-netlib/SRC/cgeqrfp.f
  18. +5
    -4
      lapack-netlib/SRC/cgerqf.f
  19. +5
    -5
      lapack-netlib/SRC/cgesvd.f
  20. +5
    -4
      lapack-netlib/SRC/cgetri.f
  21. +7
    -8
      lapack-netlib/SRC/cgetsls.f
  22. +6
    -8
      lapack-netlib/SRC/cgges.f
  23. +6
    -8
      lapack-netlib/SRC/cggesx.f
  24. +6
    -8
      lapack-netlib/SRC/cggev.f
  25. +6
    -7
      lapack-netlib/SRC/cggevx.f
  26. +4
    -3
      lapack-netlib/SRC/cggglm.f
  27. +4
    -3
      lapack-netlib/SRC/cgglse.f
  28. +4
    -3
      lapack-netlib/SRC/cggqrf.f
  29. +4
    -3
      lapack-netlib/SRC/cggrqf.f
  30. +12
    -11
      lapack-netlib/SRC/chbev_2stage.f
  31. +5
    -5
      lapack-netlib/SRC/chbevd.f
  32. +15
    -14
      lapack-netlib/SRC/chbevx_2stage.f
  33. +5
    -4
      lapack-netlib/SRC/chbgvd.f
  34. +5
    -5
      lapack-netlib/SRC/cheev.f
  35. +13
    -12
      lapack-netlib/SRC/cheev_2stage.f
  36. +5
    -5
      lapack-netlib/SRC/cheevd.f
  37. +5
    -5
      lapack-netlib/SRC/cheevr.f
  38. +5
    -5
      lapack-netlib/SRC/cheevx.f
  39. +15
    -14
      lapack-netlib/SRC/cheevx_2stage.f
  40. +5
    -4
      lapack-netlib/SRC/chegv.f
  41. +12
    -11
      lapack-netlib/SRC/chegv_2stage.f
  42. +5
    -4
      lapack-netlib/SRC/chegvd.f
  43. +5
    -4
      lapack-netlib/SRC/chegvx.f
  44. +5
    -4
      lapack-netlib/SRC/chesv.f
  45. +5
    -4
      lapack-netlib/SRC/chesv_aa.f
  46. +4
    -3
      lapack-netlib/SRC/chesv_aa_2stage.f
  47. +5
    -4
      lapack-netlib/SRC/chesv_rk.f
  48. +5
    -4
      lapack-netlib/SRC/chesv_rook.f
  49. +5
    -5
      lapack-netlib/SRC/chesvx.f
  50. +54
    -53
      lapack-netlib/SRC/chetrd_hb2st.F
  51. +5
    -4
      lapack-netlib/SRC/chetrd_he2hb.f
  52. +5
    -4
      lapack-netlib/SRC/chetrf.f
  53. +5
    -4
      lapack-netlib/SRC/chetrf_aa.f
  54. +5
    -4
      lapack-netlib/SRC/chetrf_rk.f
  55. +5
    -4
      lapack-netlib/SRC/chetrf_rook.f
  56. +5
    -4
      lapack-netlib/SRC/chetri_3.f
  57. +4
    -3
      lapack-netlib/SRC/chetrs_aa.f
  58. +5
    -5
      lapack-netlib/SRC/chpevd.f
  59. +5
    -4
      lapack-netlib/SRC/chpgvd.f
  60. +3
    -2
      lapack-netlib/SRC/chseqr.f
  61. +7
    -4
      lapack-netlib/SRC/clamswlq.f
  62. +6
    -3
      lapack-netlib/SRC/clamtsqr.f
  63. +7
    -7
      lapack-netlib/SRC/claswlq.f
  64. +6
    -3
      lapack-netlib/SRC/clatsqr.f
  65. +5
    -5
      lapack-netlib/SRC/cstedc.f
  66. +4
    -4
      lapack-netlib/SRC/cstemr.f
  67. +5
    -4
      lapack-netlib/SRC/csysv.f
  68. +5
    -4
      lapack-netlib/SRC/csysv_aa.f
  69. +4
    -3
      lapack-netlib/SRC/csysv_aa_2stage.f
  70. +5
    -4
      lapack-netlib/SRC/csysv_rk.f
  71. +5
    -4
      lapack-netlib/SRC/csysv_rook.f
  72. +5
    -5
      lapack-netlib/SRC/csysvx.f
  73. +5
    -4
      lapack-netlib/SRC/csytrf.f
  74. +5
    -4
      lapack-netlib/SRC/csytrf_aa.f
  75. +4
    -3
      lapack-netlib/SRC/csytrf_aa_2stage.f
  76. +5
    -4
      lapack-netlib/SRC/csytrf_rk.f
  77. +5
    -4
      lapack-netlib/SRC/csytrf_rook.f
  78. +5
    -4
      lapack-netlib/SRC/csytri_3.f
  79. +4
    -3
      lapack-netlib/SRC/csytrs_aa.f
  80. +7
    -3
      lapack-netlib/SRC/ctgsen.f
  81. +7
    -7
      lapack-netlib/SRC/ctgsna.f
  82. +5
    -4
      lapack-netlib/SRC/ctgsyl.f
  83. +6
    -6
      lapack-netlib/SRC/ctrevc3.f
  84. +5
    -5
      lapack-netlib/SRC/ctrsen.f
  85. +5
    -4
      lapack-netlib/SRC/ctzrzf.f
  86. +4
    -4
      lapack-netlib/SRC/cunbdb.f
  87. +4
    -4
      lapack-netlib/SRC/cunbdb1.f
  88. +4
    -4
      lapack-netlib/SRC/cunbdb2.f
  89. +4
    -4
      lapack-netlib/SRC/cunbdb3.f
  90. +4
    -4
      lapack-netlib/SRC/cunbdb4.f
  91. +5
    -3
      lapack-netlib/SRC/cuncsd.f
  92. +4
    -3
      lapack-netlib/SRC/cuncsd2by1.f
  93. +5
    -4
      lapack-netlib/SRC/cungbr.f
  94. +5
    -4
      lapack-netlib/SRC/cunghr.f
  95. +5
    -4
      lapack-netlib/SRC/cunglq.f
  96. +4
    -3
      lapack-netlib/SRC/cungql.f
  97. +5
    -4
      lapack-netlib/SRC/cungqr.f
  98. +5
    -4
      lapack-netlib/SRC/cungrq.f
  99. +5
    -4
      lapack-netlib/SRC/cungtr.f
  100. +5
    -4
      lapack-netlib/SRC/cunmbr.f

+ 5
- 4
lapack-netlib/SRC/VARIANTS/qr/LL/cgeqrf.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/VARIANTS/qr/LL/dgeqrf.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/VARIANTS/qr/LL/sgeqrf.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/VARIANTS/qr/LL/zgeqrf.f View File

@@ -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


+ 6
- 7
lapack-netlib/SRC/cgees.f View File

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


+ 6
- 7
lapack-netlib/SRC/cgeesx.f View File

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


+ 7
- 7
lapack-netlib/SRC/cgeev.f View File

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


+ 7
- 7
lapack-netlib/SRC/cgeevx.f View File

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


+ 5
- 4
lapack-netlib/SRC/cgehrd.f View File

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


+ 7
- 4
lapack-netlib/SRC/cgelq.f View File

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


+ 5
- 4
lapack-netlib/SRC/cgelqf.f View File

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


+ 6
- 7
lapack-netlib/SRC/cgelsd.f View File

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


+ 4
- 4
lapack-netlib/SRC/cgelss.f View File

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


+ 9
- 10
lapack-netlib/SRC/cgelst.f View File

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


+ 5
- 4
lapack-netlib/SRC/cgeqlf.f View File

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


+ 5
- 4
lapack-netlib/SRC/cgeqrf.f View File

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


+ 5
- 4
lapack-netlib/SRC/cgeqrfp.f View File

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


+ 5
- 4
lapack-netlib/SRC/cgerqf.f View File

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


+ 5
- 5
lapack-netlib/SRC/cgesvd.f View File

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


+ 5
- 4
lapack-netlib/SRC/cgetri.f View File

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


+ 7
- 8
lapack-netlib/SRC/cgetsls.f View File

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


+ 6
- 8
lapack-netlib/SRC/cgges.f View File

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


+ 6
- 8
lapack-netlib/SRC/cggesx.f View File

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


+ 6
- 8
lapack-netlib/SRC/cggev.f View File

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


+ 6
- 7
lapack-netlib/SRC/cggevx.f View File

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


+ 4
- 3
lapack-netlib/SRC/cggglm.f View File

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


+ 4
- 3
lapack-netlib/SRC/cgglse.f View File

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


+ 4
- 3
lapack-netlib/SRC/cggqrf.f View File

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


+ 4
- 3
lapack-netlib/SRC/cggrqf.f View File

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


+ 12
- 11
lapack-netlib/SRC/chbev_2stage.f View File

@@ -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
*


+ 5
- 5
lapack-netlib/SRC/chbevd.f View File

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


+ 15
- 14
lapack-netlib/SRC/chbevx_2stage.f View File

@@ -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
*


+ 5
- 4
lapack-netlib/SRC/chbgvd.f View File

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


+ 5
- 5
lapack-netlib/SRC/cheev.f View File

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


+ 13
- 12
lapack-netlib/SRC/cheev_2stage.f View File

@@ -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
*


+ 5
- 5
lapack-netlib/SRC/cheevd.f View File

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


+ 5
- 5
lapack-netlib/SRC/cheevr.f View File

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


+ 5
- 5
lapack-netlib/SRC/cheevx.f View File

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


+ 15
- 14
lapack-netlib/SRC/cheevx_2stage.f View File

@@ -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
*


+ 5
- 4
lapack-netlib/SRC/chegv.f View File

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


+ 12
- 11
lapack-netlib/SRC/chegv_2stage.f View File

@@ -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
*


+ 5
- 4
lapack-netlib/SRC/chegvd.f View File

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


+ 5
- 4
lapack-netlib/SRC/chegvx.f View File

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


+ 5
- 4
lapack-netlib/SRC/chesv.f View File

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


+ 5
- 4
lapack-netlib/SRC/chesv_aa.f View File

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


+ 4
- 3
lapack-netlib/SRC/chesv_aa_2stage.f View File

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


+ 5
- 4
lapack-netlib/SRC/chesv_rk.f View File

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


+ 5
- 4
lapack-netlib/SRC/chesv_rook.f View File

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


+ 5
- 5
lapack-netlib/SRC/chesvx.f View File

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


+ 54
- 53
lapack-netlib/SRC/chetrd_hb2st.F View File

@@ -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

+ 5
- 4
lapack-netlib/SRC/chetrd_he2hb.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/chetrf.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/chetrf_aa.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/chetrf_rk.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/chetrf_rook.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/chetri_3.f View File

@@ -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
*


+ 4
- 3
lapack-netlib/SRC/chetrs_aa.f View File

@@ -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
*


+ 5
- 5
lapack-netlib/SRC/chpevd.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/chpgvd.f View File

@@ -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


+ 3
- 2
lapack-netlib/SRC/chseqr.f View File

@@ -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


+ 7
- 4
lapack-netlib/SRC/clamswlq.f View File

@@ -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


+ 6
- 3
lapack-netlib/SRC/clamtsqr.f View File

@@ -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


+ 7
- 7
lapack-netlib/SRC/claswlq.f View File

@@ -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


+ 6
- 3
lapack-netlib/SRC/clatsqr.f View File

@@ -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


+ 5
- 5
lapack-netlib/SRC/cstedc.f View File

@@ -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
*


+ 4
- 4
lapack-netlib/SRC/cstemr.f View File

@@ -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
*


+ 5
- 4
lapack-netlib/SRC/csysv.f View File

@@ -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
*


+ 5
- 4
lapack-netlib/SRC/csysv_aa.f View File

@@ -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
*


+ 4
- 3
lapack-netlib/SRC/csysv_aa_2stage.f View File

@@ -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
*


+ 5
- 4
lapack-netlib/SRC/csysv_rk.f View File

@@ -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
*


+ 5
- 4
lapack-netlib/SRC/csysv_rook.f View File

@@ -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
*


+ 5
- 5
lapack-netlib/SRC/csysvx.f View File

@@ -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
*


+ 5
- 4
lapack-netlib/SRC/csytrf.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/csytrf_aa.f View File

@@ -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


+ 4
- 3
lapack-netlib/SRC/csytrf_aa_2stage.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/csytrf_rk.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/csytrf_rook.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/csytri_3.f View File

@@ -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
*


+ 4
- 3
lapack-netlib/SRC/csytrs_aa.f View File

@@ -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
*


+ 7
- 3
lapack-netlib/SRC/ctgsen.f View File

@@ -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


+ 7
- 7
lapack-netlib/SRC/ctgsna.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/ctgsyl.f View File

@@ -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
*


+ 6
- 6
lapack-netlib/SRC/ctrevc3.f View File

@@ -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 )
*


+ 5
- 5
lapack-netlib/SRC/ctrsen.f View File

@@ -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
*


+ 5
- 4
lapack-netlib/SRC/ctzrzf.f View File

@@ -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
*


+ 4
- 4
lapack-netlib/SRC/cunbdb.f View File

@@ -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


+ 4
- 4
lapack-netlib/SRC/cunbdb1.f View File

@@ -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


+ 4
- 4
lapack-netlib/SRC/cunbdb2.f View File

@@ -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


+ 4
- 4
lapack-netlib/SRC/cunbdb3.f View File

@@ -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


+ 4
- 4
lapack-netlib/SRC/cunbdb4.f View File

@@ -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


+ 5
- 3
lapack-netlib/SRC/cuncsd.f View File

@@ -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


+ 4
- 3
lapack-netlib/SRC/cuncsd2by1.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/cungbr.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/cunghr.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/cunglq.f View File

@@ -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


+ 4
- 3
lapack-netlib/SRC/cungql.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/cungqr.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/cungrq.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/cungtr.f View File

@@ -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


+ 5
- 4
lapack-netlib/SRC/cunmbr.f View File

@@ -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


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save