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