dchkee.f

来自「famous linear algebra library (LAPACK) p」· F 代码 · 共 1,815 行 · 第 1/5 页

F
1,815
字号
      PROGRAM DCHKEE
*
*  -- LAPACK test routine (version 3.1.1) --
*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
*     January 2007
*
*  Purpose
*  =======
*
*  DCHKEE tests the DOUBLE PRECISION LAPACK subroutines for the matrix
*  eigenvalue problem.  The test paths in this version are
*
*  NEP (Nonsymmetric Eigenvalue Problem):
*      Test DGEHRD, DORGHR, DHSEQR, DTREVC, DHSEIN, and DORMHR
*
*  SEP (Symmetric Eigenvalue Problem):
*      Test DSYTRD, DORGTR, DSTEQR, DSTERF, DSTEIN, DSTEDC,
*      and drivers DSYEV(X), DSBEV(X), DSPEV(X), DSTEV(X),
*                  DSYEVD,   DSBEVD,   DSPEVD,   DSTEVD
*
*  SVD (Singular Value Decomposition):
*      Test DGEBRD, DORGBR, DBDSQR, DBDSDC
*      and the drivers DGESVD, DGESDD
*
*  DEV (Nonsymmetric Eigenvalue/eigenvector Driver):
*      Test DGEEV
*
*  DES (Nonsymmetric Schur form Driver):
*      Test DGEES
*
*  DVX (Nonsymmetric Eigenvalue/eigenvector Expert Driver):
*      Test DGEEVX
*
*  DSX (Nonsymmetric Schur form Expert Driver):
*      Test DGEESX
*
*  DGG (Generalized Nonsymmetric Eigenvalue Problem):
*      Test DGGHRD, DGGBAL, DGGBAK, DHGEQZ, and DTGEVC
*      and the driver routines DGEGS and DGEGV
*
*  DGS (Generalized Nonsymmetric Schur form Driver):
*      Test DGGES
*
*  DGV (Generalized Nonsymmetric Eigenvalue/eigenvector Driver):
*      Test DGGEV
*
*  DGX (Generalized Nonsymmetric Schur form Expert Driver):
*      Test DGGESX
*
*  DXV (Generalized Nonsymmetric Eigenvalue/eigenvector Expert Driver):
*      Test DGGEVX
*
*  DSG (Symmetric Generalized Eigenvalue Problem):
*      Test DSYGST, DSYGV, DSYGVD, DSYGVX, DSPGST, DSPGV, DSPGVD,
*      DSPGVX, DSBGST, DSBGV, DSBGVD, and DSBGVX
*
*  DSB (Symmetric Band Eigenvalue Problem):
*      Test DSBTRD
*
*  DBB (Band Singular Value Decomposition):
*      Test DGBBRD
*
*  DEC (Eigencondition estimation):
*      Test DLALN2, DLASY2, DLAEQU, DLAEXC, DTRSYL, DTREXC, DTRSNA,
*      DTRSEN, and DLAQTR
*
*  DBL (Balancing a general matrix)
*      Test DGEBAL
*
*  DBK (Back transformation on a balanced matrix)
*      Test DGEBAK
*
*  DGL (Balancing a matrix pair)
*      Test DGGBAL
*
*  DGK (Back transformation on a matrix pair)
*      Test DGGBAK
*
*  GLM (Generalized Linear Regression Model):
*      Tests DGGGLM
*
*  GQR (Generalized QR and RQ factorizations):
*      Tests DGGQRF and DGGRQF
*
*  GSV (Generalized Singular Value Decomposition):
*      Tests DGGSVD, DGGSVP, DTGSJA, DLAGS2, DLAPLL, and DLAPMT
*
*  LSE (Constrained Linear Least Squares):
*      Tests DGGLSE
*
*  Each test path has a different set of inputs, but the data sets for
*  the driver routines xEV, xES, xVX, and xSX can be concatenated in a
*  single input file.  The first line of input should contain one of the
*  3-character path names in columns 1-3.  The number of remaining lines
*  depends on what is found on the first line.
*
*  The number of matrix types used in testing is often controllable from
*  the input file.  The number of matrix types for each path, and the
*  test routine that describes them, is as follows:
*
*  Path name(s)  Types    Test routine
*
*  DHS or NEP      21     DCHKHS
*  DST or SEP      21     DCHKST (routines)
*                  18     DDRVST (drivers)
*  DBD or SVD      16     DCHKBD (routines)
*                   5     DDRVBD (drivers)
*  DEV             21     DDRVEV
*  DES             21     DDRVES
*  DVX             21     DDRVVX
*  DSX             21     DDRVSX
*  DGG             26     DCHKGG (routines)
*                  26     DDRVGG (drivers)
*  DGS             26     DDRGES
*  DGX              5     DDRGSX
*  DGV             26     DDRGEV
*  DXV              2     DDRGVX
*  DSG             21     DDRVSG
*  DSB             15     DCHKSB
*  DBB             15     DCHKBB
*  DEC              -     DCHKEC
*  DBL              -     DCHKBL
*  DBK              -     DCHKBK
*  DGL              -     DCHKGL
*  DGK              -     DCHKGK
*  GLM              8     DCKGLM
*  GQR              8     DCKGQR
*  GSV              8     DCKGSV
*  LSE              8     DCKLSE
*
*-----------------------------------------------------------------------
*
*  NEP input file:
*
*  line 2:  NN, INTEGER
*           Number of values of N.
*
*  line 3:  NVAL, INTEGER array, dimension (NN)
*           The values for the matrix dimension N.
*
*  line 4:  NPARMS, INTEGER
*           Number of values of the parameters NB, NBMIN, NX, NS, and
*           MAXB.
*
*  line 5:  NBVAL, INTEGER array, dimension (NPARMS)
*           The values for the blocksize NB.
*
*  line 6:  NBMIN, INTEGER array, dimension (NPARMS)
*           The values for the minimum blocksize NBMIN.
*
*  line 7:  NXVAL, INTEGER array, dimension (NPARMS)
*           The values for the crossover point NX.
*
*  line 8:  INMIN, INTEGER array, dimension (NPARMS)
*           LAHQR vs TTQRE crossover point, >= 11
*
*  line 9:  INWIN, INTEGER array, dimension (NPARMS)
*           recommended deflation window size
*
*  line 10: INIBL, INTEGER array, dimension (NPARMS)
*           nibble crossover point
*
*  line 11: ISHFTS, INTEGER array, dimension (NPARMS)
*           number of simultaneous shifts)
*
*  line 12: IACC22, INTEGER array, dimension (NPARMS)
*           select structured matrix multiply: 0, 1 or 2)
*
*  line 13: 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.  To have all of the test
*           ratios printed, use THRESH = 0.0 .
*
*  line 14: 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 14 was 2:
*
*  line 15: INTEGER array, dimension (4)
*           Four integer values for the random number seed.
*
*  lines 15-EOF:  The remaining lines occur in sets of 1 or 2 and allow
*           the user to specify the matrix types.  Each line contains
*           a 3-character path name in columns 1-3, and the number
*           of matrix types must be the first nonblank item in columns
*           4-80.  If the number of matrix types is at least 1 but is
*           less than the maximum number of possible types, a second
*           line will be read to get the numbers of the matrix types to
*           be used.  For example,
*  NEP 21
*           requests all of the matrix types for the nonsymmetric
*           eigenvalue problem, while
*  NEP  4
*  9 10 11 12
*           requests only matrices of type 9, 10, 11, and 12.
*
*           The valid 3-character path names are 'NEP' or 'SHS' for the
*           nonsymmetric eigenvalue routines.
*
*-----------------------------------------------------------------------
*
*  SEP or DSG input file:
*
*  line 2:  NN, INTEGER
*           Number of values of N.
*
*  line 3:  NVAL, INTEGER array, dimension (NN)
*           The values for the matrix dimension N.
*
*  line 4:  NPARMS, INTEGER
*           Number of values of the parameters NB, NBMIN, and NX.
*
*  line 5:  NBVAL, INTEGER array, dimension (NPARMS)
*           The values for the blocksize NB.
*
*  line 6:  NBMIN, INTEGER array, dimension (NPARMS)
*           The values for the minimum blocksize NBMIN.
*
*  line 7:  NXVAL, INTEGER array, dimension (NPARMS)
*           The values for the crossover point NX.
*
*  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:  TSTCHK, LOGICAL
*           Flag indicating whether or not to test the LAPACK routines.
*
*  line 10: TSTDRV, LOGICAL
*           Flag indicating whether or not to test the driver routines.
*
*  line 11: TSTERR, LOGICAL
*           Flag indicating whether or not to test the error exits for
*           the LAPACK routines and driver routines.
*
*  line 12: 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 12 was 2:
*
*  line 13: INTEGER array, dimension (4)
*           Four integer values for the random number seed.
*
*  lines 13-EOF:  Lines specifying matrix types, as for NEP.
*           The 3-character path names are 'SEP' or 'SST' for the
*           symmetric eigenvalue routines and driver routines, and
*           'DSG' for the routines for the symmetric generalized
*           eigenvalue problem.
*
*-----------------------------------------------------------------------
*
*  SVD input file:
*
*  line 2:  NN, INTEGER
*           Number of values of M and N.
*
*  line 3:  MVAL, INTEGER array, dimension (NN)
*           The values for the matrix row dimension M.
*
*  line 4:  NVAL, INTEGER array, dimension (NN)
*           The values for the matrix column dimension N.
*
*  line 5:  NPARMS, INTEGER
*           Number of values of the parameter NB, NBMIN, NX, and NRHS.
*
*  line 6:  NBVAL, INTEGER array, dimension (NPARMS)
*           The values for the blocksize NB.
*
*  line 7:  NBMIN, INTEGER array, dimension (NPARMS)
*           The values for the minimum blocksize NBMIN.
*
*  line 8:  NXVAL, INTEGER array, dimension (NPARMS)
*           The values for the crossover point NX.
*
*  line 9:  NSVAL, INTEGER array, dimension (NPARMS)
*           The values for the number of right hand sides NRHS.
*
*  line 10: 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 11: TSTCHK, LOGICAL
*           Flag indicating whether or not to test the LAPACK routines.
*
*  line 12: TSTDRV, LOGICAL
*           Flag indicating whether or not to test the driver routines.
*
*  line 13: TSTERR, LOGICAL
*           Flag indicating whether or not to test the error exits for
*           the LAPACK routines and driver routines.
*
*  line 14: 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 14 was 2:
*
*  line 15: INTEGER array, dimension (4)
*           Four integer values for the random number seed.
*
*  lines 15-EOF:  Lines specifying matrix types, as for NEP.
*           The 3-character path names are 'SVD' or 'SBD' for both the
*           SVD routines and the SVD driver routines.
*
*-----------------------------------------------------------------------
*
*  DEV and DES data files:
*
*  line 1:  'DEV' or 'DES' in columns 1 to 3.
*
*  line 2:  NSIZES, INTEGER
*           Number of sizes of matrices to use. Should be at least 0
*           and at most 20. If NSIZES = 0, no testing is done
*           (although the remaining  3 lines are still read).
*
*  line 3:  NN, INTEGER array, dimension(NSIZES)
*           Dimensions of matrices to be tested.
*
*  line 4:  NB, NBMIN, NX, NS, NBCOL, INTEGERs
*           These integer parameters determine how blocking is done
*           (see ILAENV for details)
*           NB     : block size
*           NBMIN  : minimum block size
*           NX     : minimum dimension for blocking
*           NS     : number of shifts in xHSEQR
*           NBCOL  : minimum column dimension for blocking
*
*  line 5:  THRESH, REAL
*           The test threshold against which computed residuals are
*           compared. Should generally be in the range from 10. to 20.
*           If it is 0., all test case data will be printed.
*
*  line 6:  TSTERR, LOGICAL
*           Flag indicating whether or not to test the error exits.
*
*  line 7:  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 7 was 2:
*
*  line 8:  INTEGER array, dimension (4)
*           Four integer values for the random number seed.
*
*  lines 9 and following:  Lines specifying matrix types, as for NEP.
*           The 3-character path name is 'DEV' to test SGEEV, or

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?