*>
*> \param[out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION array, dimension
-*> (NMAX*max(3,NSMAX))
+*> WORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
*> \endverbatim
*>
*> \param[out] RWORK
*> \verbatim
-*> RWORK is DOUBLE PRECISION array, dimension
-*> (max(NMAX,2*NSMAX))
+*> RWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
*> \endverbatim
*>
*> \param[out] IWORK
*
* Begin generate the test matrix A.
*
+*
* Set up parameters with DLATB4 for the matrix generator
* based on the type of matrix to be generated.
*
IF( INFO.NE.0 ) THEN
CALL ALAERH( PATH, 'DLATMS', INFO, 0, UPLO, N, N, -1,
$ -1, -1, IMAT, NFAIL, NERRS, NOUT )
+*
+* Skip all tests for this generated matrix
+*
GO TO 160
END IF
*
50 CONTINUE
END IF
ELSE
- IOFF = 0
IF( IUPLO.EQ.1 ) THEN
*
* Set the first IZERO rows and columns to zero.
*
+ IOFF = 0
DO 70 J = 1, N
I2 = MIN( J, IZERO )
DO 60 I = 1, I2
*
* Set the last IZERO rows and columns to zero.
*
+ IOFF = 0
DO 90 J = 1, N
I1 = MAX( J, IZERO )
DO 80 I = I1, N
RCONDC = ZERO
GO TO 140
END IF
+*
+* Do for each value of NRHS in NSVAL.
*
DO 130 IRHS = 1, NNS
NRHS = NSVAL( IRHS )
$ RWORK( NRHS+1 ), WORK, IWORK( N+1 ),
$ INFO )
*
-* Check error code from DSYRFS.
+* Check error code from DSYRFS and handle error.
*
IF( INFO.NE.0 )
$ CALL ALAERH( PATH, 'DSYRFS', INFO, 0, UPLO, N,
END IF
120 CONTINUE
NRUN = NRUN + 6
+*
+* End do for each value of NRHS in NSVAL.
+*
130 CONTINUE
*
*+ TEST 9
$ CALL ALAERH( PATH, 'DSYCON', INFO, 0, UPLO, N, N,
$ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT )
*
-* Compute the test ratio to compare to values of RCOND
+* Compute the test ratio to compare values of RCOND
*
RESULT( 9 ) = DGET06( RCOND, RCONDC )
*
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is DOUBLE PRECISION array, dimension
-*> (NMAX*max(3,NSMAX))
+*> WORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
*> \endverbatim
*>
*> \param[out] RWORK
*> \verbatim
-*> RWORK is DOUBLE PRECISION array, dimension
-*> (max(NMAX,2*NSMAX))
+*> RWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
*> \endverbatim
*>
*> \param[out] IWORK
50 CONTINUE
END IF
ELSE
- IOFF = 0
IF( IUPLO.EQ.1 ) THEN
*
* Set the first IZERO rows and columns to zero.
*
+ IOFF = 0
DO 70 J = 1, N
I2 = MIN( J, IZERO )
DO 60 I = 1, I2
*
* Set the last IZERO rows and columns to zero.
*
+ IOFF = 0
DO 90 J = 1, N
I1 = MAX( J, IZERO )
DO 80 I = I1, N
*
* End generate the test matrix A.
*
+*
* Do for each value of NB in NBVAL
*
DO 240 INB = 1, NNB
END IF
END IF
*
-* Check error code from DSYTRF and handle error.
+* Check error code from DSYTRF_ROOK and handle error.
*
IF( INFO.NE.K)
$ CALL ALAERH( PATH, 'DSYTRF_ROOK', INFO, K,
*
DTEMP = LAM_MAX / LAM_MIN
*
-* DTEMP should be bounded by CONST
+* DTEMP should be bounded by CONST
*
DTEMP = ABS( DTEMP ) - CONST + THRESH
IF( DTEMP.GT.RESULT( 4 ) )
*
DTEMP = LAM_MAX / LAM_MIN
*
-* DTEMP should be bounded by CONST
+* DTEMP should be bounded by CONST
*
DTEMP = ABS( DTEMP ) - CONST + THRESH
IF( DTEMP.GT.RESULT( 4 ) )
NFAIL = NFAIL + 1
END IF
200 CONTINUE
- NRUN = NRUN + NT
+ NRUN = NRUN + 2
*
* Skip the other tests if this is not the first block
* size.
RCONDC = ZERO
GO TO 230
END IF
+*
+* Do for each value of NRHS in NSVAL.
*
DO 220 IRHS = 1, NNS
NRHS = NSVAL( IRHS )
*
-* Begin loop over NRHS values
-*
-*
*+ TEST 5 ( Using TRS_ROOK)
* Solve and compute residual for A * X = B.
*
210 CONTINUE
NRUN = NRUN + 2
*
-* End loop over NRHS values
+* End do for each value of NRHS in NSVAL.
*
220 CONTINUE
*
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is REAL array, dimension
-*> (NMAX*max(3,NSMAX))
+*> WORK is REAL array, dimension (NMAX*max(3,NSMAX))
*> \endverbatim
*>
*> \param[out] RWORK
*> \verbatim
-*> RWORK is REAL array, dimension
-*> (max(NMAX,2*NSMAX))
+*> RWORK is REAL array, dimension (max(NMAX,2*NSMAX))
*> \endverbatim
*>
*> \param[out] IWORK
IF( INFO.NE.0 ) THEN
CALL ALAERH( PATH, 'SLATMS', INFO, 0, UPLO, N, N, -1,
$ -1, -1, IMAT, NFAIL, NERRS, NOUT )
+*
+* Skip all tests for this generated matrix
+*
GO TO 160
END IF
*
50 CONTINUE
END IF
ELSE
- IOFF = 0
IF( IUPLO.EQ.1 ) THEN
*
* Set the first IZERO rows and columns to zero.
*
+ IOFF = 0
DO 70 J = 1, N
I2 = MIN( J, IZERO )
DO 60 I = 1, I2
*
* Set the last IZERO rows and columns to zero.
*
+ IOFF = 0
DO 90 J = 1, N
I1 = MAX( J, IZERO )
DO 80 I = I1, N
*
* End generate the test matrix A.
*
+*
* Do for each value of NB in NBVAL
*
DO 150 INB = 1, NNB
RCONDC = ZERO
GO TO 140
END IF
+*
+* Do for each value of NRHS in NSVAL.
*
DO 130 IRHS = 1, NNS
NRHS = NSVAL( IRHS )
$ RWORK( NRHS+1 ), WORK, IWORK( N+1 ),
$ INFO )
*
-* Check error code from SSYRFS.
+* Check error code from SSYRFS and handle error.
*
IF( INFO.NE.0 )
$ CALL ALAERH( PATH, 'SSYRFS', INFO, 0, UPLO, N,
END IF
120 CONTINUE
NRUN = NRUN + 6
+*
+* End do for each value of NRHS in NSVAL.
+*
130 CONTINUE
*
*+ TEST 9
*>
*> \param[out] WORK
*> \verbatim
-*> WORK is REAL array, dimension
-*> (NMAX*max(3,NSMAX))
+*> WORK is REAL array, dimension (NMAX*max(3,NSMAX))
*> \endverbatim
*>
*> \param[out] RWORK
*> \verbatim
-*> RWORK is REAL array, dimension
-*> (max(NMAX,2*NSMAX))
+*> RWORK is REAL array, dimension (max(NMAX,2*NSMAX))
*> \endverbatim
*>
*> \param[out] IWORK
50 CONTINUE
END IF
ELSE
- IOFF = 0
IF( IUPLO.EQ.1 ) THEN
*
* Set the first IZERO rows and columns to zero.
*
+ IOFF = 0
DO 70 J = 1, N
I2 = MIN( J, IZERO )
DO 60 I = 1, I2
*
* Set the last IZERO rows and columns to zero.
*
+ IOFF = 0
DO 90 J = 1, N
I1 = MAX( J, IZERO )
DO 80 I = I1, N
*
* End generate the test matrix A.
*
+*
* Do for each value of NB in NBVAL
*
DO 240 INB = 1, NNB
END IF
END IF
*
-* Check error code from SSYTRF and handle error.
+* Check error code from SSYTRF_ROOK and handle error.
*
IF( INFO.NE.K)
$ CALL ALAERH( PATH, 'SSYTRF_ROOK', INFO, K,
NFAIL = NFAIL + 1
END IF
200 CONTINUE
- NRUN = NRUN + NT
+ NRUN = NRUN + 2
*
* Skip the other tests if this is not the first block
* size.
RCONDC = ZERO
GO TO 230
END IF
+*
+* Do for each value of NRHS in NSVAL.
*
DO 220 IRHS = 1, NNS
NRHS = NSVAL( IRHS )
*
-* Begin loop over NRHS values
-*
-*
*+ TEST 5 ( Using TRS_ROOK)
* Solve and compute residual for A * X = B.
*
210 CONTINUE
NRUN = NRUN + 2
*
-* End loop over NRHS values
+* End do for each value of NRHS in NSVAL.
*
220 CONTINUE
*
$ UPLO, N, N, -1, -1, -1, IMAT,
$ NFAIL, NERRS, NOUT )
*
-* Compute the test ratio to compare to values of RCOND
+* Compute the test ratio to compare values of RCOND
*
RESULT( 7 ) = SGET06( RCOND, RCONDC )
*
PARAMETER ( ONEHALF = 0.5D+0 )
DOUBLE PRECISION EIGHT, SEVTEN
PARAMETER ( EIGHT = 8.0D+0, SEVTEN = 17.0D+0 )
- COMPLEX CZERO
+ COMPLEX*16 CZERO
PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ) )
INTEGER NTYPES
PARAMETER ( NTYPES = 10 )
$ LWORK, MODE, N, NB, NERRS, NFAIL, NIMAT, NRHS,
$ NRUN, NT
DOUBLE PRECISION ALPHA, ANORM, CNDNUM, CONST, LAM_MAX, LAM_MIN,
- $ RCOND, RCONDC, STEMP
+ $ RCOND, RCONDC, DTEMP
* ..
* .. Local Arrays ..
CHARACTER UPLOS( 2 )
* Compute largest element in U or L
*
RESULT( 3 ) = ZERO
- STEMP = ZERO
+ DTEMP = ZERO
*
CONST = ( ( ALPHA**2-ONE ) / ( ALPHA**2-ONEHALF ) ) /
$ ( ONE-ALPHA )
* Get max absolute value from elements
* in column k in in U
*
- STEMP = ZLANGE( 'M', K-1, 1,
+ DTEMP = ZLANGE( 'M', K-1, 1,
$ AFAC( ( K-1 )*LDA+1 ), LDA, RWORK )
ELSE
*
* Get max absolute value from elements
* in columns k and k-1 in U
*
- STEMP = ZLANGE( 'M', K-2, 2,
+ DTEMP = ZLANGE( 'M', K-2, 2,
$ AFAC( ( K-2 )*LDA+1 ), LDA, RWORK )
K = K - 1
*
END IF
*
-* STEMP should be bounded by CONST
+* DTEMP should be bounded by CONST
*
- STEMP = STEMP - CONST + THRESH
- IF( STEMP.GT.RESULT( 3 ) )
- $ RESULT( 3 ) = STEMP
+ DTEMP = DTEMP - CONST + THRESH
+ IF( DTEMP.GT.RESULT( 3 ) )
+ $ RESULT( 3 ) = DTEMP
*
K = K - 1
*
* Get max absolute value from elements
* in column k in L
*
- STEMP = ZLANGE( 'M', N-K, 1,
+ DTEMP = ZLANGE( 'M', N-K, 1,
$ AFAC( ( K-1 )*LDA+K+1 ), LDA, RWORK )
ELSE
*
* Get max absolute value from elements
* in columns k and k+1 in L
*
- STEMP = ZLANGE( 'M', N-K-1, 2,
+ DTEMP = ZLANGE( 'M', N-K-1, 2,
$ AFAC( ( K-1 )*LDA+K+2 ), LDA, RWORK )
K = K + 1
*
END IF
*
-* STEMP should be bounded by CONST
+* DTEMP should be bounded by CONST
*
- STEMP = STEMP - CONST + THRESH
- IF( STEMP.GT.RESULT( 3 ) )
- $ RESULT( 3 ) = STEMP
+ DTEMP = DTEMP - CONST + THRESH
+ IF( DTEMP.GT.RESULT( 3 ) )
+ $ RESULT( 3 ) = DTEMP
*
K = K + 1
*
* Compute largest 2-Norm of 2-by-2 diag blocks
*
RESULT( 4 ) = ZERO
- STEMP = ZERO
+ DTEMP = ZERO
*
CONST = ( ( ALPHA**2-ONE ) / ( ALPHA**2-ONEHALF ) )*
$ ( ( ONE + ALPHA ) / ( ONE - ALPHA ) )
*
CALL ZHEEVX( 'N', 'N', 'N', 'N', 2, BLOCK,
$ 2, WORK, CDUMMY, 1, CDUMMY, 1,
- $ ITEMP, ITEMP2, RWORK, STEMP,
+ $ ITEMP, ITEMP2, RWORK, DTEMP,
$ RWORK( 3 ), RWORK( 5 ), WORK( 3 ),
$ 4, RWORK( 7 ), INFO )
*
LAM_MIN = MIN( ABS( WORK( 1 ) ),
$ ABS( WORK( 2 ) ) )
*
- STEMP = LAM_MAX / LAM_MIN
+ DTEMP = LAM_MAX / LAM_MIN
*
-* STEMP should be bounded by CONST
+* DTEMP should be bounded by CONST
*
- STEMP = ABS( STEMP ) - CONST + THRESH
- IF( STEMP.GT.RESULT( 4 ) )
- $ RESULT( 4 ) = STEMP
+ DTEMP = ABS( DTEMP ) - CONST + THRESH
+ IF( DTEMP.GT.RESULT( 4 ) )
+ $ RESULT( 4 ) = DTEMP
K = K - 1
*
END IF
*
CALL ZHEEVX( 'N', 'N', 'N', 'N', 2, BLOCK,
$ 2, WORK, CDUMMY, 1, CDUMMY, 1,
- $ ITEMP, ITEMP2, RWORK, STEMP,
+ $ ITEMP, ITEMP2, RWORK, DTEMP,
$ RWORK( 3 ), RWORK( 5 ), WORK( 3 ),
$ 4, RWORK( 7 ), INFO )
*
LAM_MIN = MIN( ABS( WORK( 1 ) ),
$ ABS( WORK( 2 ) ) )
*
- STEMP = LAM_MAX / LAM_MIN
+ DTEMP = LAM_MAX / LAM_MIN
*
-* STEMP should be bounded by CONST
+* DTEMP should be bounded by CONST
*
- STEMP = ABS( STEMP ) - CONST + THRESH
- IF( STEMP.GT.RESULT( 4 ) )
- $ RESULT( 4 ) = STEMP
+ DTEMP = ABS( DTEMP ) - CONST + THRESH
+ IF( DTEMP.GT.RESULT( 4 ) )
+ $ RESULT( 4 ) = DTEMP
K = K + 1
*
END IF