From 0c38ebd5990f7c44529cabbbadf7806eb6afa0c3 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Thu, 18 May 2023 17:31:55 +0200 Subject: [PATCH 1/2] Extend tests for error exit sysv/sytd2/gehd2 (Reference-LAPACK PR 795) --- lapack-netlib/TESTING/EIG/cerrhs.f | 70 +++++++++++++++++++++++++++-- lapack-netlib/TESTING/EIG/cerrst.f | 18 +++++++- lapack-netlib/TESTING/EIG/derrhs.f | 72 ++++++++++++++++++++++++++++-- lapack-netlib/TESTING/EIG/derrst.f | 24 +++++++--- lapack-netlib/TESTING/EIG/serrhs.f | 72 ++++++++++++++++++++++++++++-- lapack-netlib/TESTING/EIG/serrst.f | 18 +++++++- lapack-netlib/TESTING/EIG/zerrhs.f | 70 +++++++++++++++++++++++++++-- lapack-netlib/TESTING/EIG/zerrst.f | 18 +++++++- 8 files changed, 337 insertions(+), 25 deletions(-) diff --git a/lapack-netlib/TESTING/EIG/cerrhs.f b/lapack-netlib/TESTING/EIG/cerrhs.f index 0568a6d78..2dd86b8c9 100644 --- a/lapack-netlib/TESTING/EIG/cerrhs.f +++ b/lapack-netlib/TESTING/EIG/cerrhs.f @@ -21,8 +21,8 @@ *> *> \verbatim *> -*> CERRHS tests the error exits for CGEBAK, CGEBAL, CGEHRD, CUNGHR, -*> CUNMHR, CHSEQR, CHSEIN, and CTREVC. +*> CERRHS tests the error exits for CGEBAK, CGEBAL, CGEHRD, CGEHD2, +*> CUNGHR, CUNMHR, CHSEQR, CHSEIN, CTREVC, and CTREVC3. *> \endverbatim * * Arguments: @@ -86,7 +86,7 @@ * .. * .. External Subroutines .. EXTERNAL CHKXER, CGEBAK, CGEBAL, CGEHRD, CHSEIN, CHSEQR, - $ CUNGHR, CUNMHR, CTREVC + $ CUNGHR, CUNMHR, CTREVC, CTREVC3, CGEHD2 * .. * .. Intrinsic Functions .. INTRINSIC REAL @@ -193,6 +193,29 @@ CALL CHKXER( 'CGEHRD', INFOT, NOUT, LERR, OK ) NT = NT + 7 * +* CGEHD2 +* + SRNAMT = 'CGEHD2' + INFOT = 1 + CALL CGEHD2( -1, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'CGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL CGEHD2( 0, 0, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'CGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL CGEHD2( 0, 2, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'CGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL CGEHD2( 1, 1, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'CGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL CGEHD2( 0, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'CGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL CGEHD2( 2, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'CGEHD2', INFOT, NOUT, LERR, OK ) + NT = NT + 6 +* * CUNGHR * SRNAMT = 'CUNGHR' @@ -398,6 +421,47 @@ $ RW, INFO ) CALL CHKXER( 'CTREVC', INFOT, NOUT, LERR, OK ) NT = NT + 7 +* +* CTREVC3 +* + SRNAMT = 'CTREVC3' + INFOT = 1 + CALL CTREVC3( '/', 'A', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, RW, 1, INFO ) + CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL CTREVC3( 'L', '/', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, RW, 1, INFO ) + CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL CTREVC3( 'L', 'A', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, RW, 1, INFO ) + CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 6 + CALL CTREVC3( 'L', 'A', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W, + $ LW, RW, 2, INFO ) + CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL CTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, + $ LW, RW, 2, INFO ) + CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL CTREVC3( 'R', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, + $ LW, RW, 2, INFO ) + CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 11 + CALL CTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W, + $ LW, RW, 2, INFO ) + CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 14 + CALL CTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W, + $ 2, RW, 2, INFO ) + CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 16 + CALL CTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W, + $ LW, RW, 1, INFO ) + CALL CHKXER( 'CTREVC3', INFOT, NOUT, LERR, OK ) + NT = NT + 9 END IF * * Print a summary line. diff --git a/lapack-netlib/TESTING/EIG/cerrst.f b/lapack-netlib/TESTING/EIG/cerrst.f index 18b5cad36..ba97afbe5 100644 --- a/lapack-netlib/TESTING/EIG/cerrst.f +++ b/lapack-netlib/TESTING/EIG/cerrst.f @@ -21,7 +21,7 @@ *> *> \verbatim *> -*> CERRST tests the error exits for CHETRD, CUNGTR, CUNMTR, CHPTRD, +*> CERRST tests the error exits for CHETRD, CHETD2, CUNGTR, CUNMTR, CHPTRD, *> CUNGTR, CUPMTR, CSTEQR, CSTEIN, CPTEQR, CHBTRD, *> CHEEV, CHEEVX, CHEEVD, CHBEV, CHBEVX, CHBEVD, *> CHPEV, CHPEVX, CHPEVD, and CSTEDC. @@ -94,7 +94,7 @@ EXTERNAL CHBEV, CHBEVD, CHBEVX, CHBTRD, CHEEV, CHEEVD, $ CHEEVR, CHEEVX, CHETRD, CHKXER, CHPEV, CHPEVD, $ CHPEVX, CHPTRD, CPTEQR, CSTEDC, CSTEIN, CSTEQR, - $ CUNGTR, CUNMTR, CUPGTR, CUPMTR, + $ CUNGTR, CUNMTR, CUPGTR, CUPMTR, CHETD2, $ CHEEVD_2STAGE, CHEEVR_2STAGE, CHEEVX_2STAGE, $ CHEEV_2STAGE, CHBEV_2STAGE, CHBEVD_2STAGE, $ CHBEVX_2STAGE, CHETRD_2STAGE, CHETRD_HE2HB, @@ -156,6 +156,20 @@ CALL CHKXER( 'CHETRD', INFOT, NOUT, LERR, OK ) NT = NT + 4 * +* CHETD2 +* + SRNAMT = 'CHETD2' + INFOT = 1 + CALL CHETD2( '/', 0, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'CHETD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL CHETD2( 'U', -1, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'CHETD2', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL CHETD2( 'U', 2, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'CHETD2', INFOT, NOUT, LERR, OK ) + NT = NT + 3 +* * CHETRD_2STAGE * SRNAMT = 'CHETRD_2STAGE' diff --git a/lapack-netlib/TESTING/EIG/derrhs.f b/lapack-netlib/TESTING/EIG/derrhs.f index fec41c0f0..583bebc9b 100644 --- a/lapack-netlib/TESTING/EIG/derrhs.f +++ b/lapack-netlib/TESTING/EIG/derrhs.f @@ -21,8 +21,8 @@ *> *> \verbatim *> -*> DERRHS tests the error exits for DGEBAK, SGEBAL, SGEHRD, DORGHR, -*> DORMHR, DHSEQR, SHSEIN, and DTREVC. +*> DERRHS tests the error exits for DGEBAK, DGEBAL, DGEHRD, DGEHD2, +*> DORGHR, DORMHR, DHSEQR, DHSEIN, DTREVC, and DTREVC3. *> \endverbatim * * Arguments: @@ -86,7 +86,7 @@ * .. * .. External Subroutines .. EXTERNAL CHKXER, DGEBAK, DGEBAL, DGEHRD, DHSEIN, DHSEQR, - $ DORGHR, DORMHR, DTREVC + $ DORGHR, DORMHR, DTREVC, DTREVC3, DGEHD2 * .. * .. Intrinsic Functions .. INTRINSIC DBLE @@ -194,6 +194,29 @@ CALL CHKXER( 'DGEHRD', INFOT, NOUT, LERR, OK ) NT = NT + 7 * +* DGEHD2 +* + SRNAMT = 'DGEHD2' + INFOT = 1 + CALL DGEHD2( -1, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'DGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL DGEHD2( 0, 0, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'DGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL DGEHD2( 0, 2, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'DGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL DGEHD2( 1, 1, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'DGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL DGEHD2( 0, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'DGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL DGEHD2( 2, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'DGEHD2', INFOT, NOUT, LERR, OK ) + NT = NT + 6 +* * DORGHR * SRNAMT = 'DORGHR' @@ -328,7 +351,11 @@ CALL DHSEQR( 'E', 'V', 2, 1, 2, A, 2, WR, WI, C, 1, W, 1, $ INFO ) CALL CHKXER( 'DHSEQR', INFOT, NOUT, LERR, OK ) - NT = NT + 9 + INFOT = 13 + CALL DHSEQR( 'E', 'N', 2, 1, 2, A, 2, WR, WI, C, 1, W, 1, + $ INFO ) + CALL CHKXER( 'DHSEQR', INFOT, NOUT, LERR, OK ) + NT = NT + 10 * * DHSEIN * @@ -399,6 +426,43 @@ $ INFO ) CALL CHKXER( 'DTREVC', INFOT, NOUT, LERR, OK ) NT = NT + 7 +* +* DTREVC3 +* + SRNAMT = 'DTREVC3' + INFOT = 1 + CALL DTREVC3( '/', 'A', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, INFO ) + CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL DTREVC3( 'L', '/', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, INFO ) + CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL DTREVC3( 'L', 'A', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, INFO ) + CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 6 + CALL DTREVC3( 'L', 'A', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W, + $ LW, INFO ) + CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL DTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, + $ LW, INFO ) + CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL DTREVC3( 'R', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, + $ LW, INFO ) + CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 11 + CALL DTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W, + $ LW, INFO ) + CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 14 + CALL DTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W, + $ 2, INFO ) + CALL CHKXER( 'DTREVC3', INFOT, NOUT, LERR, OK ) + NT = NT + 8 END IF * * Print a summary line. diff --git a/lapack-netlib/TESTING/EIG/derrst.f b/lapack-netlib/TESTING/EIG/derrst.f index f297e5a7d..a55b6eea9 100644 --- a/lapack-netlib/TESTING/EIG/derrst.f +++ b/lapack-netlib/TESTING/EIG/derrst.f @@ -21,10 +21,10 @@ *> *> \verbatim *> -*> DERRST tests the error exits for DSYTRD, DORGTR, DORMTR, DSPTRD, -*> DOPGTR, DOPMTR, DSTEQR, SSTERF, SSTEBZ, SSTEIN, DPTEQR, DSBTRD, -*> DSYEV, SSYEVX, SSYEVD, DSBEV, SSBEVX, SSBEVD, -*> DSPEV, SSPEVX, SSPEVD, DSTEV, SSTEVX, SSTEVD, and SSTEDC. +*> DERRST tests the error exits for DSYTRD, DSYTD2, DORGTR, DORMTR, DSPTRD, +*> DOPGTR, DOPMTR, DSTEQR, DSTERF, DSTEBZ, DSTEIN, DPTEQR, DSBTRD, +*> DSYEV, DSYEVX, DSYEVD, DSBEV, DSBEVX, DSBEVD, +*> DSPEV, DSPEVX, DSPEVD, DSTEV, DSTEVX, DSTEVD, and DSTEDC. *> DSYEVD_2STAGE, DSYEVR_2STAGE, DSYEVX_2STAGE, *> DSYEV_2STAGE, DSBEV_2STAGE, DSBEVD_2STAGE, *> DSBEVX_2STAGE, DSYTRD_2STAGE, DSYTRD_SY2SB, @@ -95,7 +95,7 @@ $ DSBEV, DSBEVD, DSBEVX, DSBTRD, DSPEV, DSPEVD, $ DSPEVX, DSPTRD, DSTEBZ, DSTEDC, DSTEIN, DSTEQR, $ DSTERF, DSTEV, DSTEVD, DSTEVR, DSTEVX, DSYEV, - $ DSYEVD, DSYEVR, DSYEVX, DSYTRD, + $ DSYEVD, DSYEVR, DSYEVX, DSYTRD, DSYTD2, $ DSYEVD_2STAGE, DSYEVR_2STAGE, DSYEVX_2STAGE, $ DSYEV_2STAGE, DSBEV_2STAGE, DSBEVD_2STAGE, $ DSBEVX_2STAGE, DSYTRD_2STAGE, DSYTRD_SY2SB, @@ -157,6 +157,20 @@ CALL CHKXER( 'DSYTRD', INFOT, NOUT, LERR, OK ) NT = NT + 4 * +* DSYTD2 +* + SRNAMT = 'DSYTD2' + INFOT = 1 + CALL DSYTD2( '/', 0, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'DSYTD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL DSYTD2( 'U', -1, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'DSYTD2', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL DSYTD2( 'U', 2, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'DSYTD2', INFOT, NOUT, LERR, OK ) + NT = NT + 3 +* * DSYTRD_2STAGE * SRNAMT = 'DSYTRD_2STAGE' diff --git a/lapack-netlib/TESTING/EIG/serrhs.f b/lapack-netlib/TESTING/EIG/serrhs.f index 8f0ff98a1..89b7303cd 100644 --- a/lapack-netlib/TESTING/EIG/serrhs.f +++ b/lapack-netlib/TESTING/EIG/serrhs.f @@ -21,8 +21,8 @@ *> *> \verbatim *> -*> SERRHS tests the error exits for SGEBAK, SGEBAL, SGEHRD, SORGHR, -*> SORMHR, SHSEQR, SHSEIN, and STREVC. +*> SERRHS tests the error exits for SGEBAK, SGEBAL, SGEHRD, SGEHD2, +*> SORGHR, SORMHR, SHSEQR, SHSEIN, STREVC, and STREVC3. *> \endverbatim * * Arguments: @@ -85,7 +85,7 @@ * .. * .. External Subroutines .. EXTERNAL CHKXER, SGEBAK, SGEBAL, SGEHRD, SHSEIN, SHSEQR, - $ SORGHR, SORMHR, STREVC + $ SORGHR, SORMHR, STREVC, STREVC3, SGEHD2 * .. * .. Intrinsic Functions .. INTRINSIC REAL @@ -193,6 +193,29 @@ CALL CHKXER( 'SGEHRD', INFOT, NOUT, LERR, OK ) NT = NT + 7 * +* SGEHD2 +* + SRNAMT = 'SGEHD2' + INFOT = 1 + CALL SGEHD2( -1, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'SGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL SGEHD2( 0, 0, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'SGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL SGEHD2( 0, 2, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'SGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL SGEHD2( 1, 1, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'SGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL SGEHD2( 0, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'SGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL SGEHD2( 2, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'SGEHD2', INFOT, NOUT, LERR, OK ) + NT = NT + 6 +* * SORGHR * SRNAMT = 'SORGHR' @@ -327,7 +350,11 @@ CALL SHSEQR( 'E', 'V', 2, 1, 2, A, 2, WR, WI, C, 1, W, 1, $ INFO ) CALL CHKXER( 'SHSEQR', INFOT, NOUT, LERR, OK ) - NT = NT + 9 + INFOT = 13 + CALL SHSEQR( 'E', 'N', 2, 1, 2, A, 2, WR, WI, C, 1, W, 1, + $ INFO ) + CALL CHKXER( 'SHSEQR', INFOT, NOUT, LERR, OK ) + NT = NT + 10 * * SHSEIN * @@ -398,6 +425,43 @@ $ INFO ) CALL CHKXER( 'STREVC', INFOT, NOUT, LERR, OK ) NT = NT + 7 +* +* STREVC3 +* + SRNAMT = 'STREVC3' + INFOT = 1 + CALL STREVC3( '/', 'A', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, INFO ) + CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL STREVC3( 'L', '/', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, INFO ) + CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL STREVC3( 'L', 'A', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, INFO ) + CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 6 + CALL STREVC3( 'L', 'A', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W, + $ LW, INFO ) + CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL STREVC3( 'L', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, + $ LW, INFO ) + CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL STREVC3( 'R', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, + $ LW, INFO ) + CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 11 + CALL STREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W, + $ LW, INFO ) + CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 14 + CALL STREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W, + $ 2, INFO ) + CALL CHKXER( 'STREVC3', INFOT, NOUT, LERR, OK ) + NT = NT + 8 END IF * * Print a summary line. diff --git a/lapack-netlib/TESTING/EIG/serrst.f b/lapack-netlib/TESTING/EIG/serrst.f index afb6d4faf..8c9c0f306 100644 --- a/lapack-netlib/TESTING/EIG/serrst.f +++ b/lapack-netlib/TESTING/EIG/serrst.f @@ -21,7 +21,7 @@ *> *> \verbatim *> -*> SERRST tests the error exits for SSYTRD, SORGTR, SORMTR, SSPTRD, +*> SERRST tests the error exits for SSYTRD, SSYTD2, SORGTR, SORMTR, SSPTRD, *> SOPGTR, SOPMTR, SSTEQR, SSTERF, SSTEBZ, SSTEIN, SPTEQR, SSBTRD, *> SSYEV, SSYEVX, SSYEVD, SSBEV, SSBEVX, SSBEVD, *> SSPEV, SSPEVX, SSPEVD, SSTEV, SSTEVX, SSTEVD, and SSTEDC. @@ -95,7 +95,7 @@ $ SSBEV, SSBEVD, SSBEVX, SSBTRD, SSPEV, SSPEVD, $ SSPEVX, SSPTRD, SSTEBZ, SSTEDC, SSTEIN, SSTEQR, $ SSTERF, SSTEV, SSTEVD, SSTEVR, SSTEVX, SSYEV, - $ SSYEVD, SSYEVR, SSYEVX, SSYTRD, + $ SSYEVD, SSYEVR, SSYEVX, SSYTRD, SSYTD2, $ SSYEVD_2STAGE, SSYEVR_2STAGE, SSYEVX_2STAGE, $ SSYEV_2STAGE, SSBEV_2STAGE, SSBEVD_2STAGE, $ SSBEVX_2STAGE, SSYTRD_2STAGE, SSYTRD_SY2SB, @@ -157,6 +157,20 @@ CALL CHKXER( 'SSYTRD', INFOT, NOUT, LERR, OK ) NT = NT + 4 * +* SSYTD2 +* + SRNAMT = 'SSYTD2' + INFOT = 1 + CALL SSYTD2( '/', 0, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'SSYTD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL SSYTD2( 'U', -1, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'SSYTD2', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL SSYTD2( 'U', 2, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'SSYTD2', INFOT, NOUT, LERR, OK ) + NT = NT + 3 +* * SSYTRD_2STAGE * SRNAMT = 'SSYTRD_2STAGE' diff --git a/lapack-netlib/TESTING/EIG/zerrhs.f b/lapack-netlib/TESTING/EIG/zerrhs.f index 582338947..3a70a556e 100644 --- a/lapack-netlib/TESTING/EIG/zerrhs.f +++ b/lapack-netlib/TESTING/EIG/zerrhs.f @@ -21,8 +21,8 @@ *> *> \verbatim *> -*> ZERRHS tests the error exits for ZGEBAK, CGEBAL, CGEHRD, ZUNGHR, -*> ZUNMHR, ZHSEQR, CHSEIN, and ZTREVC. +*> ZERRHS tests the error exits for ZGEBAK, ZGEBAL, ZGEHRD, ZGEHD2, +*> ZUNGHR, ZUNMHR, ZHSEQR, ZHSEIN, ZTREVC, and ZTREVC3. *> \endverbatim * * Arguments: @@ -86,7 +86,7 @@ * .. * .. External Subroutines .. EXTERNAL CHKXER, ZGEBAK, ZGEBAL, ZGEHRD, ZHSEIN, ZHSEQR, - $ ZTREVC, ZUNGHR, ZUNMHR + $ ZUNGHR, ZUNMHR, ZTREVC, ZTREVC3 * .. * .. Intrinsic Functions .. INTRINSIC DBLE @@ -193,6 +193,29 @@ CALL CHKXER( 'ZGEHRD', INFOT, NOUT, LERR, OK ) NT = NT + 7 * +* ZGEHD2 +* + SRNAMT = 'ZGEHD2' + INFOT = 1 + CALL ZGEHD2( -1, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'ZGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZGEHD2( 0, 0, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'ZGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZGEHD2( 0, 2, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'ZGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL ZGEHD2( 1, 1, 0, A, 1, TAU, W, INFO ) + CALL CHKXER( 'ZGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL ZGEHD2( 0, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'ZGEHD2', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL ZGEHD2( 2, 1, 1, A, 1, TAU, W, INFO ) + CALL CHKXER( 'ZGEHD2', INFOT, NOUT, LERR, OK ) + NT = NT + 6 +* * ZUNGHR * SRNAMT = 'ZUNGHR' @@ -389,6 +412,47 @@ $ INFO ) CALL CHKXER( 'ZTREVC', INFOT, NOUT, LERR, OK ) NT = NT + 7 +* +* ZTREVC3 +* + SRNAMT = 'ZTREVC3' + INFOT = 1 + CALL ZTREVC3( '/', 'A', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, RW, 1, INFO ) + CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZTREVC3( 'L', '/', SEL, 0, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, RW, 1, INFO ) + CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL ZTREVC3( 'L', 'A', SEL, -1, A, 1, VL, 1, VR, 1, 0, M, W, + $ LW, RW, 1, INFO ) + CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 6 + CALL ZTREVC3( 'L', 'A', SEL, 2, A, 1, VL, 2, VR, 1, 4, M, W, + $ LW, RW, 2, INFO ) + CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL ZTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, + $ LW, RW, 2, INFO ) + CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZTREVC3( 'R', 'A', SEL, 2, A, 2, VL, 1, VR, 1, 4, M, W, + $ LW, RW, 2, INFO ) + CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 11 + CALL ZTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 1, M, W, + $ LW, RW, 2, INFO ) + CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 14 + CALL ZTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W, + $ 2, RW, 2, INFO ) + CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK ) + INFOT = 16 + CALL ZTREVC3( 'L', 'A', SEL, 2, A, 2, VL, 2, VR, 1, 2, M, W, + $ LW, RW, 1, INFO ) + CALL CHKXER( 'ZTREVC3', INFOT, NOUT, LERR, OK ) + NT = NT + 9 END IF * * Print a summary line. diff --git a/lapack-netlib/TESTING/EIG/zerrst.f b/lapack-netlib/TESTING/EIG/zerrst.f index 5b0e6f820..948f94bc2 100644 --- a/lapack-netlib/TESTING/EIG/zerrst.f +++ b/lapack-netlib/TESTING/EIG/zerrst.f @@ -23,7 +23,7 @@ *> *> \verbatim *> -*> ZERRST tests the error exits for ZHETRD, ZUNGTR, CUNMTR, ZHPTRD, +*> ZERRST tests the error exits for ZHETRD, ZHETD2, ZUNGTR, CUNMTR, ZHPTRD, *> ZUNGTR, ZUPMTR, ZSTEQR, CSTEIN, ZPTEQR, ZHBTRD, *> ZHEEV, CHEEVX, CHEEVD, ZHBEV, CHBEVX, CHBEVD, *> ZHPEV, CHPEVX, CHPEVD, and ZSTEDC. @@ -95,7 +95,7 @@ EXTERNAL CHKXER, ZHBEV, ZHBEVD, ZHBEVX, ZHBTRD, ZHEEV, $ ZHEEVD, ZHEEVR, ZHEEVX, ZHETRD, ZHPEV, ZHPEVD, $ ZHPEVX, ZHPTRD, ZPTEQR, ZSTEDC, ZSTEIN, ZSTEQR, - $ ZUNGTR, ZUNMTR, ZUPGTR, ZUPMTR, + $ ZUNGTR, ZUNMTR, ZUPGTR, ZUPMTR, ZHETD2, $ ZHEEVD_2STAGE, ZHEEVR_2STAGE, ZHEEVX_2STAGE, $ ZHEEV_2STAGE, ZHBEV_2STAGE, ZHBEVD_2STAGE, $ ZHBEVX_2STAGE, ZHETRD_2STAGE @@ -156,6 +156,20 @@ CALL CHKXER( 'ZHETRD', INFOT, NOUT, LERR, OK ) NT = NT + 4 * +* ZHETD2 +* + SRNAMT = 'ZHETD2' + INFOT = 1 + CALL ZHETD2( '/', 0, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'ZHETD2', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZHETD2( 'U', -1, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'ZHETD2', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL ZHETD2( 'U', 2, A, 1, D, E, TAU, W, 1, INFO ) + CALL CHKXER( 'ZHETD2', INFOT, NOUT, LERR, OK ) + NT = NT + 3 +* * ZHETRD_2STAGE * SRNAMT = 'ZHETRD_2STAGE' From ca1791cfebe72ad5f92b538cc6a2c2a33cee72f1 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Thu, 18 May 2023 17:35:00 +0200 Subject: [PATCH 2/2] Extend tests for error exit sysv/sytd2/gehd2 (Reference-LAPACK PR 795) --- lapack-netlib/TESTING/LIN/cerrvx.f | 61 +++++++++++-- lapack-netlib/TESTING/LIN/derrvx.f | 42 +++++---- lapack-netlib/TESTING/LIN/serrvx.f | 24 ++++- lapack-netlib/TESTING/LIN/zdrvsy_aa_2stage.f | 2 +- lapack-netlib/TESTING/LIN/zerrvx.f | 93 +++++++++++++++----- 5 files changed, 171 insertions(+), 51 deletions(-) diff --git a/lapack-netlib/TESTING/LIN/cerrvx.f b/lapack-netlib/TESTING/LIN/cerrvx.f index 701abd161..548d09d0c 100644 --- a/lapack-netlib/TESTING/LIN/cerrvx.f +++ b/lapack-netlib/TESTING/LIN/cerrvx.f @@ -87,7 +87,7 @@ * .. * .. External Subroutines .. EXTERNAL CGBSV, CGBSVX, CGESV, CGESVX, CGTSV, CGTSVX, - $ CHESV, CHESV_RK ,CHESV_ROOK, CHESVX, CHKXER, + $ CHESV, CHESV_RK, CHESV_ROOK, CHESVX, CHKXER, $ CHPSV, CHPSVX, CPBSV, CPBSVX, CPOSV, CPOSVX, $ CPPSV, CPPSVX, CPTSV, CPTSVX, CSPSV, CSPSVX, $ CSYSV, CSYSV_AA, CSYSV_RK, CSYSV_ROOK, @@ -651,6 +651,9 @@ INFOT = 3 CALL CHESV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL CHESV_ROOK( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK ) INFOT = 8 CALL CHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK ) @@ -710,9 +713,15 @@ INFOT = 3 CALL CHESV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL CHESV_AA( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK ) INFOT = 8 CALL CHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL CHESV_AA( 'U', 3, 1, A, 3, IP, B, 3, W, 6, INFO ) + CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK ) * ELSE IF( LSAMEN( 2, C2, 'H2' ) ) THEN * @@ -733,16 +742,44 @@ CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 5 CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, - $ W, 1, INFO ) - CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) - INFOT = 11 - CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, $ W, 1, INFO ) CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 7 CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, $ W, 1, INFO ) CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) + INFOT = 11 + CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, + $ W, 1, INFO ) + CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) + INFOT = 13 + CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 2, + $ W, 1, INFO ) + CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) +* + ELSE IF( LSAMEN( 2, C2, 'SA' ) ) THEN +* +* CSYSV_AASEN +* + SRNAMT = 'CSYSV_AA' + INFOT = 1 + CALL CSYSV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'CSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL CSYSV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'CSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL CSYSV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'CSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL CSYSV_AA( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'CSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL CSYSV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'CSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL CSYSV_AA( 'U', 3, 1, A, 3, IP, B, 3, W, 6, INFO ) + CALL CHKXER( 'CSYSV_AA', INFOT, NOUT, LERR, OK ) * ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN * @@ -763,14 +800,18 @@ CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 5 CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, + $ W, 1, INFO ) + CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) + INFOT = 7 + CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, $ W, 1, INFO ) CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 11 CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, $ W, 1, INFO ) CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) - INFOT = 7 - CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, + INFOT = 13 + CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 2, $ W, 1, INFO ) CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) * @@ -834,6 +875,9 @@ INFOT = 3 CALL CSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL CSYSV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK ) INFOT = 8 CALL CSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK ) @@ -898,6 +942,9 @@ INFOT = 3 CALL CSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL CSYSV_ROOK( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK ) INFOT = 8 CALL CSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK ) diff --git a/lapack-netlib/TESTING/LIN/derrvx.f b/lapack-netlib/TESTING/LIN/derrvx.f index 447b00bc4..f2d29f7a3 100644 --- a/lapack-netlib/TESTING/LIN/derrvx.f +++ b/lapack-netlib/TESTING/LIN/derrvx.f @@ -699,21 +699,27 @@ * ELSE IF( LSAMEN( 2, C2, 'SA' ) ) THEN * -* DSYSV_AA +* DSYSV_AASEN * - SRNAMT = 'DSYSV_AA' - INFOT = 1 - CALL DSYSV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) - CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK ) - INFOT = 2 - CALL DSYSV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) - CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK ) - INFOT = 3 - CALL DSYSV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) - CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK ) - INFOT = 8 - CALL DSYSV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) - CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK ) + SRNAMT = 'DSYSV_AA' + INFOT = 1 + CALL DSYSV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL DSYSV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL DSYSV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL DSYSV_AA( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL DSYSV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL DSYSV_AA( 'U', 3, 1, A, 3, IP, B, 3, W, 6, INFO ) + CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK ) * ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN * @@ -734,14 +740,18 @@ CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 5 CALL DSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, + $ W, 1, INFO ) + CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) + INFOT = 7 + CALL DSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, $ W, 1, INFO ) CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 11 CALL DSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, $ W, 1, INFO ) CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) - INFOT = 7 - CALL DSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, + INFOT = 13 + CALL DSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 2, $ W, 1, INFO ) CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) * diff --git a/lapack-netlib/TESTING/LIN/serrvx.f b/lapack-netlib/TESTING/LIN/serrvx.f index c3db47332..440f9113e 100644 --- a/lapack-netlib/TESTING/LIN/serrvx.f +++ b/lapack-netlib/TESTING/LIN/serrvx.f @@ -582,6 +582,9 @@ INFOT = 3 CALL SSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL SSYSV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) INFOT = 8 CALL SSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) @@ -647,6 +650,9 @@ INFOT = 3 CALL SSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL SSYSV_ROOK( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK ) INFOT = 8 CALL SSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK ) @@ -694,7 +700,7 @@ * ELSE IF( LSAMEN( 2, C2, 'SA' ) ) THEN * -* SSYSV_AA +* SSYSV_AASEN * SRNAMT = 'SSYSV_AA' INFOT = 1 @@ -706,13 +712,19 @@ INFOT = 3 CALL SSYSV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL SSYSV_AA( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK ) INFOT = 8 CALL SSYSV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL SSYSV_AA( 'U', 3, 1, A, 3, IP, B, 3, W, 6, INFO ) + CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK ) * ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN * -* DSYSV_AASEN_2STAGE +* SSYSV_AASEN_2STAGE * SRNAMT = 'SSYSV_AA_2STAGE' INFOT = 1 @@ -729,14 +741,18 @@ CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 5 CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, + $ W, 1, INFO ) + CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) + INFOT = 7 + CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, $ W, 1, INFO ) CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 11 CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, $ W, 1, INFO ) CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) - INFOT = 7 - CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, + INFOT = 13 + CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 2, $ W, 1, INFO ) CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) * diff --git a/lapack-netlib/TESTING/LIN/zdrvsy_aa_2stage.f b/lapack-netlib/TESTING/LIN/zdrvsy_aa_2stage.f index 21497477c..5406a76bf 100644 --- a/lapack-netlib/TESTING/LIN/zdrvsy_aa_2stage.f +++ b/lapack-netlib/TESTING/LIN/zdrvsy_aa_2stage.f @@ -229,7 +229,7 @@ * Test path * PATH( 1: 1 ) = 'Zomplex precision' - PATH( 2: 3 ) = 'H2' + PATH( 2: 3 ) = 'S2' * * Path to generate matrices * diff --git a/lapack-netlib/TESTING/LIN/zerrvx.f b/lapack-netlib/TESTING/LIN/zerrvx.f index ea7823df3..80b3aaf4a 100644 --- a/lapack-netlib/TESTING/LIN/zerrvx.f +++ b/lapack-netlib/TESTING/LIN/zerrvx.f @@ -653,6 +653,9 @@ INFOT = 3 CALL ZHESV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL ZHESV_ROOK( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) INFOT = 8 CALL ZHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) @@ -700,21 +703,27 @@ * ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN * -* ZHESV_AA +* ZHESV_AASEN * - SRNAMT = 'ZHESV_AA' - INFOT = 1 - CALL ZHESV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) - CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) - INFOT = 2 - CALL ZHESV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) - CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) - INFOT = 3 - CALL ZHESV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) - CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) - INFOT = 8 - CALL ZHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) - CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) + SRNAMT = 'ZHESV_AA' + INFOT = 1 + CALL ZHESV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZHESV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL ZHESV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL ZHESV_AA( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL ZHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZHESV_AA( 'U', 3, 1, A, 3, IP, B, 3, W, 6, INFO ) + CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) * ELSE IF( LSAMEN( 2, C2, 'H2' ) ) THEN * @@ -735,16 +744,44 @@ CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 5 CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, - $ W, 1, INFO ) - CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) - INFOT = 11 - CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, $ W, 1, INFO ) CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 7 CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, $ W, 1, INFO ) CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) + INFOT = 11 + CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, + $ W, 1, INFO ) + CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) + INFOT = 13 + CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 2, + $ W, 1, INFO ) + CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) +* + ELSE IF( LSAMEN( 2, C2, 'SA' ) ) THEN +* +* ZSYSV_AASEN +* + SRNAMT = 'ZSYSV_AA' + INFOT = 1 + CALL ZSYSV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZSYSV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL ZSYSV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL ZSYSV_AA( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL ZSYSV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZSYSV_AA( 'U', 3, 1, A, 3, IP, B, 3, W, 6, INFO ) + CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK ) * ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN * @@ -765,17 +802,21 @@ CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 5 CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, - $ W, 1, INFO ) - CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) - INFOT = 11 - CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, $ W, 1, INFO ) CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) INFOT = 7 CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, $ W, 1, INFO ) CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) -** + INFOT = 11 + CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, + $ W, 1, INFO ) + CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) + INFOT = 13 + CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 2, + $ W, 1, INFO ) + CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) +* ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN * * ZHPSV @@ -836,6 +877,9 @@ INFOT = 3 CALL ZSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL ZSYSV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) INFOT = 8 CALL ZSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) @@ -900,6 +944,9 @@ INFOT = 3 CALL ZSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL ZSYSV_ROOK( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK ) INFOT = 8 CALL ZSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )