aboutsummaryrefslogtreecommitdiff
path: root/TESTING/LIN/zerrvx.f
diff options
context:
space:
mode:
Diffstat (limited to 'TESTING/LIN/zerrvx.f')
-rw-r--r--TESTING/LIN/zerrvx.f148
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
*