aboutsummaryrefslogtreecommitdiff
path: root/TESTING/LIN/cerrvx.f
diff options
context:
space:
mode:
Diffstat (limited to 'TESTING/LIN/cerrvx.f')
-rw-r--r--TESTING/LIN/cerrvx.f189
1 files changed, 142 insertions, 47 deletions
diff --git a/TESTING/LIN/cerrvx.f b/TESTING/LIN/cerrvx.f
index 13496241..655155a7 100644
--- a/TESTING/LIN/cerrvx.f
+++ b/TESTING/LIN/cerrvx.f
@@ -48,17 +48,17 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
-*> \date November 2013
+*> \date November 2016
*
*> \ingroup complex_lin
*
* =====================================================================
SUBROUTINE CERRVX( 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 @@
REAL C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
$ RF( NMAX ), RW( NMAX )
COMPLEX 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 CGBSV, CGBSVX, CGESV, CGESVX, CGTSV, CGTSVX,
- $ CHESV, CHESV_ROOK, CHESVX, CHKXER, CHPSV,
- $ CHPSVX, CPBSV, CPBSVX, CPOSV, CPOSVX, CPPSV,
- $ CPPSVX, CPTSV, CPTSVX, CSPSV, CSPSVX, CSYSV,
- $ CSYSV_AA, CSYSV_ROOK, CSYSVX
+ $ 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,
+ $ CSYSVX
* ..
* .. Scalars in Common ..
LOGICAL LERR, OK
@@ -120,13 +121,14 @@
A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
10 CONTINUE
- B( J ) = 0.
- R1( J ) = 0.
- R2( J ) = 0.
- W( J ) = 0.
- X( J ) = 0.
- C( J ) = 0.
- R( J ) = 0.
+ B( J ) = 0.E+0
+ E( J ) = 0.E+0
+ R1( J ) = 0.E+0
+ R2( J ) = 0.E+0
+ W( J ) = 0.E+0
+ X( J ) = 0.E+0
+ C( J ) = 0.E+0
+ R( J ) = 0.E+0
IP( J ) = J
20 CONTINUE
EQ = ' '
@@ -591,6 +593,12 @@
INFOT = 8
CALL CHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
+ INFOT = 10
+ CALL CHESV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
+ CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
+ INFOT = 10
+ CALL CHESV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
+ CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
*
* CHESVX
*
@@ -632,42 +640,82 @@
$ RCOND, R1, R2, W, 3, RW, INFO )
CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
*
- ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN
-*
-* CHESV_AA
-*
- SRNAMT = 'CHESV_AA'
- INFOT = 1
- CALL CHESV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
- CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
- INFOT = 2
- CALL CHESV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
- CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
- 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 = 8
- CALL CHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
- CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
-*
-
ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN
*
* CHESV_ROOK
*
- SRNAMT = 'CHESV_ROOK'
- INFOT = 1
- CALL CHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
- CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
- INFOT = 2
- CALL CHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
- CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
- 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 = 8
- CALL CHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
- CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
+ SRNAMT = 'CHESV_ROOK'
+ INFOT = 1
+ CALL CHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
+ INFOT = 2
+ CALL CHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
+ 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 = 8
+ CALL CHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
+ INFOT = 10
+ CALL CHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
+ CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
+ INFOT = 10
+ CALL CHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
+ CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
+*
+ ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN
+*
+* CHESV_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 = 'CHESV_RK'
+ INFOT = 1
+ CALL CHESV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 2
+ CALL CHESV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 3
+ CALL CHESV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 5
+ CALL CHESV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
+ CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 9
+ CALL CHESV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 11
+ CALL CHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
+ CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 11
+ CALL CHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
+ CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
+*
+ ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN
+*
+* CHESV_AASEN
+*
+ SRNAMT = 'CHESV_AA'
+ INFOT = 1
+ CALL CHESV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
+ INFOT = 2
+ CALL CHESV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
+ 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 = 8
+ CALL CHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
*
ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
*
@@ -732,6 +780,12 @@
INFOT = 8
CALL CSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
+ INFOT = 10
+ CALL CSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
+ CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
+ INFOT = 10
+ CALL CSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
+ CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
*
* CSYSVX
*
@@ -790,6 +844,47 @@
INFOT = 8
CALL CSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
+ INFOT = 10
+ CALL CSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
+ CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
+ INFOT = 10
+ CALL CSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
+ CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
+*
+ ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
+*
+* CSYSV_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 = 'CSYSV_RK'
+ INFOT = 1
+ CALL CSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 2
+ CALL CSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 3
+ CALL CSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 5
+ CALL CSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
+ CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 9
+ CALL CSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
+ CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 11
+ CALL CSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
+ CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
+ INFOT = 11
+ CALL CSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
+ CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
*
ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
*