132 IF( .NOT.( sord .OR. corz ) )
135 IF(
lsamen( 2, p2,
'GE' ) )
THEN
139 WRITE( iounit, fmt = 9999 )path
140 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
141 WRITE( iounit, fmt = 9979 )
142 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
143 WRITE( iounit, fmt = 9962 )1
144 WRITE( iounit, fmt = 9961 )2
145 WRITE( iounit, fmt = 9960 )3
146 WRITE( iounit, fmt = 9959 )4
147 WRITE( iounit, fmt = 9958 )5
148 WRITE( iounit, fmt = 9957 )6
149 WRITE( iounit, fmt = 9956 )7
150 WRITE( iounit, fmt = 9955 )8
151 WRITE( iounit, fmt =
'( '' Messages:'' )' )
153 ELSE IF(
lsamen( 2, p2,
'GB' ) )
THEN
157 WRITE( iounit, fmt = 9998 )path
158 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
159 WRITE( iounit, fmt = 9978 )
160 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
161 WRITE( iounit, fmt = 9962 )1
162 WRITE( iounit, fmt = 9960 )2
163 WRITE( iounit, fmt = 9959 )3
164 WRITE( iounit, fmt = 9958 )4
165 WRITE( iounit, fmt = 9957 )5
166 WRITE( iounit, fmt = 9956 )6
167 WRITE( iounit, fmt = 9955 )7
168 WRITE( iounit, fmt =
'( '' Messages:'' )' )
170 ELSE IF(
lsamen( 2, p2,
'GT' ) )
THEN
174 WRITE( iounit, fmt = 9997 )path
175 WRITE( iounit, fmt = 9977 )
176 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
177 WRITE( iounit, fmt = 9962 )1
178 WRITE( iounit, fmt = 9960 )2
179 WRITE( iounit, fmt = 9959 )3
180 WRITE( iounit, fmt = 9958 )4
181 WRITE( iounit, fmt = 9957 )5
182 WRITE( iounit, fmt = 9956 )6
183 WRITE( iounit, fmt = 9955 )7
184 WRITE( iounit, fmt =
'( '' Messages:'' )' )
186 ELSE IF(
lsamen( 2, p2,
'PO' ) .OR.
lsamen( 2, p2,
'PP' ) )
THEN
196 IF(
lsame( c3,
'O' ) )
THEN
197 WRITE( iounit, fmt = 9996 )path, sym
199 WRITE( iounit, fmt = 9995 )path, sym
201 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
202 WRITE( iounit, fmt = 9975 )path
203 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
204 WRITE( iounit, fmt = 9954 )1
205 WRITE( iounit, fmt = 9961 )2
206 WRITE( iounit, fmt = 9960 )3
207 WRITE( iounit, fmt = 9959 )4
208 WRITE( iounit, fmt = 9958 )5
209 WRITE( iounit, fmt = 9957 )6
210 WRITE( iounit, fmt = 9956 )7
211 WRITE( iounit, fmt = 9955 )8
212 WRITE( iounit, fmt =
'( '' Messages:'' )' )
214 ELSE IF(
lsamen( 2, p2,
'PS' ) )
THEN
223 IF(
lsame( c1,
'S' ) .OR.
lsame( c1,
'C' ) )
THEN
228 WRITE( iounit, fmt = 9995 )path, sym
229 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
230 WRITE( iounit, fmt = 8973 )eigcnm, eigcnm, eigcnm
231 WRITE( iounit, fmt =
'( '' Difference:'' )' )
232 WRITE( iounit, fmt = 8972 )c1
233 WRITE( iounit, fmt =
'( '' Test ratio:'' )' )
234 WRITE( iounit, fmt = 8950 )
235 WRITE( iounit, fmt =
'( '' Messages:'' )' )
236 ELSE IF(
lsamen( 2, p2,
'PB' ) )
THEN
241 WRITE( iounit, fmt = 9994 )path,
'Symmetric'
243 WRITE( iounit, fmt = 9994 )path,
'Hermitian'
245 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
246 WRITE( iounit, fmt = 9973 )path
247 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
248 WRITE( iounit, fmt = 9954 )1
249 WRITE( iounit, fmt = 9960 )2
250 WRITE( iounit, fmt = 9959 )3
251 WRITE( iounit, fmt = 9958 )4
252 WRITE( iounit, fmt = 9957 )5
253 WRITE( iounit, fmt = 9956 )6
254 WRITE( iounit, fmt = 9955 )7
255 WRITE( iounit, fmt =
'( '' Messages:'' )' )
257 ELSE IF(
lsamen( 2, p2,
'PT' ) )
THEN
262 WRITE( iounit, fmt = 9993 )path,
'Symmetric'
264 WRITE( iounit, fmt = 9993 )path,
'Hermitian'
266 WRITE( iounit, fmt = 9976 )
267 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
268 WRITE( iounit, fmt = 9952 )1
269 WRITE( iounit, fmt = 9960 )2
270 WRITE( iounit, fmt = 9959 )3
271 WRITE( iounit, fmt = 9958 )4
272 WRITE( iounit, fmt = 9957 )5
273 WRITE( iounit, fmt = 9956 )6
274 WRITE( iounit, fmt = 9955 )7
275 WRITE( iounit, fmt =
'( '' Messages:'' )' )
277 ELSE IF(
lsamen( 2, p2,
'SY' ) )
THEN
282 IF(
lsame( c3,
'Y' ) )
THEN
283 WRITE( iounit, fmt = 9992 )path,
'Symmetric'
285 WRITE( iounit, fmt = 9991 )path,
'Symmetric'
287 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
289 WRITE( iounit, fmt = 9972 )
291 WRITE( iounit, fmt = 9971 )
293 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
294 WRITE( iounit, fmt = 9953 )1
295 WRITE( iounit, fmt = 9961 )2
296 WRITE( iounit, fmt = 9960 )3
297 WRITE( iounit, fmt = 9960 )4
298 WRITE( iounit, fmt = 9959 )5
299 WRITE( iounit, fmt = 9958 )6
300 WRITE( iounit, fmt = 9956 )7
301 WRITE( iounit, fmt = 9957 )8
302 WRITE( iounit, fmt = 9955 )9
303 WRITE( iounit, fmt =
'( '' Messages:'' )' )
305 ELSE IF(
lsamen( 2, p2,
'SR' ) )
THEN
310 WRITE( iounit, fmt = 9892 )path,
'Symmetric'
312 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
314 WRITE( iounit, fmt = 9972 )
316 WRITE( iounit, fmt = 9971 )
319 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
320 WRITE( iounit, fmt = 9953 )1
321 WRITE( iounit, fmt = 9961 )2
322 WRITE( iounit, fmt = 9927 )3
323 WRITE( iounit, fmt = 9928 )
324 WRITE( iounit, fmt = 9926 )4
325 WRITE( iounit, fmt = 9928 )
326 WRITE( iounit, fmt = 9960 )5
327 WRITE( iounit, fmt = 9959 )6
328 WRITE( iounit, fmt = 9955 )7
329 WRITE( iounit, fmt =
'( '' Messages:'' )' )
331 ELSE IF(
lsamen( 2, p2,
'SP' ) )
THEN
336 IF(
lsame( c3,
'Y' ) )
THEN
337 WRITE( iounit, fmt = 9992 )path,
'Symmetric'
339 WRITE( iounit, fmt = 9991 )path,
'Symmetric'
341 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
343 WRITE( iounit, fmt = 9972 )
345 WRITE( iounit, fmt = 9971 )
347 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
348 WRITE( iounit, fmt = 9953 )1
349 WRITE( iounit, fmt = 9961 )2
350 WRITE( iounit, fmt = 9960 )3
351 WRITE( iounit, fmt = 9959 )4
352 WRITE( iounit, fmt = 9958 )5
353 WRITE( iounit, fmt = 9956 )6
354 WRITE( iounit, fmt = 9957 )7
355 WRITE( iounit, fmt = 9955 )8
356 WRITE( iounit, fmt =
'( '' Messages:'' )' )
358 ELSE IF(
lsamen( 2, p2,
'HE' ) )
THEN
363 WRITE( iounit, fmt = 9992 )path,
'Hermitian'
365 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
366 WRITE( iounit, fmt = 9972 )
368 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
369 WRITE( iounit, fmt = 9953 )1
370 WRITE( iounit, fmt = 9961 )2
371 WRITE( iounit, fmt = 9960 )3
372 WRITE( iounit, fmt = 9960 )4
373 WRITE( iounit, fmt = 9959 )5
374 WRITE( iounit, fmt = 9958 )6
375 WRITE( iounit, fmt = 9956 )7
376 WRITE( iounit, fmt = 9957 )8
377 WRITE( iounit, fmt = 9955 )9
378 WRITE( iounit, fmt =
'( '' Messages:'' )' )
380 ELSE IF(
lsamen( 2, p2,
'HR' ) )
THEN
385 WRITE( iounit, fmt = 9892 )path,
'Hermitian'
387 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
388 WRITE( iounit, fmt = 9972 )
390 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
391 WRITE( iounit, fmt = 9953 )1
392 WRITE( iounit, fmt = 9961 )2
393 WRITE( iounit, fmt = 9927 )3
394 WRITE( iounit, fmt = 9928 )
395 WRITE( iounit, fmt = 9926 )4
396 WRITE( iounit, fmt = 9928 )
397 WRITE( iounit, fmt = 9960 )5
398 WRITE( iounit, fmt = 9959 )6
399 WRITE( iounit, fmt = 9955 )7
400 WRITE( iounit, fmt =
'( '' Messages:'' )' )
402 ELSE IF(
lsamen( 2, p2,
'HP' ) )
THEN
407 IF(
lsame( c3,
'E' ) )
THEN
408 WRITE( iounit, fmt = 9992 )path,
'Hermitian'
410 WRITE( iounit, fmt = 9991 )path,
'Hermitian'
412 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
413 WRITE( iounit, fmt = 9972 )
414 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
415 WRITE( iounit, fmt = 9953 )1
416 WRITE( iounit, fmt = 9961 )2
417 WRITE( iounit, fmt = 9960 )3
418 WRITE( iounit, fmt = 9959 )4
419 WRITE( iounit, fmt = 9958 )5
420 WRITE( iounit, fmt = 9956 )6
421 WRITE( iounit, fmt = 9957 )7
422 WRITE( iounit, fmt = 9955 )8
423 WRITE( iounit, fmt =
'( '' Messages:'' )' )
425 ELSE IF(
lsamen( 2, p2,
'TR' ) .OR.
lsamen( 2, p2,
'TP' ) )
THEN
430 IF(
lsame( c3,
'R' ) )
THEN
431 WRITE( iounit, fmt = 9990 )path
432 subnam = path( 1: 1 ) //
'LATRS'
434 WRITE( iounit, fmt = 9989 )path
435 subnam = path( 1: 1 ) //
'LATPS'
437 WRITE( iounit, fmt = 9966 )path
438 WRITE( iounit, fmt = 9965 )subnam(1:len_trim( subnam ))
439 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
440 WRITE( iounit, fmt = 9961 )1
441 WRITE( iounit, fmt = 9960 )2
442 WRITE( iounit, fmt = 9959 )3
443 WRITE( iounit, fmt = 9958 )4
444 WRITE( iounit, fmt = 9957 )5
445 WRITE( iounit, fmt = 9956 )6
446 WRITE( iounit, fmt = 9955 )7
447 WRITE( iounit, fmt = 9951 )subnam(1:len_trim( subnam )), 8
448 WRITE( iounit, fmt =
'( '' Messages:'' )' )
450 ELSE IF(
lsamen( 2, p2,
'TB' ) )
THEN
454 WRITE( iounit, fmt = 9988 )path
455 subnam = path( 1: 1 ) //
'LATBS'
456 WRITE( iounit, fmt = 9964 )path
457 WRITE( iounit, fmt = 9963 )subnam(1:len_trim( subnam ))
458 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
459 WRITE( iounit, fmt = 9960 )1
460 WRITE( iounit, fmt = 9959 )2
461 WRITE( iounit, fmt = 9958 )3
462 WRITE( iounit, fmt = 9957 )4
463 WRITE( iounit, fmt = 9956 )5
464 WRITE( iounit, fmt = 9955 )6
465 WRITE( iounit, fmt = 9951 )subnam(1:len_trim( subnam )), 7
466 WRITE( iounit, fmt =
'( '' Messages:'' )' )
468 ELSE IF(
lsamen( 2, p2,
'QR' ) )
THEN
472 WRITE( iounit, fmt = 9987 )path,
'QR'
473 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
474 WRITE( iounit, fmt = 9970 )
475 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
476 WRITE( iounit, fmt = 9950 )1
477 WRITE( iounit, fmt = 6950 )8
478 WRITE( iounit, fmt = 9946 )2
479 WRITE( iounit, fmt = 9944 )3,
'M'
480 WRITE( iounit, fmt = 9943 )4,
'M'
481 WRITE( iounit, fmt = 9942 )5,
'M'
482 WRITE( iounit, fmt = 9941 )6,
'M'
483 WRITE( iounit, fmt = 9960 )7
484 WRITE( iounit, fmt = 6660 )9
485 WRITE( iounit, fmt =
'( '' Messages:'' )' )
487 ELSE IF(
lsamen( 2, p2,
'LQ' ) )
THEN
491 WRITE( iounit, fmt = 9987 )path,
'LQ'
492 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
493 WRITE( iounit, fmt = 9970 )
494 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
495 WRITE( iounit, fmt = 9949 )1
496 WRITE( iounit, fmt = 9945 )2
497 WRITE( iounit, fmt = 9944 )3,
'N'
498 WRITE( iounit, fmt = 9943 )4,
'N'
499 WRITE( iounit, fmt = 9942 )5,
'N'
500 WRITE( iounit, fmt = 9941 )6,
'N'
501 WRITE( iounit, fmt = 9960 )7
502 WRITE( iounit, fmt =
'( '' Messages:'' )' )
504 ELSE IF(
lsamen( 2, p2,
'QL' ) )
THEN
508 WRITE( iounit, fmt = 9987 )path,
'QL'
509 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
510 WRITE( iounit, fmt = 9970 )
511 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
512 WRITE( iounit, fmt = 9948 )1
513 WRITE( iounit, fmt = 9946 )2
514 WRITE( iounit, fmt = 9944 )3,
'M'
515 WRITE( iounit, fmt = 9943 )4,
'M'
516 WRITE( iounit, fmt = 9942 )5,
'M'
517 WRITE( iounit, fmt = 9941 )6,
'M'
518 WRITE( iounit, fmt = 9960 )7
519 WRITE( iounit, fmt =
'( '' Messages:'' )' )
521 ELSE IF(
lsamen( 2, p2,
'RQ' ) )
THEN
525 WRITE( iounit, fmt = 9987 )path,
'RQ'
526 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
527 WRITE( iounit, fmt = 9970 )
528 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
529 WRITE( iounit, fmt = 9947 )1
530 WRITE( iounit, fmt = 9945 )2
531 WRITE( iounit, fmt = 9944 )3,
'N'
532 WRITE( iounit, fmt = 9943 )4,
'N'
533 WRITE( iounit, fmt = 9942 )5,
'N'
534 WRITE( iounit, fmt = 9941 )6,
'N'
535 WRITE( iounit, fmt = 9960 )7
536 WRITE( iounit, fmt =
'( '' Messages:'' )' )
538 ELSE IF(
lsamen( 2, p2,
'QP' ) )
THEN
542 WRITE( iounit, fmt = 9986 )path
543 WRITE( iounit, fmt = 9969 )
544 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
545 WRITE( iounit, fmt = 9940 )1
546 WRITE( iounit, fmt = 9939 )2
547 WRITE( iounit, fmt = 9938 )3
548 WRITE( iounit, fmt =
'( '' Messages:'' )' )
550 ELSE IF(
lsamen( 2, p2,
'TZ' ) )
THEN
554 WRITE( iounit, fmt = 9985 )path
555 WRITE( iounit, fmt = 9968 )
556 WRITE( iounit, fmt = 9929 )c1, c1
557 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
558 WRITE( iounit, fmt = 9940 )1
559 WRITE( iounit, fmt = 9937 )2
560 WRITE( iounit, fmt = 9938 )3
561 WRITE( iounit, fmt = 9940 )4
562 WRITE( iounit, fmt = 9937 )5
563 WRITE( iounit, fmt = 9938 )6
564 WRITE( iounit, fmt =
'( '' Messages:'' )' )
566 ELSE IF(
lsamen( 2, p2,
'LS' ) )
THEN
571 WRITE( iounit, fmt = 9984 )path
572 WRITE( iounit, fmt = 9967 )
573 WRITE( iounit, fmt = 9921 )c1, c1, c1, c1, c1
574 WRITE( iounit, fmt = 9935 )1
575 WRITE( iounit, fmt = 9931 )2
576 WRITE( iounit, fmt = 9933 )3
577 WRITE( iounit, fmt = 9935 )4
578 WRITE( iounit, fmt = 9934 )5
579 WRITE( iounit, fmt = 9932 )6
580 WRITE( iounit, fmt = 9920 )
581 WRITE( iounit, fmt =
'( '' Messages:'' )' )
583 ELSE IF(
lsamen( 2, p2,
'LU' ) )
THEN
587 WRITE( iounit, fmt = 9983 )path
588 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
589 WRITE( iounit, fmt = 9979 )
590 WRITE( iounit, fmt =
'( '' Test ratio:'' )' )
591 WRITE( iounit, fmt = 9962 )1
592 WRITE( iounit, fmt =
'( '' Messages:'' )' )
594 ELSE IF(
lsamen( 2, p2,
'CH' ) )
THEN
598 WRITE( iounit, fmt = 9982 )path
599 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
600 WRITE( iounit, fmt = 9974 )
601 WRITE( iounit, fmt =
'( '' Test ratio:'' )' )
602 WRITE( iounit, fmt = 9954 )1
603 WRITE( iounit, fmt =
'( '' Messages:'' )' )
605 ELSE IF(
lsamen( 2, p2,
'QS' ) )
THEN
609 WRITE( iounit, fmt = 9981 )path
610 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
611 WRITE( iounit, fmt = 9970 )
612 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
614 ELSE IF(
lsamen( 2, p2,
'QT' ) )
THEN
618 WRITE( iounit, fmt = 8000 ) path
619 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
620 WRITE( iounit, fmt = 8011 ) 1
621 WRITE( iounit, fmt = 8012 ) 2
622 WRITE( iounit, fmt = 8013 ) 3
623 WRITE( iounit, fmt = 8014 ) 4
624 WRITE( iounit, fmt = 8015 ) 5
625 WRITE( iounit, fmt = 8016 ) 6
627 ELSE IF(
lsamen( 2, p2,
'QX' ) )
THEN
631 WRITE( iounit, fmt = 8001 ) path
632 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
633 WRITE( iounit, fmt = 8017 ) 1
634 WRITE( iounit, fmt = 8018 ) 2
635 WRITE( iounit, fmt = 8019 ) 3
636 WRITE( iounit, fmt = 8020 ) 4
637 WRITE( iounit, fmt = 8021 ) 5
638 WRITE( iounit, fmt = 8022 ) 6
644 WRITE( iounit, fmt = 9980 )path
649 9999
FORMAT( / 1x, a3,
': General dense matrices' )
650 9998
FORMAT( / 1x, a3,
': General band matrices' )
651 9997
FORMAT( / 1x, a3,
': General tridiagonal' )
652 9996
FORMAT( / 1x, a3,
': ', a9,
' positive definite matrices' )
653 9995
FORMAT( / 1x, a3,
': ', a9,
' positive definite packed matrices'
655 9994
FORMAT( / 1x, a3,
': ', a9,
' positive definite band matrices' )
656 9993
FORMAT( / 1x, a3,
': ', a9,
' positive definite tridiagonal' )
657 9992
FORMAT( / 1x, a3,
': ', a9,
' indefinite matrices',
658 $
', partial (Bunch-Kaufman) pivoting' )
659 9991
FORMAT( / 1x, a3,
': ', a9,
' indefinite packed matrices',
660 $
', partial (Bunch-Kaufman) pivoting' )
661 9892
FORMAT( / 1x, a3,
': ', a9,
' indefinite matrices',
662 $
', "rook" (bounded Bunch-Kaufman) pivoting' )
663 9891
FORMAT( / 1x, a3,
': ', a9,
' indefinite packed matrices',
664 $
', "rook" (bounded Bunch-Kaufman) pivoting' )
665 9990
FORMAT( / 1x, a3,
': Triangular matrices' )
666 9989
FORMAT( / 1x, a3,
': Triangular packed matrices' )
667 9988
FORMAT( / 1x, a3,
': Triangular band matrices' )
668 9987
FORMAT( / 1x, a3,
': ', a2,
' factorization of general matrices'
670 9986
FORMAT( / 1x, a3,
': QR factorization with column pivoting' )
671 9985
FORMAT( / 1x, a3,
': RQ factorization of trapezoidal matrix' )
672 9984
FORMAT( / 1x, a3,
': Least squares driver routines' )
673 9983
FORMAT( / 1x, a3,
': LU factorization variants' )
674 9982
FORMAT( / 1x, a3,
': Cholesky factorization variants' )
675 9981
FORMAT( / 1x, a3,
': QR factorization variants' )
676 9980
FORMAT( / 1x, a3,
': No header available' )
677 8000
FORMAT( / 1x, a3,
': QRT factorization for general matrices' )
678 8001
FORMAT( / 1x, a3,
': QRT factorization for ',
679 $
'triangular-pentagonal matrices' )
683 9979
FORMAT( 4x,
'1. Diagonal', 24x,
'7. Last n/2 columns zero', / 4x,
684 $
'2. Upper triangular', 16x,
685 $
'8. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
686 $
'3. Lower triangular', 16x,
'9. Random, CNDNUM = 0.1/EPS',
687 $ / 4x,
'4. Random, CNDNUM = 2', 13x,
688 $
'10. Scaled near underflow', / 4x,
'5. First column zero',
689 $ 14x,
'11. Scaled near overflow', / 4x,
690 $
'6. Last column zero' )
694 9978
FORMAT( 4x,
'1. Random, CNDNUM = 2', 14x,
695 $
'5. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
696 $
'2. First column zero', 15x,
'6. Random, CNDNUM = .01/EPS',
697 $ / 4x,
'3. Last column zero', 16x,
698 $
'7. Scaled near underflow', / 4x,
699 $
'4. Last n/2 columns zero', 11x,
'8. Scaled near overflow' )
703 9977
FORMAT(
' Matrix types (1-6 have specified condition numbers):',
704 $ / 4x,
'1. Diagonal', 24x,
'7. Random, unspecified CNDNUM',
705 $ / 4x,
'2. Random, CNDNUM = 2', 14x,
'8. First column zero',
706 $ / 4x,
'3. Random, CNDNUM = sqrt(0.1/EPS)', 2x,
707 $
'9. Last column zero', / 4x,
'4. Random, CNDNUM = 0.1/EPS',
708 $ 7x,
'10. Last n/2 columns zero', / 4x,
709 $
'5. Scaled near underflow', 10x,
710 $
'11. Scaled near underflow', / 4x,
711 $
'6. Scaled near overflow', 11x,
'12. Scaled near overflow' )
715 9976
FORMAT(
' Matrix types (1-6 have specified condition numbers):',
716 $ / 4x,
'1. Diagonal', 24x,
'7. Random, unspecified CNDNUM',
717 $ / 4x,
'2. Random, CNDNUM = 2', 14x,
718 $
'8. First row and column zero', / 4x,
719 $
'3. Random, CNDNUM = sqrt(0.1/EPS)', 2x,
720 $
'9. Last row and column zero', / 4x,
721 $
'4. Random, CNDNUM = 0.1/EPS', 7x,
722 $
'10. Middle row and column zero', / 4x,
723 $
'5. Scaled near underflow', 10x,
724 $
'11. Scaled near underflow', / 4x,
725 $
'6. Scaled near overflow', 11x,
'12. Scaled near overflow' )
729 9975
FORMAT( 4x,
'1. Diagonal', 24x,
730 $
'6. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
731 $
'2. Random, CNDNUM = 2', 14x,
'7. Random, CNDNUM = 0.1/EPS',
732 $ / 3x,
'*3. First row and column zero', 7x,
733 $
'8. Scaled near underflow', / 3x,
734 $
'*4. Last row and column zero', 8x,
735 $
'9. Scaled near overflow', / 3x,
736 $
'*5. Middle row and column zero', / 3x,
737 $
'(* - tests error exits from ', a3,
738 $
'TRF, no test ratios are computed)' )
742 9974
FORMAT( 4x,
'1. Diagonal', 24x,
743 $
'6. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
744 $
'2. Random, CNDNUM = 2', 14x,
'7. Random, CNDNUM = 0.1/EPS',
745 $ / 3x,
'*3. First row and column zero', 7x,
746 $
'8. Scaled near underflow', / 3x,
747 $
'*4. Last row and column zero', 8x,
748 $
'9. Scaled near overflow', / 3x,
749 $
'*5. Middle row and column zero', / 3x,
750 $
'(* - tests error exits, no test ratios are computed)' )
754 8973
FORMAT( 4x,
'1. Diagonal', / 4x,
'2. Random, CNDNUM = 2', 14x,
755 $ / 3x,
'*3. Nonzero eigenvalues of: D(1:RANK-1)=1 and ',
756 $
'D(RANK) = 1.0/', a4, / 3x,
757 $
'*4. Nonzero eigenvalues of: D(1)=1 and ',
758 $
' D(2:RANK) = 1.0/', a4, / 3x,
759 $
'*5. Nonzero eigenvalues of: D(I) = ', a4,
760 $
'**(-(I-1)/(RANK-1)) ',
' I=1:RANK', / 4x,
761 $
'6. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
762 $
'7. Random, CNDNUM = 0.1/EPS', / 4x,
763 $
'8. Scaled near underflow', / 4x,
'9. Scaled near overflow',
764 $ / 3x,
'(* - Semi-definite tests )' )
765 8972
FORMAT( 3x,
'RANK minus computed rank, returned by ', a,
'PSTRF' )
769 9973
FORMAT( 4x,
'1. Random, CNDNUM = 2', 14x,
770 $
'5. Random, CNDNUM = sqrt(0.1/EPS)', / 3x,
771 $
'*2. First row and column zero', 7x,
772 $
'6. Random, CNDNUM = 0.1/EPS', / 3x,
773 $
'*3. Last row and column zero', 8x,
774 $
'7. Scaled near underflow', / 3x,
775 $
'*4. Middle row and column zero', 6x,
776 $
'8. Scaled near overflow', / 3x,
777 $
'(* - tests error exits from ', a3,
778 $
'TRF, no test ratios are computed)' )
782 9972
FORMAT( 4x,
'1. Diagonal', 24x,
783 $
'6. Last n/2 rows and columns zero', / 4x,
784 $
'2. Random, CNDNUM = 2', 14x,
785 $
'7. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
786 $
'3. First row and column zero', 7x,
787 $
'8. Random, CNDNUM = 0.1/EPS', / 4x,
788 $
'4. Last row and column zero', 8x,
789 $
'9. Scaled near underflow', / 4x,
790 $
'5. Middle row and column zero', 5x,
791 $
'10. Scaled near overflow' )
795 9971
FORMAT( 4x,
'1. Diagonal', 24x,
796 $
'7. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
797 $
'2. Random, CNDNUM = 2', 14x,
'8. Random, CNDNUM = 0.1/EPS',
798 $ / 4x,
'3. First row and column zero', 7x,
799 $
'9. Scaled near underflow', / 4x,
800 $
'4. Last row and column zero', 7x,
801 $
'10. Scaled near overflow', / 4x,
802 $
'5. Middle row and column zero', 5x,
803 $
'11. Block diagonal matrix', / 4x,
804 $
'6. Last n/2 rows and columns zero' )
808 9970
FORMAT( 4x,
'1. Diagonal', 24x,
809 $
'5. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
810 $
'2. Upper triangular', 16x,
'6. Random, CNDNUM = 0.1/EPS',
811 $ / 4x,
'3. Lower triangular', 16x,
812 $
'7. Scaled near underflow', / 4x,
'4. Random, CNDNUM = 2',
813 $ 14x,
'8. Scaled near overflow' )
817 9969
FORMAT(
' Matrix types (2-6 have condition 1/EPS):', / 4x,
818 $
'1. Zero matrix', 21x,
'4. First n/2 columns fixed', / 4x,
819 $
'2. One small eigenvalue', 12x,
'5. Last n/2 columns fixed',
820 $ / 4x,
'3. Geometric distribution', 10x,
821 $
'6. Every second column fixed' )
825 9968
FORMAT(
' Matrix types (2-3 have condition 1/EPS):', / 4x,
826 $
'1. Zero matrix', / 4x,
'2. One small eigenvalue', / 4x,
827 $
'3. Geometric distribution' )
831 9967
FORMAT(
' Matrix types (1-3: full rank, 4-6: rank deficient):',
832 $ / 4x,
'1 and 4. Normal scaling', / 4x,
833 $
'2 and 5. Scaled near overflow', / 4x,
834 $
'3 and 6. Scaled near underflow' )
838 9966
FORMAT(
' Matrix types for ', a3,
' routines:', / 4x,
839 $
'1. Diagonal', 24x,
'6. Scaled near overflow', / 4x,
840 $
'2. Random, CNDNUM = 2', 14x,
'7. Identity', / 4x,
841 $
'3. Random, CNDNUM = sqrt(0.1/EPS) ',
842 $
'8. Unit triangular, CNDNUM = 2', / 4x,
843 $
'4. Random, CNDNUM = 0.1/EPS', 8x,
844 $
'9. Unit, CNDNUM = sqrt(0.1/EPS)', / 4x,
845 $
'5. Scaled near underflow', 10x,
846 $
'10. Unit, CNDNUM = 0.1/EPS' )
847 9965
FORMAT(
' Special types for testing ', a,
':', / 3x,
848 $
'11. Matrix elements are O(1), large right hand side', / 3x,
849 $
'12. First diagonal causes overflow,',
850 $
' offdiagonal column norms < 1', / 3x,
851 $
'13. First diagonal causes overflow,',
852 $
' offdiagonal column norms > 1', / 3x,
853 $
'14. Growth factor underflows, solution does not overflow',
854 $ / 3x,
'15. Small diagonal causes gradual overflow', / 3x,
855 $
'16. One zero diagonal element', / 3x,
856 $
'17. Large offdiagonals cause overflow when adding a column'
857 $ , / 3x,
'18. Unit triangular with large right hand side' )
861 9964
FORMAT(
' Matrix types for ', a3,
' routines:', / 4x,
862 $
'1. Random, CNDNUM = 2', 14x,
'6. Identity', / 4x,
863 $
'2. Random, CNDNUM = sqrt(0.1/EPS) ',
864 $
'7. Unit triangular, CNDNUM = 2', / 4x,
865 $
'3. Random, CNDNUM = 0.1/EPS', 8x,
866 $
'8. Unit, CNDNUM = sqrt(0.1/EPS)', / 4x,
867 $
'4. Scaled near underflow', 11x,
868 $
'9. Unit, CNDNUM = 0.1/EPS', / 4x,
869 $
'5. Scaled near overflow' )
870 9963
FORMAT(
' Special types for testing ', a,
':', / 3x,
871 $
'10. Matrix elements are O(1), large right hand side', / 3x,
872 $
'11. First diagonal causes overflow,',
873 $
' offdiagonal column norms < 1', / 3x,
874 $
'12. First diagonal causes overflow,',
875 $
' offdiagonal column norms > 1', / 3x,
876 $
'13. Growth factor underflows, solution does not overflow',
877 $ / 3x,
'14. Small diagonal causes gradual overflow', / 3x,
878 $
'15. One zero diagonal element', / 3x,
879 $
'16. Large offdiagonals cause overflow when adding a column'
880 $ , / 3x,
'17. Unit triangular with large right hand side' )
884 9962
FORMAT( 3x, i2,
': norm( L * U - A ) / ( N * norm(A) * EPS )' )
885 9961
FORMAT( 3x, i2,
': norm( I - A*AINV ) / ',
886 $
'( N * norm(A) * norm(AINV) * EPS )' )
887 9960
FORMAT( 3x, i2,
': norm( B - A * X ) / ',
888 $
'( norm(A) * norm(X) * EPS )' )
889 6660
FORMAT( 3x, i2,
': diagonal is not non-negative')
890 9959
FORMAT( 3x, i2,
': norm( X - XACT ) / ',
891 $
'( norm(XACT) * CNDNUM * EPS )' )
892 9958
FORMAT( 3x, i2,
': norm( X - XACT ) / ',
893 $
'( norm(XACT) * CNDNUM * EPS ), refined' )
894 9957
FORMAT( 3x, i2,
': norm( X - XACT ) / ',
895 $
'( norm(XACT) * (error bound) )' )
896 9956
FORMAT( 3x, i2,
': (backward error) / EPS' )
897 9955
FORMAT( 3x, i2,
': RCOND * CNDNUM - 1.0' )
898 9954
FORMAT( 3x, i2,
': norm( U'' * U - A ) / ( N * norm(A) * EPS )',
899 $
', or', / 7x,
'norm( L * L'' - A ) / ( N * norm(A) * EPS )'
902 $
'norm( P * U'' * U * P'' - A ) / ( N * norm(A) * EPS )',
904 $
'norm( P * L * L'' * P'' - A ) / ( N * norm(A) * EPS )' )
905 9953
FORMAT( 3x, i2,
': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )',
906 $
', or', / 7x,
'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
908 9952
FORMAT( 3x, i2,
': norm( U''*D*U - A ) / ( N * norm(A) * EPS )',
909 $
', or', / 7x,
'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
911 9951
FORMAT(
' Test ratio for ', a,
':', / 3x, i2,
912 $
': norm( s*b - A*x ) / ( norm(A) * norm(x) * EPS )' )
913 9950
FORMAT( 3x, i2,
': norm( R - Q'' * A ) / ( M * norm(A) * EPS )' )
914 6950
FORMAT( 3x, i2,
': norm( R - Q'' * A ) / ( M * norm(A) * EPS )
916 9949
FORMAT( 3x, i2,
': norm( L - A * Q'' ) / ( N * norm(A) * EPS )' )
917 9948
FORMAT( 3x, i2,
': norm( L - Q'' * A ) / ( M * norm(A) * EPS )' )
918 9947
FORMAT( 3x, i2,
': norm( R - A * Q'' ) / ( N * norm(A) * EPS )' )
919 9946
FORMAT( 3x, i2,
': norm( I - Q''*Q ) / ( M * EPS )' )
920 9945
FORMAT( 3x, i2,
': norm( I - Q*Q'' ) / ( N * EPS )' )
921 9944
FORMAT( 3x, i2,
': norm( Q*C - Q*C ) / ',
'( ', a1,
922 $
' * norm(C) * EPS )' )
923 9943
FORMAT( 3x, i2,
': norm( C*Q - C*Q ) / ',
'( ', a1,
924 $
' * norm(C) * EPS )' )
925 9942
FORMAT( 3x, i2,
': norm( Q''*C - Q''*C )/ ',
'( ', a1,
926 $
' * norm(C) * EPS )' )
927 9941
FORMAT( 3x, i2,
': norm( C*Q'' - C*Q'' )/ ',
'( ', a1,
928 $
' * norm(C) * EPS )' )
929 9940
FORMAT( 3x, i2,
': norm(svd(A) - svd(R)) / ',
930 $
'( M * norm(svd(R)) * EPS )' )
931 9939
FORMAT( 3x, i2,
': norm( A*P - Q*R ) / ( M * norm(A) * EPS )'
933 9938
FORMAT( 3x, i2,
': norm( I - Q''*Q ) / ( M * EPS )' )
934 9937
FORMAT( 3x, i2,
': norm( A - R*Q ) / ( M * norm(A) * EPS )'
936 9935
FORMAT( 3x, i2,
': norm( B - A * X ) / ',
937 $
'( max(M,N) * norm(A) * norm(X) * EPS )' )
938 9934
FORMAT( 3x, i2,
': norm( (A*X-B)'' *A ) / ',
939 $
'( max(M,N,NRHS) * norm(A) * norm(B) * EPS )' )
940 9933
FORMAT( 3x, i2,
': norm(svd(A)-svd(R)) / ',
941 $
'( min(M,N) * norm(svd(R)) * EPS )' )
942 9932
FORMAT( 3x, i2,
': Check if X is in the row space of A or A''' )
943 9931
FORMAT( 3x, i2,
': norm( (A*X-B)'' *A ) / ',
944 $
'( max(M,N,NRHS) * norm(A) * norm(B) * EPS )', / 7x,
945 $
'if TRANS=''N'.GE.
' and MN or TRANS=''T'.LT.
' and MN, ',
947 $
'check if X is in the row space of A or A'' ',
948 $
'(overdetermined case)' )
949 9929
FORMAT(
' Test ratios (1-3: ', a1,
'TZRQF, 4-6: ', a1,
951 9920
FORMAT( 3x,
' 7-10: same as 3-6', 3x,
' 11-14: same as 3-6',
952 $ 3x,
' 15-18: same as 3-6' )
953 9921
FORMAT(
' Test ratios:', /
' (1-2: ', a1,
'GELS, 3-6: ', a1,
954 $
'GELSX, 7-10: ', a1,
'GELSY, 11-14: ', a1,
'GELSS, 15-18: ',
956 9928
FORMAT( 7x,
'where ALPHA = ( 1 + SQRT( 17 ) ) / 8' )
957 9927
FORMAT( 3x, i2,
': ABS( Largest element in L )', / 12x,
958 $
' - ( 1 / ( 1 - ALPHA ) ) + THRESH' )
959 9926
FORMAT( 3x, i2,
': Largest 2-Norm of 2-by-2 pivots', / 12x,
960 $
' - ( ( 1 + ALPHA ) / ( 1 - ALPHA ) ) + THRESH' )
961 8011
FORMAT(3x,i2,
': norm( R - Q''*A ) / ( M * norm(A) * EPS )' )
962 8012
FORMAT(3x,i2,
': norm( I - Q''*Q ) / ( M * EPS )' )
963 8013
FORMAT(3x,i2,
': norm( Q*C - Q*C ) / ( M * norm(C) * EPS )' )
964 8014
FORMAT(3x,i2,
': norm( Q''*C - Q''*C ) / ( M * norm(C) * EPS )')
965 8015
FORMAT(3x,i2,
': norm( C*Q - C*Q ) / ( M * norm(C) * EPS )' )
966 8016
FORMAT(3x,i2,
': norm( C*Q'' - C*Q'' ) / ( M * norm(C) * EPS )')
967 8017
FORMAT(3x,i2,
': norm( R - Q''*A ) / ( (M+N) * norm(A) * EPS )' )
968 8018
FORMAT(3x,i2,
': norm( I - Q''*Q ) / ( (M+N) * EPS )' )
969 8019
FORMAT(3x,i2,
': norm( Q*C - Q*C ) / ( (M+N) * norm(C) * EPS )' )
971 $
': norm( Q''*C - Q''*C ) / ( (M+N) * norm(C) * EPS )')
972 8021
FORMAT(3x,i2,
': norm( C*Q - C*Q ) / ( (M+N) * norm(C) * EPS )' )
974 $
': norm( C*Q'' - C*Q'' ) / ( (M+N) * norm(C) * EPS )')
logical function lsame(CA, CB)
LSAME
logical function lsamen(N, CA, CB)
LSAMEN