LAPACK bug fix for XBLAS: bug revealed in testing of linear equation routines, when...
authorigor175 <igor175@8a072113-8704-0410-8d35-dd094bca7971>
Mon, 18 Nov 2013 23:51:04 +0000 (23:51 +0000)
committerigor175 <igor175@8a072113-8704-0410-8d35-dd094bca7971>
Mon, 18 Nov 2013 23:51:04 +0000 (23:51 +0000)
16 files changed:
TESTING/LIN/Makefile
TESTING/LIN/cerrhe.f
TESTING/LIN/cerrhex.f
TESTING/LIN/cerrsy.f
TESTING/LIN/cerrsyx.f
TESTING/LIN/cerrvxx.f
TESTING/LIN/derrsy.f
TESTING/LIN/derrsyx.f
TESTING/LIN/serrsy.f
TESTING/LIN/serrsyx.f
TESTING/LIN/serrvxx.f
TESTING/LIN/zerrhe.f
TESTING/LIN/zerrhex.f
TESTING/LIN/zerrsy.f
TESTING/LIN/zerrsyx.f
TESTING/LIN/zerrvxx.f

index 16113973df62aff06eea9a8b59eba549af2d9e2c..3eb968fddc1dd8aee2d76888c68fd375a9302ca0 100644 (file)
@@ -78,10 +78,10 @@ SLINTST = schkaa.o \
 
 ifdef USEXBLAS
 SLINTST += serrvxx.o sdrvgex.o sdrvsyx.o serrgex.o sdrvgbx.o sdrvpox.o \
-       sebchvxx.o serrsyx.o serrpox.o
+           sebchvxx.o serrsyx.o serrpox.o
 else
 SLINTST += serrvx.o sdrvge.o sdrvsy.o serrge.o sdrvgb.o sdrvpo.o \
-       serrsy.o serrpo.o
+           serrsy.o serrpo.o
 endif
 
 CLINTST = cchkaa.o \
@@ -90,9 +90,9 @@ CLINTST = cchkaa.o \
    cchkpo.o cchkps.o cchkpp.o cchkpt.o cchkq3.o cchkql.o cchkqp.o \
    cchkqr.o cchkrq.o cchksp.o cchksy.o cchksy_rook.o cchktb.o \
    cchktp.o cchktr.o cchktz.o \
-   cdrvgt.o cdrvhp.o \
+   cdrvgt.o cdrvhe_rook.o cdrvhp.o \
    cdrvls.o cdrvpb.o cdrvpp.o cdrvpt.o \
-   cdrvsp.o \
+   cdrvsp.o cdrvsy_rook.o \
    cerrgt.o cerrlq.o \
    cerrls.o cerrps.o cerrql.o cerrqp.o \
    cerrqr.o cerrrq.o cerrtr.o cerrtz.o \
@@ -118,11 +118,11 @@ CLINTST = cchkaa.o \
    cqrt04.o cqrt05.o cchkqrt.o cerrqrt.o cchkqrtp.o cerrqrtp.o
 
 ifdef USEXBLAS
-CLINTST += cerrvxx.o cdrvgex.o cdrvsyx.o cdrvgbx.o cerrgex.o cdrvpox.o cdrvhex.o \
-       cerrpox.o cebchvxx.o cerrsyx.o cerrhex.o
+CLINTST += cerrvxx.o cdrvgex.o cdrvsyx.o cdrvgbx.o cerrgex.o cdrvpox.o \
+           cdrvhex.o cerrpox.o cebchvxx.o cerrsyx.o cerrhex.o
 else
-CLINTST += cerrvx.o cdrvge.o cdrvsy.o cdrvsy_rook.o cdrvgb.o cerrge.o cdrvpo.o \
-       cdrvhe.o cdrvhe_rook.o cerrpo.o cerrsy.o cerrhe.o
+CLINTST += cerrvx.o cdrvge.o cdrvsy.o cdrvgb.o cerrge.o cdrvpo.o \
+           cdrvhe.o cerrpo.o cerrsy.o cerrhe.o
 endif
 
 DLINTST = dchkaa.o \
@@ -157,10 +157,10 @@ DLINTST = dchkaa.o \
 
 ifdef USEXBLAS
 DLINTST += derrvxx.o ddrvgex.o ddrvsyx.o ddrvgbx.o derrgex.o ddrvpox.o derrpox.o \
-       debchvxx.o derrsyx.o
+           debchvxx.o derrsyx.o
 else
 DLINTST += derrvx.o ddrvge.o ddrvsy.o ddrvgb.o derrge.o ddrvpo.o derrpo.o \
-       derrsy.o
+           derrsy.o
 endif
 
 ZLINTST = zchkaa.o \
@@ -169,9 +169,9 @@ ZLINTST = zchkaa.o \
    zchkpo.o zchkps.o zchkpp.o zchkpt.o zchkq3.o zchkql.o zchkqp.o \
    zchkqr.o zchkrq.o zchksp.o zchksy.o zchksy_rook.o zchktb.o \
    zchktp.o zchktr.o zchktz.o \
-   zdrvgt.o zdrvhp.o \
+   zdrvgt.o zdrvhe_rook.o zdrvhp.o \
    zdrvls.o zdrvpb.o zdrvpp.o zdrvpt.o \
-   zdrvsp.o \
+   zdrvsp.o zdrvsy_rook.o \
    zerrgt.o zerrlq.o \
    zerrls.o zerrps.o zerrql.o zerrqp.o \
    zerrqr.o zerrrq.o zerrtr.o zerrtz.o \
