dchkee.f
来自「famous linear algebra library (LAPACK) p」· F 代码 · 共 1,815 行 · 第 1/5 页
F
1,815 行
* The values for the matrix bandwidth K.
*
* line 6: NPARMS, INTEGER
* Number of values of the parameter NRHS
*
* line 7: NSVAL, INTEGER array, dimension (NPARMS)
* The values for the number of right hand sides NRHS.
*
* line 8: THRESH
* Threshold value for the test ratios. Information will be
* printed about each test for which the test ratio is greater
* than or equal to the threshold.
*
* line 9: NEWSD, INTEGER
* A code indicating how to set the random number seed.
* = 0: Set the seed to a default value before each run
* = 1: Initialize the seed to a default value only before the
* first run
* = 2: Like 1, but use the seed values on the next line
*
* If line 9 was 2:
*
* line 10: INTEGER array, dimension (4)
* Four integer values for the random number seed.
*
* lines 10-EOF: Lines specifying matrix types, as for SVD.
* The 3-character path name is 'DBB'.
*
*-----------------------------------------------------------------------
*
* DEC input file:
*
* line 2: THRESH, REAL
* Threshold value for the test ratios. Information will be
* printed about each test for which the test ratio is greater
* than or equal to the threshold.
*
* lines 3-EOF:
*
* Input for testing the eigencondition routines consists of a set of
* specially constructed test cases and their solutions. The data
* format is not intended to be modified by the user.
*
*-----------------------------------------------------------------------
*
* DBL and DBK input files:
*
* line 1: 'DBL' in columns 1-3 to test SGEBAL, or 'DBK' in
* columns 1-3 to test SGEBAK.
*
* The remaining lines consist of specially constructed test cases.
*
*-----------------------------------------------------------------------
*
* DGL and DGK input files:
*
* line 1: 'DGL' in columns 1-3 to test DGGBAL, or 'DGK' in
* columns 1-3 to test DGGBAK.
*
* The remaining lines consist of specially constructed test cases.
*
*-----------------------------------------------------------------------
*
* GLM data file:
*
* line 1: 'GLM' in columns 1 to 3.
*
* line 2: NN, INTEGER
* Number of values of M, P, and N.
*
* line 3: MVAL, INTEGER array, dimension(NN)
* Values of M (row dimension).
*
* line 4: PVAL, INTEGER array, dimension(NN)
* Values of P (row dimension).
*
* line 5: NVAL, INTEGER array, dimension(NN)
* Values of N (column dimension), note M <= N <= M+P.
*
* line 6: THRESH, REAL
* Threshold value for the test ratios. Information will be
* printed about each test for which the test ratio is greater
* than or equal to the threshold.
*
* line 7: TSTERR, LOGICAL
* Flag indicating whether or not to test the error exits for
* the LAPACK routines and driver routines.
*
* line 8: NEWSD, INTEGER
* A code indicating how to set the random number seed.
* = 0: Set the seed to a default value before each run
* = 1: Initialize the seed to a default value only before the
* first run
* = 2: Like 1, but use the seed values on the next line
*
* If line 8 was 2:
*
* line 9: INTEGER array, dimension (4)
* Four integer values for the random number seed.
*
* lines 9-EOF: Lines specifying matrix types, as for NEP.
* The 3-character path name is 'GLM' for the generalized
* linear regression model routines.
*
*-----------------------------------------------------------------------
*
* GQR data file:
*
* line 1: 'GQR' in columns 1 to 3.
*
* line 2: NN, INTEGER
* Number of values of M, P, and N.
*
* line 3: MVAL, INTEGER array, dimension(NN)
* Values of M.
*
* line 4: PVAL, INTEGER array, dimension(NN)
* Values of P.
*
* line 5: NVAL, INTEGER array, dimension(NN)
* Values of N.
*
* line 6: THRESH, REAL
* Threshold value for the test ratios. Information will be
* printed about each test for which the test ratio is greater
* than or equal to the threshold.
*
* line 7: TSTERR, LOGICAL
* Flag indicating whether or not to test the error exits for
* the LAPACK routines and driver routines.
*
* line 8: NEWSD, INTEGER
* A code indicating how to set the random number seed.
* = 0: Set the seed to a default value before each run
* = 1: Initialize the seed to a default value only before the
* first run
* = 2: Like 1, but use the seed values on the next line
*
* If line 8 was 2:
*
* line 9: INTEGER array, dimension (4)
* Four integer values for the random number seed.
*
* lines 9-EOF: Lines specifying matrix types, as for NEP.
* The 3-character path name is 'GQR' for the generalized
* QR and RQ routines.
*
*-----------------------------------------------------------------------
*
* GSV data file:
*
* line 1: 'GSV' in columns 1 to 3.
*
* line 2: NN, INTEGER
* Number of values of M, P, and N.
*
* line 3: MVAL, INTEGER array, dimension(NN)
* Values of M (row dimension).
*
* line 4: PVAL, INTEGER array, dimension(NN)
* Values of P (row dimension).
*
* line 5: NVAL, INTEGER array, dimension(NN)
* Values of N (column dimension).
*
* line 6: THRESH, REAL
* Threshold value for the test ratios. Information will be
* printed about each test for which the test ratio is greater
* than or equal to the threshold.
*
* line 7: TSTERR, LOGICAL
* Flag indicating whether or not to test the error exits for
* the LAPACK routines and driver routines.
*
* line 8: NEWSD, INTEGER
* A code indicating how to set the random number seed.
* = 0: Set the seed to a default value before each run
* = 1: Initialize the seed to a default value only before the
* first run
* = 2: Like 1, but use the seed values on the next line
*
* If line 8 was 2:
*
* line 9: INTEGER array, dimension (4)
* Four integer values for the random number seed.
*
* lines 9-EOF: Lines specifying matrix types, as for NEP.
* The 3-character path name is 'GSV' for the generalized
* SVD routines.
*
*-----------------------------------------------------------------------
*
* LSE data file:
*
* line 1: 'LSE' in columns 1 to 3.
*
* line 2: NN, INTEGER
* Number of values of M, P, and N.
*
* line 3: MVAL, INTEGER array, dimension(NN)
* Values of M.
*
* line 4: PVAL, INTEGER array, dimension(NN)
* Values of P.
*
* line 5: NVAL, INTEGER array, dimension(NN)
* Values of N, note P <= N <= P+M.
*
* line 6: THRESH, REAL
* Threshold value for the test ratios. Information will be
* printed about each test for which the test ratio is greater
* than or equal to the threshold.
*
* line 7: TSTERR, LOGICAL
* Flag indicating whether or not to test the error exits for
* the LAPACK routines and driver routines.
*
* line 8: NEWSD, INTEGER
* A code indicating how to set the random number seed.
* = 0: Set the seed to a default value before each run
* = 1: Initialize the seed to a default value only before the
* first run
* = 2: Like 1, but use the seed values on the next line
*
* If line 8 was 2:
*
* line 9: INTEGER array, dimension (4)
* Four integer values for the random number seed.
*
* lines 9-EOF: Lines specifying matrix types, as for NEP.
* The 3-character path name is 'GSV' for the generalized
* SVD routines.
*
*-----------------------------------------------------------------------
*
* NMAX is currently set to 132 and must be at least 12 for some of the
* precomputed examples, and LWORK = NMAX*(5*NMAX+5)+1 in the parameter
* statements below. For SVD, we assume NRHS may be as big as N. The
* parameter NEED is set to 14 to allow for 14 N-by-N matrices for DGG.
*
* =====================================================================
*
* .. Parameters ..
INTEGER NMAX
PARAMETER ( NMAX = 132 )
INTEGER NCMAX
PARAMETER ( NCMAX = 20 )
INTEGER NEED
PARAMETER ( NEED = 14 )
INTEGER LWORK
PARAMETER ( LWORK = NMAX*( 5*NMAX+5 )+1 )
INTEGER LIWORK
PARAMETER ( LIWORK = NMAX*( 5*NMAX+20 ) )
INTEGER MAXIN
PARAMETER ( MAXIN = 20 )
INTEGER MAXT
PARAMETER ( MAXT = 30 )
INTEGER NIN, NOUT
PARAMETER ( NIN = 5, NOUT = 6 )
* ..
* .. Local Scalars ..
LOGICAL DBB, DGG, DSB, FATAL, GLM, GQR, GSV, LSE, NEP,
$ DBK, DBL, SEP, DES, DEV, DGK, DGL, DGS, DGV,
$ DGX, DSX, SVD, DVX, DXV, TSTCHK, TSTDIF,
$ TSTDRV, TSTERR
CHARACTER C1
CHARACTER*3 C3, PATH
CHARACTER*6 VNAME
CHARACTER*10 INTSTR
CHARACTER*80 LINE
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
$ NK, NN, NPARMS, NRHS, NTYPES,
$ VERS_MAJOR, VERS_MINOR, VERS_PATCH
DOUBLE PRECISION EPS, S1, S2, THRESH, THRSHN
* ..
* .. Local Arrays ..
LOGICAL DOTYPE( MAXT ), LOGWRK( NMAX )
INTEGER IOLDSD( 4 ), ISEED( 4 ), IWORK( LIWORK ),
$ KVAL( MAXIN ), MVAL( MAXIN ), MXBVAL( MAXIN ),
$ NBCOL( MAXIN ), NBMIN( MAXIN ), NBVAL( MAXIN ),
$ NSVAL( MAXIN ), NVAL( MAXIN ), NXVAL( MAXIN ),
$ PVAL( MAXIN )
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
$ ISHFTS( MAXIN ), IACC22( MAXIN )
DOUBLE PRECISION A( NMAX*NMAX, NEED ), B( NMAX*NMAX, 5 ),
$ C( NCMAX*NCMAX, NCMAX*NCMAX ), D( NMAX, 12 ),
$ RESULT( 500 ), TAUA( NMAX ), TAUB( NMAX ),
$ WORK( LWORK ), X( 5*NMAX )
* ..
* .. External Functions ..
LOGICAL LSAMEN
DOUBLE PRECISION DLAMCH, DSECND
EXTERNAL LSAMEN, DLAMCH, DSECND
* ..
* .. External Subroutines ..
EXTERNAL ALAREQ, DCHKBB, DCHKBD, DCHKBK, DCHKBL, DCHKEC,
$ DCHKGG, DCHKGK, DCHKGL, DCHKHS, DCHKSB, DCHKST,
$ DCKGLM, DCKGQR, DCKGSV, DCKLSE, DDRGES, DDRGEV,
$ DDRGSX, DDRGVX, DDRVBD, DDRVES, DDRVEV, DDRVGG,
$ DDRVSG, DDRVST, DDRVSX, DDRVVX, DERRBD, DERRED,
$ DERRGG, DERRHS, DERRST, ILAVER, XLAENV
* ..
* .. Intrinsic Functions ..
INTRINSIC LEN, MIN
* ..
* .. Scalars in Common ..
LOGICAL LERR, OK
CHARACTER*6 SRNAMT
INTEGER INFOT, MAXB, NPROC, NSHIFT, NUNIT, SELDIM,
$ SELOPT
* ..
* .. Arrays in Common ..
LOGICAL SELVAL( 20 )
INTEGER IPARMS( 100 )
DOUBLE PRECISION SELWI( 20 ), SELWR( 20 )
* ..
* .. Common blocks ..
COMMON / CENVIR / NPROC, NSHIFT, MAXB
COMMON / INFOC / INFOT, NUNIT, OK, LERR
COMMON / SRNAMC / SRNAMT
COMMON / SSLCT / SELOPT, SELDIM, SELVAL, SELWR, SELWI
COMMON / ZLAENV / IPARMS
* ..
* .. Data statements ..
DATA INTSTR / '0123456789' /
DATA IOLDSD / 0, 0, 0, 1 /
* ..
* .. Executable Statements ..
*
S1 = DSECND( )
FATAL = .FALSE.
NUNIT = NOUT
*
* Return to here to read multiple sets of data
*
10 CONTINUE
*
* Read the first line and set the 3-character test path
*
READ( NIN, FMT = '(A80)', END = 380 )LINE
PATH = LINE( 1: 3 )
NEP = LSAMEN( 3, PATH, 'NEP' ) .OR. LSAMEN( 3, PATH, 'DHS' )
SEP = LSAMEN( 3, PATH, 'SEP' ) .OR. LSAMEN( 3, PATH, 'DST' ) .OR.
$ LSAMEN( 3, PATH, 'DSG' )
SVD = LSAMEN( 3, PATH, 'SVD' ) .OR. LSAMEN( 3, PATH, 'DBD' )
DEV = LSAMEN( 3, PATH, 'DEV' )
DES = LSAMEN( 3, PATH, 'DES' )
DVX = LSAMEN( 3, PATH, 'DVX' )
DSX = LSAMEN( 3, PATH, 'DSX' )
DGG = LSAMEN( 3, PATH, 'DGG' )
DGS = LSAMEN( 3, PATH, 'DGS' )
DGX = LSAMEN( 3, PATH, 'DGX' )
DGV = LSAMEN( 3, PATH, 'DGV' )
DXV = LSAMEN( 3, PATH, 'DXV' )
DSB = LSAMEN( 3, PATH, 'DSB' )
DBB = LSAMEN( 3, PATH, 'DBB' )
GLM = LSAMEN( 3, PATH, 'GLM' )
GQR = LSAMEN( 3, PATH, 'GQR' ) .OR. LSAMEN( 3, PATH, 'GRQ' )
GSV = LSAMEN( 3, PATH, 'GSV' )
LSE = LSAMEN( 3, PATH, 'LSE' )
DBL = LSAMEN( 3, PATH, 'DBL' )
DBK = LSAMEN( 3, PATH, 'DBK' )
DGL = LSAMEN( 3, PATH, 'DGL' )
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?