added a special block diagonal matrix type to tests for COMPLEX symmetric indefinite...
authorigor175 <igor175@8a072113-8704-0410-8d35-dd094bca7971>
Tue, 27 Dec 2011 05:10:16 +0000 (05:10 +0000)
committerigor175 <igor175@8a072113-8704-0410-8d35-dd094bca7971>
Tue, 27 Dec 2011 05:10:16 +0000 (05:10 +0000)
TESTING/LIN/cchkaa.f
TESTING/LIN/cchksy.f
TESTING/LIN/cchksy_rook.f
TESTING/ctest.in

index 0d6d880..c5b058f 100644 (file)
@@ -52,7 +52,7 @@
 *> CHE   10               List types on next line if 0 < NTYPES < 10
 *> CHP   10               List types on next line if 0 < NTYPES < 10
 *> CSY   11               List types on next line if 0 < NTYPES < 11
-*> CSR   10               List types on next line if 0 < NTYPES < 10
+*> CSR   11               List types on next line if 0 < NTYPES < 11
 *> CSP   11               List types on next line if 0 < NTYPES < 11
 *> CTR   18               List types on next line if 0 < NTYPES < 18
 *> CTP   18               List types on next line if 0 < NTYPES < 18
 *        SR:  symmetric indefinite matrices with Rook pivoting,
 *             with rook (bounded Bunch-Kaufman) pivoting algorithm
 *
-         NTYPES = 10
+         NTYPES = 11
          CALL ALAREQ( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT )
 *
          IF( TSTCHK ) THEN
index a722d38..c3fdb65 100644 (file)
 *                 code for the 2 x 2 blocks.
 *
                   CALL CLATSY( UPLO, N, A, LDA, ISEED )
+*
                END IF
 *
 *              Do for each value of NB in NBVAL
index d3c2714..ab876e3 100644 (file)
       COMPLEX            CZERO
       PARAMETER          ( CZERO = ( 0.0E+0, 0.0E+0 )  )
       INTEGER            NTYPES
-      PARAMETER          ( NTYPES = 10 )
+      PARAMETER          ( NTYPES = 11 )
       INTEGER            NTESTS
       PARAMETER          ( NTESTS = 7 )
 *     ..
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           ALAERH, ALAHD, ALASUM, CERRSY, CGEEVX, CGET04,
-     $                   CLACPY, CLARHS, CLATB4, CLATMS, CSYT02, CSYT03,
-     $                   CSYCON_ROOK, CSYT01_ROOK, CSYTRF_ROOK,
+     $                   CLACPY, CLARHS, CLATB4, CLATMS, CLATSY, CSYT02,
+     $                   CSYT03, CSYCON_ROOK, CSYT01_ROOK, CSYTRF_ROOK,
      $                   CSYTRI_ROOK, CSYTRS_ROOK, XLAENV
 *     ..
 *     .. Intrinsic Functions ..
             DO 250 IUPLO = 1, 2
                UPLO = UPLOS( IUPLO )
 *
-*              Begin generate the test matrix A.
+               IF( IMAT.NE.NTYPES ) THEN
 *
-*              Set up parameters with CLATB4 for the matrix generator
-*              based on the type of matrix to be generated.
+*                 Begin generate the test matrix A.
 *
-               CALL CLATB4( MATPATH, IMAT, N, N, TYPE, KL, KU, ANORM,
-     $                      MODE, CNDNUM, DIST )
+*                 Set up parameters with CLATB4 for the matrix generator
+*                 based on the type of matrix to be generated.
 *
-*              Generate a matrix with CLATMS.
+                  CALL CLATB4( MATPATH, IMAT, N, N, TYPE, KL, KU, ANORM,
+     $                         MODE, CNDNUM, DIST )
 *
-               SRNAMT = 'CLATMS'
-               CALL CLATMS( N, N, DIST, ISEED, TYPE, RWORK, MODE,
-     $                      CNDNUM, ANORM, KL, KU, UPLO, A, LDA, WORK,
-     $                      INFO )
+*                 Generate a matrix with CLATMS.
 *
-*              Check error code from CLATMS and handle error.
+                  SRNAMT = 'CLATMS'
+                  CALL CLATMS( N, N, DIST, ISEED, TYPE, RWORK, MODE,
+     $                         CNDNUM, ANORM, KL, KU, UPLO, A, LDA,
+     $                         WORK, INFO )
 *
-               IF( INFO.NE.0 ) THEN
-                  CALL ALAERH( PATH, 'CLATMS', INFO, 0, UPLO, N, N, -1,
-     $                         -1, -1, IMAT, NFAIL, NERRS, NOUT )
+*                 Check error code from CLATMS and handle error.
 *
-*                 Skip all tests for this generated matrix
-*
-                  GO TO 250
-               END IF
+                  IF( INFO.NE.0 ) THEN
+                     CALL ALAERH( PATH, 'CLATMS', INFO, 0, UPLO, N, N,
+     $                            -1, -1, -1, IMAT, NFAIL, NERRS, NOUT )
 *
-*              For matrix types 3-6, zero one or more rows and
-*              columns of the matrix to test that INFO is returned
-*              correctly.
+*                    Skip all tests for this generated matrix
 *