@@ -198,10 +198,10 @@ ZLINTST = zchkaa.o \
 
 ifdef USEXBLAS
 ZLINTST += zerrvxx.o zdrvgex.o zdrvsyx.o zdrvgbx.o zerrgex.o zdrvpox.o zdrvhex.o \
-       zerrpox.o zebchvxx.o zerrsyx.o zerrhex.o
+           zerrpox.o zebchvxx.o zerrsyx.o zerrhex.o
 else
-ZLINTST += zerrvx.o zdrvge.o zdrvsy.o zdrvsy_rook.o zdrvgb.o zerrge.o zdrvpo.o \
-       zdrvhe.o zdrvhe_rook.o zerrpo.o zerrsy.o zerrhe.o
+ZLINTST += zerrvx.o zdrvge.o zdrvsy.o zdrvgb.o zerrge.o zdrvpo.o \
+           zdrvhe.o zerrpo.o zerrsy.o zerrhe.o
 endif
 
 DSLINTST = dchkab.o \
index 88820e8d0e2104258448f5c840a99ad36f49d627..19a3182f77201ffc2bda2fab4b29664fbb830c62 100644 (file)
          CALL CHECON_ROOK( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
          CALL CHKXER( 'CHECON_ROOK', INFOT, NOUT, LERR, OK )
 *
-*     Test error exits of the routines that use the diagonal pivoting
-*     factorization of a Hermitian indefinite packed matrix.
+*        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
 *
index cc3d2f0292116b2eb2ab7020406f0cd82bb77b6a..824ec5925b53ae400ff39a86a1f4dd89d053b2bf 100644 (file)
       EXTERNAL           LSAMEN
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL           ALAESM, CHECON, CHERFS, CHETF2, CHETRF, CHETRI,
-     $                   CHETRI2, CHETRS, CHKXER, CHPCON, CHPRFS,
-     $                   CHPTRF, CHPTRI, CHPTRS, CHERFSX
+      EXTERNAL           ALAESM, CHECON,  CHECON_ROOK, CHERFS, CHETF2,
+     $                   CHETF2_ROOK, CHETRF, CHETRF_ROOK, CHETRI,
+     $                   CHETRI_ROOK, CHETRI2, CHETRS,  CHETRS_ROOK,
+     $                   CHKXER, CHPCON, CHPRFS, CHPTRF, CHPTRI, CHPTRS,
+     $                   CHERFSX
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
       ANRM = 1.0
       OK = .TRUE.
 *
-*     Test error exits of the routines that use the diagonal pivoting
-*     factorization of a Hermitian indefinite matrix.
+*     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
 *
      $        PARAMS, W, R, INFO )
          CALL CHKXER( 'CHERFSX', INFOT, NOUT, LERR, OK )
 *
