106 SUBROUTINE alahd( IOUNIT, PATH )
129 LOGICAL LSAME, LSAMEN
130 EXTERNAL lsame, lsamen
142 sord = lsame( c1,
'S' ) .OR. lsame( c1,
'D' )
143 corz = lsame( c1,
'C' ) .OR. lsame( c1,
'Z' )
144 IF( .NOT.( sord .OR. corz ) )
147 IF( lsamen( 2, p2,
'GE' ) )
THEN
151 WRITE( iounit, fmt = 9999 )path
152 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
153 WRITE( iounit, fmt = 9979 )
154 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
155 WRITE( iounit, fmt = 9962 )1
156 WRITE( iounit, fmt = 9961 )2
157 WRITE( iounit, fmt = 9960 )3
158 WRITE( iounit, fmt = 9959 )4
159 WRITE( iounit, fmt = 9958 )5
160 WRITE( iounit, fmt = 9957 )6
161 WRITE( iounit, fmt = 9956 )7
162 WRITE( iounit, fmt = 9955 )8
163 WRITE( iounit, fmt =
'( '' Messages:'' )' )
165 ELSE IF( lsamen( 2, p2,
'GB' ) )
THEN
169 WRITE( iounit, fmt = 9998 )path
170 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
171 WRITE( iounit, fmt = 9978 )
172 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
173 WRITE( iounit, fmt = 9962 )1
174 WRITE( iounit, fmt = 9960 )2
175 WRITE( iounit, fmt = 9959 )3
176 WRITE( iounit, fmt = 9958 )4
177 WRITE( iounit, fmt = 9957 )5
178 WRITE( iounit, fmt = 9956 )6
179 WRITE( iounit, fmt = 9955 )7
180 WRITE( iounit, fmt =
'( '' Messages:'' )' )
182 ELSE IF( lsamen( 2, p2,
'GT' ) )
THEN
186 WRITE( iounit, fmt = 9997 )path
187 WRITE( iounit, fmt = 9977 )
188 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
189 WRITE( iounit, fmt = 9962 )1
190 WRITE( iounit, fmt = 9960 )2
191 WRITE( iounit, fmt = 9959 )3
192 WRITE( iounit, fmt = 9958 )4
193 WRITE( iounit, fmt = 9957 )5
194 WRITE( iounit, fmt = 9956 )6
195 WRITE( iounit, fmt = 9955 )7
196 WRITE( iounit, fmt =
'( '' Messages:'' )' )
198 ELSE IF( lsamen( 2, p2,
'PO' ) .OR. lsamen( 2, p2,
'PP' ) )
THEN
208 IF( lsame( c3,
'O' ) )
THEN
209 WRITE( iounit, fmt = 9996 )path, sym
211 WRITE( iounit, fmt = 9995 )path, sym
213 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
214 WRITE( iounit, fmt = 9975 )path
215 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
216 WRITE( iounit, fmt = 9954 )1
217 WRITE( iounit, fmt = 9961 )2
218 WRITE( iounit, fmt = 9960 )3
219 WRITE( iounit, fmt = 9959 )4
220 WRITE( iounit, fmt = 9958 )5
221 WRITE( iounit, fmt = 9957 )6
222 WRITE( iounit, fmt = 9956 )7
223 WRITE( iounit, fmt = 9955 )8
224 WRITE( iounit, fmt =
'( '' Messages:'' )' )
226 ELSE IF( lsamen( 2, p2,
'PS' ) )
THEN
235 IF( lsame( c1,
'S' ) .OR. lsame( c1,
'C' ) )
THEN
240 WRITE( iounit, fmt = 9995 )path, sym
241 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
242 WRITE( iounit, fmt = 8973 )eigcnm, eigcnm, eigcnm
243 WRITE( iounit, fmt =
'( '' Difference:'' )' )
244 WRITE( iounit, fmt = 8972 )c1
245 WRITE( iounit, fmt =
'( '' Test ratio:'' )' )
246 WRITE( iounit, fmt = 8950 )
247 WRITE( iounit, fmt =
'( '' Messages:'' )' )
248 ELSE IF( lsamen( 2, p2,
'PB' ) )
THEN
253 WRITE( iounit, fmt = 9994 )path,
'Symmetric'
255 WRITE( iounit, fmt = 9994 )path,
'Hermitian'
257 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
258 WRITE( iounit, fmt = 9973 )path
259 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
260 WRITE( iounit, fmt = 9954 )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:'' )' )
269 ELSE IF( lsamen( 2, p2,
'PT' ) )
THEN
274 WRITE( iounit, fmt = 9993 )path,
'Symmetric'
276 WRITE( iounit, fmt = 9993 )path,
'Hermitian'
278 WRITE( iounit, fmt = 9976 )
279 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
280 WRITE( iounit, fmt = 9952 )1
281 WRITE( iounit, fmt = 9960 )2
282 WRITE( iounit, fmt = 9959 )3
283 WRITE( iounit, fmt = 9958 )4
284 WRITE( iounit, fmt = 9957 )5
285 WRITE( iounit, fmt = 9956 )6
286 WRITE( iounit, fmt = 9955 )7
287 WRITE( iounit, fmt =
'( '' Messages:'' )' )
289 ELSE IF( lsamen( 2, p2,
'SY' ) )
THEN
294 IF( lsame( c3,
'Y' ) )
THEN
295 WRITE( iounit, fmt = 9992 )path,
'Symmetric'
297 WRITE( iounit, fmt = 9991 )path,
'Symmetric'
299 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
301 WRITE( iounit, fmt = 9972 )
303 WRITE( iounit, fmt = 9971 )
305 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
306 WRITE( iounit, fmt = 9953 )1
307 WRITE( iounit, fmt = 9961 )2
308 WRITE( iounit, fmt = 9960 )3
309 WRITE( iounit, fmt = 9960 )4
310 WRITE( iounit, fmt = 9959 )5
311 WRITE( iounit, fmt = 9958 )6
312 WRITE( iounit, fmt = 9956 )7
313 WRITE( iounit, fmt = 9957 )8
314 WRITE( iounit, fmt = 9955 )9
315 WRITE( iounit, fmt =
'( '' Messages:'' )' )
317 ELSE IF( lsamen( 2, p2,
'SR' ) .OR. lsamen( 2, p2,
'SK') )
THEN
328 WRITE( iounit, fmt = 9892 )path,
'Symmetric'
330 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
332 WRITE( iounit, fmt = 9972 )
334 WRITE( iounit, fmt = 9971 )
337 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
338 WRITE( iounit, fmt = 9953 )1
339 WRITE( iounit, fmt = 9961 )2
340 WRITE( iounit, fmt = 9927 )3
341 WRITE( iounit, fmt = 9928 )
342 WRITE( iounit, fmt = 9926 )4
343 WRITE( iounit, fmt = 9928 )
344 WRITE( iounit, fmt = 9960 )5
345 WRITE( iounit, fmt = 9959 )6
346 WRITE( iounit, fmt = 9955 )7
347 WRITE( iounit, fmt =
'( '' Messages:'' )' )
349 ELSE IF( lsamen( 2, p2,
'SP' ) )
THEN
354 IF( lsame( c3,
'Y' ) )
THEN
355 WRITE( iounit, fmt = 9992 )path,
'Symmetric'
357 WRITE( iounit, fmt = 9991 )path,
'Symmetric'
359 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
361 WRITE( iounit, fmt = 9972 )
363 WRITE( iounit, fmt = 9971 )
365 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
366 WRITE( iounit, fmt = 9953 )1
367 WRITE( iounit, fmt = 9961 )2
368 WRITE( iounit, fmt = 9960 )3
369 WRITE( iounit, fmt = 9959 )4
370 WRITE( iounit, fmt = 9958 )5
371 WRITE( iounit, fmt = 9956 )6
372 WRITE( iounit, fmt = 9957 )7
373 WRITE( iounit, fmt = 9955 )8
374 WRITE( iounit, fmt =
'( '' Messages:'' )' )
376 ELSE IF( lsamen( 2, p2,
'HA' ) )
THEN
381 WRITE( iounit, fmt = 9992 )path,
'Hermitian'
383 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
384 WRITE( iounit, fmt = 9972 )
386 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
387 WRITE( iounit, fmt = 9953 )1
388 WRITE( iounit, fmt = 9961 )2
389 WRITE( iounit, fmt = 9960 )3
390 WRITE( iounit, fmt = 9960 )4
391 WRITE( iounit, fmt = 9959 )5
392 WRITE( iounit, fmt = 9958 )6
393 WRITE( iounit, fmt = 9956 )7
394 WRITE( iounit, fmt = 9957 )8
395 WRITE( iounit, fmt = 9955 )9
396 WRITE( iounit, fmt =
'( '' Messages:'' )' )
398 ELSE IF( lsamen( 2, p2,
'HE' ) )
THEN
403 WRITE( iounit, fmt = 9992 )path,
'Hermitian'
405 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
406 WRITE( iounit, fmt = 9972 )
408 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
409 WRITE( iounit, fmt = 9953 )1
410 WRITE( iounit, fmt = 9961 )2
411 WRITE( iounit, fmt = 9960 )3
412 WRITE( iounit, fmt = 9960 )4
413 WRITE( iounit, fmt = 9959 )5
414 WRITE( iounit, fmt = 9958 )6
415 WRITE( iounit, fmt = 9956 )7
416 WRITE( iounit, fmt = 9957 )8
417 WRITE( iounit, fmt = 9955 )9
418 WRITE( iounit, fmt =
'( '' Messages:'' )' )
420 ELSE IF( lsamen( 2, p2,
'HR' ) .OR. lsamen( 2, p2,
'HR' ) )
THEN
431 WRITE( iounit, fmt = 9892 )path,
'Hermitian'
433 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
434 WRITE( iounit, fmt = 9972 )
436 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
437 WRITE( iounit, fmt = 9953 )1
438 WRITE( iounit, fmt = 9961 )2
439 WRITE( iounit, fmt = 9927 )3
440 WRITE( iounit, fmt = 9928 )
441 WRITE( iounit, fmt = 9926 )4
442 WRITE( iounit, fmt = 9928 )
443 WRITE( iounit, fmt = 9960 )5
444 WRITE( iounit, fmt = 9959 )6
445 WRITE( iounit, fmt = 9955 )7
446 WRITE( iounit, fmt =
'( '' Messages:'' )' )
448 ELSE IF( lsamen( 2, p2,
'HP' ) )
THEN
453 IF( lsame( c3,
'E' ) )
THEN
454 WRITE( iounit, fmt = 9992 )path,
'Hermitian'
456 WRITE( iounit, fmt = 9991 )path,
'Hermitian'
458 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
459 WRITE( iounit, fmt = 9972 )
460 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
461 WRITE( iounit, fmt = 9953 )1
462 WRITE( iounit, fmt = 9961 )2
463 WRITE( iounit, fmt = 9960 )3
464 WRITE( iounit, fmt = 9959 )4
465 WRITE( iounit, fmt = 9958 )5
466 WRITE( iounit, fmt = 9956 )6
467 WRITE( iounit, fmt = 9957 )7
468 WRITE( iounit, fmt = 9955 )8
469 WRITE( iounit, fmt =
'( '' Messages:'' )' )
471 ELSE IF( lsamen( 2, p2,
'TR' ) .OR. lsamen( 2, p2,
'TP' ) )
THEN
476 IF( lsame( c3,
'R' ) )
THEN
477 WRITE( iounit, fmt = 9990 )path
478 subnam = path( 1: 1 ) //
'LATRS'
480 WRITE( iounit, fmt = 9989 )path
481 subnam = path( 1: 1 ) //
'LATPS'
483 WRITE( iounit, fmt = 9966 )path
484 WRITE( iounit, fmt = 9965 )subnam(1:len_trim( subnam ))
485 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
486 WRITE( iounit, fmt = 9961 )1
487 WRITE( iounit, fmt = 9960 )2
488 WRITE( iounit, fmt = 9959 )3
489 WRITE( iounit, fmt = 9958 )4
490 WRITE( iounit, fmt = 9957 )5
491 WRITE( iounit, fmt = 9956 )6
492 WRITE( iounit, fmt = 9955 )7
493 WRITE( iounit, fmt = 9951 )subnam(1:len_trim( subnam )), 8
494 WRITE( iounit, fmt =
'( '' Messages:'' )' )
496 ELSE IF( lsamen( 2, p2,
'TB' ) )
THEN
500 WRITE( iounit, fmt = 9988 )path
501 subnam = path( 1: 1 ) //
'LATBS'
502 WRITE( iounit, fmt = 9964 )path
503 WRITE( iounit, fmt = 9963 )subnam(1:len_trim( subnam ))
504 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
505 WRITE( iounit, fmt = 9960 )1
506 WRITE( iounit, fmt = 9959 )2
507 WRITE( iounit, fmt = 9958 )3
508 WRITE( iounit, fmt = 9957 )4
509 WRITE( iounit, fmt = 9956 )5
510 WRITE( iounit, fmt = 9955 )6
511 WRITE( iounit, fmt = 9951 )subnam(1:len_trim( subnam )), 7
512 WRITE( iounit, fmt =
'( '' Messages:'' )' )
514 ELSE IF( lsamen( 2, p2,
'QR' ) )
THEN
518 WRITE( iounit, fmt = 9987 )path,
'QR'
519 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
520 WRITE( iounit, fmt = 9970 )
521 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
522 WRITE( iounit, fmt = 9950 )1
523 WRITE( iounit, fmt = 6950 )8
524 WRITE( iounit, fmt = 9946 )2
525 WRITE( iounit, fmt = 9944 )3,
'M'
526 WRITE( iounit, fmt = 9943 )4,
'M'
527 WRITE( iounit, fmt = 9942 )5,
'M'
528 WRITE( iounit, fmt = 9941 )6,
'M'
529 WRITE( iounit, fmt = 9960 )7
530 WRITE( iounit, fmt = 6660 )9
531 WRITE( iounit, fmt =
'( '' Messages:'' )' )
533 ELSE IF( lsamen( 2, p2,
'LQ' ) )
THEN
537 WRITE( iounit, fmt = 9987 )path,
'LQ'
538 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
539 WRITE( iounit, fmt = 9970 )
540 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
541 WRITE( iounit, fmt = 9949 )1
542 WRITE( iounit, fmt = 9945 )2
543 WRITE( iounit, fmt = 9944 )3,
'N'
544 WRITE( iounit, fmt = 9943 )4,
'N'
545 WRITE( iounit, fmt = 9942 )5,
'N'
546 WRITE( iounit, fmt = 9941 )6,
'N'
547 WRITE( iounit, fmt = 9960 )7
548 WRITE( iounit, fmt =
'( '' Messages:'' )' )
550 ELSE IF( lsamen( 2, p2,
'QL' ) )
THEN
554 WRITE( iounit, fmt = 9987 )path,
'QL'
555 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
556 WRITE( iounit, fmt = 9970 )
557 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
558 WRITE( iounit, fmt = 9948 )1
559 WRITE( iounit, fmt = 9946 )2
560 WRITE( iounit, fmt = 9944 )3,
'M'
561 WRITE( iounit, fmt = 9943 )4,
'M'
562 WRITE( iounit, fmt = 9942 )5,
'M'
563 WRITE( iounit, fmt = 9941 )6,
'M'
564 WRITE( iounit, fmt = 9960 )7
565 WRITE( iounit, fmt =
'( '' Messages:'' )' )
567 ELSE IF( lsamen( 2, p2,
'RQ' ) )
THEN
571 WRITE( iounit, fmt = 9987 )path,
'RQ'
572 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
573 WRITE( iounit, fmt = 9970 )
574 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
575 WRITE( iounit, fmt = 9947 )1
576 WRITE( iounit, fmt = 9945 )2
577 WRITE( iounit, fmt = 9944 )3,
'N'
578 WRITE( iounit, fmt = 9943 )4,
'N'
579 WRITE( iounit, fmt = 9942 )5,
'N'
580 WRITE( iounit, fmt = 9941 )6,
'N'
581 WRITE( iounit, fmt = 9960 )7
582 WRITE( iounit, fmt =
'( '' Messages:'' )' )
584 ELSE IF( lsamen( 2, p2,
'QP' ) )
THEN
588 WRITE( iounit, fmt = 9986 )path
589 WRITE( iounit, fmt = 9969 )
590 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
591 WRITE( iounit, fmt = 9940 )1
592 WRITE( iounit, fmt = 9939 )2
593 WRITE( iounit, fmt = 9938 )3
594 WRITE( iounit, fmt =
'( '' Messages:'' )' )
596 ELSE IF( lsamen( 2, p2,
'TZ' ) )
THEN
600 WRITE( iounit, fmt = 9985 )path
601 WRITE( iounit, fmt = 9968 )
602 WRITE( iounit, fmt = 9929 )c1
603 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
604 WRITE( iounit, fmt = 9940 )1
605 WRITE( iounit, fmt = 9937 )2
606 WRITE( iounit, fmt = 9938 )3
607 WRITE( iounit, fmt =
'( '' Messages:'' )' )
609 ELSE IF( lsamen( 2, p2,
'LS' ) )
THEN
614 WRITE( iounit, fmt = 9984 )path
615 WRITE( iounit, fmt = 9967 )
616 WRITE( iounit, fmt = 9921 )c1, c1, c1, c1
617 WRITE( iounit, fmt = 9935 )1
618 WRITE( iounit, fmt = 9931 )2
619 WRITE( iounit, fmt = 9933 )3
620 WRITE( iounit, fmt = 9935 )4
621 WRITE( iounit, fmt = 9934 )5
622 WRITE( iounit, fmt = 9932 )6
623 WRITE( iounit, fmt = 9920 )
624 WRITE( iounit, fmt =
'( '' Messages:'' )' )
626 ELSE IF( lsamen( 2, p2,
'LU' ) )
THEN
630 WRITE( iounit, fmt = 9983 )path
631 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
632 WRITE( iounit, fmt = 9979 )
633 WRITE( iounit, fmt =
'( '' Test ratio:'' )' )
634 WRITE( iounit, fmt = 9962 )1
635 WRITE( iounit, fmt =
'( '' Messages:'' )' )
637 ELSE IF( lsamen( 2, p2,
'CH' ) )
THEN
641 WRITE( iounit, fmt = 9982 )path
642 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
643 WRITE( iounit, fmt = 9974 )
644 WRITE( iounit, fmt =
'( '' Test ratio:'' )' )
645 WRITE( iounit, fmt = 9954 )1
646 WRITE( iounit, fmt =
'( '' Messages:'' )' )
648 ELSE IF( lsamen( 2, p2,
'QS' ) )
THEN
652 WRITE( iounit, fmt = 9981 )path
653 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
654 WRITE( iounit, fmt = 9970 )
655 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
657 ELSE IF( lsamen( 2, p2,
'QT' ) )
THEN
661 WRITE( iounit, fmt = 8000 ) path
662 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
663 WRITE( iounit, fmt = 8011 ) 1
664 WRITE( iounit, fmt = 8012 ) 2
665 WRITE( iounit, fmt = 8013 ) 3
666 WRITE( iounit, fmt = 8014 ) 4
667 WRITE( iounit, fmt = 8015 ) 5
668 WRITE( iounit, fmt = 8016 ) 6
670 ELSE IF( lsamen( 2, p2,
'QX' ) )
THEN
674 WRITE( iounit, fmt = 8001 ) path
675 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
676 WRITE( iounit, fmt = 8017 ) 1
677 WRITE( iounit, fmt = 8018 ) 2
678 WRITE( iounit, fmt = 8019 ) 3
679 WRITE( iounit, fmt = 8020 ) 4
680 WRITE( iounit, fmt = 8021 ) 5
681 WRITE( iounit, fmt = 8022 ) 6
683 ELSE IF( lsamen( 2, p2,
'TQ' ) )
THEN
687 WRITE( iounit, fmt = 8002 ) path
688 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
689 WRITE( iounit, fmt = 8023 ) 1
690 WRITE( iounit, fmt = 8024 ) 2
691 WRITE( iounit, fmt = 8025 ) 3
692 WRITE( iounit, fmt = 8026 ) 4
693 WRITE( iounit, fmt = 8027 ) 5
694 WRITE( iounit, fmt = 8028 ) 6
696 ELSE IF( lsamen( 2, p2,
'XQ' ) )
THEN
700 WRITE( iounit, fmt = 8003 ) path
701 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
702 WRITE( iounit, fmt = 8029 ) 1
703 WRITE( iounit, fmt = 8030 ) 2
704 WRITE( iounit, fmt = 8031 ) 3
705 WRITE( iounit, fmt = 8032 ) 4
706 WRITE( iounit, fmt = 8033 ) 5
707 WRITE( iounit, fmt = 8034 ) 6
709 ELSE IF( lsamen( 2, p2,
'TS' ) )
THEN
713 WRITE( iounit, fmt = 8004 ) path
714 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
715 WRITE( iounit, fmt = 8035 ) 1
716 WRITE( iounit, fmt = 8036 ) 2
717 WRITE( iounit, fmt = 8037 ) 3
718 WRITE( iounit, fmt = 8038 ) 4
719 WRITE( iounit, fmt = 8039 ) 5
720 WRITE( iounit, fmt = 8040 ) 6
726 WRITE( iounit, fmt = 9980 )path
731 9999
FORMAT( / 1x, a3,
': General dense matrices' )
732 9998
FORMAT( / 1x, a3,
': General band matrices' )
733 9997
FORMAT( / 1x, a3,
': General tridiagonal' )
734 9996
FORMAT( / 1x, a3,
': ', a9,
' positive definite matrices' )
735 9995
FORMAT( / 1x, a3,
': ', a9,
' positive definite packed matrices'
737 9994
FORMAT( / 1x, a3,
': ', a9,
' positive definite band matrices' )
738 9993
FORMAT( / 1x, a3,
': ', a9,
' positive definite tridiagonal' )
739 9992
FORMAT( / 1x, a3,
': ', a9,
' indefinite matrices',
740 $
', partial (Bunch-Kaufman) pivoting' )
741 9991
FORMAT( / 1x, a3,
': ', a9,
' indefinite packed matrices',
742 $
', partial (Bunch-Kaufman) pivoting' )
743 9892
FORMAT( / 1x, a3,
': ', a9,
' indefinite matrices',
744 $
', "rook" (bounded Bunch-Kaufman) pivoting' )
745 9891
FORMAT( / 1x, a3,
': ', a9,
' indefinite packed matrices',
746 $
', "rook" (bounded Bunch-Kaufman) pivoting' )
747 9990
FORMAT( / 1x, a3,
': Triangular matrices' )
748 9989
FORMAT( / 1x, a3,
': Triangular packed matrices' )
749 9988
FORMAT( / 1x, a3,
': Triangular band matrices' )
750 9987
FORMAT( / 1x, a3,
': ', a2,
' factorization of general matrices'
752 9986
FORMAT( / 1x, a3,
': QR factorization with column pivoting' )
753 9985
FORMAT( / 1x, a3,
': RQ factorization of trapezoidal matrix' )
754 9984
FORMAT( / 1x, a3,
': Least squares driver routines' )
755 9983
FORMAT( / 1x, a3,
': LU factorization variants' )
756 9982
FORMAT( / 1x, a3,
': Cholesky factorization variants' )
757 9981
FORMAT( / 1x, a3,
': QR factorization variants' )
758 9980
FORMAT( / 1x, a3,
': No header available' )
759 8000
FORMAT( / 1x, a3,
': QRT factorization for general matrices' )
760 8001
FORMAT( / 1x, a3,
': QRT factorization for ',
761 $
'triangular-pentagonal matrices' )
762 8002
FORMAT( / 1x, a3,
': LQT factorization for general matrices' )
763 8003
FORMAT( / 1x, a3,
': LQT factorization for ',
764 $
'triangular-pentagonal matrices' )
765 8004
FORMAT( / 1x, a3,
': TS factorization for ',
766 $
'tall-skiny or short-wide matrices' )
770 9979
FORMAT( 4x,
'1. Diagonal', 24x,
'7. Last n/2 columns zero', / 4x,
771 $
'2. Upper triangular', 16x,
772 $
'8. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
773 $
'3. Lower triangular', 16x,
'9. Random, CNDNUM = 0.1/EPS',
774 $ / 4x,
'4. Random, CNDNUM = 2', 13x,
775 $
'10. Scaled near underflow', / 4x,
'5. First column zero',
776 $ 14x,
'11. Scaled near overflow', / 4x,
777 $
'6. Last column zero' )
781 9978
FORMAT( 4x,
'1. Random, CNDNUM = 2', 14x,
782 $
'5. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
783 $
'2. First column zero', 15x,
'6. Random, CNDNUM = .01/EPS',
784 $ / 4x,
'3. Last column zero', 16x,
785 $
'7. Scaled near underflow', / 4x,
786 $
'4. Last n/2 columns zero', 11x,
'8. Scaled near overflow' )
790 9977
FORMAT(
' Matrix types (1-6 have specified condition numbers):',
791 $ / 4x,
'1. Diagonal', 24x,
'7. Random, unspecified CNDNUM',
792 $ / 4x,
'2. Random, CNDNUM = 2', 14x,
'8. First column zero',
793 $ / 4x,
'3. Random, CNDNUM = sqrt(0.1/EPS)', 2x,
794 $
'9. Last column zero', / 4x,
'4. Random, CNDNUM = 0.1/EPS',
795 $ 7x,
'10. Last n/2 columns zero', / 4x,
796 $
'5. Scaled near underflow', 10x,
797 $
'11. Scaled near underflow', / 4x,
798 $
'6. Scaled near overflow', 11x,
'12. Scaled near overflow' )
802 9976
FORMAT(
' Matrix types (1-6 have specified condition numbers):',
803 $ / 4x,
'1. Diagonal', 24x,
'7. Random, unspecified CNDNUM',
804 $ / 4x,
'2. Random, CNDNUM = 2', 14x,
805 $
'8. First row and column zero', / 4x,
806 $
'3. Random, CNDNUM = sqrt(0.1/EPS)', 2x,
807 $
'9. Last row and column zero', / 4x,
808 $
'4. Random, CNDNUM = 0.1/EPS', 7x,
809 $
'10. Middle row and column zero', / 4x,
810 $
'5. Scaled near underflow', 10x,
811 $
'11. Scaled near underflow', / 4x,
812 $
'6. Scaled near overflow', 11x,
'12. Scaled near overflow' )
816 9975
FORMAT( 4x,
'1. Diagonal', 24x,
817 $
'6. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
818 $
'2. Random, CNDNUM = 2', 14x,
'7. Random, CNDNUM = 0.1/EPS',
819 $ / 3x,
'*3. First row and column zero', 7x,
820 $
'8. Scaled near underflow', / 3x,
821 $
'*4. Last row and column zero', 8x,
822 $
'9. Scaled near overflow', / 3x,
823 $
'*5. Middle row and column zero', / 3x,
824 $
'(* - tests error exits from ', a3,
825 $
'TRF, no test ratios are computed)' )
829 9974
FORMAT( 4x,
'1. Diagonal', 24x,
830 $
'6. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
831 $
'2. Random, CNDNUM = 2', 14x,
'7. Random, CNDNUM = 0.1/EPS',
832 $ / 3x,
'*3. First row and column zero', 7x,
833 $
'8. Scaled near underflow', / 3x,
834 $
'*4. Last row and column zero', 8x,
835 $
'9. Scaled near overflow', / 3x,
836 $
'*5. Middle row and column zero', / 3x,
837 $
'(* - tests error exits, no test ratios are computed)' )
841 8973
FORMAT( 4x,
'1. Diagonal', / 4x,
'2. Random, CNDNUM = 2', 14x,
842 $ / 3x,
'*3. Nonzero eigenvalues of: D(1:RANK-1)=1 and ',
843 $
'D(RANK) = 1.0/', a4, / 3x,
844 $
'*4. Nonzero eigenvalues of: D(1)=1 and ',
845 $
' D(2:RANK) = 1.0/', a4, / 3x,
846 $
'*5. Nonzero eigenvalues of: D(I) = ', a4,
847 $
'**(-(I-1)/(RANK-1)) ',
' I=1:RANK', / 4x,
848 $
'6. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
849 $
'7. Random, CNDNUM = 0.1/EPS', / 4x,
850 $
'8. Scaled near underflow', / 4x,
'9. Scaled near overflow',
851 $ / 3x,
'(* - Semi-definite tests )' )
852 8972
FORMAT( 3x,
'RANK minus computed rank, returned by ', a,
'PSTRF' )
856 9973
FORMAT( 4x,
'1. Random, CNDNUM = 2', 14x,
857 $
'5. Random, CNDNUM = sqrt(0.1/EPS)', / 3x,
858 $
'*2. First row and column zero', 7x,
859 $
'6. Random, CNDNUM = 0.1/EPS', / 3x,
860 $
'*3. Last row and column zero', 8x,
861 $
'7. Scaled near underflow', / 3x,
862 $
'*4. Middle row and column zero', 6x,
863 $
'8. Scaled near overflow', / 3x,
864 $
'(* - tests error exits from ', a3,
865 $
'TRF, no test ratios are computed)' )
869 9972
FORMAT( 4x,
'1. Diagonal', 24x,
870 $
'6. Last n/2 rows and columns zero', / 4x,
871 $
'2. Random, CNDNUM = 2', 14x,
872 $
'7. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
873 $
'3. First row and column zero', 7x,
874 $
'8. Random, CNDNUM = 0.1/EPS', / 4x,
875 $
'4. Last row and column zero', 8x,
876 $
'9. Scaled near underflow', / 4x,
877 $
'5. Middle row and column zero', 5x,
878 $
'10. Scaled near overflow' )
882 9971
FORMAT( 4x,
'1. Diagonal', 24x,
883 $
'7. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
884 $
'2. Random, CNDNUM = 2', 14x,
'8. Random, CNDNUM = 0.1/EPS',
885 $ / 4x,
'3. First row and column zero', 7x,
886 $
'9. Scaled near underflow', / 4x,
887 $
'4. Last row and column zero', 7x,
888 $
'10. Scaled near overflow', / 4x,
889 $
'5. Middle row and column zero', 5x,
890 $
'11. Block diagonal matrix', / 4x,
891 $
'6. Last n/2 rows and columns zero' )
895 9970
FORMAT( 4x,
'1. Diagonal', 24x,
896 $
'5. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
897 $
'2. Upper triangular', 16x,
'6. Random, CNDNUM = 0.1/EPS',
898 $ / 4x,
'3. Lower triangular', 16x,
899 $
'7. Scaled near underflow', / 4x,
'4. Random, CNDNUM = 2',
900 $ 14x,
'8. Scaled near overflow' )
904 9969
FORMAT(
' Matrix types (2-6 have condition 1/EPS):', / 4x,
905 $
'1. Zero matrix', 21x,
'4. First n/2 columns fixed', / 4x,
906 $
'2. One small eigenvalue', 12x,
'5. Last n/2 columns fixed',
907 $ / 4x,
'3. Geometric distribution', 10x,
908 $
'6. Every second column fixed' )
912 9968
FORMAT(
' Matrix types (2-3 have condition 1/EPS):', / 4x,
913 $
'1. Zero matrix', / 4x,
'2. One small eigenvalue', / 4x,
914 $
'3. Geometric distribution' )
918 9967
FORMAT(
' Matrix types (1-3: full rank, 4-6: rank deficient):',
919 $ / 4x,
'1 and 4. Normal scaling', / 4x,
920 $
'2 and 5. Scaled near overflow', / 4x,
921 $
'3 and 6. Scaled near underflow' )
925 9966
FORMAT(
' Matrix types for ', a3,
' routines:', / 4x,
926 $
'1. Diagonal', 24x,
'6. Scaled near overflow', / 4x,
927 $
'2. Random, CNDNUM = 2', 14x,
'7. Identity', / 4x,
928 $
'3. Random, CNDNUM = sqrt(0.1/EPS) ',
929 $
'8. Unit triangular, CNDNUM = 2', / 4x,
930 $
'4. Random, CNDNUM = 0.1/EPS', 8x,
931 $
'9. Unit, CNDNUM = sqrt(0.1/EPS)', / 4x,
932 $
'5. Scaled near underflow', 10x,
933 $
'10. Unit, CNDNUM = 0.1/EPS' )
934 9965
FORMAT(
' Special types for testing ', a,
':', / 3x,
935 $
'11. Matrix elements are O(1), large right hand side', / 3x,
936 $
'12. First diagonal causes overflow,',
937 $
' offdiagonal column norms < 1', / 3x,
938 $
'13. First diagonal causes overflow,',
939 $
' offdiagonal column norms > 1', / 3x,
940 $
'14. Growth factor underflows, solution does not overflow',
941 $ / 3x,
'15. Small diagonal causes gradual overflow', / 3x,
942 $
'16. One zero diagonal element', / 3x,
943 $
'17. Large offdiagonals cause overflow when adding a column'
944 $ , / 3x,
'18. Unit triangular with large right hand side' )
948 9964
FORMAT(
' Matrix types for ', a3,
' routines:', / 4x,
949 $
'1. Random, CNDNUM = 2', 14x,
'6. Identity', / 4x,
950 $
'2. Random, CNDNUM = sqrt(0.1/EPS) ',
951 $
'7. Unit triangular, CNDNUM = 2', / 4x,
952 $
'3. Random, CNDNUM = 0.1/EPS', 8x,
953 $
'8. Unit, CNDNUM = sqrt(0.1/EPS)', / 4x,
954 $
'4. Scaled near underflow', 11x,
955 $
'9. Unit, CNDNUM = 0.1/EPS', / 4x,
956 $
'5. Scaled near overflow' )
957 9963
FORMAT(
' Special types for testing ', a,
':', / 3x,
958 $
'10. Matrix elements are O(1), large right hand side', / 3x,
959 $
'11. First diagonal causes overflow,',
960 $
' offdiagonal column norms < 1', / 3x,
961 $
'12. First diagonal causes overflow,',
962 $
' offdiagonal column norms > 1', / 3x,
963 $
'13. Growth factor underflows, solution does not overflow',
964 $ / 3x,
'14. Small diagonal causes gradual overflow', / 3x,
965 $
'15. One zero diagonal element', / 3x,
966 $
'16. Large offdiagonals cause overflow when adding a column'
967 $ , / 3x,
'17. Unit triangular with large right hand side' )
971 9962
FORMAT( 3x, i2,
': norm( L * U - A ) / ( N * norm(A) * EPS )' )
972 9961
FORMAT( 3x, i2,
': norm( I - A*AINV ) / ',
973 $
'( N * norm(A) * norm(AINV) * EPS )' )
974 9960
FORMAT( 3x, i2,
': norm( B - A * X ) / ',
975 $
'( norm(A) * norm(X) * EPS )' )
976 6660
FORMAT( 3x, i2,
': diagonal is not non-negative')
977 9959
FORMAT( 3x, i2,
': norm( X - XACT ) / ',
978 $
'( norm(XACT) * CNDNUM * EPS )' )
979 9958
FORMAT( 3x, i2,
': norm( X - XACT ) / ',
980 $
'( norm(XACT) * CNDNUM * EPS ), refined' )
981 9957
FORMAT( 3x, i2,
': norm( X - XACT ) / ',
982 $
'( norm(XACT) * (error bound) )' )
983 9956
FORMAT( 3x, i2,
': (backward error) / EPS' )
984 9955
FORMAT( 3x, i2,
': RCOND * CNDNUM - 1.0' )
985 9954
FORMAT( 3x, i2,
': norm( U'' * U - A ) / ( N * norm(A) * EPS )',
986 $
', or', / 7x,
'norm( L * L'' - A ) / ( N * norm(A) * EPS )'
989 $
'norm( P * U'' * U * P'' - A ) / ( N * norm(A) * EPS )',
991 $
'norm( P * L * L'' * P'' - A ) / ( N * norm(A) * EPS )' )
992 9953
FORMAT( 3x, i2,
': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )',
993 $
', or', / 7x,
'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
995 9952
FORMAT( 3x, i2,
': norm( U''*D*U - A ) / ( N * norm(A) * EPS )',
996 $
', or', / 7x,
'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
998 9951
FORMAT(
' Test ratio for ', a,
':', / 3x, i2,
999 $
': norm( s*b - A*x ) / ( norm(A) * norm(x) * EPS )' )
1000 9950
FORMAT( 3x, i2,
': norm( R - Q'' * A ) / ( M * norm(A) * EPS )' )
1001 6950
FORMAT( 3x, i2,
': norm( R - Q'' * A ) / ( M * norm(A) * EPS )
1003 9949
FORMAT( 3x, i2,
': norm( L - A * Q'' ) / ( N * norm(A) * EPS )' )
1004 9948
FORMAT( 3x, i2,
': norm( L - Q'' * A ) / ( M * norm(A) * EPS )' )
1005 9947
FORMAT( 3x, i2,
': norm( R - A * Q'' ) / ( N * norm(A) * EPS )' )
1006 9946
FORMAT( 3x, i2,
': norm( I - Q''*Q ) / ( M * EPS )' )
1007 9945
FORMAT( 3x, i2,
': norm( I - Q*Q'' ) / ( N * EPS )' )
1008 9944
FORMAT( 3x, i2,
': norm( Q*C - Q*C ) / ',
'( ', a1,
1009 $
' * norm(C) * EPS )' )
1010 9943
FORMAT( 3x, i2,
': norm( C*Q - C*Q ) / ',
'( ', a1,
1011 $
' * norm(C) * EPS )' )
1012 9942
FORMAT( 3x, i2,
': norm( Q''*C - Q''*C )/ ',
'( ', a1,
1013 $
' * norm(C) * EPS )' )
1014 9941
FORMAT( 3x, i2,
': norm( C*Q'' - C*Q'' )/ ',
'( ', a1,
1015 $
' * norm(C) * EPS )' )
1016 9940
FORMAT( 3x, i2,
': norm(svd(A) - svd(R)) / ',
1017 $
'( M * norm(svd(R)) * EPS )' )
1018 9939
FORMAT( 3x, i2,
': norm( A*P - Q*R ) / ( M * norm(A) * EPS )'
1020 9938
FORMAT( 3x, i2,
': norm( I - Q''*Q ) / ( M * EPS )' )
1021 9937
FORMAT( 3x, i2,
': norm( A - R*Q ) / ( M * norm(A) * EPS )'
1023 9935
FORMAT( 3x, i2,
': norm( B - A * X ) / ',
1024 $
'( max(M,N) * norm(A) * norm(X) * EPS )' )
1025 9934
FORMAT( 3x, i2,
': norm( (A*X-B)'' *A ) / ',
1026 $
'( max(M,N,NRHS) * norm(A) * norm(B) * EPS )' )
1027 9933
FORMAT( 3x, i2,
': norm(svd(A)-svd(R)) / ',
1028 $
'( min(M,N) * norm(svd(R)) * EPS )' )
1029 9932
FORMAT( 3x, i2,
': Check if X is in the row space of A or A''' )
1030 9931
FORMAT( 3x, i2,
': norm( (A*X-B)'' *A ) / ',
1031 $
'( max(M,N,NRHS) * norm(A) * norm(B) * EPS )', / 7x,
1032 $
'if TRANS=''N'.GE.
' and MN or TRANS=''T'.LT.
' and MN, ',
1033 $
'otherwise', / 7x,
1034 $
'check if X is in the row space of A or A'' ',
1035 $
'(overdetermined case)' )
1036 9929
FORMAT(
' Test ratios (1-3: ', a1,
'TZRZF):' )
1037 9920
FORMAT( 3x,
' 7-10: same as 3-6', 3x,
' 11-14: same as 3-6' )
1038 9921
FORMAT(
' Test ratios:', /
' (1-2: ', a1,
'GELS, 3-6: ', a1,
1039 $
'GELSY, 7-10: ', a1,
'GELSS, 11-14: ', a1,
'GELSD, 15-16: '
1041 9928
FORMAT( 7x,
'where ALPHA = ( 1 + SQRT( 17 ) ) / 8' )
1042 9927
FORMAT( 3x, i2,
': ABS( Largest element in L )', / 12x,
1043 $
' - ( 1 / ( 1 - ALPHA ) ) + THRESH' )
1044 9926
FORMAT( 3x, i2,
': Largest 2-Norm of 2-by-2 pivots', / 12x,
1045 $
' - ( ( 1 + ALPHA ) / ( 1 - ALPHA ) ) + THRESH' )
1046 8011
FORMAT(3x,i2,
': norm( R - Q''*A ) / ( M * norm(A) * EPS )' )
1047 8012
FORMAT(3x,i2,
': norm( I - Q''*Q ) / ( M * EPS )' )
1048 8013
FORMAT(3x,i2,
': norm( Q*C - Q*C ) / ( M * norm(C) * EPS )' )
1049 8014
FORMAT(3x,i2,
': norm( Q''*C - Q''*C ) / ( M * norm(C) * EPS )')
1050 8015
FORMAT(3x,i2,
': norm( C*Q - C*Q ) / ( M * norm(C) * EPS )' )
1051 8016
FORMAT(3x,i2,
': norm( C*Q'' - C*Q'' ) / ( M * norm(C) * EPS )')
1052 8017
FORMAT(3x,i2,
': norm( R - Q''*A ) / ( (M+N) * norm(A) * EPS )' )
1053 8018
FORMAT(3x,i2,
': norm( I - Q''*Q ) / ( (M+N) * EPS )' )
1054 8019
FORMAT(3x,i2,
': norm( Q*C - Q*C ) / ( (M+N) * norm(C) * EPS )' )
1056 $
': norm( Q''*C - Q''*C ) / ( (M+N) * norm(C) * EPS )')
1057 8021
FORMAT(3x,i2,
': norm( C*Q - C*Q ) / ( (M+N) * norm(C) * EPS )' )
1059 $
': norm( C*Q'' - C*Q'' ) / ( (M+N) * norm(C) * EPS )')
1060 8023
FORMAT(3x,i2,
': norm( L - A*Q'' ) / ( (M+N) * norm(A) * EPS )' )
1061 8024
FORMAT(3x,i2,
': norm( I - Q*Q'' ) / ( (M+N) * EPS )' )
1062 8025
FORMAT(3x,i2,
': norm( Q*C - Q*C ) / ( (M+N) * norm(C) * EPS )' )
1064 $
': norm( Q''*C - Q''*C ) / ( (M+N) * norm(C) * EPS )')
1065 8027
FORMAT(3x,i2,
': norm( C*Q - C*Q ) / ( (M+N) * norm(C) * EPS )' )
1067 $
': norm( C*Q'' - C*Q'' ) / ( (M+N) * norm(C) * EPS )')
1068 8029
FORMAT(3x,i2,
': norm( L - A*Q'' ) / ( (M+N) * norm(A) * EPS )' )
1069 8030
FORMAT(3x,i2,
': norm( I - Q*Q'' ) / ( (M+N) * EPS )' )
1070 8031
FORMAT(3x,i2,
': norm( Q*C - Q*C ) / ( (M+N) * norm(C) * EPS )' )
1072 $
': norm( Q''*C - Q''*C ) / ( (M+N) * norm(C) * EPS )')
1073 8033
FORMAT(3x,i2,
': norm( C*Q - C*Q ) / ( (M+N) * norm(C) * EPS )' )
1075 $
': norm( C*Q'' - C*Q'' ) / ( (M+N) * norm(C) * EPS )')
1076 8035
FORMAT(3x,i2,
': norm( R - Q''*A ) / ( (M+N) * norm(A) * EPS )' )
1077 8036
FORMAT(3x,i2,
': norm( I - Q''*Q ) / ( (M+N) * EPS )' )
1078 8037
FORMAT(3x,i2,
': norm( Q*C - Q*C ) / ( (M+N) * norm(C) * EPS )' )
1080 $
': norm( Q''*C - Q''*C ) / ( (M+N) * norm(C) * EPS )')
1081 8039
FORMAT(3x,i2,
': norm( C*Q - C*Q ) / ( (M+N) * norm(C) * EPS )' )
1083 $
': norm( C*Q'' - C*Q'' ) / ( (M+N) * norm(C) * EPS )')
subroutine alahd(IOUNIT, PATH)
ALAHD