Skip to content

Commit c9378ba

Browse files
authored
Apply ROUNDUP_LWORK (Reference-LAPACK PR 904)
1 parent 225036f commit c9378ba

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+334
-317
lines changed

lapack-netlib/SRC/cgees.f

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@
189189
*> \author Univ. of Colorado Denver
190190
*> \author NAG Ltd.
191191
*
192-
*> \ingroup complexGEeigen
192+
*> \ingroup gees
193193
*
194194
* =====================================================================
195195
SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
@@ -230,13 +230,13 @@ SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
230230
* ..
231231
* .. External Subroutines ..
232232
EXTERNAL CCOPY, CGEBAK, CGEBAL, CGEHRD, CHSEQR, CLACPY,
233-
$ CLASCL, CTRSEN, CUNGHR, SLABAD, XERBLA
233+
$ CLASCL, CTRSEN, CUNGHR, XERBLA
234234
* ..
235235
* .. External Functions ..
236236
LOGICAL LSAME
237237
INTEGER ILAENV
238-
REAL CLANGE, SLAMCH
239-
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
238+
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
239+
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
240240
* ..
241241
* .. Intrinsic Functions ..
242242
INTRINSIC MAX, SQRT
@@ -292,7 +292,7 @@ SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
292292
MAXWRK = MAX( MAXWRK, HSWORK )
293293
END IF
294294
END IF
295-
WORK( 1 ) = MAXWRK
295+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
296296
*
297297
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
298298
INFO = -12
@@ -318,7 +318,6 @@ SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
318318
EPS = SLAMCH( 'P' )
319319
SMLNUM = SLAMCH( 'S' )
320320
BIGNUM = ONE / SMLNUM
321-
CALL SLABAD( SMLNUM, BIGNUM )
322321
SMLNUM = SQRT( SMLNUM ) / EPS
323322
BIGNUM = ONE / SMLNUM
324323
*
@@ -413,7 +412,7 @@ SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
413412
CALL CCOPY( N, A, LDA+1, W, 1 )
414413
END IF
415414
*
416-
WORK( 1 ) = MAXWRK
415+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
417416
RETURN
418417
*
419418
* End of CGEES

lapack-netlib/SRC/cgeesx.f

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@
230230
*> \author Univ. of Colorado Denver
231231
*> \author NAG Ltd.
232232
*
233-
*> \ingroup complexGEeigen
233+
*> \ingroup geesx
234234
*
235235
* =====================================================================
236236
SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
@@ -274,13 +274,13 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
274274
* ..
275275
* .. External Subroutines ..
276276
EXTERNAL CCOPY, CGEBAK, CGEBAL, CGEHRD, CHSEQR, CLACPY,
277-
$ CLASCL, CTRSEN, CUNGHR, SLABAD, SLASCL, XERBLA
277+
$ CLASCL, CTRSEN, CUNGHR, SLASCL, XERBLA
278278
* ..
279279
* .. External Functions ..
280280
LOGICAL LSAME
281281
INTEGER ILAENV
282-
REAL CLANGE, SLAMCH
283-
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
282+
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
283+
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
284284
* ..
285285
* .. Intrinsic Functions ..
286286
INTRINSIC MAX, SQRT
@@ -350,7 +350,7 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
350350
IF( .NOT.WANTSN )
351351
$ LWRK = MAX( LWRK, ( N*N )/2 )
352352
END IF
353-
WORK( 1 ) = LWRK
353+
WORK( 1 ) = SROUNDUP_LWORK(LWRK)
354354
*
355355
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
356356
INFO = -15
@@ -376,7 +376,6 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
376376
EPS = SLAMCH( 'P' )
377377
SMLNUM = SLAMCH( 'S' )
378378
BIGNUM = ONE / SMLNUM
379-
CALL SLABAD( SMLNUM, BIGNUM )
380379
SMLNUM = SQRT( SMLNUM ) / EPS
381380
BIGNUM = ONE / SMLNUM
382381
*
@@ -488,7 +487,7 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
488487
END IF
489488
END IF
490489
*
491-
WORK( 1 ) = MAXWRK
490+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
492491
RETURN
493492
*
494493
* End of CGEESX

