90 IF( lsamen( 3, c2,
'GQR' ) )
THEN
92 WRITE( iounit, fmt = 9991 )path
93 ELSE IF( lsamen( 3, c2,
'GRQ' ) )
THEN
95 WRITE( iounit, fmt = 9992 )path
96 ELSE IF( lsamen( 3, c2,
'LSE' ) )
THEN
98 WRITE( iounit, fmt = 9993 )path
99 ELSE IF( lsamen( 3, c2,
'GLM' ) )
THEN
101 WRITE( iounit, fmt = 9994 )path
102 ELSE IF( lsamen( 3, c2,
'GSV' ) )
THEN
104 WRITE( iounit, fmt = 9995 )path
105 ELSE IF( lsamen( 3, c2,
'CSD' ) )
THEN
107 WRITE( iounit, fmt = 9996 )path
112 WRITE( iounit, fmt = 9999 )
'Matrix types: '
115 WRITE( iounit, fmt = 9950 )1
116 WRITE( iounit, fmt = 9952 )2
117 WRITE( iounit, fmt = 9954 )3
118 WRITE( iounit, fmt = 9955 )4
119 WRITE( iounit, fmt = 9956 )5
120 WRITE( iounit, fmt = 9957 )6
121 WRITE( iounit, fmt = 9961 )7
122 WRITE( iounit, fmt = 9962 )8
123 ELSE IF( itype.EQ.2 )
THEN
124 WRITE( iounit, fmt = 9951 )1
125 WRITE( iounit, fmt = 9953 )2
126 WRITE( iounit, fmt = 9954 )3
127 WRITE( iounit, fmt = 9955 )4
128 WRITE( iounit, fmt = 9956 )5
129 WRITE( iounit, fmt = 9957 )6
130 WRITE( iounit, fmt = 9961 )7
131 WRITE( iounit, fmt = 9962 )8
132 ELSE IF( itype.EQ.3 )
THEN
133 WRITE( iounit, fmt = 9950 )1
134 WRITE( iounit, fmt = 9952 )2
135 WRITE( iounit, fmt = 9954 )3
136 WRITE( iounit, fmt = 9955 )4
137 WRITE( iounit, fmt = 9955 )5
138 WRITE( iounit, fmt = 9955 )6
139 WRITE( iounit, fmt = 9955 )7
140 WRITE( iounit, fmt = 9955 )8
141 ELSE IF( itype.EQ.4 )
THEN
142 WRITE( iounit, fmt = 9951 )1
143 WRITE( iounit, fmt = 9953 )2
144 WRITE( iounit, fmt = 9954 )3
145 WRITE( iounit, fmt = 9955 )4
146 WRITE( iounit, fmt = 9955 )5
147 WRITE( iounit, fmt = 9955 )6
148 WRITE( iounit, fmt = 9955 )7
149 WRITE( iounit, fmt = 9955 )8
150 ELSE IF( itype.EQ.5 )
THEN
151 WRITE( iounit, fmt = 9950 )1
152 WRITE( iounit, fmt = 9952 )2
153 WRITE( iounit, fmt = 9954 )3
154 WRITE( iounit, fmt = 9955 )4
155 WRITE( iounit, fmt = 9956 )5
156 WRITE( iounit, fmt = 9957 )6
157 WRITE( iounit, fmt = 9959 )7
158 WRITE( iounit, fmt = 9960 )8
159 ELSE IF( itype.EQ.6 )
THEN
160 WRITE( iounit, fmt = 9963 )1
161 WRITE( iounit, fmt = 9964 )2
162 WRITE( iounit, fmt = 9965 )3
167 WRITE( iounit, fmt = 9999 )
'Test ratios: '
169 IF( itype.EQ.1 )
THEN
173 WRITE( iounit, fmt = 9930 )1
174 WRITE( iounit, fmt = 9931 )2
175 WRITE( iounit, fmt = 9932 )3
176 WRITE( iounit, fmt = 9933 )4
177 ELSE IF( itype.EQ.2 )
THEN
181 WRITE( iounit, fmt = 9934 )1
182 WRITE( iounit, fmt = 9935 )2
183 WRITE( iounit, fmt = 9932 )3
184 WRITE( iounit, fmt = 9933 )4
185 ELSE IF( itype.EQ.3 )
THEN
189 WRITE( iounit, fmt = 9937 )1
190 WRITE( iounit, fmt = 9938 )2
191 ELSE IF( itype.EQ.4 )
THEN
195 WRITE( iounit, fmt = 9939 )1
196 ELSE IF( itype.EQ.5 )
THEN
200 WRITE( iounit, fmt = 9940 )1
201 WRITE( iounit, fmt = 9941 )2
202 WRITE( iounit, fmt = 9942 )3
203 WRITE( iounit, fmt = 9943 )4
204 WRITE( iounit, fmt = 9944 )5
205 ELSE IF( itype.EQ.6 )
THEN
209 WRITE( iounit, fmt = 9910 )
210 WRITE( iounit, fmt = 9911 )1
211 WRITE( iounit, fmt = 9912 )2
212 WRITE( iounit, fmt = 9913 )3
213 WRITE( iounit, fmt = 9914 )4
214 WRITE( iounit, fmt = 9915 )5
215 WRITE( iounit, fmt = 9916 )6
216 WRITE( iounit, fmt = 9917 )7
217 WRITE( iounit, fmt = 9918 )8
218 WRITE( iounit, fmt = 9919 )9
219 WRITE( iounit, fmt = 9920 )
220 WRITE( iounit, fmt = 9921 )10
221 WRITE( iounit, fmt = 9922 )11
222 WRITE( iounit, fmt = 9923 )12
223 WRITE( iounit, fmt = 9924 )13
224 WRITE( iounit, fmt = 9925 )14
225 WRITE( iounit, fmt = 9926 )15
229 9991
FORMAT( / 1x, a3,
': GQR factorization of general matrices' )
230 9992
FORMAT( / 1x, a3,
': GRQ factorization of general matrices' )
231 9993
FORMAT( / 1x, a3,
': LSE Problem' )
232 9994
FORMAT( / 1x, a3,
': GLM Problem' )
233 9995
FORMAT( / 1x, a3,
': Generalized Singular Value Decomposition' )
234 9996
FORMAT( / 1x, a3,
': CS Decomposition' )
236 9950
FORMAT( 3x, i2,
': A-diagonal matrix B-upper triangular' )
237 9951
FORMAT( 3x, i2,
': A-diagonal matrix B-lower triangular' )
238 9952
FORMAT( 3x, i2,
': A-upper triangular B-upper triangular' )
239 9953
FORMAT( 3x, i2,
': A-lower triangular B-diagonal triangular' )
240 9954
FORMAT( 3x, i2,
': A-lower triangular B-upper triangular' )
242 9955
FORMAT( 3x, i2,
': Random matrices cond(A)=100, cond(B)=10,' )
244 9956
FORMAT( 3x, i2,
': Random matrices cond(A)= sqrt( 0.1/EPS ) ',
245 $
'cond(B)= sqrt( 0.1/EPS )' )
246 9957
FORMAT( 3x, i2,
': Random matrices cond(A)= 0.1/EPS ',
247 $
'cond(B)= 0.1/EPS' )
248 9959
FORMAT( 3x, i2,
': Random matrices cond(A)= sqrt( 0.1/EPS ) ',
249 $
'cond(B)= 0.1/EPS ' )
250 9960
FORMAT( 3x, i2,
': Random matrices cond(A)= 0.1/EPS ',
251 $
'cond(B)= sqrt( 0.1/EPS )' )
253 9961
FORMAT( 3x, i2,
': Matrix scaled near underflow limit' )
254 9962
FORMAT( 3x, i2,
': Matrix scaled near overflow limit' )
255 9963
FORMAT( 3x, i2,
': Random orthogonal matrix (Haar measure)' )
256 9964
FORMAT( 3x, i2,
': Nearly orthogonal matrix with uniformly ',
257 $
'distributed angles atan2( S, C ) in CS decomposition' )
258 9965
FORMAT( 3x, i2,
': Random orthogonal matrix with clustered ',
259 $
'angles atan2( S, C ) in CS decomposition' )
264 9930
FORMAT( 3x, i2,
': norm( R - Q'' * A ) / ( min( N, M )*norm( A )',
266 9931
FORMAT( 3x, i2,
': norm( T * Z - Q'' * B ) / ( min(P,N)*norm(B)',
268 9932
FORMAT( 3x, i2,
': norm( I - Q''*Q ) / ( N * EPS )' )
269 9933
FORMAT( 3x, i2,
': norm( I - Z''*Z ) / ( P * EPS )' )
273 9934
FORMAT( 3x, i2,
': norm( R - A * Q'' ) / ( min( N,M )*norm(A) * ',
275 9935
FORMAT( 3x, i2,
': norm( T * Q - Z'' * B ) / ( min( P,N ) * nor',
280 9937
FORMAT( 3x, i2,
': norm( A*x - c ) / ( norm(A)*norm(x) * EPS )' )
281 9938
FORMAT( 3x, i2,
': norm( B*x - d ) / ( norm(B)*norm(x) * EPS )' )
285 9939
FORMAT( 3x, i2,
': norm( d - A*x - B*y ) / ( (norm(A)+norm(B) )*',
286 $
'(norm(x)+norm(y))*EPS )' )
290 9940
FORMAT( 3x, i2,
': norm( U'' * A * Q - D1 * R ) / ( min( M, N )*',
291 $
'norm( A ) * EPS )' )
292 9941
FORMAT( 3x, i2,
': norm( V'' * B * Q - D2 * R ) / ( min( P, N )*',
293 $
'norm( B ) * EPS )' )
294 9942
FORMAT( 3x, i2,
': norm( I - U''*U ) / ( M * EPS )' )
295 9943
FORMAT( 3x, i2,
': norm( I - V''*V ) / ( P * EPS )' )
296 9944
FORMAT( 3x, i2,
': norm( I - Q''*Q ) / ( N * EPS )' )
300 9910
FORMAT( 3x,
'2-by-2 CSD' )
301 9911
FORMAT( 3x, i2,
': norm( U1'' * X11 * V1 - C ) / ( max( P, Q)',
302 $
' * max(norm(I-X''*X),EPS) )' )
303 9912
FORMAT( 3x, i2,
': norm( U1'' * X12 * V2-(-S)) / ( max( P,',
304 $
'M-Q) * max(norm(I-X''*X),EPS) )' )
305 9913
FORMAT( 3x, i2,
': norm( U2'' * X21 * V1 - S ) / ( max(M-P,',
306 $
' Q) * max(norm(I-X''*X),EPS) )' )
307 9914
FORMAT( 3x, i2,
': norm( U2'' * X22 * V2 - C ) / ( max(M-P,',
308 $
'M-Q) * max(norm(I-X''*X),EPS) )' )
309 9915
FORMAT( 3x, i2,
': norm( I - U1''*U1 ) / ( P * EPS )' )
310 9916
FORMAT( 3x, i2,
': norm( I - U2''*U2 ) / ( (M-P) * EPS )' )
311 9917
FORMAT( 3x, i2,
': norm( I - V1''*V1 ) / ( Q * EPS )' )
312 9918
FORMAT( 3x, i2,
': norm( I - V2''*V2 ) / ( (M-Q) * EPS )' )
313 9919
FORMAT( 3x, i2,
': principal angle ordering ( 0 or ULP )' )
314 9920
FORMAT( 3x,
'2-by-1 CSD' )
315 9921
FORMAT( 3x, i2,
': norm( U1'' * X11 * V1 - C ) / ( max( P, Q)',
316 $
' * max(norm(I-X''*X),EPS) )' )
317 9922
FORMAT( 3x, i2,
': norm( U2'' * X21 * V1 - S ) / ( max( M-P,',
318 $
'Q) * max(norm(I-X''*X),EPS) )' )
319 9923
FORMAT( 3x, i2,
': norm( I - U1''*U1 ) / ( P * EPS )' )
320 9924
FORMAT( 3x, i2,
': norm( I - U2''*U2 ) / ( (M-P) * EPS )' )
321 9925
FORMAT( 3x, i2,
': norm( I - V1''*V1 ) / ( Q * EPS )' )
322 9926
FORMAT( 3x, i2,
': principal angle ordering ( 0 or ULP )' )
subroutine alahdg(iounit, path)
ALAHDG