1*> \brief \b ALAHD 2* 3* =========== DOCUMENTATION =========== 4* 5* Online html documentation available at 6* http://www.netlib.org/lapack/explore-html/ 7* 8* Definition: 9* =========== 10* 11* SUBROUTINE ALAHD( IOUNIT, PATH ) 12* 13* .. Scalar Arguments .. 14* CHARACTER*3 PATH 15* INTEGER IOUNIT 16* .. 17* 18* 19*> \par Purpose: 20* ============= 21*> 22*> \verbatim 23*> 24*> ALAHD prints header information for the different test paths. 25*> \endverbatim 26* 27* Arguments: 28* ========== 29* 30*> \param[in] IOUNIT 31*> \verbatim 32*> IOUNIT is INTEGER 33*> The unit number to which the header information should be 34*> printed. 35*> \endverbatim 36*> 37*> \param[in] PATH 38*> \verbatim 39*> PATH is CHARACTER*3 40*> The name of the path for which the header information is to 41*> be printed. Current paths are 42*> _GE: General matrices 43*> _GB: General band 44*> _GT: General Tridiagonal 45*> _PO: Symmetric or Hermitian positive definite 46*> _PS: Symmetric or Hermitian positive semi-definite 47*> _PP: Symmetric or Hermitian positive definite packed 48*> _PB: Symmetric or Hermitian positive definite band 49*> _PT: Symmetric or Hermitian positive definite tridiagonal 50*> _SY: Symmetric indefinite 51*> _SP: Symmetric indefinite packed 52*> _HE: (complex) Hermitian indefinite 53*> _HP: (complex) Hermitian indefinite packed 54*> _TR: Triangular 55*> _TP: Triangular packed 56*> _TB: Triangular band 57*> _QR: QR (general matrices) 58*> _LQ: LQ (general matrices) 59*> _QL: QL (general matrices) 60*> _RQ: RQ (general matrices) 61*> _QP: QR with column pivoting 62*> _TZ: Trapezoidal 63*> _LS: Least Squares driver routines 64*> _LU: LU variants 65*> _CH: Cholesky variants 66*> _QS: QR variants 67*> _QT: QRT (general matrices) 68*> _QX: QRT (triangular-pentagonal matrices) 69*> The first character must be one of S, D, C, or Z (C or Z only 70*> if complex). 71*> \endverbatim 72* 73* Authors: 74* ======== 75* 76*> \author Univ. of Tennessee 77*> \author Univ. of California Berkeley 78*> \author Univ. of Colorado Denver 79*> \author NAG Ltd. 80* 81*> \date April 2012 82* 83*> \ingroup aux_lin 84* 85* ===================================================================== 86 SUBROUTINE ALAHD( IOUNIT, PATH ) 87* 88* -- LAPACK test routine (version 3.4.1) -- 89* -- LAPACK is a software package provided by Univ. of Tennessee, -- 90* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 91* April 2012 92* 93* .. Scalar Arguments .. 94 CHARACTER*3 PATH 95 INTEGER IOUNIT 96* .. 97* 98* ===================================================================== 99* 100* .. Local Scalars .. 101 LOGICAL CORZ, SORD 102 CHARACTER C1, C3 103 CHARACTER*2 P2 104 CHARACTER*4 EIGCNM 105 CHARACTER*32 SUBNAM 106 CHARACTER*9 SYM 107* .. 108* .. External Functions .. 109 LOGICAL LSAME, LSAMEN 110 EXTERNAL LSAME, LSAMEN 111* .. 112* .. Intrinsic Functions .. 113 INTRINSIC LEN_TRIM 114* .. 115* .. Executable Statements .. 116* 117 IF( IOUNIT.LE.0 ) 118 $ RETURN 119 C1 = PATH( 1: 1 ) 120 C3 = PATH( 3: 3 ) 121 P2 = PATH( 2: 3 ) 122 SORD = LSAME( C1, 'S' ) .OR. LSAME( C1, 'D' ) 123 CORZ = LSAME( C1, 'C' ) .OR. LSAME( C1, 'Z' ) 124 IF( .NOT.( SORD .OR. CORZ ) ) 125 $ RETURN 126* 127 IF( LSAMEN( 2, P2, 'GE' ) ) THEN 128* 129* GE: General dense 130* 131 WRITE( IOUNIT, FMT = 9999 )PATH 132 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 133 WRITE( IOUNIT, FMT = 9979 ) 134 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 135 WRITE( IOUNIT, FMT = 9962 )1 136 WRITE( IOUNIT, FMT = 9961 )2 137 WRITE( IOUNIT, FMT = 9960 )3 138 WRITE( IOUNIT, FMT = 9959 )4 139 WRITE( IOUNIT, FMT = 9958 )5 140 WRITE( IOUNIT, FMT = 9957 )6 141 WRITE( IOUNIT, FMT = 9956 )7 142 WRITE( IOUNIT, FMT = 9955 )8 143 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 144* 145 ELSE IF( LSAMEN( 2, P2, 'GB' ) ) THEN 146* 147* GB: General band 148* 149 WRITE( IOUNIT, FMT = 9998 )PATH 150 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 151 WRITE( IOUNIT, FMT = 9978 ) 152 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 153 WRITE( IOUNIT, FMT = 9962 )1 154 WRITE( IOUNIT, FMT = 9960 )2 155 WRITE( IOUNIT, FMT = 9959 )3 156 WRITE( IOUNIT, FMT = 9958 )4 157 WRITE( IOUNIT, FMT = 9957 )5 158 WRITE( IOUNIT, FMT = 9956 )6 159 WRITE( IOUNIT, FMT = 9955 )7 160 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 161* 162 ELSE IF( LSAMEN( 2, P2, 'GT' ) ) THEN 163* 164* GT: General tridiagonal 165* 166 WRITE( IOUNIT, FMT = 9997 )PATH 167 WRITE( IOUNIT, FMT = 9977 ) 168 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 169 WRITE( IOUNIT, FMT = 9962 )1 170 WRITE( IOUNIT, FMT = 9960 )2 171 WRITE( IOUNIT, FMT = 9959 )3 172 WRITE( IOUNIT, FMT = 9958 )4 173 WRITE( IOUNIT, FMT = 9957 )5 174 WRITE( IOUNIT, FMT = 9956 )6 175 WRITE( IOUNIT, FMT = 9955 )7 176 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 177* 178 ELSE IF( LSAMEN( 2, P2, 'PO' ) .OR. LSAMEN( 2, P2, 'PP' ) ) THEN 179* 180* PO: Positive definite full 181* PP: Positive definite packed 182* 183 IF( SORD ) THEN 184 SYM = 'Symmetric' 185 ELSE 186 SYM = 'Hermitian' 187 END IF 188 IF( LSAME( C3, 'O' ) ) THEN 189 WRITE( IOUNIT, FMT = 9996 )PATH, SYM 190 ELSE 191 WRITE( IOUNIT, FMT = 9995 )PATH, SYM 192 END IF 193 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 194 WRITE( IOUNIT, FMT = 9975 )PATH 195 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 196 WRITE( IOUNIT, FMT = 9954 )1 197 WRITE( IOUNIT, FMT = 9961 )2 198 WRITE( IOUNIT, FMT = 9960 )3 199 WRITE( IOUNIT, FMT = 9959 )4 200 WRITE( IOUNIT, FMT = 9958 )5 201 WRITE( IOUNIT, FMT = 9957 )6 202 WRITE( IOUNIT, FMT = 9956 )7 203 WRITE( IOUNIT, FMT = 9955 )8 204 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 205* 206 ELSE IF( LSAMEN( 2, P2, 'PS' ) ) THEN 207* 208* PS: Positive semi-definite full 209* 210 IF( SORD ) THEN 211 SYM = 'Symmetric' 212 ELSE 213 SYM = 'Hermitian' 214 END IF 215 IF( LSAME( C1, 'S' ) .OR. LSAME( C1, 'C' ) ) THEN 216 EIGCNM = '1E04' 217 ELSE 218 EIGCNM = '1D12' 219 END IF 220 WRITE( IOUNIT, FMT = 9995 )PATH, SYM 221 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 222 WRITE( IOUNIT, FMT = 8973 )EIGCNM, EIGCNM, EIGCNM 223 WRITE( IOUNIT, FMT = '( '' Difference:'' )' ) 224 WRITE( IOUNIT, FMT = 8972 )C1 225 WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' ) 226 WRITE( IOUNIT, FMT = 8950 ) 227 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 228 ELSE IF( LSAMEN( 2, P2, 'PB' ) ) THEN 229* 230* PB: Positive definite band 231* 232 IF( SORD ) THEN 233 WRITE( IOUNIT, FMT = 9994 )PATH, 'Symmetric' 234 ELSE 235 WRITE( IOUNIT, FMT = 9994 )PATH, 'Hermitian' 236 END IF 237 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 238 WRITE( IOUNIT, FMT = 9973 )PATH 239 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 240 WRITE( IOUNIT, FMT = 9954 )1 241 WRITE( IOUNIT, FMT = 9960 )2 242 WRITE( IOUNIT, FMT = 9959 )3 243 WRITE( IOUNIT, FMT = 9958 )4 244 WRITE( IOUNIT, FMT = 9957 )5 245 WRITE( IOUNIT, FMT = 9956 )6 246 WRITE( IOUNIT, FMT = 9955 )7 247 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 248* 249 ELSE IF( LSAMEN( 2, P2, 'PT' ) ) THEN 250* 251* PT: Positive definite tridiagonal 252* 253 IF( SORD ) THEN 254 WRITE( IOUNIT, FMT = 9993 )PATH, 'Symmetric' 255 ELSE 256 WRITE( IOUNIT, FMT = 9993 )PATH, 'Hermitian' 257 END IF 258 WRITE( IOUNIT, FMT = 9976 ) 259 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 260 WRITE( IOUNIT, FMT = 9952 )1 261 WRITE( IOUNIT, FMT = 9960 )2 262 WRITE( IOUNIT, FMT = 9959 )3 263 WRITE( IOUNIT, FMT = 9958 )4 264 WRITE( IOUNIT, FMT = 9957 )5 265 WRITE( IOUNIT, FMT = 9956 )6 266 WRITE( IOUNIT, FMT = 9955 )7 267 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 268* 269 ELSE IF( LSAMEN( 2, P2, 'SY' ) ) THEN 270* 271* SY: Symmetric indefinite full 272* 273 IF( LSAME( C3, 'Y' ) ) THEN 274 WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric' 275 ELSE 276 WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric' 277 END IF 278 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 279 IF( SORD ) THEN 280 WRITE( IOUNIT, FMT = 9972 ) 281 ELSE 282 WRITE( IOUNIT, FMT = 9971 ) 283 END IF 284 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 285 WRITE( IOUNIT, FMT = 9953 )1 286 WRITE( IOUNIT, FMT = 9961 )2 287 WRITE( IOUNIT, FMT = 9960 )3 288 WRITE( IOUNIT, FMT = 9960 )4 289 WRITE( IOUNIT, FMT = 9959 )5 290 WRITE( IOUNIT, FMT = 9958 )6 291 WRITE( IOUNIT, FMT = 9956 )7 292 WRITE( IOUNIT, FMT = 9957 )8 293 WRITE( IOUNIT, FMT = 9955 )9 294 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 295* 296 ELSE IF( LSAMEN( 2, P2, 'SP' ) ) THEN 297* 298* SP: Symmetric indefinite packed 299* 300 IF( LSAME( C3, 'Y' ) ) THEN 301 WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric' 302 ELSE 303 WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric' 304 END IF 305 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 306 IF( SORD ) THEN 307 WRITE( IOUNIT, FMT = 9972 ) 308 ELSE 309 WRITE( IOUNIT, FMT = 9971 ) 310 END IF 311 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 312 WRITE( IOUNIT, FMT = 9953 )1 313 WRITE( IOUNIT, FMT = 9961 )2 314 WRITE( IOUNIT, FMT = 9960 )3 315 WRITE( IOUNIT, FMT = 9959 )4 316 WRITE( IOUNIT, FMT = 9958 )5 317 WRITE( IOUNIT, FMT = 9956 )6 318 WRITE( IOUNIT, FMT = 9957 )7 319 WRITE( IOUNIT, FMT = 9955 )8 320 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 321* 322 ELSE IF( LSAMEN( 2, P2, 'HE' ) ) THEN 323* 324* HE: Hermitian indefinite full 325* 326 IF( LSAME( C3, 'E' ) ) THEN 327 WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian' 328 ELSE 329 WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian' 330 END IF 331 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 332 IF( SORD ) THEN 333 WRITE( IOUNIT, FMT = 9972 ) 334 ELSE 335 WRITE( IOUNIT, FMT = 9971 ) 336 END IF 337 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 338 WRITE( IOUNIT, FMT = 9953 )1 339 WRITE( IOUNIT, FMT = 9961 )2 340 WRITE( IOUNIT, FMT = 9960 )3 341 WRITE( IOUNIT, FMT = 9960 )4 342 WRITE( IOUNIT, FMT = 9959 )5 343 WRITE( IOUNIT, FMT = 9958 )6 344 WRITE( IOUNIT, FMT = 9956 )7 345 WRITE( IOUNIT, FMT = 9957 )8 346 WRITE( IOUNIT, FMT = 9955 )9 347 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 348* 349 ELSE IF( LSAMEN( 2, P2, 'HP' ) ) THEN 350* 351* HP: Hermitian indefinite packed 352* 353 IF( LSAME( C3, 'E' ) ) THEN 354 WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian' 355 ELSE 356 WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian' 357 END IF 358 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 359 WRITE( IOUNIT, FMT = 9972 ) 360 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 361 WRITE( IOUNIT, FMT = 9953 )1 362 WRITE( IOUNIT, FMT = 9961 )2 363 WRITE( IOUNIT, FMT = 9960 )3 364 WRITE( IOUNIT, FMT = 9959 )4 365 WRITE( IOUNIT, FMT = 9958 )5 366 WRITE( IOUNIT, FMT = 9956 )6 367 WRITE( IOUNIT, FMT = 9957 )7 368 WRITE( IOUNIT, FMT = 9955 )8 369 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 370* 371 ELSE IF( LSAMEN( 2, P2, 'TR' ) .OR. LSAMEN( 2, P2, 'TP' ) ) THEN 372* 373* TR: Triangular full 374* TP: Triangular packed 375* 376 IF( LSAME( C3, 'R' ) ) THEN 377 WRITE( IOUNIT, FMT = 9990 )PATH 378 SUBNAM = PATH( 1: 1 ) // 'LATRS' 379 ELSE 380 WRITE( IOUNIT, FMT = 9989 )PATH 381 SUBNAM = PATH( 1: 1 ) // 'LATPS' 382 END IF 383 WRITE( IOUNIT, FMT = 9966 )PATH 384 WRITE( IOUNIT, FMT = 9965 )SUBNAM(1:LEN_TRIM( SUBNAM )) 385 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 386 WRITE( IOUNIT, FMT = 9961 )1 387 WRITE( IOUNIT, FMT = 9960 )2 388 WRITE( IOUNIT, FMT = 9959 )3 389 WRITE( IOUNIT, FMT = 9958 )4 390 WRITE( IOUNIT, FMT = 9957 )5 391 WRITE( IOUNIT, FMT = 9956 )6 392 WRITE( IOUNIT, FMT = 9955 )7 393 WRITE( IOUNIT, FMT = 9951 )SUBNAM(1:LEN_TRIM( SUBNAM )), 8 394 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 395* 396 ELSE IF( LSAMEN( 2, P2, 'TB' ) ) THEN 397* 398* TB: Triangular band 399* 400 WRITE( IOUNIT, FMT = 9988 )PATH 401 SUBNAM = PATH( 1: 1 ) // 'LATBS' 402 WRITE( IOUNIT, FMT = 9964 )PATH 403 WRITE( IOUNIT, FMT = 9963 )SUBNAM(1:LEN_TRIM( SUBNAM )) 404 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 405 WRITE( IOUNIT, FMT = 9960 )1 406 WRITE( IOUNIT, FMT = 9959 )2 407 WRITE( IOUNIT, FMT = 9958 )3 408 WRITE( IOUNIT, FMT = 9957 )4 409 WRITE( IOUNIT, FMT = 9956 )5 410 WRITE( IOUNIT, FMT = 9955 )6 411 WRITE( IOUNIT, FMT = 9951 )SUBNAM(1:LEN_TRIM( SUBNAM )), 7 412 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 413* 414 ELSE IF( LSAMEN( 2, P2, 'QR' ) ) THEN 415* 416* QR decomposition of rectangular matrices 417* 418 WRITE( IOUNIT, FMT = 9987 )PATH, 'QR' 419 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 420 WRITE( IOUNIT, FMT = 9970 ) 421 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 422 WRITE( IOUNIT, FMT = 9950 )1 423 WRITE( IOUNIT, FMT = 6950 )8 424 WRITE( IOUNIT, FMT = 9946 )2 425 WRITE( IOUNIT, FMT = 9944 )3, 'M' 426 WRITE( IOUNIT, FMT = 9943 )4, 'M' 427 WRITE( IOUNIT, FMT = 9942 )5, 'M' 428 WRITE( IOUNIT, FMT = 9941 )6, 'M' 429 WRITE( IOUNIT, FMT = 9960 )7 430 WRITE( IOUNIT, FMT = 6660 )9 431 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 432* 433 ELSE IF( LSAMEN( 2, P2, 'LQ' ) ) THEN 434* 435* LQ decomposition of rectangular matrices 436* 437 WRITE( IOUNIT, FMT = 9987 )PATH, 'LQ' 438 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 439 WRITE( IOUNIT, FMT = 9970 ) 440 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 441 WRITE( IOUNIT, FMT = 9949 )1 442 WRITE( IOUNIT, FMT = 9945 )2 443 WRITE( IOUNIT, FMT = 9944 )3, 'N' 444 WRITE( IOUNIT, FMT = 9943 )4, 'N' 445 WRITE( IOUNIT, FMT = 9942 )5, 'N' 446 WRITE( IOUNIT, FMT = 9941 )6, 'N' 447 WRITE( IOUNIT, FMT = 9960 )7 448 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 449* 450 ELSE IF( LSAMEN( 2, P2, 'QL' ) ) THEN 451* 452* QL decomposition of rectangular matrices 453* 454 WRITE( IOUNIT, FMT = 9987 )PATH, 'QL' 455 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 456 WRITE( IOUNIT, FMT = 9970 ) 457 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 458 WRITE( IOUNIT, FMT = 9948 )1 459 WRITE( IOUNIT, FMT = 9946 )2 460 WRITE( IOUNIT, FMT = 9944 )3, 'M' 461 WRITE( IOUNIT, FMT = 9943 )4, 'M' 462 WRITE( IOUNIT, FMT = 9942 )5, 'M' 463 WRITE( IOUNIT, FMT = 9941 )6, 'M' 464 WRITE( IOUNIT, FMT = 9960 )7 465 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 466* 467 ELSE IF( LSAMEN( 2, P2, 'RQ' ) ) THEN 468* 469* RQ decomposition of rectangular matrices 470* 471 WRITE( IOUNIT, FMT = 9987 )PATH, 'RQ' 472 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 473 WRITE( IOUNIT, FMT = 9970 ) 474 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 475 WRITE( IOUNIT, FMT = 9947 )1 476 WRITE( IOUNIT, FMT = 9945 )2 477 WRITE( IOUNIT, FMT = 9944 )3, 'N' 478 WRITE( IOUNIT, FMT = 9943 )4, 'N' 479 WRITE( IOUNIT, FMT = 9942 )5, 'N' 480 WRITE( IOUNIT, FMT = 9941 )6, 'N' 481 WRITE( IOUNIT, FMT = 9960 )7 482 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 483* 484 ELSE IF( LSAMEN( 2, P2, 'QP' ) ) THEN 485* 486* QR decomposition with column pivoting 487* 488 WRITE( IOUNIT, FMT = 9986 )PATH 489 WRITE( IOUNIT, FMT = 9969 ) 490 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 491 WRITE( IOUNIT, FMT = 9940 )1 492 WRITE( IOUNIT, FMT = 9939 )2 493 WRITE( IOUNIT, FMT = 9938 )3 494 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 495* 496 ELSE IF( LSAMEN( 2, P2, 'TZ' ) ) THEN 497* 498* TZ: Trapezoidal 499* 500 WRITE( IOUNIT, FMT = 9985 )PATH 501 WRITE( IOUNIT, FMT = 9968 ) 502 WRITE( IOUNIT, FMT = 9929 )C1, C1 503 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 504 WRITE( IOUNIT, FMT = 9940 )1 505 WRITE( IOUNIT, FMT = 9937 )2 506 WRITE( IOUNIT, FMT = 9938 )3 507 WRITE( IOUNIT, FMT = 9940 )4 508 WRITE( IOUNIT, FMT = 9937 )5 509 WRITE( IOUNIT, FMT = 9938 )6 510 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 511* 512 ELSE IF( LSAMEN( 2, P2, 'LS' ) ) THEN 513* 514* LS: Least Squares driver routines for 515* LS, LSD, LSS, LSX and LSY. 516* 517 WRITE( IOUNIT, FMT = 9984 )PATH 518 WRITE( IOUNIT, FMT = 9967 ) 519 WRITE( IOUNIT, FMT = 9921 )C1, C1, C1, C1, C1 520 WRITE( IOUNIT, FMT = 9935 )1 521 WRITE( IOUNIT, FMT = 9931 )2 522 WRITE( IOUNIT, FMT = 9933 )3 523 WRITE( IOUNIT, FMT = 9935 )4 524 WRITE( IOUNIT, FMT = 9934 )5 525 WRITE( IOUNIT, FMT = 9932 )6 526 WRITE( IOUNIT, FMT = 9920 ) 527 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 528* 529 ELSE IF( LSAMEN( 2, P2, 'LU' ) ) THEN 530* 531* LU factorization variants 532* 533 WRITE( IOUNIT, FMT = 9983 )PATH 534 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 535 WRITE( IOUNIT, FMT = 9979 ) 536 WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' ) 537 WRITE( IOUNIT, FMT = 9962 )1 538 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 539* 540 ELSE IF( LSAMEN( 2, P2, 'CH' ) ) THEN 541* 542* Cholesky factorization variants 543* 544 WRITE( IOUNIT, FMT = 9982 )PATH 545 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 546 WRITE( IOUNIT, FMT = 9974 ) 547 WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' ) 548 WRITE( IOUNIT, FMT = 9954 )1 549 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) 550* 551 ELSE IF( LSAMEN( 2, P2, 'QS' ) ) THEN 552* 553* QR factorization variants 554* 555 WRITE( IOUNIT, FMT = 9981 )PATH 556 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) 557 WRITE( IOUNIT, FMT = 9970 ) 558 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 559* 560 ELSE IF( LSAMEN( 2, P2, 'QT' ) ) THEN 561* 562* QRT (general matrices) 563* 564 WRITE( IOUNIT, FMT = 8000 ) PATH 565 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 566 WRITE( IOUNIT, FMT = 8011 ) 1 567 WRITE( IOUNIT, FMT = 8012 ) 2 568 WRITE( IOUNIT, FMT = 8013 ) 3 569 WRITE( IOUNIT, FMT = 8014 ) 4 570 WRITE( IOUNIT, FMT = 8015 ) 5 571 WRITE( IOUNIT, FMT = 8016 ) 6 572* 573 ELSE IF( LSAMEN( 2, P2, 'QX' ) ) THEN 574* 575* QRT (triangular-pentagonal) 576* 577 WRITE( IOUNIT, FMT = 8001 ) PATH 578 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) 579 WRITE( IOUNIT, FMT = 8017 ) 1 580 WRITE( IOUNIT, FMT = 8018 ) 2 581 WRITE( IOUNIT, FMT = 8019 ) 3 582 WRITE( IOUNIT, FMT = 8020 ) 4 583 WRITE( IOUNIT, FMT = 8021 ) 5 584 WRITE( IOUNIT, FMT = 8022 ) 6 585* 586 ELSE 587* 588* Print error message if no header is available. 589* 590 WRITE( IOUNIT, FMT = 9980 )PATH 591 END IF 592* 593* First line of header 594* 595 9999 FORMAT( / 1X, A3, ': General dense matrices' ) 596 9998 FORMAT( / 1X, A3, ': General band matrices' ) 597 9997 FORMAT( / 1X, A3, ': General tridiagonal' ) 598 9996 FORMAT( / 1X, A3, ': ', A9, ' positive definite matrices' ) 599 9995 FORMAT( / 1X, A3, ': ', A9, ' positive definite packed matrices' 600 $ ) 601 9994 FORMAT( / 1X, A3, ': ', A9, ' positive definite band matrices' ) 602 9993 FORMAT( / 1X, A3, ': ', A9, ' positive definite tridiagonal' ) 603 9992 FORMAT( / 1X, A3, ': ', A9, ' indefinite matrices' ) 604 9991 FORMAT( / 1X, A3, ': ', A9, ' indefinite packed matrices' ) 605 9990 FORMAT( / 1X, A3, ': Triangular matrices' ) 606 9989 FORMAT( / 1X, A3, ': Triangular packed matrices' ) 607 9988 FORMAT( / 1X, A3, ': Triangular band matrices' ) 608 9987 FORMAT( / 1X, A3, ': ', A2, ' factorization of general matrices' 609 $ ) 610 9986 FORMAT( / 1X, A3, ': QR factorization with column pivoting' ) 611 9985 FORMAT( / 1X, A3, ': RQ factorization of trapezoidal matrix' ) 612 9984 FORMAT( / 1X, A3, ': Least squares driver routines' ) 613 9983 FORMAT( / 1X, A3, ': LU factorization variants' ) 614 9982 FORMAT( / 1X, A3, ': Cholesky factorization variants' ) 615 9981 FORMAT( / 1X, A3, ': QR factorization variants' ) 616 9980 FORMAT( / 1X, A3, ': No header available' ) 617 8000 FORMAT( / 1X, A3, ': QRT factorization for general matrices' ) 618 8001 FORMAT( / 1X, A3, ': QRT factorization for ', 619 $ 'triangular-pentagonal matrices' ) 620 621* 622* GE matrix types 623* 624 9979 FORMAT( 4X, '1. Diagonal', 24X, '7. Last n/2 columns zero', / 4X, 625 $ '2. Upper triangular', 16X, 626 $ '8. Random, CNDNUM = sqrt(0.1/EPS)', / 4X, 627 $ '3. Lower triangular', 16X, '9. Random, CNDNUM = 0.1/EPS', 628 $ / 4X, '4. Random, CNDNUM = 2', 13X, 629 $ '10. Scaled near underflow', / 4X, '5. First column zero', 630 $ 14X, '11. Scaled near overflow', / 4X, 631 $ '6. Last column zero' ) 632* 633* GB matrix types 634* 635 9978 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X, 636 $ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X, 637 $ '2. First column zero', 15X, '6. Random, CNDNUM = .01/EPS', 638 $ / 4X, '3. Last column zero', 16X, 639 $ '7. Scaled near underflow', / 4X, 640 $ '4. Last n/2 columns zero', 11X, '8. Scaled near overflow' ) 641* 642* GT matrix types 643* 644 9977 FORMAT( ' Matrix types (1-6 have specified condition numbers):', 645 $ / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM', 646 $ / 4X, '2. Random, CNDNUM = 2', 14X, '8. First column zero', 647 $ / 4X, '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X, 648 $ '9. Last column zero', / 4X, '4. Random, CNDNUM = 0.1/EPS', 649 $ 7X, '10. Last n/2 columns zero', / 4X, 650 $ '5. Scaled near underflow', 10X, 651 $ '11. Scaled near underflow', / 4X, 652 $ '6. Scaled near overflow', 11X, '12. Scaled near overflow' ) 653* 654* PT matrix types 655* 656 9976 FORMAT( ' Matrix types (1-6 have specified condition numbers):', 657 $ / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM', 658 $ / 4X, '2. Random, CNDNUM = 2', 14X, 659 $ '8. First row and column zero', / 4X, 660 $ '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X, 661 $ '9. Last row and column zero', / 4X, 662 $ '4. Random, CNDNUM = 0.1/EPS', 7X, 663 $ '10. Middle row and column zero', / 4X, 664 $ '5. Scaled near underflow', 10X, 665 $ '11. Scaled near underflow', / 4X, 666 $ '6. Scaled near overflow', 11X, '12. Scaled near overflow' ) 667* 668* PO, PP matrix types 669* 670 9975 FORMAT( 4X, '1. Diagonal', 24X, 671 $ '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X, 672 $ '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS', 673 $ / 3X, '*3. First row and column zero', 7X, 674 $ '8. Scaled near underflow', / 3X, 675 $ '*4. Last row and column zero', 8X, 676 $ '9. Scaled near overflow', / 3X, 677 $ '*5. Middle row and column zero', / 3X, 678 $ '(* - tests error exits from ', A3, 679 $ 'TRF, no test ratios are computed)' ) 680* 681* CH matrix types 682* 683 9974 FORMAT( 4X, '1. Diagonal', 24X, 684 $ '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X, 685 $ '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS', 686 $ / 3X, '*3. First row and column zero', 7X, 687 $ '8. Scaled near underflow', / 3X, 688 $ '*4. Last row and column zero', 8X, 689 $ '9. Scaled near overflow', / 3X, 690 $ '*5. Middle row and column zero', / 3X, 691 $ '(* - tests error exits, no test ratios are computed)' ) 692* 693* PS matrix types 694* 695 8973 FORMAT( 4X, '1. Diagonal', / 4X, '2. Random, CNDNUM = 2', 14X, 696 $ / 3X, '*3. Nonzero eigenvalues of: D(1:RANK-1)=1 and ', 697 $ 'D(RANK) = 1.0/', A4, / 3X, 698 $ '*4. Nonzero eigenvalues of: D(1)=1 and ', 699 $ ' D(2:RANK) = 1.0/', A4, / 3X, 700 $ '*5. Nonzero eigenvalues of: D(I) = ', A4, 701 $ '**(-(I-1)/(RANK-1)) ', ' I=1:RANK', / 4X, 702 $ '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X, 703 $ '7. Random, CNDNUM = 0.1/EPS', / 4X, 704 $ '8. Scaled near underflow', / 4X, '9. Scaled near overflow', 705 $ / 3X, '(* - Semi-definite tests )' ) 706 8972 FORMAT( 3X, 'RANK minus computed rank, returned by ', A, 'PSTRF' ) 707* 708* PB matrix types 709* 710 9973 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X, 711 $ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 3X, 712 $ '*2. First row and column zero', 7X, 713 $ '6. Random, CNDNUM = 0.1/EPS', / 3X, 714 $ '*3. Last row and column zero', 8X, 715 $ '7. Scaled near underflow', / 3X, 716 $ '*4. Middle row and column zero', 6X, 717 $ '8. Scaled near overflow', / 3X, 718 $ '(* - tests error exits from ', A3, 719 $ 'TRF, no test ratios are computed)' ) 720* 721* SSY, SSP, CHE, CHP matrix types 722* 723 9972 FORMAT( 4X, '1. Diagonal', 24X, 724 $ '6. Last n/2 rows and columns zero', / 4X, 725 $ '2. Random, CNDNUM = 2', 14X, 726 $ '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X, 727 $ '3. First row and column zero', 7X, 728 $ '8. Random, CNDNUM = 0.1/EPS', / 4X, 729 $ '4. Last row and column zero', 8X, 730 $ '9. Scaled near underflow', / 4X, 731 $ '5. Middle row and column zero', 5X, 732 $ '10. Scaled near overflow' ) 733* 734* CSY, CSP matrix types 735* 736 9971 FORMAT( 4X, '1. Diagonal', 24X, 737 $ '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X, 738 $ '2. Random, CNDNUM = 2', 14X, '8. Random, CNDNUM = 0.1/EPS', 739 $ / 4X, '3. First row and column zero', 7X, 740 $ '9. Scaled near underflow', / 4X, 741 $ '4. Last row and column zero', 7X, 742 $ '10. Scaled near overflow', / 4X, 743 $ '5. Middle row and column zero', 5X, 744 $ '11. Block diagonal matrix', / 4X, 745 $ '6. Last n/2 rows and columns zero' ) 746* 747* QR matrix types 748* 749 9970 FORMAT( 4X, '1. Diagonal', 24X, 750 $ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X, 751 $ '2. Upper triangular', 16X, '6. Random, CNDNUM = 0.1/EPS', 752 $ / 4X, '3. Lower triangular', 16X, 753 $ '7. Scaled near underflow', / 4X, '4. Random, CNDNUM = 2', 754 $ 14X, '8. Scaled near overflow' ) 755* 756* QP matrix types 757* 758 9969 FORMAT( ' Matrix types (2-6 have condition 1/EPS):', / 4X, 759 $ '1. Zero matrix', 21X, '4. First n/2 columns fixed', / 4X, 760 $ '2. One small eigenvalue', 12X, '5. Last n/2 columns fixed', 761 $ / 4X, '3. Geometric distribution', 10X, 762 $ '6. Every second column fixed' ) 763* 764* TZ matrix types 765* 766 9968 FORMAT( ' Matrix types (2-3 have condition 1/EPS):', / 4X, 767 $ '1. Zero matrix', / 4X, '2. One small eigenvalue', / 4X, 768 $ '3. Geometric distribution' ) 769* 770* LS matrix types 771* 772 9967 FORMAT( ' Matrix types (1-3: full rank, 4-6: rank deficient):', 773 $ / 4X, '1 and 4. Normal scaling', / 4X, 774 $ '2 and 5. Scaled near overflow', / 4X, 775 $ '3 and 6. Scaled near underflow' ) 776* 777* TR, TP matrix types 778* 779 9966 FORMAT( ' Matrix types for ', A3, ' routines:', / 4X, 780 $ '1. Diagonal', 24X, '6. Scaled near overflow', / 4X, 781 $ '2. Random, CNDNUM = 2', 14X, '7. Identity', / 4X, 782 $ '3. Random, CNDNUM = sqrt(0.1/EPS) ', 783 $ '8. Unit triangular, CNDNUM = 2', / 4X, 784 $ '4. Random, CNDNUM = 0.1/EPS', 8X, 785 $ '9. Unit, CNDNUM = sqrt(0.1/EPS)', / 4X, 786 $ '5. Scaled near underflow', 10X, 787 $ '10. Unit, CNDNUM = 0.1/EPS' ) 788 9965 FORMAT( ' Special types for testing ', A, ':', / 3X, 789 $ '11. Matrix elements are O(1), large right hand side', / 3X, 790 $ '12. First diagonal causes overflow,', 791 $ ' offdiagonal column norms < 1', / 3X, 792 $ '13. First diagonal causes overflow,', 793 $ ' offdiagonal column norms > 1', / 3X, 794 $ '14. Growth factor underflows, solution does not overflow', 795 $ / 3X, '15. Small diagonal causes gradual overflow', / 3X, 796 $ '16. One zero diagonal element', / 3X, 797 $ '17. Large offdiagonals cause overflow when adding a column' 798 $ , / 3X, '18. Unit triangular with large right hand side' ) 799* 800* TB matrix types 801* 802 9964 FORMAT( ' Matrix types for ', A3, ' routines:', / 4X, 803 $ '1. Random, CNDNUM = 2', 14X, '6. Identity', / 4X, 804 $ '2. Random, CNDNUM = sqrt(0.1/EPS) ', 805 $ '7. Unit triangular, CNDNUM = 2', / 4X, 806 $ '3. Random, CNDNUM = 0.1/EPS', 8X, 807 $ '8. Unit, CNDNUM = sqrt(0.1/EPS)', / 4X, 808 $ '4. Scaled near underflow', 11X, 809 $ '9. Unit, CNDNUM = 0.1/EPS', / 4X, 810 $ '5. Scaled near overflow' ) 811 9963 FORMAT( ' Special types for testing ', A, ':', / 3X, 812 $ '10. Matrix elements are O(1), large right hand side', / 3X, 813 $ '11. First diagonal causes overflow,', 814 $ ' offdiagonal column norms < 1', / 3X, 815 $ '12. First diagonal causes overflow,', 816 $ ' offdiagonal column norms > 1', / 3X, 817 $ '13. Growth factor underflows, solution does not overflow', 818 $ / 3X, '14. Small diagonal causes gradual overflow', / 3X, 819 $ '15. One zero diagonal element', / 3X, 820 $ '16. Large offdiagonals cause overflow when adding a column' 821 $ , / 3X, '17. Unit triangular with large right hand side' ) 822* 823* Test ratios 824* 825 9962 FORMAT( 3X, I2, ': norm( L * U - A ) / ( N * norm(A) * EPS )' ) 826 9961 FORMAT( 3X, I2, ': norm( I - A*AINV ) / ', 827 $ '( N * norm(A) * norm(AINV) * EPS )' ) 828 9960 FORMAT( 3X, I2, ': norm( B - A * X ) / ', 829 $ '( norm(A) * norm(X) * EPS )' ) 830 6660 FORMAT( 3X, I2, ': diagonal is not non-negative') 831 9959 FORMAT( 3X, I2, ': norm( X - XACT ) / ', 832 $ '( norm(XACT) * CNDNUM * EPS )' ) 833 9958 FORMAT( 3X, I2, ': norm( X - XACT ) / ', 834 $ '( norm(XACT) * CNDNUM * EPS ), refined' ) 835 9957 FORMAT( 3X, I2, ': norm( X - XACT ) / ', 836 $ '( norm(XACT) * (error bound) )' ) 837 9956 FORMAT( 3X, I2, ': (backward error) / EPS' ) 838 9955 FORMAT( 3X, I2, ': RCOND * CNDNUM - 1.0' ) 839 9954 FORMAT( 3X, I2, ': norm( U'' * U - A ) / ( N * norm(A) * EPS )', 840 $ ', or', / 7X, 'norm( L * L'' - A ) / ( N * norm(A) * EPS )' 841 $ ) 842 8950 FORMAT( 3X, 843 $ 'norm( P * U'' * U * P'' - A ) / ( N * norm(A) * EPS )', 844 $ ', or', / 3X, 845 $ 'norm( P * L * L'' * P'' - A ) / ( N * norm(A) * EPS )' ) 846 9953 FORMAT( 3X, I2, ': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )', 847 $ ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )' 848 $ ) 849 9952 FORMAT( 3X, I2, ': norm( U''*D*U - A ) / ( N * norm(A) * EPS )', 850 $ ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )' 851 $ ) 852 9951 FORMAT( ' Test ratio for ', A, ':', / 3X, I2, 853 $ ': norm( s*b - A*x ) / ( norm(A) * norm(x) * EPS )' ) 854 9950 FORMAT( 3X, I2, ': norm( R - Q'' * A ) / ( M * norm(A) * EPS )' ) 855 6950 FORMAT( 3X, I2, ': norm( R - Q'' * A ) / ( M * norm(A) * EPS ) 856 $ [RFPG]' ) 857 9949 FORMAT( 3X, I2, ': norm( L - A * Q'' ) / ( N * norm(A) * EPS )' ) 858 9948 FORMAT( 3X, I2, ': norm( L - Q'' * A ) / ( M * norm(A) * EPS )' ) 859 9947 FORMAT( 3X, I2, ': norm( R - A * Q'' ) / ( N * norm(A) * EPS )' ) 860 9946 FORMAT( 3X, I2, ': norm( I - Q''*Q ) / ( M * EPS )' ) 861 9945 FORMAT( 3X, I2, ': norm( I - Q*Q'' ) / ( N * EPS )' ) 862 9944 FORMAT( 3X, I2, ': norm( Q*C - Q*C ) / ', '( ', A1, 863 $ ' * norm(C) * EPS )' ) 864 9943 FORMAT( 3X, I2, ': norm( C*Q - C*Q ) / ', '( ', A1, 865 $ ' * norm(C) * EPS )' ) 866 9942 FORMAT( 3X, I2, ': norm( Q''*C - Q''*C )/ ', '( ', A1, 867 $ ' * norm(C) * EPS )' ) 868 9941 FORMAT( 3X, I2, ': norm( C*Q'' - C*Q'' )/ ', '( ', A1, 869 $ ' * norm(C) * EPS )' ) 870 9940 FORMAT( 3X, I2, ': norm(svd(A) - svd(R)) / ', 871 $ '( M * norm(svd(R)) * EPS )' ) 872 9939 FORMAT( 3X, I2, ': norm( A*P - Q*R ) / ( M * norm(A) * EPS )' 873 $ ) 874 9938 FORMAT( 3X, I2, ': norm( I - Q''*Q ) / ( M * EPS )' ) 875 9937 FORMAT( 3X, I2, ': norm( A - R*Q ) / ( M * norm(A) * EPS )' 876 $ ) 877 9935 FORMAT( 3X, I2, ': norm( B - A * X ) / ', 878 $ '( max(M,N) * norm(A) * norm(X) * EPS )' ) 879 9934 FORMAT( 3X, I2, ': norm( (A*X-B)'' *A ) / ', 880 $ '( max(M,N,NRHS) * norm(A) * norm(B) * EPS )' ) 881 9933 FORMAT( 3X, I2, ': norm(svd(A)-svd(R)) / ', 882 $ '( min(M,N) * norm(svd(R)) * EPS )' ) 883 9932 FORMAT( 3X, I2, ': Check if X is in the row space of A or A''' ) 884 9931 FORMAT( 3X, I2, ': norm( (A*X-B)'' *A ) / ', 885 $ '( max(M,N,NRHS) * norm(A) * norm(B) * EPS )', / 7X, 886 $ 'if TRANS=''N'' and M.GE.N or TRANS=''T'' and M.LT.N, ', 887 $ 'otherwise', / 7X, 888 $ 'check if X is in the row space of A or A'' ', 889 $ '(overdetermined case)' ) 890 9929 FORMAT( ' Test ratios (1-3: ', A1, 'TZRQF, 4-6: ', A1, 891 $ 'TZRZF):' ) 892 9920 FORMAT( 3X, ' 7-10: same as 3-6', 3X, ' 11-14: same as 3-6', 893 $ 3X, ' 15-18: same as 3-6' ) 894 9921 FORMAT( ' Test ratios:', / ' (1-2: ', A1, 'GELS, 3-6: ', A1, 895 $ 'GELSX, 7-10: ', A1, 'GELSY, 11-14: ', A1, 'GELSS, 15-18: ', 896 $ A1, 'GELSD)' ) 897 8011 FORMAT(3X,I2,': norm( R - Q''*A ) / ( M * norm(A) * EPS )' ) 898 8012 FORMAT(3X,I2,': norm( I - Q''*Q ) / ( M * EPS )' ) 899 8013 FORMAT(3X,I2,': norm( Q*C - Q*C ) / ( M * norm(C) * EPS )' ) 900 8014 FORMAT(3X,I2,': norm( Q''*C - Q''*C ) / ( M * norm(C) * EPS )') 901 8015 FORMAT(3X,I2,': norm( C*Q - C*Q ) / ( M * norm(C) * EPS )' ) 902 8016 FORMAT(3X,I2,': norm( C*Q'' - C*Q'' ) / ( M * norm(C) * EPS )') 903 8017 FORMAT(3X,I2,': norm( R - Q''*A ) / ( (M+N) * norm(A) * EPS )' ) 904 8018 FORMAT(3X,I2,': norm( I - Q''*Q ) / ( (M+N) * EPS )' ) 905 8019 FORMAT(3X,I2,': norm( Q*C - Q*C ) / ( (M+N) * norm(C) * EPS )' ) 906 8020 FORMAT(3X,I2, 907 $ ': norm( Q''*C - Q''*C ) / ( (M+N) * norm(C) * EPS )') 908 8021 FORMAT(3X,I2,': norm( C*Q - C*Q ) / ( (M+N) * norm(C) * EPS )' ) 909 8022 FORMAT(3X,I2, 910 $ ': norm( C*Q'' - C*Q'' ) / ( (M+N) * norm(C) * EPS )') 911* 912 RETURN 913* 914* End of ALAHD 915* 916 END 917