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
*