lapack-netlib/SRC/cgeev.f

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@
172172
*
173173
* @generated from zgeev.f, fortran z -> c, Tue Apr 19 01:47:44 2016
174174
*
175-
*> \ingroup complexGEeigen
175+
*> \ingroup geev
176176
*
177177
* =====================================================================
178178
SUBROUTINE CGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR,
@@ -212,14 +212,15 @@ SUBROUTINE CGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR,
212212
REAL DUM( 1 )
213213
* ..
214214
* .. External Subroutines ..
215-
EXTERNAL SLABAD, XERBLA, CSSCAL, CGEBAK, CGEBAL, CGEHRD,
215+
EXTERNAL XERBLA, CSSCAL, CGEBAK, CGEBAL, CGEHRD,
216216
$ CHSEQR, CLACPY, CLASCL, CSCAL, CTREVC3, CUNGHR
217217
* ..
218218
* .. External Functions ..
219219
LOGICAL LSAME
220220
INTEGER ISAMAX, ILAENV
221-
REAL SLAMCH, SCNRM2, CLANGE
222-
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE
221+
REAL SLAMCH, SCNRM2, CLANGE, SROUNDUP_LWORK
222+
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE,
223+
$ SROUNDUP_LWORK
223224
* ..
224225
* .. Intrinsic Functions ..
225226
INTRINSIC REAL, CMPLX, CONJG, AIMAG, MAX, SQRT
@@ -291,7 +292,7 @@ SUBROUTINE CGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR,
291292
HSWORK = INT( WORK(1) )
292293
MAXWRK = MAX( MAXWRK, HSWORK, MINWRK )
293294
END IF
294-
WORK( 1 ) = MAXWRK
295+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
295296
*
296297
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
297298
INFO = -12
@@ -315,7 +316,6 @@ SUBROUTINE CGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR,
315316
EPS = SLAMCH( 'P' )
316317
SMLNUM = SLAMCH( 'S' )
317318
BIGNUM = ONE / SMLNUM
318-
CALL SLABAD( SMLNUM, BIGNUM )
319319
SMLNUM = SQRT( SMLNUM ) / EPS
320320
BIGNUM = ONE / SMLNUM
321321
*
@@ -493,7 +493,7 @@ SUBROUTINE CGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR,
493493
END IF
494494
END IF
495495
*
496-
WORK( 1 ) = MAXWRK
496+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
497497
RETURN
498498
*
499499
* End of CGEEV

lapack-netlib/SRC/cgeevx.f

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@
279279
*
280280
* @generated from zgeevx.f, fortran z -> c, Tue Apr 19 01:47:44 2016
281281
*
282-
*> \ingroup complexGEeigen
282+
*> \ingroup geevx
283283
*
284284
* =====================================================================
285285
SUBROUTINE CGEEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL,
@@ -323,15 +323,16 @@ SUBROUTINE CGEEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL,
323323
REAL DUM( 1 )
324324
* ..
325325
* .. External Subroutines ..
326-
EXTERNAL SLABAD, SLASCL, XERBLA, CSSCAL, CGEBAK, CGEBAL,
326+
EXTERNAL SLASCL, XERBLA, CSSCAL, CGEBAK, CGEBAL,
327327
$ CGEHRD, CHSEQR, CLACPY, CLASCL, CSCAL, CTREVC3,
328328
$ CTRSNA, CUNGHR
329329
* ..
330330
* .. External Functions ..
331331
LOGICAL LSAME
332332
INTEGER ISAMAX, ILAENV
333-
REAL SLAMCH, SCNRM2, CLANGE
334-
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE
333+
REAL SLAMCH, SCNRM2, CLANGE, SROUNDUP_LWORK
334+
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE,
335+
$ SROUNDUP_LWORK
335336
* ..
336337
* .. Intrinsic Functions ..
337338
INTRINSIC REAL, CMPLX, CONJG, AIMAG, MAX, SQRT
@@ -434,7 +435,7 @@ SUBROUTINE CGEEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL,
434435
END IF
435436
MAXWRK = MAX( MAXWRK, MINWRK )
436437
END IF
437-
WORK( 1 ) = MAXWRK
438+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
438439
*
439440
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
440441
INFO = -20
@@ -458,7 +459,6 @@ SUBROUTINE CGEEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL,
458459
EPS = SLAMCH( 'P' )
459460
SMLNUM = SLAMCH( 'S' )
460461
BIGNUM = ONE / SMLNUM
461-
CALL SLABAD( SMLNUM, BIGNUM )
462462
SMLNUM = SQRT( SMLNUM ) / EPS
463463
BIGNUM = ONE / SMLNUM
464464
*
@@ -657,7 +657,7 @@ SUBROUTINE CGEEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL,
657657
END IF
658658
END IF
659659
*
660-
WORK( 1 ) = MAXWRK
660+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
661661
RETURN
662662
*
663663
* End of CGEEVX

