Skip to content

Commit 7abe213

Browse files
authored
Merge pull request #177 from zerothi/ilaenv2stage
Added an ILAENV2STAGE, fixed ILAENV in [CZ]HEEVR_2STAGE
2 parents afd02ae + bc1d5ff commit 7abe213

46 files changed

Lines changed: 558 additions & 222 deletions

Some content is hidden

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

INSTALL/make.inc.gfortran

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ CFLAGS = -O3
2020
# should not compile LAPACK with flags such as -ffpe-trap=overflow.
2121
#
2222
FORTRAN = gfortran
23-
OPTS = -O2 -frecursive
23+
OPTS = -O2
2424
DRVOPTS = $(OPTS)
25-
NOOPT = -O0 -frecursive
25+
NOOPT = -O0
2626

2727
# Define LOADER and LOADOPTS to refer to the loader and desired
2828
# load options for your machine.

INSTALL/make.inc.gfortran_debug

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ CFLAGS = -g
1919
# and handle these quantities appropriately. As a consequence, one
2020
# should not compile LAPACK with flags such as -ffpe-trap=overflow.
2121
#
22-
FORTRAN = gfortran -fimplicit-none -g -frecursive
22+
FORTRAN = gfortran -fimplicit-none -g
2323
OPTS =
2424
DRVOPTS = $(OPTS)
25-
NOOPT = -g -O0 -frecursive
25+
NOOPT = -g -O0
2626

2727
# Define LOADER and LOADOPTS to refer to the loader and desired
2828
# load options for your machine.

SRC/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
#
3636
#######################################################################
3737

