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

View File

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

View File

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

View File

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

View File

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

View File

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