LAPACK 3.3.1
Linear Algebra PACKage

alahd.f

Go to the documentation of this file.
00001       SUBROUTINE ALAHD( IOUNIT, PATH )
00002 *
00003 *  -- LAPACK test routine (version 3.3.0) --
00004 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
00005 *     November 2010
00006 *
00007 *     .. Scalar Arguments ..
00008       CHARACTER*3        PATH
00009       INTEGER            IOUNIT
00010 *     ..
00011 *
00012 *  Purpose
00013 *  =======
00014 *
00015 *  ALAHD prints header information for the different test paths.
00016 *
00017 *  Arguments
00018 *  =========
00019 *
00020 *  IOUNIT  (input) INTEGER
00021 *          The unit number to which the header information should be
00022 *          printed.
00023 *
00024 *  PATH    (input) CHARACTER*3
00025 *          The name of the path for which the header information is to
00026 *          be printed.  Current paths are
00027 *             _GE:  General matrices
00028 *             _GB:  General band
00029 *             _GT:  General Tridiagonal
00030 *             _PO:  Symmetric or Hermitian positive definite
00031 *             _PS:  Symmetric or Hermitian positive semi-definite
00032 *             _PP:  Symmetric or Hermitian positive definite packed
00033 *             _PB:  Symmetric or Hermitian positive definite band
00034 *             _PT:  Symmetric or Hermitian positive definite tridiagonal
00035 *             _SY:  Symmetric indefinite
00036 *             _SP:  Symmetric indefinite packed
00037 *             _HE:  (complex) Hermitian indefinite
00038 *             _HP:  (complex) Hermitian indefinite packed
00039 *             _TR:  Triangular
00040 *             _TP:  Triangular packed
00041 *             _TB:  Triangular band
00042 *             _QR:  QR (general matrices)
00043 *             _LQ:  LQ (general matrices)
00044 *             _QL:  QL (general matrices)
00045 *             _RQ:  RQ (general matrices)
00046 *             _QP:  QR with column pivoting
00047 *             _TZ:  Trapezoidal
00048 *             _LS:  Least Squares driver routines
00049 *             _LU:  LU variants
00050 *             _CH:  Cholesky variants
00051 *             _QS:  QR variants
00052 *          The first character must be one of S, D, C, or Z (C or Z only
00053 *          if complex).
00054 *
00055 *  =====================================================================
00056 *
00057 *     .. Local Scalars ..
00058       LOGICAL            CORZ, SORD
00059       CHARACTER          C1, C3
00060       CHARACTER*2        P2
00061       CHARACTER*4        EIGCNM
00062       CHARACTER*32       SUBNAM
00063       CHARACTER*9        SYM
00064 *     ..
00065 *     .. External Functions ..
00066       LOGICAL            LSAME, LSAMEN
00067       EXTERNAL           LSAME, LSAMEN
00068 *     ..
00069 *     .. Intrinsic Functions ..
00070       INTRINSIC          LEN_TRIM
00071 *     ..
00072 *     .. Executable Statements ..
00073 *
00074       IF( IOUNIT.LE.0 )
00075      $   RETURN
00076       C1 = PATH( 1: 1 )
00077       C3 = PATH( 3: 3 )
00078       P2 = PATH( 2: 3 )
00079       SORD = LSAME( C1, 'S' ) .OR. LSAME( C1, 'D' )
00080       CORZ = LSAME( C1, 'C' ) .OR. LSAME( C1, 'Z' )
00081       IF( .NOT.( SORD .OR. CORZ ) )
00082      $   RETURN
00083 *
00084       IF( LSAMEN( 2, P2, 'GE' ) ) THEN
00085 *
00086 *        GE: General dense
00087 *
00088          WRITE( IOUNIT, FMT = 9999 )PATH
00089          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00090          WRITE( IOUNIT, FMT = 9979 )
00091          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00092          WRITE( IOUNIT, FMT = 9962 )1
00093          WRITE( IOUNIT, FMT = 9961 )2
00094          WRITE( IOUNIT, FMT = 9960 )3
00095          WRITE( IOUNIT, FMT = 9959 )4
00096          WRITE( IOUNIT, FMT = 9958 )5
00097          WRITE( IOUNIT, FMT = 9957 )6
00098          WRITE( IOUNIT, FMT = 9956 )7
00099          WRITE( IOUNIT, FMT = 9955 )8
00100          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00101 *
00102       ELSE IF( LSAMEN( 2, P2, 'GB' ) ) THEN
00103 *
00104 *        GB: General band
00105 *
00106          WRITE( IOUNIT, FMT = 9998 )PATH
00107          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00108          WRITE( IOUNIT, FMT = 9978 )
00109          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00110          WRITE( IOUNIT, FMT = 9962 )1
00111          WRITE( IOUNIT, FMT = 9960 )2
00112          WRITE( IOUNIT, FMT = 9959 )3
00113          WRITE( IOUNIT, FMT = 9958 )4
00114          WRITE( IOUNIT, FMT = 9957 )5
00115          WRITE( IOUNIT, FMT = 9956 )6
00116          WRITE( IOUNIT, FMT = 9955 )7
00117          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00118 *
00119       ELSE IF( LSAMEN( 2, P2, 'GT' ) ) THEN
00120 *
00121 *        GT: General tridiagonal
00122 *
00123          WRITE( IOUNIT, FMT = 9997 )PATH
00124          WRITE( IOUNIT, FMT = 9977 )
00125          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00126          WRITE( IOUNIT, FMT = 9962 )1
00127          WRITE( IOUNIT, FMT = 9960 )2
00128          WRITE( IOUNIT, FMT = 9959 )3
00129          WRITE( IOUNIT, FMT = 9958 )4
00130          WRITE( IOUNIT, FMT = 9957 )5
00131          WRITE( IOUNIT, FMT = 9956 )6
00132          WRITE( IOUNIT, FMT = 9955 )7
00133          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00134 *
00135       ELSE IF( LSAMEN( 2, P2, 'PO' ) .OR. LSAMEN( 2, P2, 'PP' ) ) THEN
00136 *
00137 *        PO: Positive definite full
00138 *        PP: Positive definite packed
00139 *
00140          IF( SORD ) THEN
00141             SYM = 'Symmetric'
00142          ELSE
00143             SYM = 'Hermitian'
00144          END IF
00145          IF( LSAME( C3, 'O' ) ) THEN
00146             WRITE( IOUNIT, FMT = 9996 )PATH, SYM
00147          ELSE
00148             WRITE( IOUNIT, FMT = 9995 )PATH, SYM
00149          END IF
00150          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00151          WRITE( IOUNIT, FMT = 9975 )PATH
00152          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00153          WRITE( IOUNIT, FMT = 9954 )1
00154          WRITE( IOUNIT, FMT = 9961 )2
00155          WRITE( IOUNIT, FMT = 9960 )3
00156          WRITE( IOUNIT, FMT = 9959 )4
00157          WRITE( IOUNIT, FMT = 9958 )5
00158          WRITE( IOUNIT, FMT = 9957 )6
00159          WRITE( IOUNIT, FMT = 9956 )7
00160          WRITE( IOUNIT, FMT = 9955 )8
00161          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00162 *
00163       ELSE IF( LSAMEN( 2, P2, 'PS' ) ) THEN
00164 *
00165 *        PS: Positive semi-definite full
00166 *
00167          IF( SORD ) THEN
00168             SYM = 'Symmetric'
00169          ELSE
00170             SYM = 'Hermitian'
00171          END IF
00172          IF( LSAME( C1, 'S' ) .OR. LSAME( C1, 'C' ) ) THEN
00173             EIGCNM = '1E04'
00174          ELSE
00175             EIGCNM = '1D12'
00176          END IF
00177          WRITE( IOUNIT, FMT = 9995 )PATH, SYM
00178          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00179          WRITE( IOUNIT, FMT = 8973 )EIGCNM, EIGCNM, EIGCNM
00180          WRITE( IOUNIT, FMT = '( '' Difference:'' )' )
00181          WRITE( IOUNIT, FMT = 8972 )C1
00182          WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
00183          WRITE( IOUNIT, FMT = 8950 )
00184          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00185       ELSE IF( LSAMEN( 2, P2, 'PB' ) ) THEN
00186 *
00187 *        PB: Positive definite band
00188 *
00189          IF( SORD ) THEN
00190             WRITE( IOUNIT, FMT = 9994 )PATH, 'Symmetric'
00191          ELSE
00192             WRITE( IOUNIT, FMT = 9994 )PATH, 'Hermitian'
00193          END IF
00194          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00195          WRITE( IOUNIT, FMT = 9973 )PATH
00196          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00197          WRITE( IOUNIT, FMT = 9954 )1
00198          WRITE( IOUNIT, FMT = 9960 )2
00199          WRITE( IOUNIT, FMT = 9959 )3
00200          WRITE( IOUNIT, FMT = 9958 )4
00201          WRITE( IOUNIT, FMT = 9957 )5
00202          WRITE( IOUNIT, FMT = 9956 )6
00203          WRITE( IOUNIT, FMT = 9955 )7
00204          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00205 *
00206       ELSE IF( LSAMEN( 2, P2, 'PT' ) ) THEN
00207 *
00208 *        PT: Positive definite tridiagonal
00209 *
00210          IF( SORD ) THEN
00211             WRITE( IOUNIT, FMT = 9993 )PATH, 'Symmetric'
00212          ELSE
00213             WRITE( IOUNIT, FMT = 9993 )PATH, 'Hermitian'
00214          END IF
00215          WRITE( IOUNIT, FMT = 9976 )
00216          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00217          WRITE( IOUNIT, FMT = 9952 )1
00218          WRITE( IOUNIT, FMT = 9960 )2
00219          WRITE( IOUNIT, FMT = 9959 )3
00220          WRITE( IOUNIT, FMT = 9958 )4
00221          WRITE( IOUNIT, FMT = 9957 )5
00222          WRITE( IOUNIT, FMT = 9956 )6
00223          WRITE( IOUNIT, FMT = 9955 )7
00224          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00225 *
00226       ELSE IF( LSAMEN( 2, P2, 'SY' )  ) THEN
00227 *
00228 *        SY: Symmetric indefinite full
00229 *
00230          IF( LSAME( C3, 'Y' ) ) THEN
00231             WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
00232          ELSE
00233             WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric'
00234          END IF
00235          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00236          IF( SORD ) THEN
00237             WRITE( IOUNIT, FMT = 9972 )
00238          ELSE
00239             WRITE( IOUNIT, FMT = 9971 )
00240          END IF
00241          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00242          WRITE( IOUNIT, FMT = 9953 )1
00243          WRITE( IOUNIT, FMT = 9961 )2
00244          WRITE( IOUNIT, FMT = 9960 )3
00245          WRITE( IOUNIT, FMT = 9960 )4
00246          WRITE( IOUNIT, FMT = 9959 )5
00247          WRITE( IOUNIT, FMT = 9958 )6
00248          WRITE( IOUNIT, FMT = 9956 )7
00249          WRITE( IOUNIT, FMT = 9957 )8
00250          WRITE( IOUNIT, FMT = 9955 )9
00251          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00252 *
00253       ELSE IF( LSAMEN( 2, P2, 'SP' ) ) THEN
00254 *
00255 *        SP: Symmetric indefinite packed
00256 *
00257          IF( LSAME( C3, 'Y' ) ) THEN
00258             WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
00259          ELSE
00260             WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric'
00261          END IF
00262          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00263          IF( SORD ) THEN
00264             WRITE( IOUNIT, FMT = 9972 )
00265          ELSE
00266             WRITE( IOUNIT, FMT = 9971 )
00267          END IF
00268          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00269          WRITE( IOUNIT, FMT = 9953 )1
00270          WRITE( IOUNIT, FMT = 9961 )2
00271          WRITE( IOUNIT, FMT = 9960 )3
00272          WRITE( IOUNIT, FMT = 9959 )4
00273          WRITE( IOUNIT, FMT = 9958 )5
00274          WRITE( IOUNIT, FMT = 9956 )6
00275          WRITE( IOUNIT, FMT = 9957 )7
00276          WRITE( IOUNIT, FMT = 9955 )8
00277          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00278 *
00279       ELSE IF( LSAMEN( 2, P2, 'HE' )  ) THEN
00280 *
00281 *        HE: Hermitian indefinite full
00282 *
00283          IF( LSAME( C3, 'E' ) ) THEN
00284             WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
00285          ELSE
00286             WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian'
00287          END IF
00288          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00289          IF( SORD ) THEN
00290             WRITE( IOUNIT, FMT = 9972 )
00291          ELSE
00292             WRITE( IOUNIT, FMT = 9971 )
00293          END IF
00294          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00295          WRITE( IOUNIT, FMT = 9953 )1
00296          WRITE( IOUNIT, FMT = 9961 )2
00297          WRITE( IOUNIT, FMT = 9960 )3
00298          WRITE( IOUNIT, FMT = 9960 )4
00299          WRITE( IOUNIT, FMT = 9959 )5
00300          WRITE( IOUNIT, FMT = 9958 )6
00301          WRITE( IOUNIT, FMT = 9956 )7
00302          WRITE( IOUNIT, FMT = 9957 )8
00303          WRITE( IOUNIT, FMT = 9955 )9
00304          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00305 *
00306       ELSE IF( LSAMEN( 2, P2, 'HP' ) ) THEN
00307 *
00308 *        HP: Hermitian indefinite packed
00309 *
00310          IF( LSAME( C3, 'E' ) ) THEN
00311             WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
00312          ELSE
00313             WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian'
00314          END IF
00315          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00316          WRITE( IOUNIT, FMT = 9972 )
00317          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00318          WRITE( IOUNIT, FMT = 9953 )1
00319          WRITE( IOUNIT, FMT = 9961 )2
00320          WRITE( IOUNIT, FMT = 9960 )3
00321          WRITE( IOUNIT, FMT = 9959 )4
00322          WRITE( IOUNIT, FMT = 9958 )5
00323          WRITE( IOUNIT, FMT = 9956 )6
00324          WRITE( IOUNIT, FMT = 9957 )7
00325          WRITE( IOUNIT, FMT = 9955 )8
00326          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00327 *
00328       ELSE IF( LSAMEN( 2, P2, 'TR' ) .OR. LSAMEN( 2, P2, 'TP' ) ) THEN
00329 *
00330 *        TR: Triangular full
00331 *        TP: Triangular packed
00332 *
00333          IF( LSAME( C3, 'R' ) ) THEN
00334             WRITE( IOUNIT, FMT = 9990 )PATH
00335             SUBNAM = PATH( 1: 1 ) // 'LATRS'
00336          ELSE
00337             WRITE( IOUNIT, FMT = 9989 )PATH
00338             SUBNAM = PATH( 1: 1 ) // 'LATPS'
00339          END IF
00340          WRITE( IOUNIT, FMT = 9966 )PATH
00341          WRITE( IOUNIT, FMT = 9965 )SUBNAM(1:LEN_TRIM( SUBNAM ))
00342          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00343          WRITE( IOUNIT, FMT = 9961 )1
00344          WRITE( IOUNIT, FMT = 9960 )2
00345          WRITE( IOUNIT, FMT = 9959 )3
00346          WRITE( IOUNIT, FMT = 9958 )4
00347          WRITE( IOUNIT, FMT = 9957 )5
00348          WRITE( IOUNIT, FMT = 9956 )6
00349          WRITE( IOUNIT, FMT = 9955 )7
00350          WRITE( IOUNIT, FMT = 9951 )SUBNAM(1:LEN_TRIM( SUBNAM )), 8
00351          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00352 *
00353       ELSE IF( LSAMEN( 2, P2, 'TB' ) ) THEN
00354 *
00355 *        TB: Triangular band
00356 *
00357          WRITE( IOUNIT, FMT = 9988 )PATH
00358          SUBNAM = PATH( 1: 1 ) // 'LATBS'
00359          WRITE( IOUNIT, FMT = 9964 )PATH
00360          WRITE( IOUNIT, FMT = 9963 )SUBNAM(1:LEN_TRIM( SUBNAM ))
00361          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00362          WRITE( IOUNIT, FMT = 9960 )1
00363          WRITE( IOUNIT, FMT = 9959 )2
00364          WRITE( IOUNIT, FMT = 9958 )3
00365          WRITE( IOUNIT, FMT = 9957 )4
00366          WRITE( IOUNIT, FMT = 9956 )5
00367          WRITE( IOUNIT, FMT = 9955 )6
00368          WRITE( IOUNIT, FMT = 9951 )SUBNAM(1:LEN_TRIM( SUBNAM )), 7
00369          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00370 *
00371       ELSE IF( LSAMEN( 2, P2, 'QR' ) ) THEN
00372 *
00373 *        QR decomposition of rectangular matrices
00374 *
00375          WRITE( IOUNIT, FMT = 9987 )PATH, 'QR'
00376          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00377          WRITE( IOUNIT, FMT = 9970 )
00378          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00379          WRITE( IOUNIT, FMT = 9950 )1
00380          WRITE( IOUNIT, FMT = 6950 )8
00381          WRITE( IOUNIT, FMT = 9946 )2
00382          WRITE( IOUNIT, FMT = 9944 )3, 'M'
00383          WRITE( IOUNIT, FMT = 9943 )4, 'M'
00384          WRITE( IOUNIT, FMT = 9942 )5, 'M'
00385          WRITE( IOUNIT, FMT = 9941 )6, 'M'
00386          WRITE( IOUNIT, FMT = 9960 )7
00387          WRITE( IOUNIT, FMT = 6660 )9
00388          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00389 *
00390       ELSE IF( LSAMEN( 2, P2, 'LQ' ) ) THEN
00391 *
00392 *        LQ decomposition of rectangular matrices
00393 *
00394          WRITE( IOUNIT, FMT = 9987 )PATH, 'LQ'
00395          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00396          WRITE( IOUNIT, FMT = 9970 )
00397          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00398          WRITE( IOUNIT, FMT = 9949 )1
00399          WRITE( IOUNIT, FMT = 9945 )2
00400          WRITE( IOUNIT, FMT = 9944 )3, 'N'
00401          WRITE( IOUNIT, FMT = 9943 )4, 'N'
00402          WRITE( IOUNIT, FMT = 9942 )5, 'N'
00403          WRITE( IOUNIT, FMT = 9941 )6, 'N'
00404          WRITE( IOUNIT, FMT = 9960 )7
00405          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00406 *
00407       ELSE IF( LSAMEN( 2, P2, 'QL' ) ) THEN
00408 *
00409 *        QL decomposition of rectangular matrices
00410 *
00411          WRITE( IOUNIT, FMT = 9987 )PATH, 'QL'
00412          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00413          WRITE( IOUNIT, FMT = 9970 )
00414          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00415          WRITE( IOUNIT, FMT = 9948 )1
00416          WRITE( IOUNIT, FMT = 9946 )2
00417          WRITE( IOUNIT, FMT = 9944 )3, 'M'
00418          WRITE( IOUNIT, FMT = 9943 )4, 'M'
00419          WRITE( IOUNIT, FMT = 9942 )5, 'M'
00420          WRITE( IOUNIT, FMT = 9941 )6, 'M'
00421          WRITE( IOUNIT, FMT = 9960 )7
00422          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00423 *
00424       ELSE IF( LSAMEN( 2, P2, 'RQ' ) ) THEN
00425 *
00426 *        RQ decomposition of rectangular matrices
00427 *
00428          WRITE( IOUNIT, FMT = 9987 )PATH, 'RQ'
00429          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00430          WRITE( IOUNIT, FMT = 9970 )
00431          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00432          WRITE( IOUNIT, FMT = 9947 )1
00433          WRITE( IOUNIT, FMT = 9945 )2
00434          WRITE( IOUNIT, FMT = 9944 )3, 'N'
00435          WRITE( IOUNIT, FMT = 9943 )4, 'N'
00436          WRITE( IOUNIT, FMT = 9942 )5, 'N'
00437          WRITE( IOUNIT, FMT = 9941 )6, 'N'
00438          WRITE( IOUNIT, FMT = 9960 )7
00439          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00440 *
00441       ELSE IF( LSAMEN( 2, P2, 'QP' ) ) THEN
00442 *
00443 *        QR decomposition with column pivoting
00444 *
00445          WRITE( IOUNIT, FMT = 9986 )PATH
00446          WRITE( IOUNIT, FMT = 9969 )
00447          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00448          WRITE( IOUNIT, FMT = 9940 )1
00449          WRITE( IOUNIT, FMT = 9939 )2
00450          WRITE( IOUNIT, FMT = 9938 )3
00451          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00452 *
00453       ELSE IF( LSAMEN( 2, P2, 'TZ' ) ) THEN
00454 *
00455 *        TZ:  Trapezoidal
00456 *
00457          WRITE( IOUNIT, FMT = 9985 )PATH
00458          WRITE( IOUNIT, FMT = 9968 )
00459          WRITE( IOUNIT, FMT = 9929 )C1, C1
00460          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00461          WRITE( IOUNIT, FMT = 9940 )1
00462          WRITE( IOUNIT, FMT = 9937 )2
00463          WRITE( IOUNIT, FMT = 9938 )3
00464          WRITE( IOUNIT, FMT = 9940 )4
00465          WRITE( IOUNIT, FMT = 9937 )5
00466          WRITE( IOUNIT, FMT = 9938 )6
00467          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00468 *
00469       ELSE IF( LSAMEN( 2, P2, 'LS' ) ) THEN
00470 *
00471 *        LS:  Least Squares driver routines for
00472 *             LS, LSD, LSS, LSX and LSY.
00473 *
00474          WRITE( IOUNIT, FMT = 9984 )PATH
00475          WRITE( IOUNIT, FMT = 9967 )
00476          WRITE( IOUNIT, FMT = 9921 )C1, C1, C1, C1, C1
00477          WRITE( IOUNIT, FMT = 9935 )1
00478          WRITE( IOUNIT, FMT = 9931 )2
00479          WRITE( IOUNIT, FMT = 9933 )3
00480          WRITE( IOUNIT, FMT = 9935 )4
00481          WRITE( IOUNIT, FMT = 9934 )5
00482          WRITE( IOUNIT, FMT = 9932 )6
00483          WRITE( IOUNIT, FMT = 9920 )
00484          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00485 *
00486       ELSE IF( LSAMEN( 2, P2, 'LU' ) ) THEN
00487 *
00488 *        LU factorization variants
00489 *
00490          WRITE( IOUNIT, FMT = 9983 )PATH
00491          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00492          WRITE( IOUNIT, FMT = 9979 )
00493          WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
00494          WRITE( IOUNIT, FMT = 9962 )1
00495          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00496 *
00497       ELSE IF( LSAMEN( 2, P2, 'CH' ) ) THEN
00498 *
00499 *        Cholesky factorization variants
00500 *
00501          WRITE( IOUNIT, FMT = 9982 )PATH
00502          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00503          WRITE( IOUNIT, FMT = 9974 )
00504          WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
00505          WRITE( IOUNIT, FMT = 9954 )1
00506          WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00507 *
00508       ELSE IF( LSAMEN( 2, P2, 'QS' ) ) THEN
00509 *
00510 *        QR factorization variants
00511 *
00512          WRITE( IOUNIT, FMT = 9981 )PATH
00513          WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00514          WRITE( IOUNIT, FMT = 9970 )
00515          WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00516 *
00517       ELSE
00518 *
00519 *        Print error message if no header is available.
00520 *
00521          WRITE( IOUNIT, FMT = 9980 )PATH
00522       END IF
00523 *
00524 *     First line of header
00525 *
00526  9999 FORMAT( / 1X, A3, ':  General dense matrices' )
00527  9998 FORMAT( / 1X, A3, ':  General band matrices' )
00528  9997 FORMAT( / 1X, A3, ':  General tridiagonal' )
00529  9996 FORMAT( / 1X, A3, ':  ', A9, ' positive definite matrices' )
00530  9995 FORMAT( / 1X, A3, ':  ', A9, ' positive definite packed matrices'
00531      $       )
00532  9994 FORMAT( / 1X, A3, ':  ', A9, ' positive definite band matrices' )
00533  9993 FORMAT( / 1X, A3, ':  ', A9, ' positive definite tridiagonal' )
00534  9992 FORMAT( / 1X, A3, ':  ', A9, ' indefinite matrices' )
00535  9991 FORMAT( / 1X, A3, ':  ', A9, ' indefinite packed matrices' )
00536  9990 FORMAT( / 1X, A3, ':  Triangular matrices' )
00537  9989 FORMAT( / 1X, A3, ':  Triangular packed matrices' )
00538  9988 FORMAT( / 1X, A3, ':  Triangular band matrices' )
00539  9987 FORMAT( / 1X, A3, ':  ', A2, ' factorization of general matrices'
00540      $       )
00541  9986 FORMAT( / 1X, A3, ':  QR factorization with column pivoting' )
00542  9985 FORMAT( / 1X, A3, ':  RQ factorization of trapezoidal matrix' )
00543  9984 FORMAT( / 1X, A3, ':  Least squares driver routines' )
00544  9983 FORMAT( / 1X, A3, ':  LU factorization variants' )
00545  9982 FORMAT( / 1X, A3, ':  Cholesky factorization variants' )
00546  9981 FORMAT( / 1X, A3, ':  QR factorization variants' )
00547  9980 FORMAT( / 1X, A3, ':  No header available' )
00548 *
00549 *     GE matrix types
00550 *
00551  9979 FORMAT( 4X, '1. Diagonal', 24X, '7. Last n/2 columns zero', / 4X,
00552      $      '2. Upper triangular', 16X,
00553      $      '8. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00554      $      '3. Lower triangular', 16X, '9. Random, CNDNUM = 0.1/EPS',
00555      $      / 4X, '4. Random, CNDNUM = 2', 13X,
00556      $      '10. Scaled near underflow', / 4X, '5. First column zero',
00557      $      14X, '11. Scaled near overflow', / 4X,
00558      $      '6. Last column zero' )
00559 *
00560 *     GB matrix types
00561 *
00562  9978 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
00563      $      '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00564      $      '2. First column zero', 15X, '6. Random, CNDNUM = .01/EPS',
00565      $      / 4X, '3. Last column zero', 16X,
00566      $      '7. Scaled near underflow', / 4X,
00567      $      '4. Last n/2 columns zero', 11X, '8. Scaled near overflow' )
00568 *
00569 *     GT matrix types
00570 *
00571  9977 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
00572      $      / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
00573      $      / 4X, '2. Random, CNDNUM = 2', 14X, '8. First column zero',
00574      $      / 4X, '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
00575      $      '9. Last column zero', / 4X, '4. Random, CNDNUM = 0.1/EPS',
00576      $      7X, '10. Last n/2 columns zero', / 4X,
00577      $      '5. Scaled near underflow', 10X,
00578      $      '11. Scaled near underflow', / 4X,
00579      $      '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
00580 *
00581 *     PT matrix types
00582 *
00583  9976 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
00584      $      / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
00585      $      / 4X, '2. Random, CNDNUM = 2', 14X,
00586      $      '8. First row and column zero', / 4X,
00587      $      '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
00588      $      '9. Last row and column zero', / 4X,
00589      $      '4. Random, CNDNUM = 0.1/EPS', 7X,
00590      $      '10. Middle row and column zero', / 4X,
00591      $      '5. Scaled near underflow', 10X,
00592      $      '11. Scaled near underflow', / 4X,
00593      $      '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
00594 *
00595 *     PO, PP matrix types
00596 *
00597  9975 FORMAT( 4X, '1. Diagonal', 24X,
00598      $      '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00599      $      '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
00600      $      / 3X, '*3. First row and column zero', 7X,
00601      $      '8. Scaled near underflow', / 3X,
00602      $      '*4. Last row and column zero', 8X,
00603      $      '9. Scaled near overflow', / 3X,
00604      $      '*5. Middle row and column zero', / 3X,
00605      $      '(* - tests error exits from ', A3,
00606      $      'TRF, no test ratios are computed)' )
00607 *
00608 *     CH matrix types
00609 *
00610  9974 FORMAT( 4X, '1. Diagonal', 24X,
00611      $      '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00612      $      '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
00613      $      / 3X, '*3. First row and column zero', 7X,
00614      $      '8. Scaled near underflow', / 3X,
00615      $      '*4. Last row and column zero', 8X,
00616      $      '9. Scaled near overflow', / 3X,
00617      $      '*5. Middle row and column zero', / 3X,
00618      $      '(* - tests error exits, no test ratios are computed)' )
00619 *
00620 *     PS matrix types
00621 *
00622  8973 FORMAT( 4X, '1. Diagonal', / 4X, '2. Random, CNDNUM = 2', 14X,
00623      $      / 3X, '*3. Nonzero eigenvalues of: D(1:RANK-1)=1 and ',
00624      $      'D(RANK) = 1.0/', A4, / 3X,
00625      $      '*4. Nonzero eigenvalues of: D(1)=1 and ',
00626      $      ' D(2:RANK) = 1.0/', A4, / 3X,
00627      $      '*5. Nonzero eigenvalues of: D(I) = ', A4,
00628      $      '**(-(I-1)/(RANK-1)) ', ' I=1:RANK', / 4X,
00629      $      '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00630      $      '7. Random, CNDNUM = 0.1/EPS', / 4X,
00631      $      '8. Scaled near underflow', / 4X, '9. Scaled near overflow',
00632      $      / 3X, '(* - Semi-definite tests )' )
00633  8972 FORMAT( 3X, 'RANK minus computed rank, returned by ', A, 'PSTRF' )
00634 *
00635 *     PB matrix types
00636 *
00637  9973 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
00638      $      '5. Random, CNDNUM = sqrt(0.1/EPS)', / 3X,
00639      $      '*2. First row and column zero', 7X,
00640      $      '6. Random, CNDNUM = 0.1/EPS', / 3X,
00641      $      '*3. Last row and column zero', 8X,
00642      $      '7. Scaled near underflow', / 3X,
00643      $      '*4. Middle row and column zero', 6X,
00644      $      '8. Scaled near overflow', / 3X,
00645      $      '(* - tests error exits from ', A3,
00646      $      'TRF, no test ratios are computed)' )
00647 *
00648 *     SSY, SSP, CHE, CHP matrix types
00649 *
00650  9972 FORMAT( 4X, '1. Diagonal', 24X,
00651      $      '6. Last n/2 rows and columns zero', / 4X,
00652      $      '2. Random, CNDNUM = 2', 14X,
00653      $      '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00654      $      '3. First row and column zero', 7X,
00655      $      '8. Random, CNDNUM = 0.1/EPS', / 4X,
00656      $      '4. Last row and column zero', 8X,
00657      $      '9. Scaled near underflow', / 4X,
00658      $      '5. Middle row and column zero', 5X,
00659      $      '10. Scaled near overflow' )
00660 *
00661 *     CSY, CSP matrix types
00662 *
00663  9971 FORMAT( 4X, '1. Diagonal', 24X,
00664      $      '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00665      $      '2. Random, CNDNUM = 2', 14X, '8. Random, CNDNUM = 0.1/EPS',
00666      $      / 4X, '3. First row and column zero', 7X,
00667      $      '9. Scaled near underflow', / 4X,
00668      $      '4. Last row and column zero', 7X,
00669      $      '10. Scaled near overflow', / 4X,
00670      $      '5. Middle row and column zero', 5X,
00671      $      '11. Block diagonal matrix', / 4X,
00672      $      '6. Last n/2 rows and columns zero' )
00673 *
00674 *     QR matrix types
00675 *
00676  9970 FORMAT( 4X, '1. Diagonal', 24X,
00677      $      '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00678      $      '2. Upper triangular', 16X, '6. Random, CNDNUM = 0.1/EPS',
00679      $      / 4X, '3. Lower triangular', 16X,
00680      $      '7. Scaled near underflow', / 4X, '4. Random, CNDNUM = 2',
00681      $      14X, '8. Scaled near overflow' )
00682 *
00683 *     QP matrix types
00684 *
00685  9969 FORMAT( ' Matrix types (2-6 have condition 1/EPS):', / 4X,
00686      $      '1. Zero matrix', 21X, '4. First n/2 columns fixed', / 4X,
00687      $      '2. One small eigenvalue', 12X, '5. Last n/2 columns fixed',
00688      $      / 4X, '3. Geometric distribution', 10X,
00689      $      '6. Every second column fixed' )
00690 *
00691 *     TZ matrix types
00692 *
00693  9968 FORMAT( ' Matrix types (2-3 have condition 1/EPS):', / 4X,
00694      $      '1. Zero matrix', / 4X, '2. One small eigenvalue', / 4X,
00695      $      '3. Geometric distribution' )
00696 *
00697 *     LS matrix types
00698 *
00699  9967 FORMAT( ' Matrix types (1-3: full rank, 4-6: rank deficient):',
00700      $      / 4X, '1 and 4. Normal scaling', / 4X,
00701      $      '2 and 5. Scaled near overflow', / 4X,
00702      $      '3 and 6. Scaled near underflow' )
00703 *
00704 *     TR, TP matrix types
00705 *
00706  9966 FORMAT( ' Matrix types for ', A3, ' routines:', / 4X,
00707      $      '1. Diagonal', 24X, '6. Scaled near overflow', / 4X,
00708      $      '2. Random, CNDNUM = 2', 14X, '7. Identity', / 4X,
00709      $      '3. Random, CNDNUM = sqrt(0.1/EPS)  ',
00710      $      '8. Unit triangular, CNDNUM = 2', / 4X,
00711      $      '4. Random, CNDNUM = 0.1/EPS', 8X,
00712      $      '9. Unit, CNDNUM = sqrt(0.1/EPS)', / 4X,
00713      $      '5. Scaled near underflow', 10X,
00714      $      '10. Unit, CNDNUM = 0.1/EPS' )
00715  9965 FORMAT( ' Special types for testing ', A, ':', / 3X,
00716      $      '11. Matrix elements are O(1), large right hand side', / 3X,
00717      $      '12. First diagonal causes overflow,',
00718      $      ' offdiagonal column norms < 1', / 3X,
00719      $      '13. First diagonal causes overflow,',
00720      $      ' offdiagonal column norms > 1', / 3X,
00721      $      '14. Growth factor underflows, solution does not overflow',
00722      $      / 3X, '15. Small diagonal causes gradual overflow', / 3X,
00723      $      '16. One zero diagonal element', / 3X,
00724      $      '17. Large offdiagonals cause overflow when adding a column'
00725      $      , / 3X, '18. Unit triangular with large right hand side' )
00726 *
00727 *     TB matrix types
00728 *
00729  9964 FORMAT( ' Matrix types for ', A3, ' routines:', / 4X,
00730      $      '1. Random, CNDNUM = 2', 14X, '6. Identity', / 4X,
00731      $      '2. Random, CNDNUM = sqrt(0.1/EPS)  ',
00732      $      '7. Unit triangular, CNDNUM = 2', / 4X,
00733      $      '3. Random, CNDNUM = 0.1/EPS', 8X,
00734      $      '8. Unit, CNDNUM = sqrt(0.1/EPS)', / 4X,
00735      $      '4. Scaled near underflow', 11X,
00736      $      '9. Unit, CNDNUM = 0.1/EPS', / 4X,
00737      $      '5. Scaled near overflow' )
00738  9963 FORMAT( ' Special types for testing ', A, ':', / 3X,
00739      $      '10. Matrix elements are O(1), large right hand side', / 3X,
00740      $      '11. First diagonal causes overflow,',
00741      $      ' offdiagonal column norms < 1', / 3X,
00742      $      '12. First diagonal causes overflow,',
00743      $      ' offdiagonal column norms > 1', / 3X,
00744      $      '13. Growth factor underflows, solution does not overflow',
00745      $      / 3X, '14. Small diagonal causes gradual overflow', / 3X,
00746      $      '15. One zero diagonal element', / 3X,
00747      $      '16. Large offdiagonals cause overflow when adding a column'
00748      $      , / 3X, '17. Unit triangular with large right hand side' )
00749 *
00750 *     Test ratios
00751 *
00752  9962 FORMAT( 3X, I2, ': norm( L * U - A )  / ( N * norm(A) * EPS )' )
00753  9961 FORMAT( 3X, I2, ': norm( I - A*AINV ) / ',
00754      $      '( N * norm(A) * norm(AINV) * EPS )' )
00755  9960 FORMAT( 3X, I2, ': norm( B - A * X )  / ',
00756      $      '( norm(A) * norm(X) * EPS )' )
00757  6660 FORMAT( 3X, I2, ': diagonal is not non-negative')
00758  9959 FORMAT( 3X, I2, ': norm( X - XACT )   / ',
00759      $      '( norm(XACT) * CNDNUM * EPS )' )
00760  9958 FORMAT( 3X, I2, ': norm( X - XACT )   / ',
00761      $      '( norm(XACT) * CNDNUM * EPS ), refined' )
00762  9957 FORMAT( 3X, I2, ': norm( X - XACT )   / ',
00763      $      '( norm(XACT) * (error bound) )' )
00764  9956 FORMAT( 3X, I2, ': (backward error)   / EPS' )
00765  9955 FORMAT( 3X, I2, ': RCOND * CNDNUM - 1.0' )
00766  9954 FORMAT( 3X, I2, ': norm( U'' * U - A ) / ( N * norm(A) * EPS )',
00767      $      ', or', / 7X, 'norm( L * L'' - A ) / ( N * norm(A) * EPS )'
00768      $       )
00769  8950 FORMAT( 3X,
00770      $      'norm( P * U'' * U * P'' - A ) / ( N * norm(A) * EPS )',
00771      $      ', or', / 3X,
00772      $      'norm( P * L * L'' * P'' - A ) / ( N * norm(A) * EPS )' )
00773  9953 FORMAT( 3X, I2, ': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )',
00774      $      ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
00775      $       )
00776  9952 FORMAT( 3X, I2, ': norm( U''*D*U - A ) / ( N * norm(A) * EPS )',
00777      $      ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
00778      $       )
00779  9951 FORMAT( ' Test ratio for ', A, ':', / 3X, I2,
00780      $      ': norm( s*b - A*x )  / ( norm(A) * norm(x) * EPS )' )
00781  9950 FORMAT( 3X, I2, ': norm( R - Q'' * A ) / ( M * norm(A) * EPS )' )
00782  6950 FORMAT( 3X, I2, ': norm( R - Q'
00783 ' * A ) / ( M * norm(A) * EPS )     $       [RFPG]' )
00784  9949 FORMAT( 3X, I2, ': norm( L - A * Q'' ) / ( N * norm(A) * EPS )' )
00785  9948 FORMAT( 3X, I2, ': norm( L - Q'' * A ) / ( M * norm(A) * EPS )' )
00786  9947 FORMAT( 3X, I2, ': norm( R - A * Q'' ) / ( N * norm(A) * EPS )' )
00787  9946 FORMAT( 3X, I2, ': norm( I - Q''*Q )   / ( M * EPS )' )
00788  9945 FORMAT( 3X, I2, ': norm( I - Q*Q'' )   / ( N * EPS )' )
00789  9944 FORMAT( 3X, I2, ': norm( Q*C - Q*C )  / ', '( ', A1,
00790      $      ' * norm(C) * EPS )' )
00791  9943 FORMAT( 3X, I2, ': norm( C*Q - C*Q )  / ', '( ', A1,
00792      $      ' * norm(C) * EPS )' )
00793  9942 FORMAT( 3X, I2, ': norm( Q''*C - Q''*C )/ ', '( ', A1,
00794      $      ' * norm(C) * EPS )' )
00795  9941 FORMAT( 3X, I2, ': norm( C*Q'' - C*Q'' )/ ', '( ', A1,
00796      $      ' * norm(C) * EPS )' )
00797  9940 FORMAT( 3X, I2, ': norm(svd(A) - svd(R)) / ',
00798      $      '( M * norm(svd(R)) * EPS )' )
00799  9939 FORMAT( 3X, I2, ': norm( A*P - Q*R )     / ( M * norm(A) * EPS )'
00800      $       )
00801  9938 FORMAT( 3X, I2, ': norm( I - Q''*Q )      / ( M * EPS )' )
00802  9937 FORMAT( 3X, I2, ': norm( A - R*Q )       / ( M * norm(A) * EPS )'
00803      $       )
00804  9936 FORMAT( ' Test ratios (1-2: ', A1, 'GELS, 3-6: ', A1,
00805      $      'GELSS, 7-10: ', A1, 'GELSX):' )
00806  9935 FORMAT( 3X, I2, ': norm( B - A * X )   / ',
00807      $      '( max(M,N) * norm(A) * norm(X) * EPS )' )
00808  9934 FORMAT( 3X, I2, ': norm( (A*X-B)'' *A ) / ',
00809      $      '( max(M,N,NRHS) * norm(A) * norm(B) * EPS )' )
00810  9933 FORMAT( 3X, I2, ': norm(svd(A)-svd(R)) / ',
00811      $      '( min(M,N) * norm(svd(R)) * EPS )' )
00812  9932 FORMAT( 3X, I2, ': Check if X is in the row space of A or A''' )
00813  9931 FORMAT( 3X, I2, ': norm( (A*X-B)'' *A ) / ',
00814      $      '( max(M,N,NRHS) * norm(A) * norm(B) * EPS )', / 7X,
00815      $      'if TRANS=''N'' and M.GE.N or TRANS=''T'' and M.LT.N, ',
00816      $      'otherwise', / 7X,
00817      $      'check if X is in the row space of A or A'' ',
00818      $      '(overdetermined case)' )
00819  9930 FORMAT( 3X, ' 7-10: same as 3-6' )
00820  9929 FORMAT( ' Test ratios (1-3: ', A1, 'TZRQF, 4-6: ', A1,
00821      $      'TZRZF):' )
00822  9920 FORMAT( 3X, ' 7-10: same as 3-6', 3X, ' 11-14: same as 3-6',
00823      $      3X, ' 15-18: same as 3-6' )
00824  9921 FORMAT( ' Test ratios:', / '    (1-2: ', A1, 'GELS, 3-6: ', A1,
00825      $      'GELSX, 7-10: ', A1, 'GELSY, 11-14: ', A1, 'GELSS, 15-18: ',
00826      $      A1, 'GELSD)' )
00827 *
00828       RETURN
00829 *
00830 *     End of ALAHD
00831 *
00832       END
 All Files Functions