lapack-netlib/SRC/cgehrd.f

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@
120120
*> \author Univ. of Colorado Denver
121121
*> \author NAG Ltd.
122122
*
123-
*> \ingroup complexGEcomputational
123+
*> \ingroup gehrd
124124
*
125125
*> \par Further Details:
126126
* =====================
@@ -201,7 +201,8 @@ SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
201201
* ..
202202
* .. External Functions ..
203203
INTEGER ILAENV
204-
EXTERNAL ILAENV
204+
REAL SROUNDUP_LWORK
205+
EXTERNAL ILAENV, SROUNDUP_LWORK
205206
* ..
206207
* .. Executable Statements ..
207208
*
@@ -227,7 +228,7 @@ SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
227228
*
228229
NB = MIN( NBMAX, ILAENV( 1, 'CGEHRD', ' ', N, ILO, IHI, -1 ) )
229230
LWKOPT = N*NB + TSIZE
230-
WORK( 1 ) = LWKOPT
231+
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
231232
END IF
232233
*
233234
IF( INFO.NE.0 ) THEN
@@ -344,7 +345,7 @@ SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
344345
* Use unblocked code to reduce the rest of the matrix
345346
*
346347
CALL CGEHD2( N, I, IHI, A, LDA, TAU, WORK, IINFO )
347-
WORK( 1 ) = LWKOPT
348+
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
348349
*
349350
RETURN
350351
*

