Merge pull request #3232 from martin-frbg/lapack553

Reduce stack size requirements in the LAPACK LIN tests (LAPACK PR 553)
This commit is contained in:
Martin Kroeker 2021-05-14 23:28:45 +02:00 committed by GitHub
commit 164551d5a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 103 additions and 37 deletions

View File

@ -6,7 +6,7 @@ set(SCLNTST slaord.f)
set(DZLNTST dlaord.f)
set(SLINTST schkaa.f
set(SLINTST schkaa.F
schkeq.f schkgb.f schkge.f schkgt.f
schklq.f schkpb.f schkpo.f schkps.f schkpp.f
schkpt.f schkq3.f schkql.f schkqr.f schkrq.f
@ -51,7 +51,7 @@ else()
serrvx.f serrge.f serrsy.f serrpo.f)
endif()
set(CLINTST cchkaa.f
set(CLINTST cchkaa.F
cchkeq.f cchkgb.f cchkge.f cchkgt.f
cchkhe.f cchkhe_rook.f cchkhe_rk.f
cchkhe_aa.f cchkhe_aa_2stage.f
@ -107,7 +107,7 @@ else()
cerrvx.f cerrge.f cerrhe.f cerrsy.f cerrpo.f)
endif()
set(DLINTST dchkaa.f
set(DLINTST dchkaa.F
dchkeq.f dchkgb.f dchkge.f dchkgt.f
dchklq.f dchkpb.f dchkpo.f dchkps.f dchkpp.f
dchkpt.f dchkq3.f dchkql.f dchkqr.f dchkrq.f
@ -153,7 +153,7 @@ else()
derrvx.f derrge.f derrsy.f derrpo.f)
endif()
set(ZLINTST zchkaa.f
set(ZLINTST zchkaa.F
zchkeq.f zchkgb.f zchkge.f zchkgt.f
zchkhe.f zchkhe_rook.f zchkhe_rk.f
zchkhe_aa.f zchkhe_aa_2stage.f

View File

@ -317,13 +317,13 @@ cleanobj:
cleanexe:
rm -f xlintst*
schkaa.o: schkaa.f
schkaa.o: schkaa.F
$(FC) $(FFLAGS_DRV) -c -o $@ $<
dchkaa.o: dchkaa.f
dchkaa.o: dchkaa.F
$(FC) $(FFLAGS_DRV) -c -o $@ $<
cchkaa.o: cchkaa.f
cchkaa.o: cchkaa.F
$(FC) $(FFLAGS_DRV) -c -o $@ $<
zchkaa.o: zchkaa.f
zchkaa.o: zchkaa.F
$(FC) $(FFLAGS_DRV) -c -o $@ $<
.NOTPARALLEL:

View File

@ -110,17 +110,14 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \date November 2019
*
*> \ingroup complex_lin
*
* =====================================================================
PROGRAM CCHKAA
*
* -- LAPACK test routine (version 3.9.0) --
* -- LAPACK test routine --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* November 2017
*
* =====================================================================
*
@ -156,9 +153,13 @@
$ NBVAL( MAXIN ), NBVAL2( MAXIN ),
$ NSVAL( MAXIN ), NVAL( MAXIN ), NXVAL( MAXIN ),
$ RANKVAL( MAXIN ), PIV( NMAX )
REAL RWORK( 150*NMAX+2*MAXRHS ), S( 2*NMAX )
COMPLEX A( ( KDMAX+1 )*NMAX, 7 ), B( NMAX*MAXRHS, 4 ),
$ E( NMAX ), WORK( NMAX, NMAX+MAXRHS+10 )
REAL S( 2*NMAX )
COMPLEX E( NMAX )
* ..
* .. Allocatable Arrays ..
INTEGER AllocateStatus
REAL, DIMENSION(:), ALLOCATABLE :: RWORK
COMPLEX, DIMENSION(:,:), ALLOCATABLE :: A, B, WORK
* ..
* .. External Functions ..
LOGICAL LSAME, LSAMEN
@ -194,6 +195,17 @@
* .. Data statements ..
DATA THREQ / 2.0 / , INTSTR / '0123456789' /
* ..
* .. Allocate memory dynamically ..
*
ALLOCATE ( A( ( KDMAX+1 )*NMAX, 7 ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE ( B( NMAX*MAXRHS, 4 ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE ( WORK( NMAX, NMAX+MAXRHS+10 ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE ( RWORK( 150*NMAX+2*MAXRHS ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
* ..
* .. Executable Statements ..
*
S1 = SECOND( )
@ -1196,6 +1208,11 @@
S2 = SECOND( )
WRITE( NOUT, FMT = 9998 )
WRITE( NOUT, FMT = 9997 )S2 - S1
*
DEALLOCATE (A, STAT = AllocateStatus)
DEALLOCATE (B, STAT = AllocateStatus)
DEALLOCATE (WORK, STAT = AllocateStatus)
DEALLOCATE (RWORK, STAT = AllocateStatus)
*
9999 FORMAT( / ' Execution not attempted due to input errors' )
9998 FORMAT( / ' End of tests' )

View File

@ -106,17 +106,14 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \date November 2019
*
*> \ingroup double_lin
*
* =====================================================================
PROGRAM DCHKAA
*
* -- LAPACK test routine (version 3.9.0) --
* -- LAPACK test routine --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* Novemebr 2019
*
* =====================================================================
*
@ -152,9 +149,12 @@
$ NBVAL( MAXIN ), NBVAL2( MAXIN ),
$ NSVAL( MAXIN ), NVAL( MAXIN ), NXVAL( MAXIN ),
$ RANKVAL( MAXIN ), PIV( NMAX )
DOUBLE PRECISION A( ( KDMAX+1 )*NMAX, 7 ), B( NMAX*MAXRHS, 4 ),
$ E( NMAX ), RWORK( 5*NMAX+2*MAXRHS ),
$ S( 2*NMAX ), WORK( NMAX, 3*NMAX+MAXRHS+30 )
DOUBLE PRECISION E( NMAX ), S( 2*NMAX )
* ..
* .. Allocatable Arrays ..
INTEGER AllocateStatus
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: RWORK
DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: A, B, WORK
* ..
* .. External Functions ..
LOGICAL LSAME, LSAMEN
@ -188,6 +188,18 @@
* .. Data statements ..
DATA THREQ / 2.0D0 / , INTSTR / '0123456789' /
* ..
* ..
* .. Allocate memory dynamically ..
*
ALLOCATE ( A( ( KDMAX+1 )*NMAX, 7 ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE ( B( NMAX*MAXRHS, 4 ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE ( WORK( NMAX, 3*NMAX+MAXRHS+30 ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE ( RWORK( 5*NMAX+2*MAXRHS ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
*
* .. Executable Statements ..
*
S1 = DSECND( )
@ -677,7 +689,7 @@
*
* SK: symmetric indefinite matrices,
* with bounded Bunch-Kaufman (rook) pivoting algorithm,
* differnet matrix storage format than SR path version.
* different matrix storage format than SR path version.
*
NTYPES = 10
CALL ALAREQ( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT )
@ -1039,6 +1051,11 @@
S2 = DSECND( )
WRITE( NOUT, FMT = 9998 )
WRITE( NOUT, FMT = 9997 )S2 - S1
*
DEALLOCATE (A, STAT = AllocateStatus)
DEALLOCATE (B, STAT = AllocateStatus)
DEALLOCATE (WORK, STAT = AllocateStatus)
DEALLOCATE (RWORK, STAT = AllocateStatus)
*
9999 FORMAT( / ' Execution not attempted due to input errors' )
9998 FORMAT( / ' End of tests' )

View File

@ -104,17 +104,14 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \date November 2019
*
*> \ingroup single_lin
*
* =====================================================================
PROGRAM SCHKAA
*
* -- LAPACK test routine (version 3.9.0) --
* -- LAPACK test routine --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* November 2019
*
* =====================================================================
*
@ -150,9 +147,12 @@
$ NBVAL( MAXIN ), NBVAL2( MAXIN ),
$ NSVAL( MAXIN ), NVAL( MAXIN ), NXVAL( MAXIN ),
$ RANKVAL( MAXIN ), PIV( NMAX )
REAL A( ( KDMAX+1 )*NMAX, 7 ), B( NMAX*MAXRHS, 4 ),
$ E( NMAX ), RWORK( 5*NMAX+2*MAXRHS ),
$ S( 2*NMAX ), WORK( NMAX, NMAX+MAXRHS+30 )
REAL E( NMAX ), S( 2*NMAX )
* ..
* .. Allocatable Arrays ..
INTEGER AllocateStatus
REAL, DIMENSION(:), ALLOCATABLE :: RWORK
REAL, DIMENSION(:,:), ALLOCATABLE :: A, B, WORK
* ..
* .. External Functions ..
LOGICAL LSAME, LSAMEN
@ -186,6 +186,17 @@
* .. Data statements ..
DATA THREQ / 2.0E0 / , INTSTR / '0123456789' /
* ..
* .. Allocate memory dynamically ..
*
ALLOCATE (A( ( KDMAX+1 )*NMAX, 7 ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE (B( NMAX*MAXRHS, 4 ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE (WORK( NMAX, NMAX+MAXRHS+30 ) , STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE (RWORK( 5*NMAX+2*MAXRHS ), STAT = AllocateStatus )
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
* ..
* .. Executable Statements ..
*
S1 = SECOND( )
@ -1034,6 +1045,11 @@
S2 = SECOND( )
WRITE( NOUT, FMT = 9998 )
WRITE( NOUT, FMT = 9997 )S2 - S1
*
DEALLOCATE (A, STAT = AllocateStatus)
DEALLOCATE (B, STAT = AllocateStatus)
DEALLOCATE (WORK, STAT = AllocateStatus)
DEALLOCATE (RWORK, STAT = AllocateStatus)
*
9999 FORMAT( / ' Execution not attempted due to input errors' )
9998 FORMAT( / ' End of tests' )

View File

@ -110,17 +110,14 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \date November 2019
*
*> \ingroup complex16_lin
*
* =====================================================================
PROGRAM ZCHKAA
*
* -- LAPACK test routine (version 3.9.0) --
* -- LAPACK test routine --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
* November 2019
*
* =====================================================================
*
@ -156,9 +153,13 @@
$ NBVAL( MAXIN ), NBVAL2( MAXIN ),
$ NSVAL( MAXIN ), NVAL( MAXIN ), NXVAL( MAXIN ),
$ RANKVAL( MAXIN ), PIV( NMAX )
DOUBLE PRECISION RWORK( 150*NMAX+2*MAXRHS ), S( 2*NMAX )
COMPLEX*16 A( ( KDMAX+1 )*NMAX, 7 ), B( NMAX*MAXRHS, 4 ),
$ E( NMAX ), WORK( NMAX, NMAX+MAXRHS+10 )
DOUBLE PRECISION S( 2*NMAX )
COMPLEX*16 E( NMAX )
*
* .. Allocatable Arrays ..
INTEGER AllocateStatus
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: RWORK
COMPLEX*16, DIMENSION(:,:), ALLOCATABLE:: A, B, WORK
* ..
* .. External Functions ..
LOGICAL LSAME, LSAMEN
@ -194,6 +195,16 @@
* ..
* .. Data statements ..
DATA THREQ / 2.0D0 / , INTSTR / '0123456789' /
*
* .. Allocate memory dynamically ..
ALLOCATE (RWORK( 150*NMAX+2*MAXRHS ), STAT = AllocateStatus)
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE (A ((KDMAX+1) * NMAX, 7), STAT = AllocateStatus)
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE (B (NMAX * MAXRHS, 4), STAT = AllocateStatus)
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
ALLOCATE (WORK (NMAX, NMAX+MAXRHS+10), STAT = AllocateStatus)
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
* ..
* .. Executable Statements ..
*
@ -1231,6 +1242,11 @@
S2 = DSECND( )
WRITE( NOUT, FMT = 9998 )
WRITE( NOUT, FMT = 9997 )S2 - S1
*
DEALLOCATE (A, STAT = AllocateStatus)
DEALLOCATE (B, STAT = AllocateStatus)
DEALLOCATE (RWORK, STAT = AllocateStatus)
DEALLOCATE (WORK, STAT = AllocateStatus)
*
9999 FORMAT( / ' Execution not attempted due to input errors' )
9998 FORMAT( / ' End of tests' )