-*     Test error exits of the routines that use the diagonal pivoting
-*     factorization of a Hermitian indefinite packed matrix.
+*        Test error exits of the routines that use factorization
+*        of a Hermitian indefinite matrix with "rook"
+*        (bounded Bunch-Kaufman) diagonal pivoting method.
+*
+      ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN
+*
+*        CHETRF_ROOK
+*
+         SRNAMT = 'CHETRF_ROOK'
+         INFOT = 1
+         CALL CHETRF_ROOK( '/', 0, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'CHETRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CHETRF_ROOK( 'U', -1, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'CHETRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL CHETRF_ROOK( 'U', 2, A, 1, IP, W, 4, INFO )
+         CALL CHKXER( 'CHETRF_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        CHETF2_ROOK
+*
+         SRNAMT = 'CHETF2_ROOK'
+         INFOT = 1
+         CALL CHETF2_ROOK( '/', 0, A, 1, IP, INFO )
+         CALL CHKXER( 'CHETF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CHETF2_ROOK( 'U', -1, A, 1, IP, INFO )
+         CALL CHKXER( 'CHETF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL CHETF2_ROOK( 'U', 2, A, 1, IP, INFO )
+         CALL CHKXER( 'CHETF2_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        CHETRI_ROOK
+*
+         SRNAMT = 'CHETRI_ROOK'
+         INFOT = 1
+         CALL CHETRI_ROOK( '/', 0, A, 1, IP, W, INFO )
+         CALL CHKXER( 'CHETRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CHETRI_ROOK( 'U', -1, A, 1, IP, W, INFO )
+         CALL CHKXER( 'CHETRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL CHETRI_ROOK( 'U', 2, A, 1, IP, W, INFO )
+         CALL CHKXER( 'CHETRI_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        CHETRS_ROOK
+*
+         SRNAMT = 'CHETRS_ROOK'
+         INFOT = 1
+         CALL CHETRS_ROOK( '/', 0, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'CHETRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CHETRS_ROOK( 'U', -1, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'CHETRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 3
+         CALL CHETRS_ROOK( 'U', 0, -1, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'CHETRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 5
+         CALL CHETRS_ROOK( 'U', 2, 1, A, 1, IP, B, 2, INFO )
+         CALL CHKXER( 'CHETRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 8
+         CALL CHETRS_ROOK( 'U', 2, 1, A, 2, IP, B, 1, INFO )
+         CALL CHKXER( 'CHETRS_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        CHECON_ROOK
+*
+         SRNAMT = 'CHECON_ROOK'
+         INFOT = 1
+         CALL CHECON_ROOK( '/', 0, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'CHECON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CHECON_ROOK( 'U', -1, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'CHECON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL CHECON_ROOK( 'U', 2, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'CHECON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 6
+         CALL CHECON_ROOK( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'CHECON_ROOK', INFOT, NOUT, LERR, OK )
+*
+*     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
 *
index 8c2f927a4f97e0700be0e5f9cb6bee2894da93e7..f3fb8171012ccbd8af214407600afe55409092c2 100644 (file)
@@ -88,9 +88,9 @@
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           ALAESM, CHKXER, CSPCON, CSPRFS, CSPTRF, CSPTRI,
-     $                   CSPTRS, CSYCON, CSYRFS, CSYTF2, CSYTRF, CSYTRI,
-     $                   CSYTRI2, CSYTRS, CSYCON_ROOK, CSYTF2_ROOK,
-     $                   CSYTRF_ROOK, CSYTRI_ROOK, CSYTRS_ROOK
+     $                   CSPTRS, CSYCON, CSYCON_ROOK, CSYRFS, CSYTF2,
+     $                   CSYTF2_ROOK, CSYTRF, CSYTRF_ROOK, CSYTRI,
+     $                   CSYTRI_ROOK, CSYTRI2, CSYTRS, CSYTRS_ROOK
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
          CALL CSYCON_ROOK( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
          CALL CHKXER( 'CSYCON_ROOK', INFOT, NOUT, LERR, OK )
 *
-      ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
+*     Test error exits of the routines that use factorization
+*     of a symmetric indefinite packed matrix with patrial
+*     (Bunch-Kaufman) diagonal pivoting method.
 *
-*        Test error exits of the routines that use factorization
-*        of a symmetric indefinite packed matrix with patrial
-*        (Bunch-Kaufman) pivoting.
+      ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
 *        CSPTRF
 *
index f904176c49c4f22b9c5af019555e1abef1a9f4c8..a5a7892d8c86c5205b8ca5c730510ddeb0f7fb39 100644 (file)
@@ -95,7 +95,9 @@
 *     .. External Subroutines ..
       EXTERNAL           ALAESM, CHKXER, CSPCON, CSPRFS, CSPTRF, CSPTRI,
      $                   CSPTRS, CSYCON, CSYRFS, CSYTF2, CSYTRF, CSYTRI,
-     $                   CSYTRI2, CSYTRS, CSYRFSX
+     $                   CSYTRI2, CSYTRS, CSYRFSX, CSYCON_ROOK,
+     $                   CSYTF2_ROOK, CSYTRF_ROOK, CSYTRI_ROOK,
+     $                   CSYTRS_ROOK
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
       ANRM = 1.0
       OK = .TRUE.
 *
-*     Test error exits of the routines that use the diagonal pivoting
-*     factorization of a symmetric indefinite matrix.
+*     Test error exits of the routines that use factorization
+*     of a symmetric indefinite matrix with patrial
+*     (Bunch-Kaufman) diagonal pivoting method.
 *
       IF( LSAMEN( 2, C2, 'SY' ) ) THEN
 *
          CALL CSYCON( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
          CALL CHKXER( 'CSYCON', INFOT, NOUT, LERR, OK )
 *
-*     Test error exits of the routines that use the diagonal pivoting
-*     factorization of a symmetric indefinite packed matrix.
+*     Test error exits of the routines that use factorization
+*     of a symmetric indefinite matrix with "rook"
+*     (bounded Bunch-Kaufman) diagonal pivoting method.
+*
+      ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
+*
+*        CSYTRF_ROOK
+*
+         SRNAMT = 'CSYTRF_ROOK'
+         INFOT = 1
+         CALL CSYTRF_ROOK( '/', 0, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'CSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CSYTRF_ROOK( 'U', -1, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'CSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL CSYTRF_ROOK( 'U', 2, A, 1, IP, W, 4, INFO )
+         CALL CHKXER( 'CSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        CSYTF2_ROOK
+*
+         SRNAMT = 'CSYTF2_ROOK'
+         INFOT = 1
+         CALL CSYTF2_ROOK( '/', 0, A, 1, IP, INFO )
+         CALL CHKXER( 'CSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CSYTF2_ROOK( 'U', -1, A, 1, IP, INFO )
+         CALL CHKXER( 'CSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL CSYTF2_ROOK( 'U', 2, A, 1, IP, INFO )
+         CALL CHKXER( 'CSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        CSYTRI_ROOK
+*
+         SRNAMT = 'CSYTRI_ROOK'
+         INFOT = 1
+         CALL CSYTRI_ROOK( '/', 0, A, 1, IP, W, INFO )
+         CALL CHKXER( 'CSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CSYTRI_ROOK( 'U', -1, A, 1, IP, W, INFO )
+         CALL CHKXER( 'CSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL CSYTRI_ROOK( 'U', 2, A, 1, IP, W, INFO )
+         CALL CHKXER( 'CSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        CSYTRS_ROOK
+*
+         SRNAMT = 'CSYTRS_ROOK'
+         INFOT = 1
+         CALL CSYTRS_ROOK( '/', 0, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'CSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CSYTRS_ROOK( 'U', -1, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'CSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 3
+         CALL CSYTRS_ROOK( 'U', 0, -1, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'CSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 5
+         CALL CSYTRS_ROOK( 'U', 2, 1, A, 1, IP, B, 2, INFO )
+         CALL CHKXER( 'CSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 8
+         CALL CSYTRS_ROOK( 'U', 2, 1, A, 2, IP, B, 1, INFO )
+         CALL CHKXER( 'CSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        CSYCON_ROOK
+*
+         SRNAMT = 'CSYCON_ROOK'
+         INFOT = 1
+         CALL CSYCON_ROOK( '/', 0, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'CSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CSYCON_ROOK( 'U', -1, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'CSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL CSYCON_ROOK( 'U', 2, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'CSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 6
+         CALL CSYCON_ROOK( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'CSYCON_ROOK', INFOT, NOUT, LERR, OK )
+*
+*     Test error exits of the routines that use factorization
+*     of a symmetric indefinite packed matrix with patrial
+*     (Bunch-Kaufman) diagonal pivoting method.
 *
       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
index 1526604a572e705199d8ff44729aa3970a178c45..954fba3eb90c8e7bd1534a925536847d3c0cc71f 100644 (file)
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           CGBSV, CGBSVX, CGESV, CGESVX, CGTSV, CGTSVX,
-     $                   CHESV, CHESVX, CHKXER, CHPSV, CHPSVX, CPBSV,
-     $                   CPBSVX, CPOSV, CPOSVX, CPPSV, CPPSVX, CPTSV,
-     $                   CPTSVX, CSPSV, CSPSVX, CSYSV, CSYSVX, CGESVXX,
-     $                   CPOSVXX, CSYSVXX, CHESVXX, CGBSVXX
+     $                   CHESV, CHESV_ROOK, CHESVX, CHKXER, CHPSV,
+     $                   CHPSVX, CPBSV, CPBSVX, CPOSV, CPOSVX, CPPSV,
+     $                   CPPSVX, CPTSV, CPTSVX, CSPSV, CSPSVX, CSYSV,
+     $                   CSYSV_ROOK, CSYSVX, CGESVXX, CPOSVXX, CSYSVXX,
+     $                   CHESVXX, CGBSVXX
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
      $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
          CALL CHKXER( 'CHESVXX', 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 )
 *
       ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
 *
      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
      $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
          CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
+*
+      ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
+*
+*        CSYSV_ROOK
+*
+         SRNAMT = 'CSYSV_ROOK'
+         INFOT = 1
+         CALL CSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL CSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
+         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 = 8
+         CALL CSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
 *
       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
index 82f877f24d746d09fe4b54f64eda21644acb0528..b07a8ee09a142da82af7a448060168f950bcb2f7 100644 (file)
@@ -87,9 +87,9 @@
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           ALAESM, CHKXER, DSPCON, DSPRFS, DSPTRF, DSPTRI,
-     $                   DSPTRS, DSYCON, DSYRFS, DSYTF2, DSYTRF, DSYTRI,
-     $                   DSYTRI2, DSYTRS, DSYCON_ROOK, DSYTF2_ROOK,
-     $                   DSYTRF_ROOK, DSYTRI_ROOK, DSYTRS_ROOK
+     $                   DSPTRS, DSYCON, DSYCON_ROOK, DSYRFS, DSYTF2,
+     $                   DSYTF2_ROOK, DSYTRF, DSYTRF_ROOK, DSYTRI,
+     $                   DSYTRI_ROOK, DSYTRI2, DSYTRS, DSYTRS_ROOK
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
index d94c02fb88657b352ceb281d9d5d36f1c749be22..9f37e42093d8034677fd176e9927b4844677baaa 100644 (file)
       EXTERNAL           LSAMEN
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL           ALAESM, CHKXER, DSPCON, DSPRFS, DSPTRF, DSPTRI,
-     $                   DSPTRS, DSYCON, DSYRFS, DSYTF2, DSYTRF, DSYTRI,
-     $                   DSYTRI2, DSYTRS, DSYRFSX
+      EXTERNAL           ALAESM, CHKXER, DSPCON, DSYCON_ROOK, DSPRFS,
+     $                   DSPTRF, DSPTRI, DSPTRS, DSYCON, DSYRFS, DSYTF2,
+     $                   DSYTF2_ROOK, DSYTRF, DSYTRF_ROOK, DSYTRI,
+     $                   DSYTRI_ROOK, DSYTRI2, DSYTRS, DSYTRS_ROOK,
+     $                   DSYRFSX
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
 *
       IF( LSAMEN( 2, C2, 'SY' ) ) THEN
 *
-*        Test error exits of the routines that use the Bunch-Kaufman
-*        factorization of a symmetric indefinite matrix.
+*        Test error exits of the routines that use factorization
+*        of a symmetric indefinite matrix with patrial
+*        (Bunch-Kaufman) pivoting.
 *
 *        DSYTRF
 *
          INFOT = 6
          CALL DSYCON( 'U', 1, A, 1, IP, -1.0D0, RCOND, W, IW, INFO )
          CALL CHKXER( 'DSYCON', INFOT, NOUT, LERR, OK )
+*
+      ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
+*
+*        Test error exits of the routines that use factorization
+*        of a symmetric indefinite matrix with rook
+*        (bounded Bunch-Kaufman) pivoting.
+*
+*        DSYTRF_ROOK
+*
+         SRNAMT = 'DSYTRF_ROOK'
+         INFOT = 1
+         CALL DSYTRF_ROOK( '/', 0, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'DSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL DSYTRF_ROOK( 'U', -1, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'DSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL DSYTRF_ROOK( 'U', 2, A, 1, IP, W, 4, INFO )
+         CALL CHKXER( 'DSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        DSYTF2_ROOK
+*
+         SRNAMT = 'DSYTF2_ROOK'
+         INFOT = 1
+         CALL DSYTF2_ROOK( '/', 0, A, 1, IP, INFO )
+         CALL CHKXER( 'DSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL DSYTF2_ROOK( 'U', -1, A, 1, IP, INFO )
+         CALL CHKXER( 'DSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL DSYTF2_ROOK( 'U', 2, A, 1, IP, INFO )
+         CALL CHKXER( 'DSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        DSYTRI_ROOK
+*
+         SRNAMT = 'DSYTRI_ROOK'
+         INFOT = 1
+         CALL DSYTRI_ROOK( '/', 0, A, 1, IP, W, INFO )
+         CALL CHKXER( 'DSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL DSYTRI_ROOK( 'U', -1, A, 1, IP, W, INFO )
+         CALL CHKXER( 'DSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL DSYTRI_ROOK( 'U', 2, A, 1, IP, W, INFO )
+         CALL CHKXER( 'DSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        DSYTRS_ROOK
+*
+         SRNAMT = 'DSYTRS_ROOK'
+         INFOT = 1
+         CALL DSYTRS_ROOK( '/', 0, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'DSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL DSYTRS_ROOK( 'U', -1, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'DSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 3
+         CALL DSYTRS_ROOK( 'U', 0, -1, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'DSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 5
+         CALL DSYTRS_ROOK( 'U', 2, 1, A, 1, IP, B, 2, INFO )
+         CALL CHKXER( 'DSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 8
+         CALL DSYTRS_ROOK( 'U', 2, 1, A, 2, IP, B, 1, INFO )
+         CALL CHKXER( 'DSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        DSYCON_ROOK
+*
+         SRNAMT = 'DSYCON_ROOK'
+         INFOT = 1
+         CALL DSYCON_ROOK( '/', 0, A, 1, IP, ANRM, RCOND, W, IW, INFO )
+         CALL CHKXER( 'DSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL DSYCON_ROOK( 'U', -1, A, 1, IP, ANRM, RCOND, W, IW, INFO )
+         CALL CHKXER( 'DSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL DSYCON_ROOK( 'U', 2, A, 1, IP, ANRM, RCOND, W, IW, INFO )
+         CALL CHKXER( 'DSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 6
+         CALL DSYCON_ROOK( 'U', 1, A, 1, IP, -1.0D0, RCOND, W, IW, INFO)
+         CALL CHKXER( 'DSYCON_ROOK', INFOT, NOUT, LERR, OK )
 *
       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
-*        Test error exits of the routines that use the Bunch-Kaufman
-*        factorization of a symmetric indefinite packed matrix.
+*        Test error exits of the routines that use factorization
+*        of a symmetric indefinite packed matrix with patrial
+*        (Bunch-Kaufman) pivoting.
 *
 *        DSPTRF
 *
index e1a5aafe9d8ec5cc40e994dc92f610acbe15184d..ca0dcfe6b51d3f713689957c527e7a30ed693723 100644 (file)
       EXTERNAL           LSAMEN
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL           ALAESM, CHKXER, SSPCON, SSPRFS, SSPTRF, SSPTRI,
-     $                   SSPTRS, SSYCON, SSYRFS, SSYTF2, SSYTRF, SSYTRI,
-     $                   SSYTRI2, SSYTRS, SSYCON_ROOK, SSYTF2_ROOK,
-     $                   SSYTRF_ROOK, SSYTRI_ROOK, SSYTRS_ROOK
+      EXTERNAL           ALAESM, CHKXER, SSPCON, SSYCON_ROOK, SSPRFS,
+     $                   SSPTRF, SSPTRI, SSPTRS, SSYCON, SSYRFS, SSYTF2,
+     $                   SSYTF2_ROOK, SSYTRF, SSYTRF_ROOK, SSYTRI,
+     $                   SSYTRI_ROOK, SSYTRI2, SSYTRS, SSYTRS_ROOK
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
          INFOT = 6
          CALL SSYCON_ROOK( 'U', 1, A, 1, IP, -1.0, RCOND, W, IW, INFO )
          CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK )
-*
-      ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
 *        Test error exits of the routines that use factorization
 *        of a symmetric indefinite packed matrix with patrial
 *        (Bunch-Kaufman) pivoting.
+*
+      ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
 *        SSPTRF
 *
index 48513d9dc1b290f5eeb358e7af27ad23ffa55934..9f794e21baa68acb15c20301a92b313013957b1d 100644 (file)
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           ALAESM, CHKXER, SSPCON, SSPRFS, SSPTRF, SSPTRI,
-     $                   SSPTRS, SSYCON, SSYRFS, SSYTF2, SSYTRF, SSYTRI,
-     $                   SSYTRI2, SSYTRS, SSYRFSX
+     $                   SSPTRS, SSYCON, SSYCON_ROOK,SSYRFS, SSYTF2,
+     $                   SSYTF2_ROOK, SSYTRF, SSYTRF_ROOK, SSYTRI,
+     $                   SSYTRI_ROOK, SSYTRI2, SSYTRS, SSYTRS_ROOK,
+     $                   SSYRFSX
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
 *
       IF( LSAMEN( 2, C2, 'SY' ) ) THEN
 *
-*        Test error exits of the routines that use the Bunch-Kaufman
-*        factorization of a symmetric indefinite matrix.
+*        Test error exits of the routines that use factorization
+*        of a symmetric indefinite matrix with patrial
+*        (Bunch-Kaufman) pivoting.
 *
 *        SSYTRF
 *
          CALL SSYCON( 'U', 1, A, 1, IP, -1.0, RCOND, W, IW, INFO )
          CALL CHKXER( 'SSYCON', INFOT, NOUT, LERR, OK )
 *
-      ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
+      ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
+*
+*        Test error exits of the routines that use factorization
+*        of a symmetric indefinite matrix with rook
+*        (bounded Bunch-Kaufman) pivoting.
+*
+*        SSYTRF_ROOK
+*
+         SRNAMT = 'SSYTRF_ROOK'
+         INFOT = 1
+         CALL SSYTRF_ROOK( '/', 0, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL SSYTRF_ROOK( 'U', -1, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL SSYTRF_ROOK( 'U', 2, A, 1, IP, W, 4, INFO )
+         CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        SSYTF2_ROOK
+*
+         SRNAMT = 'SSYTF2_ROOK'
+         INFOT = 1
+         CALL SSYTF2_ROOK( '/', 0, A, 1, IP, INFO )
+         CALL CHKXER( 'SSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL SSYTF2_ROOK( 'U', -1, A, 1, IP, INFO )
+         CALL CHKXER( 'SSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL SSYTF2_ROOK( 'U', 2, A, 1, IP, INFO )
+         CALL CHKXER( 'SSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        SSYTRI_ROOK
+*
+         SRNAMT = 'SSYTRI_ROOK'
+         INFOT = 1
+         CALL SSYTRI_ROOK( '/', 0, A, 1, IP, W, INFO )
+         CALL CHKXER( 'SSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL SSYTRI_ROOK( 'U', -1, A, 1, IP, W, INFO )
+         CALL CHKXER( 'SSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL SSYTRI_ROOK( 'U', 2, A, 1, IP, W, INFO )
+         CALL CHKXER( 'SSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        SSYTRS_ROOK
+*
+         SRNAMT = 'SSYTRS_ROOK'
+         INFOT = 1
+         CALL SSYTRS_ROOK( '/', 0, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL SSYTRS_ROOK( 'U', -1, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 3
+         CALL SSYTRS_ROOK( 'U', 0, -1, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 5
+         CALL SSYTRS_ROOK( 'U', 2, 1, A, 1, IP, B, 2, INFO )
+         CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 8
+         CALL SSYTRS_ROOK( 'U', 2, 1, A, 2, IP, B, 1, INFO )
+         CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK )
 *
-*        Test error exits of the routines that use the Bunch-Kaufman
-*        factorization of a symmetric indefinite packed matrix.
+*        SSYCON_ROOK
+*
+         SRNAMT = 'SSYCON_ROOK'
+         INFOT = 1
+         CALL SSYCON_ROOK( '/', 0, A, 1, IP, ANRM, RCOND, W, IW, INFO )
+         CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL SSYCON_ROOK( 'U', -1, A, 1, IP, ANRM, RCOND, W, IW, INFO )
+         CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL SSYCON_ROOK( 'U', 2, A, 1, IP, ANRM, RCOND, W, IW, INFO )
+         CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 6
+         CALL SSYCON_ROOK( 'U', 1, A, 1, IP, -1.0, RCOND, W, IW, INFO )
+         CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        Test error exits of the routines that use factorization
+*        of a symmetric indefinite packed matrix with patrial
+*        (Bunch-Kaufman) pivoting.
+*
+      ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
 *        SSPTRF
 *
index c5849e415d56d4da0dc2c5cf42bdec42ae44c9e6..0496d16eee24339023b3f1b279b3382e56326285 100644 (file)
@@ -92,7 +92,8 @@
       EXTERNAL           CHKXER, SGBSV, SGBSVX, SGESV, SGESVX, SGTSV,
      $                   SGTSVX, SPBSV, SPBSVX, SPOSV, SPOSVX, SPPSV,
      $                   SPPSVX, SPTSV, SPTSVX, SSPSV, SSPSVX, SSYSV,
-     $                   SSYSVX, SGESVXX, SSYSVXX, SPOSVXX, SGBSVXX
+     $                   SSYSV_ROOK, SSYSVX, SGESVXX, SSYSVXX, SPOSVXX,
+     $                   SGBSVXX
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
      $        ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
          CALL CHKXER( 'SSYSVXX', INFOT, NOUT, LERR, OK )
+*
+*        SSYSV_ROOK
+*
+         SRNAMT = 'SSYSV_ROOK'
+         INFOT = 1
+         CALL SSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL SSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
+         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 = 8
+         CALL SSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
 *
       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
index 223df2b0b5f21bb240860d99f780e292b231954c..60066288934b762591aac3e8083fcd73786dc602 100644 (file)
          CALL ZHECON_ROOK( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
          CALL CHKXER( 'ZHECON_ROOK', INFOT, NOUT, LERR, OK )
 *
-*     Test error exits of the routines that use the diagonal pivoting
-*     factorization of a Hermitian indefinite packed matrix.
+*        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
 *
index 7dafede06802e912222f5b04ea57de8e32136682..ea8aa5d8e417a3ce773de90fd67cf70e916ca16f 100644 (file)
       EXTERNAL           LSAMEN
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL           ALAESM, CHKXER, ZHECON, ZHERFS, ZHETF2, ZHETRF,
-     $                   ZHETRI, ZHETRI2, ZHETRS, ZHPCON, ZHPRFS,
-     $                   ZHPTRF, ZHPTRI, ZHPTRS, ZHERFSX
+      EXTERNAL           ALAESM, CHKXER, ZHECON, ZHECON_ROOK, ZHERFS,
+     $                   ZHETF2, ZHETF2_ROOK, ZHETRF, ZHETRF_ROOK,
+     $                   ZHETRI, ZHETRI_ROOK, ZHETRI2, ZHETRS,
+     $                   ZHETRS_ROOK, ZHPCON, ZHPRFS, ZHPTRF, ZHPTRI,
+     $                   ZHPTRS, ZHERFSX
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
       ANRM = 1.0D0
       OK = .TRUE.
 *
-*     Test error exits of the routines that use the diagonal pivoting
-*     factorization of a Hermitian indefinite matrix.
+*     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
 *
          CALL ZHECON( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
          CALL CHKXER( 'ZHECON', INFOT, NOUT, LERR, OK )
 *
-*     Test error exits of the routines that use the diagonal pivoting
-*     factorization of a Hermitian indefinite packed matrix.
+*        Test error exits of the routines that use factorization
+*        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'
+         INFOT = 1
+         CALL ZHETRF_ROOK( '/', 0, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'ZHETRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZHETRF_ROOK( 'U', -1, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'ZHETRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL ZHETRF_ROOK( 'U', 2, A, 1, IP, W, 4, INFO )
+         CALL CHKXER( 'ZHETRF_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        ZHETF2_ROOK
+*
+         SRNAMT = 'ZHETF2_ROOK'
+         INFOT = 1
+         CALL ZHETF2_ROOK( '/', 0, A, 1, IP, INFO )
+         CALL CHKXER( 'ZHETF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZHETF2_ROOK( 'U', -1, A, 1, IP, INFO )
+         CALL CHKXER( 'ZHETF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL ZHETF2_ROOK( 'U', 2, A, 1, IP, INFO )
+         CALL CHKXER( 'ZHETF2_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        ZHETRI_ROOK
+*
+         SRNAMT = 'ZHETRI_ROOK'
+         INFOT = 1
+         CALL ZHETRI_ROOK( '/', 0, A, 1, IP, W, INFO )
+         CALL CHKXER( 'ZHETRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZHETRI_ROOK( 'U', -1, A, 1, IP, W, INFO )
+         CALL CHKXER( 'ZHETRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL ZHETRI_ROOK( 'U', 2, A, 1, IP, W, INFO )
+         CALL CHKXER( 'ZHETRI_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        ZHETRS_ROOK
+*
+         SRNAMT = 'ZHETRS_ROOK'
+         INFOT = 1
+         CALL ZHETRS_ROOK( '/', 0, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'ZHETRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZHETRS_ROOK( 'U', -1, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'ZHETRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 3
+         CALL ZHETRS_ROOK( 'U', 0, -1, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'ZHETRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 5
+         CALL ZHETRS_ROOK( 'U', 2, 1, A, 1, IP, B, 2, INFO )
+         CALL CHKXER( 'ZHETRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 8
+         CALL ZHETRS_ROOK( 'U', 2, 1, A, 2, IP, B, 1, INFO )
+         CALL CHKXER( 'ZHETRS_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        ZHECON_ROOK
+*
+         SRNAMT = 'ZHECON_ROOK'
+         INFOT = 1
+         CALL ZHECON_ROOK( '/', 0, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'ZHECON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZHECON_ROOK( 'U', -1, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'ZHECON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL ZHECON_ROOK( 'U', 2, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'ZHECON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 6
+         CALL ZHECON_ROOK( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'ZHECON_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        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
 *
index bdcd559bb7fbe0abbffe4643efad04a8e330457a..a9126a12fcb9c3c6b42c776de687dafcbed2ac4a 100644 (file)
@@ -88,9 +88,9 @@
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           ALAESM, CHKXER, ZSPCON, ZSPRFS, ZSPTRF, ZSPTRI,
-     $                   ZSPTRS, ZSYCON, ZSYRFS, ZSYTF2, ZSYTRF, ZSYTRI,
-     $                   ZSYTRI2, ZSYTRS, ZSYCON_ROOK, ZSYTF2_ROOK,
-     $                   ZSYTRF_ROOK, ZSYTRI_ROOK, ZSYTRS_ROOK
+     $                   ZSPTRS, ZSYCON, ZSYCON_ROOK, ZSYRFS, ZSYTF2,
+     $                   ZSYTF2_ROOK, ZSYTRF, ZSYTRF_ROOK, ZSYTRI,
+     $                   ZSYTRI_ROOK, ZSYTRI2, ZSYTRS, ZSYTRS_ROOK
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
          INFOT = 6
          CALL ZSYCON_ROOK( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
          CALL CHKXER( 'ZSYCON_ROOK', INFOT, NOUT, LERR, OK )
-*
-      ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
 *        Test error exits of the routines that use factorization
 *        of a symmetric indefinite packed matrix with patrial
 *        (Bunch-Kaufman) pivoting.
+*
+      ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
 *        ZSPTRF
 *
index 3da57aea17fca22712135202d2068464e4b416ed..c04efac66ceac384637fffc61eea53807b3e39e6 100644 (file)
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           ALAESM, CHKXER, ZSPCON, ZSPRFS, ZSPTRF, ZSPTRI,
-     $                   ZSPTRS, ZSYCON, ZSYRFS, ZSYTF2, ZSYTRF, ZSYTRI,
-     $                   ZSYTRI2, ZSYTRS, ZSYRFSX
+     $                   ZSPTRS, ZSYCON, ZSYCON_ROOK, ZSYRFS, ZSYTF2,
+     $                   ZSYTF2_ROOK, ZSYTRF, ZSYTRF_ROOK, ZSYTRI,
+     $                   ZSYTRI_ROOK, ZSYTRI2, ZSYTRS, ZSYTRS_ROOK,
+     $                   ZSYRFSX
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
       ANRM = 1.0D0
       OK = .TRUE.
 *
-*     Test error exits of the routines that use the diagonal pivoting
-*     factorization of a symmetric indefinite matrix.
+*     Test error exits of the routines that use factorization
+*     of a symmetric indefinite matrix with patrial
+*     (Bunch-Kaufman) diagonal pivoting method.
 *
       IF( LSAMEN( 2, C2, 'SY' ) ) THEN
 *
          CALL ZSYCON( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
          CALL CHKXER( 'ZSYCON', INFOT, NOUT, LERR, OK )
 *
-*     Test error exits of the routines that use the diagonal pivoting
-*     factorization of a symmetric indefinite packed matrix.
+*     Test error exits of the routines that use factorization
+*     of a symmetric indefinite matrix with "rook"
+*     (bounded Bunch-Kaufman) diagonal pivoting method.
+*
+      ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
+*
+*        ZSYTRF_ROOK
+*
+         SRNAMT = 'ZSYTRF_ROOK'
+         INFOT = 1
+         CALL ZSYTRF_ROOK( '/', 0, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'ZSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZSYTRF_ROOK( 'U', -1, A, 1, IP, W, 1, INFO )
+         CALL CHKXER( 'ZSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL ZSYTRF_ROOK( 'U', 2, A, 1, IP, W, 4, INFO )
+         CALL CHKXER( 'ZSYTRF_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        ZSYTF2_ROOK
+*
+         SRNAMT = 'ZSYTF2_ROOK'
+         INFOT = 1
+         CALL ZSYTF2_ROOK( '/', 0, A, 1, IP, INFO )
+         CALL CHKXER( 'ZSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZSYTF2_ROOK( 'U', -1, A, 1, IP, INFO )
+         CALL CHKXER( 'ZSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL ZSYTF2_ROOK( 'U', 2, A, 1, IP, INFO )
+         CALL CHKXER( 'ZSYTF2_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        ZSYTRI_ROOK
+*
+         SRNAMT = 'ZSYTRI_ROOK'
+         INFOT = 1
+         CALL ZSYTRI_ROOK( '/', 0, A, 1, IP, W, INFO )
+         CALL CHKXER( 'ZSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZSYTRI_ROOK( 'U', -1, A, 1, IP, W, INFO )
+         CALL CHKXER( 'ZSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL ZSYTRI_ROOK( 'U', 2, A, 1, IP, W, INFO )
+         CALL CHKXER( 'ZSYTRI_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        ZSYTRS_ROOK
+*
+         SRNAMT = 'ZSYTRS_ROOK'
+         INFOT = 1
+         CALL ZSYTRS_ROOK( '/', 0, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'ZSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZSYTRS_ROOK( 'U', -1, 0, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'ZSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 3
+         CALL ZSYTRS_ROOK( 'U', 0, -1, A, 1, IP, B, 1, INFO )
+         CALL CHKXER( 'ZSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 5
+         CALL ZSYTRS_ROOK( 'U', 2, 1, A, 1, IP, B, 2, INFO )
+         CALL CHKXER( 'ZSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 8
+         CALL ZSYTRS_ROOK( 'U', 2, 1, A, 2, IP, B, 1, INFO )
+         CALL CHKXER( 'ZSYTRS_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        ZSYCON_ROOK
+*
+         SRNAMT = 'ZSYCON_ROOK'
+         INFOT = 1
+         CALL ZSYCON_ROOK( '/', 0, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'ZSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZSYCON_ROOK( 'U', -1, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'ZSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 4
+         CALL ZSYCON_ROOK( 'U', 2, A, 1, IP, ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'ZSYCON_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 6
+         CALL ZSYCON_ROOK( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
+         CALL CHKXER( 'ZSYCON_ROOK', INFOT, NOUT, LERR, OK )
+*
+*        Test error exits of the routines that use factorization
+*        of a symmetric indefinite packed matrix with patrial
+*        (Bunch-Kaufman) pivoting.
 *
       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *
index 09bc746d5fce64663bd297c56de551afcdb15ba0..c28f76ee8787ef501365be712e4dda96660a243b 100644 (file)
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           CHKXER, ZGBSV, ZGBSVX, ZGESV, ZGESVX, ZGTSV,
-     $                   ZGTSVX, ZHESV, ZHESVX, ZHPSV, ZHPSVX, ZPBSV,
-     $                   ZPBSVX, ZPOSV, ZPOSVX, ZPPSV, ZPPSVX, ZPTSV,
-     $                   ZPTSVX, ZSPSV, ZSPSVX, ZSYSV, ZSYSVX, ZGESVXX,
-     $                   ZSYSVXX, ZPOSVXX, ZHESVXX, ZGBSVXX
+     $                   ZGTSVX, ZHESV, ZHESV_ROOK, ZHESVX, ZHPSV,
+     $                   ZHPSVX, ZPBSV, ZPBSVX, ZPOSV, ZPOSVX, ZPPSV,
+     $                   ZPPSVX, ZPTSV, ZPTSVX, ZSPSV, ZSPSVX, ZSYSV,
+     $                   ZSYSV_ROOK, ZSYSVX, ZGESVXX, ZSYSVXX, ZPOSVXX,
+     $                   ZHESVXX, ZGBSVXX
 *     ..
 *     .. Scalars in Common ..
       LOGICAL            LERR, OK
      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
      $                IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
          CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
+*
+      ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN
+*
+*        ZHESV_ROOK
+*
+         SRNAMT = 'ZHESV_ROOK'
+         INFOT = 1
+         CALL ZHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
+         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 = 8
+         CALL ZHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
 *
       ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
 *
      $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
          CALL CHKXER( 'ZHESVXX', INFOT, NOUT, LERR, OK )
+*
+      ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN
+*
+*        ZHESV_ROOK
+*
+         SRNAMT = 'ZHESV_ROOK'
+         INFOT = 1
+         CALL ZHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
+         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 = 8
+         CALL ZHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
 *
       ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
 *
      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
      $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
          CALL CHKXER( 'ZSYSVXX', INFOT, NOUT, LERR, OK )
+         CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
+*
+      ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
+*
+*        ZSYSV_ROOK
+*
+         SRNAMT = 'ZSYSV_ROOK'
+         INFOT = 1
+         CALL ZSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
+         INFOT = 2
+         CALL ZSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
+         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 = 8
+         CALL ZSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
+         CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
 *
       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
 *