![]() |
LAPACK
3.4.1
LAPACK: Linear Algebra PACKage
|
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