@@ -584,13 +584,27 @@ SUBROUTINE ALAHD( IOUNIT, PATH )
584584*
585585* QR decomposition with column pivoting
586586*
587- WRITE ( IOUNIT, FMT = 9986 )PATH
587+ WRITE ( IOUNIT, FMT = 8006 )PATH
588588 WRITE ( IOUNIT, FMT = 9969 )
589589 WRITE ( IOUNIT, FMT = ' ( '' Test ratios:'' )' )
590590 WRITE ( IOUNIT, FMT = 9940 )1
591591 WRITE ( IOUNIT, FMT = 9939 )2
592592 WRITE ( IOUNIT, FMT = 9938 )3
593593 WRITE ( IOUNIT, FMT = ' ( '' Messages:'' )' )
594+ *
595+ ELSE IF ( LSAMEN( 2 , P2, ' QK' ) ) THEN
596+ *
597+ * truncated QR decomposition with column pivoting
598+ *
599+ WRITE ( IOUNIT, FMT = 8006 )PATH
600+ WRITE ( IOUNIT, FMT = 9871 )
601+ WRITE ( IOUNIT, FMT = ' ( '' Test ratios:'' )' )
602+ WRITE ( IOUNIT, FMT = 8060 )1
603+ WRITE ( IOUNIT, FMT = 8061 )2
604+ WRITE ( IOUNIT, FMT = 8062 )3
605+ WRITE ( IOUNIT, FMT = 8063 )4
606+ WRITE ( IOUNIT, FMT = 8064 )5
607+ WRITE ( IOUNIT, FMT = ' ( '' Messages:'' )' )
594608*
595609 ELSE IF ( LSAMEN( 2 , P2, ' TZ' ) ) THEN
596610*
@@ -779,6 +793,8 @@ SUBROUTINE ALAHD( IOUNIT, PATH )
779793 $ ' tall-skinny or short-wide matrices' )
780794 8005 FORMAT ( / 1X , A3, ' : Householder reconstruction from TSQR' ,
781795 $ ' factorization output ' , / ,' for tall-skinny matrices.' )
796+ 8006 FORMAT ( / 1X , A3, ' : truncated QR factorization' ,
797+ $ ' with column pivoting' )
782798*
783799* GE matrix types
784800*
@@ -922,6 +938,36 @@ SUBROUTINE ALAHD( IOUNIT, PATH )
922938 $ / 4X , ' 3. Geometric distribution' , 10X ,
923939 $ ' 6. Every second column fixed' )
924940*
941+ * QK matrix types
942+ *
943+ 9871 FORMAT ( 4X , ' 1. Zero matrix' , /
944+ $ 4X , ' 2. Random, Diagonal, CNDNUM = 2' , /
945+ $ 4X , ' 3. Random, Upper triangular, CNDNUM = 2' , /
946+ $ 4X , ' 4. Random, Lower triangular, CNDNUM = 2' , /
947+ $ 4X , ' 5. Random, First column is zero, CNDNUM = 2' , /
948+ $ 4X , ' 6. Random, Last MINMN column is zero, CNDNUM = 2' , /
949+ $ 4X , ' 7. Random, Last N column is zero, CNDNUM = 2' , /
950+ $ 4X , ' 8. Random, Middle column in MINMN is zero,' ,
951+ $ ' CNDNUM = 2' , /
952+ $ 4X , ' 9. Random, First half of MINMN columns are zero,' ,
953+ $ ' CNDNUM = 2' , /
954+ $ 4X , ' 10. Random, Last columns are zero starting from' ,
955+ $ ' MINMN/2+1, CNDNUM = 2' , /
956+ $ 4X , ' 11. Random, Half MINMN columns in the middle are' ,
957+ $ ' zero starting from MINMN/2-(MINMN/2)/2+1,'
958+ $ ' CNDNUM = 2' , /
959+ $ 4X , ' 12. Random, Odd columns are ZERO, CNDNUM = 2' , /
960+ $ 4X , ' 13. Random, Even columns are ZERO, CNDNUM = 2' , /
961+ $ 4X , ' 14. Random, CNDNUM = 2' , /
962+ $ 4X , ' 15. Random, CNDNUM = sqrt(0.1/EPS)' , /
963+ $ 4X , ' 16. Random, CNDNUM = 0.1/EPS' , /
964+ $ 4X , ' 17. Random, CNDNUM = 0.1/EPS,' ,
965+ $ ' one small singular value S(N)=1/CNDNUM' , /
966+ $ 4X , ' 18. Random, CNDNUM = 2, scaled near underflow,' ,
967+ $ ' NORM = SMALL = SAFMIN' , /
968+ $ 4X , ' 19. Random, CNDNUM = 2, scaled near overflow,' ,
969+ $ ' NORM = LARGE = 1.0/( 0.25 * ( SAFMIN / EPS ) )' )
970+ *
925971* TZ matrix types
926972*
927973 9968 FORMAT ( ' Matrix types (2-3 have condition 1/EPS):' , / 4X ,
@@ -1030,9 +1076,8 @@ SUBROUTINE ALAHD( IOUNIT, PATH )
10301076 $ ' * norm(C) * EPS )' )
10311077 9940 FORMAT ( 3X , I2, ' : norm(svd(A) - svd(R)) / ' ,
10321078 $ ' ( M * norm(svd(R)) * EPS )' )
1033- 9939 FORMAT ( 3X , I2, ' : norm( A*P - Q*R ) / ( M * norm(A) * EPS )'
1034- $ )
1035- 9938 FORMAT ( 3X , I2, ' : norm( I - Q'' *Q ) / ( M * EPS )' )
1079+ 9939 FORMAT ( 3X , I2, ' : norm( A*P - Q*R ) / ( M * norm(A) * EPS )' )
1080+ 9938 FORMAT ( 3X , I2, ' : norm( I - Q'' *Q ) / ( M * EPS )' )
10361081 9937 FORMAT ( 3X , I2, ' : norm( A - R*Q ) / ( M * norm(A) * EPS )'
10371082 $ )
10381083 9935 FORMAT ( 3X , I2, ' : norm( B - A * X ) / ' ,
@@ -1105,6 +1150,15 @@ SUBROUTINE ALAHD( IOUNIT, PATH )
11051150 8054 FORMAT (3X ,I2,' : norm( C*Q - C*Q ) / ( M * norm(C) * EPS )' )
11061151 8055 FORMAT (3X ,I2,' : norm( C*Q'' - C*Q'' ) / ( M * norm(C) * EPS )' )
11071152
1153+ 8060 FORMAT ( 3X , I2, ' : 2-norm(svd(A) - svd(R)) / ' ,
1154+ $ ' ( max(M,N) * 2-norm(svd(R)) * EPS )' )
1155+ 8061 FORMAT ( 3X , I2, ' : 1-norm( A*P - Q*R ) / ( max(M,N) * 1-norm(A)' ,
1156+ $ ' * EPS )' )
1157+ 8062 FORMAT ( 3X , I2, ' : 1-norm( I - Q'' *Q ) / ( M * EPS )' )
1158+ 8063 FORMAT ( 3X , I2, ' : Returns 1.0D+100, if abs(R(K+1,K+1))' ,
1159+ $ ' > abs(R(K,K)), where K=1:KFACT-1' )
1160+ 8064 FORMAT ( 3X , I2, ' : 1-norm(Q**T * B - Q**T * B ) / ( M * EPS )' )
1161+
11081162*
11091163 RETURN
11101164*
0 commit comments