lapack-netlib/SRC/cgelq.f

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,8 @@
166166
*> the LQ factorization.
167167
*> \endverbatim
168168
*>
169+
*> \ingroup gelq
170+
*>
169171
* =====================================================================
170172
SUBROUTINE CGELQ( M, N, A, LDA, T, TSIZE, WORK, LWORK,
171173
$ INFO )
@@ -190,7 +192,8 @@ SUBROUTINE CGELQ( M, N, A, LDA, T, TSIZE, WORK, LWORK,
190192
* ..
191193
* .. External Functions ..
192194
LOGICAL LSAME
193-
EXTERNAL LSAME
195+
REAL SROUNDUP_LWORK
196+
EXTERNAL LSAME, SROUNDUP_LWORK
194197
* ..
195198
* .. External Subroutines ..
196199
EXTERNAL CGELQT, CLASWLQ, XERBLA
@@ -292,9 +295,9 @@ SUBROUTINE CGELQ( M, N, A, LDA, T, TSIZE, WORK, LWORK,
292295
T( 2 ) = MB
293296
T( 3 ) = NB
294297
IF( MINW ) THEN
295-
WORK( 1 ) = LWMIN
298+
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
296299
ELSE
297-
WORK( 1 ) = LWREQ
300+
WORK( 1 ) = SROUNDUP_LWORK(LWREQ)
298301
END IF
299302
END IF
300303
IF( INFO.NE.0 ) THEN
@@ -319,7 +322,7 @@ SUBROUTINE CGELQ( M, N, A, LDA, T, TSIZE, WORK, LWORK,
319322
$ LWORK, INFO )
320323
END IF
321324
*
322-
WORK( 1 ) = LWREQ
325+
WORK( 1 ) = SROUNDUP_LWORK(LWREQ)
323326
*
324327
RETURN
325328
*

lapack-netlib/SRC/cgelqf.f

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@
118118
*> \author Univ. of Colorado Denver
119119
*> \author NAG Ltd.
120120
*
121-
*> \ingroup complexGEcomputational
121+
*> \ingroup gelqf
122122
*
123123
*> \par Further Details:
124124
* =====================
@@ -167,7 +167,8 @@ SUBROUTINE CGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
167167
* ..
168168
* .. External Functions ..
169169
INTEGER ILAENV
170-
EXTERNAL ILAENV
170+
REAL SROUNDUP_LWORK
171+
EXTERNAL ILAENV, SROUNDUP_LWORK
171172
* ..
172173
* .. Executable Statements ..
173174
*
@@ -176,7 +177,7 @@ SUBROUTINE CGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
176177
INFO = 0
177178
NB = ILAENV( 1, 'CGELQF', ' ', M, N, -1, -1 )
178179
LWKOPT = M*NB
179-
WORK( 1 ) = LWKOPT
180+
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
180181
LQUERY = ( LWORK.EQ.-1 )
181182
IF( M.LT.0 ) THEN
182183
INFO = -1
@@ -266,7 +267,7 @@ SUBROUTINE CGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
266267
$ CALL CGELQ2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), WORK,
267268
$ IINFO )
268269
*
269-
WORK( 1 ) = IWS
270+
WORK( 1 ) = SROUNDUP_LWORK(IWS)
270271
RETURN
271272
*
272273
* End of CGELQF

lapack-netlib/SRC/cgelsd.f

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@
204204
*> \author Univ. of Colorado Denver
205205
*> \author NAG Ltd.
206206
*
207-
*> \ingroup complexGEsolve
207+
*> \ingroup gelsd
208208
*
209209
*> \par Contributors:
210210
* ==================
@@ -249,13 +249,13 @@ SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
249249
* .. External Subroutines ..
250250
EXTERNAL CGEBRD, CGELQF, CGEQRF, CLACPY,
251251
$ CLALSD, CLASCL, CLASET, CUNMBR,
252-
$ CUNMLQ, CUNMQR, SLABAD, SLASCL,
252+
$ CUNMLQ, CUNMQR, SLASCL,
253253
$ SLASET, XERBLA
254254
* ..
255255
* .. External Functions ..
256256
INTEGER ILAENV
257-
REAL CLANGE, SLAMCH
258-
EXTERNAL CLANGE, SLAMCH, ILAENV
257+
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
258+
EXTERNAL CLANGE, SLAMCH, ILAENV, SROUNDUP_LWORK
259259
* ..
260260
* .. Intrinsic Functions ..
261261
INTRINSIC INT, LOG, MAX, MIN, REAL
@@ -367,7 +367,7 @@ SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
367367
END IF
368368
END IF
369369
MINWRK = MIN( MINWRK, MAXWRK )
370-
WORK( 1 ) = MAXWRK
370+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
371371
IWORK( 1 ) = LIWORK
372372
RWORK( 1 ) = LRWORK
373373
*
@@ -396,7 +396,6 @@ SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
396396
SFMIN = SLAMCH( 'S' )
397397
SMLNUM = SFMIN / EPS
398398
BIGNUM = ONE / SMLNUM
399-
CALL SLABAD( SMLNUM, BIGNUM )
400399
*
401400
* Scale A if max entry outside range [SMLNUM,BIGNUM].
402401
*
@@ -647,7 +646,7 @@ SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
647646
END IF
648647
*
649648
10 CONTINUE
650-
WORK( 1 ) = MAXWRK
649+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
651650
IWORK( 1 ) = LIWORK
652651
RWORK( 1 ) = LRWORK
653652
RETURN

0 commit comments

Comments
 (0)