diff options
Diffstat (limited to 'TESTING/LIN/zerrvx.f')
-rw-r--r-- | TESTING/LIN/zerrvx.f | 148 |
1 files changed, 121 insertions, 27 deletions
diff --git a/TESTING/LIN/zerrvx.f b/TESTING/LIN/zerrvx.f index ca0618b2..0eed4a51 100644 --- a/TESTING/LIN/zerrvx.f +++ b/TESTING/LIN/zerrvx.f @@ -48,17 +48,17 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2013 +*> \date November 2016 * *> \ingroup complex16_lin * * ===================================================================== SUBROUTINE ZERRVX( 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 @@ -82,7 +82,7 @@ DOUBLE PRECISION C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ), $ RF( NMAX ), RW( 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 @@ -90,10 +90,11 @@ * .. * .. External Subroutines .. EXTERNAL CHKXER, ZGBSV, ZGBSVX, ZGESV, ZGESVX, ZGTSV, - $ ZGTSVX, ZHESV, ZHESV_ROOK, ZHESVX, ZHPSV, - $ ZHPSVX, ZPBSV, ZPBSVX, ZPOSV, ZPOSVX, ZPPSV, - $ ZPPSVX, ZPTSV, ZPTSVX, ZSPSV, ZSPSVX, ZSYSV, - $ ZSYSV_AA, ZSYSV_ROOK, ZSYSVX + $ ZGTSVX, ZHESV, ZHESV_RK, ZHESV_ROOK, ZHESVX, + $ ZHPSV, ZHPSVX, ZPBSV, ZPBSVX, ZPOSV, ZPOSVX, + $ ZPPSV, ZPPSVX, ZPTSV, ZPTSVX, ZSPSV, ZSPSVX, + $ ZSYSV, ZSYSV_AA, ZSYSV_RK, ZSYSV_ROOK, + $ ZSYSVX * .. * .. Scalars in Common .. LOGICAL LERR, OK @@ -123,6 +124,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 @@ -593,6 +595,12 @@ INFOT = 8 CALL ZHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZHESV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) + CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZHESV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) + CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK ) * * ZHESVX * @@ -634,25 +642,6 @@ $ RCOND, R1, R2, W, 3, RW, INFO ) CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK ) * - ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN -* -* ZHESV_AA -* - 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 ) -* - ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN * * ZHESV_ROOK @@ -670,6 +659,65 @@ INFOT = 8 CALL ZHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) + CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) + CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) +* + ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN +* +* ZSYSV_RK +* +* Test error exits of the driver that uses factorization +* of a Hermitian 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. +* + SRNAMT = 'ZHESV_RK' + INFOT = 1 + CALL ZHESV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZHESV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL ZHESV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL ZHESV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 9 + CALL ZHESV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 11 + CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO ) + CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 11 + CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO ) + CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) +* + ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN +* +* ZHESV_AA +* + 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 ) * ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN * @@ -734,6 +782,12 @@ INFOT = 8 CALL ZSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) + CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) + CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) * * ZSYSVX * @@ -792,6 +846,46 @@ INFOT = 8 CALL ZSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) + CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK ) + INFOT = 10 + CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) +* + ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN +* +* ZSYSV_RK +* +* Test error exits of the driver that uses 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. +* + SRNAMT = 'ZSYSV_RK' + INFOT = 1 + CALL ZSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 2 + CALL ZSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 3 + CALL ZSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 5 + CALL ZSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 9 + CALL ZSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO ) + CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 11 + CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO ) + CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) + INFOT = 11 + CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO ) + CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) * ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN * |