diff options
Diffstat (limited to 'TESTING/LIN/zerrhe.f')
-rw-r--r-- | TESTING/LIN/zerrhe.f | 172 |
1 files changed, 154 insertions, 18 deletions
diff --git a/TESTING/LIN/zerrhe.f b/TESTING/LIN/zerrhe.f index 47b64ae0..b6304b1c 100644 --- a/TESTING/LIN/zerrhe.f +++ b/TESTING/LIN/zerrhe.f @@ -48,17 +48,17 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2013 +*> \date November 2016 * *> \ingroup complex16_lin * * ===================================================================== SUBROUTINE ZERRHE( PATH, NUNIT ) * -* -- LAPACK test routine (version 3.5.0) -- +* -- LAPACK test routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2013 +* November 2016 * * .. Scalar Arguments .. CHARACTER*3 PATH @@ -81,18 +81,19 @@ INTEGER IP( NMAX ) DOUBLE PRECISION R( NMAX ), R1( NMAX ), R2( NMAX ) COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), - $ W( 2*NMAX ), X( NMAX ) + $ E( NMAX ), W( 2*NMAX ), X( NMAX ) * .. * .. External Functions .. LOGICAL LSAMEN EXTERNAL LSAMEN * .. * .. External Subroutines .. - EXTERNAL ALAESM, CHKXER, ZHECON, ZHECON_ROOK, ZHERFS, - $ ZHETF2, ZHETF2_ROOK, ZHETRF, ZHETRF_ROOK, - $ ZHETRF_AA, ZHETRI, ZHETRI_ROOK, ZHETRI2, - $ ZHETRS, ZHETRS_ROOK, ZHETRS_AA, ZHPCON, ZHPRFS, - $ ZHPTRF, ZHPTRI, ZHPTRS + EXTERNAL ALAESM, CHKXER, ZHECON, ZHECON_3, ZHECON_ROOK, + $ ZHERFS, ZHETF2, ZHETF2_RK, ZHETF2_ROOK, ZHETRF, + $ ZHETRF_RK, ZHETRF_ROOK, ZHETRF_AA, ZHETRI, + $ ZHETRI_3, ZHETRI_3X, ZHETRI_ROOK, ZHETRI2, + $ ZHETRI2X, ZHETRS, ZHETRS_3, ZHETRS_ROOK, + $ ZHETRS_AA, ZHPCON, ZHPRFS, ZHPTRF, ZHPTRI, ZHPTRS * .. * .. Scalars in Common .. LOGICAL LERR, OK @@ -122,6 +123,7 @@ $ -1.D0 / DBLE( I+J ) ) 10 CONTINUE B( J ) = 0.D0 + E( J ) = 0.D0 R1( J ) = 0.D0 R2( J ) = 0.D0 W( J ) = 0.D0 @@ -131,12 +133,12 @@ ANRM = 1.0D0 OK = .TRUE. * -* Test error exits of the routines that use factorization -* of a Hermitian indefinite matrix with patrial -* (Bunch-Kaufman) diagonal pivoting method. -* IF( LSAMEN( 2, C2, 'HE' ) ) THEN * +* Test error exits of the routines that use factorization +* of a Hermitian indefinite matrix with patrial +* (Bunch-Kaufman) diagonal pivoting method. +* * ZHETRF * SRNAMT = 'ZHETRF' @@ -149,6 +151,12 @@ INFOT = 4 CALL ZHETRF( 'U', 2, A, 1, IP, W, 4, INFO ) CALL CHKXER( 'ZHETRF', INFOT, NOUT, LERR, OK ) + INFOT = 7 + CALL ZHETRF( 'U', 0, A, 1, IP, W, 0, INFO ) + CALL CHKXER( 'ZHETRF', INFOT, NOUT, LERR, OK ) + INFOT = 7 + CALL ZHETRF( 'U', 0, A, 1, IP, W, -2, INFO ) + CALL CHKXER( 'ZHETRF', INFOT, NOUT, LERR, OK ) * * ZHETF2 * @@ -189,6 +197,19 @@ CALL ZHETRI2( 'U', 2, A, 1, IP, W, 1, INFO ) CALL CHKXER( 'ZHETRI2', INFOT, NOUT, LERR, OK ) * +* ZHETRI2X +* + SRNAMT = 'ZHETRI2X' + INFOT = 1 + CALL ZHETRI2X( '/', 0, A, 1, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRI2X', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZHETRI2X( 'U', -1, A, 1, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRI2X', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL ZHETRI2X( 'U', 2, A, 1, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRI2X', INFOT, NOUT, LERR, OK ) +* * ZHETRS * SRNAMT = 'ZHETRS' @@ -256,12 +277,12 @@ CALL ZHECON( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO ) CALL CHKXER( 'ZHECON', INFOT, NOUT, LERR, OK ) * + ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN +* * Test error exits of the routines that use factorization -* of a Hermitian indefinite matrix with "rook" +* of a Hermitian indefinite matrix with rook * (bounded Bunch-Kaufman) diagonal pivoting method. * - ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN -* * ZHETRF_ROOK * SRNAMT = 'ZHETRF_ROOK' @@ -274,6 +295,12 @@ INFOT = 4 CALL ZHETRF_ROOK( 'U', 2, A, 1, IP, W, 4, INFO ) CALL CHKXER( 'ZHETRF_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 7 + CALL ZHETRF_ROOK( 'U', 0, A, 1, IP, W, 0, INFO ) + CALL CHKXER( 'ZHETRF_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 7 + CALL ZHETRF_ROOK( 'U', 0, A, 1, IP, W, -2, INFO ) + CALL CHKXER( 'ZHETRF_ROOK', INFOT, NOUT, LERR, OK ) * * ZHETF2_ROOK * @@ -336,6 +363,115 @@ CALL ZHECON_ROOK( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO ) CALL CHKXER( 'ZHECON_ROOK', INFOT, NOUT, LERR, OK ) * + ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN +* +* Test error exits of the routines that use factorization +* of a symmetric indefinite matrix with rook +* (bounded Bunch-Kaufman) pivoting with the new storage +* format for factors L ( or U) and D. +* +* L (or U) is stored in A, diagonal of D is stored on the +* diagonal of A, subdiagonal of D is stored in a separate array E. +* +* ZHETRF_RK +* + SRNAMT = 'ZHETRF_RK' + INFOT = 1 + CALL ZHETRF_RK( '/', 0, A, 1, E, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRF_RK', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZHETRF_RK( 'U', -1, A, 1, E, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRF_RK', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL ZHETRF_RK( 'U', 2, A, 1, E, IP, W, 4, INFO ) + CALL CHKXER( 'ZHETRF_RK', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL ZHETRF_RK( 'U', 0, A, 1, E, IP, W, 0, INFO ) + CALL CHKXER( 'ZHETRF_RK', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL ZHETRF_RK( 'U', 0, A, 1, E, IP, W, -2, INFO ) + CALL CHKXER( 'ZHETRF_RK', INFOT, NOUT, LERR, OK ) +* +* ZHETF2_RK +* + SRNAMT = 'ZHETF2_RK' + INFOT = 1 + CALL ZHETF2_RK( '/', 0, A, 1, E, IP, INFO ) + CALL CHKXER( 'ZHETF2_RK', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZHETF2_RK( 'U', -1, A, 1, E, IP, INFO ) + CALL CHKXER( 'ZHETF2_RK', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL ZHETF2_RK( 'U', 2, A, 1, E, IP, INFO ) + CALL CHKXER( 'ZHETF2_RK', INFOT, NOUT, LERR, OK ) +* +* ZHETRI_3 +* + SRNAMT = 'ZHETRI_3' + INFOT = 1 + CALL ZHETRI_3( '/', 0, A, 1, E, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRI_3', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZHETRI_3( 'U', -1, A, 1, E, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRI_3', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL ZHETRI_3( 'U', 2, A, 1, E, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRI_3', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL ZHETRI_3( 'U', 0, A, 1, E, IP, W, 0, INFO ) + CALL CHKXER( 'ZHETRI_3', INFOT, NOUT, LERR, OK ) + INFOT = 8 + CALL ZHETRI_3( 'U', 0, A, 1, E, IP, W, -2, INFO ) + CALL CHKXER( 'ZHETRI_3', INFOT, NOUT, LERR, OK ) +* +* ZHETRI_3X +* + SRNAMT = 'ZHETRI_3X' + INFOT = 1 + CALL ZHETRI_3X( '/', 0, A, 1, E, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRI_3X', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZHETRI_3X( 'U', -1, A, 1, E, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRI_3X', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL ZHETRI_3X( 'U', 2, A, 1, E, IP, W, 1, INFO ) + CALL CHKXER( 'ZHETRI_3X', INFOT, NOUT, LERR, OK ) +* +* ZHETRS_3 +* + SRNAMT = 'ZHETRS_3' + INFOT = 1 + CALL ZHETRS_3( '/', 0, 0, A, 1, E, IP, B, 1, INFO ) + CALL CHKXER( 'ZHETRS_3', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZHETRS_3( 'U', -1, 0, A, 1, E, IP, B, 1, INFO ) + CALL CHKXER( 'ZHETRS_3', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL ZHETRS_3( 'U', 0, -1, A, 1, E, IP, B, 1, INFO ) + CALL CHKXER( 'ZHETRS_3', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL ZHETRS_3( 'U', 2, 1, A, 1, E, IP, B, 2, INFO ) + CALL CHKXER( 'ZHETRS_3', INFOT, NOUT, LERR, OK ) + INFOT = 9 + CALL ZHETRS_3( 'U', 2, 1, A, 2, E, IP, B, 1, INFO ) + CALL CHKXER( 'ZHETRS_3', INFOT, NOUT, LERR, OK ) +* +* ZHECON_3 +* + SRNAMT = 'ZHECON_3' + INFOT = 1 + CALL ZHECON_3( '/', 0, A, 1, E, IP, ANRM, RCOND, W, INFO ) + CALL CHKXER( 'ZHECON_3', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZHECON_3( 'U', -1, A, 1, E, IP, ANRM, RCOND, W, INFO ) + CALL CHKXER( 'ZHECON_3', INFOT, NOUT, LERR, OK ) + INFOT = 4 + CALL ZHECON_3( 'U', 2, A, 1, E, IP, ANRM, RCOND, W, INFO ) + CALL CHKXER( 'ZHECON_3', INFOT, NOUT, LERR, OK ) + INFOT = 7 + CALL ZHECON_3( 'U', 1, A, 1, E, IP, -1.0D0, RCOND, W, INFO) + CALL CHKXER( 'ZHECON_3', INFOT, NOUT, LERR, OK ) +* * Test error exits of the routines that use factorization * of a Hermitian indefinite matrix with Aasen's algorithm. * @@ -373,12 +509,12 @@ CALL ZHETRS_AA( 'U', 2, 1, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZHETRS_AA', INFOT, NOUT, LERR, OK ) * + ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN +* * Test error exits of the routines that use factorization * of a Hermitian indefinite packed matrix with patrial * (Bunch-Kaufman) diagonal pivoting method. * - ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN -* * ZHPTRF * SRNAMT = 'ZHPTRF' |