38-
set(ALLAUX ilaenv.f ieeeck.f lsamen.f iparmq.f iparam2stage.F
38+
set(ALLAUX ilaenv.f ilaenv2stage.f ieeeck.f lsamen.f iparmq.f iparam2stage.F
3939
ilaprec.f ilatrans.f ilauplo.f iladiag.f chla_transtype.f
4040
../INSTALL/ilaver.f ../INSTALL/lsame.f xerbla.f xerbla_array.f
4141
../INSTALL/slamch.f)

SRC/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ include ../make.inc
5656
#
5757
#######################################################################
5858

59-
ALLAUX = ilaenv.o ieeeck.o lsamen.o xerbla.o xerbla_array.o iparmq.o iparam2stage.o \
59+
ALLAUX = ilaenv.o ilaenv2stage.o ieeeck.o lsamen.o xerbla.o xerbla_array.o \
60+
iparmq.o iparam2stage.o \
6061
ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \
6162
../INSTALL/ilaver.o ../INSTALL/lsame.o ../INSTALL/slamch.o
6263

SRC/chbev_2stage.f

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,9 @@ SUBROUTINE CHBEV_2STAGE( JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ,
242242
* ..
243243
* .. External Functions ..
244244
LOGICAL LSAME
245-
INTEGER ILAENV
245+
INTEGER ILAENV2STAGE
246246
REAL SLAMCH, CLANHB
247-
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV
247+
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV2STAGE
248248
* ..
249249
* .. External Subroutines ..
250250
EXTERNAL SSCAL, SSTERF, XERBLA, CLASCL, CSTEQR,
@@ -281,9 +281,12 @@ SUBROUTINE CHBEV_2STAGE( JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ,
281281
LWMIN = 1
282282
WORK( 1 ) = LWMIN
283283
ELSE
284-
IB = ILAENV( 18, 'CHETRD_HB2ST', JOBZ, N, KD, -1, -1 )
285-
LHTRD = ILAENV( 19, 'CHETRD_HB2ST', JOBZ, N, KD, IB, -1 )
286-
LWTRD = ILAENV( 20, 'CHETRD_HB2ST', JOBZ, N, KD, IB, -1 )
284+
IB = ILAENV2STAGE( 2, 'CHETRD_HB2ST', JOBZ,
285+
$ N, KD, -1, -1 )
286+
LHTRD = ILAENV2STAGE( 3, 'CHETRD_HB2ST', JOBZ,
287+
$ N, KD, IB, -1 )
288+
LWTRD = ILAENV2STAGE( 4, 'CHETRD_HB2ST', JOBZ,
289+
$ N, KD, IB, -1 )
287290
LWMIN = LHTRD + LWTRD
288291
WORK( 1 ) = LWMIN
289292
ENDIF

SRC/chbevd_2stage.f

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -296,9 +296,9 @@ SUBROUTINE CHBEVD_2STAGE( JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ,
296296
* ..
297297
* .. External Functions ..
298298
LOGICAL LSAME
299-
INTEGER ILAENV
299+
INTEGER ILAENV2STAGE
300300
REAL SLAMCH, CLANHB
301-
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV
301+
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV2STAGE
302302
* ..
303303
* .. External Subroutines ..
304304
EXTERNAL SSCAL, SSTERF, XERBLA, CGEMM, CLACPY,
@@ -321,9 +321,9 @@ SUBROUTINE CHBEVD_2STAGE( JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ,
321321
LRWMIN = 1
322322
LIWMIN = 1
323323
ELSE
324-
IB = ILAENV( 18, 'CHETRD_HB2ST', JOBZ, N, KD, -1, -1 )
325-
LHTRD = ILAENV( 19, 'CHETRD_HB2ST', JOBZ, N, KD, IB, -1 )
326-
LWTRD = ILAENV( 20, 'CHETRD_HB2ST', JOBZ, N, KD, IB, -1 )
324+
IB = ILAENV2STAGE( 2, 'CHETRD_HB2ST', JOBZ, N, KD, -1, -1 )
325+
LHTRD = ILAENV2STAGE( 3, 'CHETRD_HB2ST', JOBZ, N, KD, IB, -1 )
326+
LWTRD = ILAENV2STAGE( 4, 'CHETRD_HB2ST', JOBZ, N, KD, IB, -1 )
327327
IF( WANTZ ) THEN
328328
LWMIN = 2*N**2
329329
LRWMIN = 1 + 5*N + 2*N**2

SRC/chbevx_2stage.f

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -369,9 +369,9 @@ SUBROUTINE CHBEVX_2STAGE( JOBZ, RANGE, UPLO, N, KD, AB, LDAB,
369369
* ..
370370
* .. External Functions ..
371371
LOGICAL LSAME
372-
INTEGER ILAENV
372+
INTEGER ILAENV2STAGE
373373
REAL SLAMCH, CLANHB
374-
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV
374+
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV2STAGE
375375
* ..
376376
* .. External Subroutines ..
377377
EXTERNAL SCOPY, SSCAL, SSTEBZ, SSTERF, XERBLA, CCOPY,
@@ -429,9 +429,12 @@ SUBROUTINE CHBEVX_2STAGE( JOBZ, RANGE, UPLO, N, KD, AB, LDAB,
429429
LWMIN = 1
430430
WORK( 1 ) = LWMIN
431431
ELSE
432-
IB = ILAENV( 18, 'CHETRD_HB2ST', JOBZ, N, KD, -1, -1 )
433-
LHTRD = ILAENV( 19, 'CHETRD_HB2ST', JOBZ, N, KD, IB, -1 )
434-
LWTRD = ILAENV( 20, 'CHETRD_HB2ST', JOBZ, N, KD, IB, -1 )
432+
IB = ILAENV2STAGE( 2, 'CHETRD_HB2ST', JOBZ,
433+
$ N, KD, -1, -1 )
434+
LHTRD = ILAENV2STAGE( 3, 'CHETRD_HB2ST', JOBZ,
435+
$ N, KD, IB, -1 )
436+
LWTRD = ILAENV2STAGE( 4, 'CHETRD_HB2ST', JOBZ,
437+
$ N, KD, IB, -1 )
435438
LWMIN = LHTRD + LWTRD
436439
WORK( 1 ) = LWMIN
437440
ENDIF

SRC/cheev_2stage.f

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -222,9 +222,9 @@ SUBROUTINE CHEEV_2STAGE( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK,
222222
* ..
223223
* .. External Functions ..
224224
LOGICAL LSAME
225-
INTEGER ILAENV
225+
INTEGER ILAENV2STAGE
226226
REAL SLAMCH, CLANHE
227-
EXTERNAL LSAME, ILAENV, SLAMCH, CLANHE
227+
EXTERNAL LSAME, SLAMCH, CLANHE, ILAENV2STAGE
228228
* ..
229229
* .. External Subroutines ..
230230
EXTERNAL SSCAL, SSTERF, XERBLA, CLASCL, CSTEQR,
@@ -253,10 +253,10 @@ SUBROUTINE CHEEV_2STAGE( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK,
253253
END IF
254254
*
255255
IF( INFO.EQ.0 ) THEN
256-
KD = ILAENV( 17, 'CHETRD_2STAGE', JOBZ, N, -1, -1, -1 )
257-
IB = ILAENV( 18, 'CHETRD_2STAGE', JOBZ, N, KD, -1, -1 )
258-
LHTRD = ILAENV( 19, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
259-
LWTRD = ILAENV( 20, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
256+
KD = ILAENV2STAGE( 1, 'CHETRD_2STAGE', JOBZ, N, -1, -1, -1 )
257+
IB = ILAENV2STAGE( 2, 'CHETRD_2STAGE', JOBZ, N, KD, -1, -1 )
258+
LHTRD = ILAENV2STAGE( 3, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
259+
LWTRD = ILAENV2STAGE( 4, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
260260
LWMIN = N + LHTRD + LWTRD
261261
WORK( 1 ) = LWMIN
262262
*

SRC/cheevd_2stage.f

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -291,9 +291,9 @@ SUBROUTINE CHEEVD_2STAGE( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK,
291291
* ..
292292
* .. External Functions ..
293293
LOGICAL LSAME
294-
INTEGER ILAENV
294+
INTEGER ILAENV2STAGE
295295
REAL SLAMCH, CLANHE
296-
EXTERNAL LSAME, ILAENV, SLAMCH, CLANHE
296+
EXTERNAL LSAME, SLAMCH, CLANHE, ILAENV2STAGE
297297
* ..
298298
* .. External Subroutines ..
299299
EXTERNAL SSCAL, SSTERF, XERBLA, CLACPY, CLASCL,
@@ -327,10 +327,14 @@ SUBROUTINE CHEEVD_2STAGE( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK,
327327
LRWMIN = 1
328328
LIWMIN = 1
329329
ELSE
330-
KD = ILAENV( 17, 'CHETRD_2STAGE', JOBZ, N, -1, -1, -1 )
331-
IB = ILAENV( 18, 'CHETRD_2STAGE', JOBZ, N, KD, -1, -1 )
332-
LHTRD = ILAENV( 19, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
333-
LWTRD = ILAENV( 20, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
330+
KD = ILAENV2STAGE( 1, 'CHETRD_2STAGE', JOBZ,
331+
$ N, -1, -1, -1 )
332+
IB = ILAENV2STAGE( 2, 'CHETRD_2STAGE', JOBZ,
333+
$ N, KD, -1, -1 )
334+
LHTRD = ILAENV2STAGE( 3, 'CHETRD_2STAGE', JOBZ,
335+
$ N, KD, IB, -1 )
336+
LWTRD = ILAENV2STAGE( 4, 'CHETRD_2STAGE', JOBZ,
337+
$ N, KD, IB, -1 )
334338
IF( WANTZ ) THEN
335339
LWMIN = 2*N + N*N
336340
LRWMIN = 1 + 5*N + 2*N**2

SRC/cheevr_2stage.f

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -445,9 +445,9 @@ SUBROUTINE CHEEVR_2STAGE( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU,
445445
* ..
446446
* .. External Functions ..
447447
LOGICAL LSAME
448-
INTEGER ILAENV
448+
INTEGER ILAENV, ILAENV2STAGE
449449
REAL SLAMCH, CLANSY
450-
EXTERNAL LSAME, ILAENV, SLAMCH, CLANSY
450+
EXTERNAL LSAME, SLAMCH, CLANSY, ILAENV, ILAENV2STAGE
451451
* ..
452452
* .. External Subroutines ..
453453
EXTERNAL SCOPY, SSCAL, SSTEBZ, SSTERF, XERBLA, CSSCAL,
@@ -471,10 +471,10 @@ SUBROUTINE CHEEVR_2STAGE( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU,
471471
LQUERY = ( ( LWORK.EQ.-1 ) .OR. ( LRWORK.EQ.-1 ) .OR.
472472
$ ( LIWORK.EQ.-1 ) )
473473
*
474-
KD = ILAENV( 17, 'DSYTRD_2STAGE', JOBZ, N, -1, -1, -1 )
475-
IB = ILAENV( 18, 'DSYTRD_2STAGE', JOBZ, N, KD, -1, -1 )
476-
LHTRD = ILAENV( 19, 'DSYTRD_2STAGE', JOBZ, N, KD, IB, -1 )
477-
LWTRD = ILAENV( 20, 'DSYTRD_2STAGE', JOBZ, N, KD, IB, -1 )
474+
KD = ILAENV2STAGE( 1, 'CHETRD_2STAGE', JOBZ, N, -1, -1, -1 )
475+
IB = ILAENV2STAGE( 2, 'CHETRD_2STAGE', JOBZ, N, KD, -1, -1 )
476+
LHTRD = ILAENV2STAGE( 3, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
477+
LWTRD = ILAENV2STAGE( 4, 'CHETRD_2STAGE', JOBZ, N, KD, IB, -1 )
478478
LWMIN = N + LHTRD + LWTRD
479479
LRWMIN = MAX( 1, 24*N )
480480
LIWMIN = MAX( 1, 10*N )

0 commit comments

Comments
 (0)