-               IF( ZEROT ) THEN
-                  IF( IMAT.EQ.3 ) THEN
-                     IZERO = 1
-                  ELSE IF( IMAT.EQ.4 ) THEN
-                     IZERO = N
-                  ELSE
-                     IZERO = N / 2 + 1
+                     GO TO 250
                   END IF
 *
-                  IF( IMAT.LT.6 ) THEN
-*
-*                    Set row and column IZERO to zero.
+*                 For matrix types 3-6, zero one or more rows and
+*                 columns of the matrix to test that INFO is returned
+*                 correctly.
 *
-                     IF( IUPLO.EQ.1 ) THEN
-                        IOFF = ( IZERO-1 )*LDA
-                        DO 20 I = 1, IZERO - 1
-                           A( IOFF+I ) = CZERO
-   20                   CONTINUE
-                        IOFF = IOFF + IZERO
-                        DO 30 I = IZERO, N
-                           A( IOFF ) = CZERO
-                           IOFF = IOFF + LDA
-   30                   CONTINUE
+                  IF( ZEROT ) THEN
+                     IF( IMAT.EQ.3 ) THEN
+                        IZERO = 1
+                     ELSE IF( IMAT.EQ.4 ) THEN
+                        IZERO = N
                      ELSE
-                        IOFF = IZERO
-                        DO 40 I = 1, IZERO - 1
-                           A( IOFF ) = CZERO
-                           IOFF = IOFF + LDA
-   40                   CONTINUE
-                        IOFF = IOFF - IZERO
-                        DO 50 I = IZERO, N
-                           A( IOFF+I ) = CZERO
-   50                   CONTINUE
+                        IZERO = N / 2 + 1
                      END IF
-                  ELSE
-                     IOFF = 0
-                     IF( IUPLO.EQ.1 ) THEN
 *
-*                       Set the first IZERO rows and columns to zero.
+                     IF( IMAT.LT.6 ) THEN
 *
-                        DO 70 J = 1, N
-                           I2 = MIN( J, IZERO )
-                           DO 60 I = 1, I2
-                              A( IOFF+I ) = CZERO
-   60                      CONTINUE
-                           IOFF = IOFF + LDA
-   70                   CONTINUE
-                     ELSE
+*                       Set row and column IZERO to zero.
 *
-*                       Set the last IZERO rows and columns to zero.
-*
-                        DO 90 J = 1, N
-                           I1 = MAX( J, IZERO )
-                           DO 80 I = I1, N
+                        IF( IUPLO.EQ.1 ) THEN
+                           IOFF = ( IZERO-1 )*LDA
+                           DO 20 I = 1, IZERO - 1
+                              A( IOFF+I ) = CZERO
+   20                      CONTINUE
+                           IOFF = IOFF + IZERO
+                           DO 30 I = IZERO, N
+                              A( IOFF ) = CZERO
+                              IOFF = IOFF + LDA
+   30                      CONTINUE
+                        ELSE
+                           IOFF = IZERO
+                           DO 40 I = 1, IZERO - 1
+                              A( IOFF ) = CZERO
+                              IOFF = IOFF + LDA
+   40                      CONTINUE
+                           IOFF = IOFF - IZERO
+                           DO 50 I = IZERO, N
                               A( IOFF+I ) = CZERO
-   80                      CONTINUE
-                           IOFF = IOFF + LDA
-   90                   CONTINUE
+   50                      CONTINUE
+                        END IF
+                     ELSE
+                        IOFF = 0
+                        IF( IUPLO.EQ.1 ) THEN
+*
+*                          Set the first IZERO rows and columns to zero.
+*
+                           DO 70 J = 1, N
+                              I2 = MIN( J, IZERO )
+                              DO 60 I = 1, I2
+                                 A( IOFF+I ) = CZERO
+   60                         CONTINUE
+                              IOFF = IOFF + LDA
+   70                      CONTINUE
+                        ELSE
+*
+*                          Set the last IZERO rows and columns to zero.
+*
+                           DO 90 J = 1, N
+                              I1 = MAX( J, IZERO )
+                              DO 80 I = I1, N
+                                 A( IOFF+I ) = CZERO
+   80                         CONTINUE
+                              IOFF = IOFF + LDA
+   90                      CONTINUE
+                        END IF
                      END IF
+                  ELSE
+                     IZERO = 0
                   END IF
+*
+*                 End generate the test matrix A.
+*
                ELSE
-                  IZERO = 0
-               END IF
 *
-*              End generate the test matrix A.
+*                 Use a special block diagonal matrix to test alternate
+*                 code for the 2 x 2 blocks.
+*
+                  CALL CLATSY( UPLO, N, A, LDA, ISEED )
+*
+               END IF
 *
 *              Do for each value of NB in NBVAL
 *
index 5cbaff1..6e6763c 100644 (file)
@@ -25,7 +25,7 @@ CPT   12               List types on next line if 0 < NTYPES < 12
 CHE   10               List types on next line if 0 < NTYPES < 10
 CHP   10               List types on next line if 0 < NTYPES < 10
 CSY   11               List types on next line if 0 < NTYPES < 11
-CSR   10               List types on next line if 0 < NTYPES < 10
+CSR   11               List types on next line if 0 < NTYPES < 11
 CSP   11               List types on next line if 0 < NTYPES < 11
 CTR   18               List types on next line if 0 < NTYPES < 18
 CTP   18               List types on next line if 0 < NTYPES < 18