93 IF(
lsamen( 3, c2,
'GQR' ) )
THEN
95 WRITE( iounit, fmt = 9991 )path
96 ELSE IF(
lsamen( 3, c2,
'GRQ' ) )
THEN
98 WRITE( iounit, fmt = 9992 )path
99 ELSE IF(
lsamen( 3, c2,
'LSE' ) )
THEN
101 WRITE( iounit, fmt = 9993 )path
102 ELSE IF(
lsamen( 3, c2,
'GLM' ) )
THEN
104 WRITE( iounit, fmt = 9994 )path
105 ELSE IF(
lsamen( 3, c2,
'GSV' ) )
THEN
107 WRITE( iounit, fmt = 9995 )path
108 ELSE IF(
lsamen( 3, c2,
'CSD' ) )
THEN
110 WRITE( iounit, fmt = 9996 )path
115 WRITE( iounit, fmt = 9999 )
'Matrix types: '
118 WRITE( iounit, fmt = 9950 )1
119 WRITE( iounit, fmt = 9952 )2
120 WRITE( iounit, fmt = 9954 )3
121 WRITE( iounit, fmt = 9955 )4
122 WRITE( iounit, fmt = 9956 )5
123 WRITE( iounit, fmt = 9957 )6
124 WRITE( iounit, fmt = 9961 )7
125 WRITE( iounit, fmt = 9962 )8
126 ELSE IF( itype.EQ.2 )
THEN
127 WRITE( iounit, fmt = 9951 )1
128 WRITE( iounit, fmt = 9953 )2
129 WRITE( iounit, fmt = 9954 )3
130 WRITE( iounit, fmt = 9955 )4
131 WRITE( iounit, fmt = 9956 )5
132 WRITE( iounit, fmt = 9957 )6
133 WRITE( iounit, fmt = 9961 )7
134 WRITE( iounit, fmt = 9962 )8
135 ELSE IF( itype.EQ.3 )
THEN
136 WRITE( iounit, fmt = 9950 )1
137 WRITE( iounit, fmt = 9952 )2
138 WRITE( iounit, fmt = 9954 )3
139 WRITE( iounit, fmt = 9955 )4
140 WRITE( iounit, fmt = 9955 )5
141 WRITE( iounit, fmt = 9955 )6
142 WRITE( iounit, fmt = 9955 )7
143 WRITE( iounit, fmt = 9955 )8
144 ELSE IF( itype.EQ.4 )
THEN
145 WRITE( iounit, fmt = 9951 )1
146 WRITE( iounit, fmt = 9953 )2
147 WRITE( iounit, fmt = 9954 )3
148 WRITE( iounit, fmt = 9955 )4
149 WRITE( iounit, fmt = 9955 )5
150 WRITE( iounit, fmt = 9955 )6
151 WRITE( iounit, fmt = 9955 )7
152 WRITE( iounit, fmt = 9955 )8
153 ELSE IF( itype.EQ.5 )
THEN
154 WRITE( iounit, fmt = 9950 )1
155 WRITE( iounit, fmt = 9952 )2
156 WRITE( iounit, fmt = 9954 )3
157 WRITE( iounit, fmt = 9955 )4
158 WRITE( iounit, fmt = 9956 )5
159 WRITE( iounit, fmt = 9957 )6
160 WRITE( iounit, fmt = 9959 )7
161 WRITE( iounit, fmt = 9960 )8
162 ELSE IF( itype.EQ.6 )
THEN
163 WRITE( iounit, fmt = 9963 )1
164 WRITE( iounit, fmt = 9964 )2
165 WRITE( iounit, fmt = 9965 )3
170 WRITE( iounit, fmt = 9999 )
'Test ratios: '
172 IF( itype.EQ.1 )
THEN
176 WRITE( iounit, fmt = 9930 )1
177 WRITE( iounit, fmt = 9931 )2
178 WRITE( iounit, fmt = 9932 )3
179 WRITE( iounit, fmt = 9933 )4
180 ELSE IF( itype.EQ.2 )
THEN
184 WRITE( iounit, fmt = 9934 )1
185 WRITE( iounit, fmt = 9935 )2
186 WRITE( iounit, fmt = 9932 )3
187 WRITE( iounit, fmt = 9933 )4
188 ELSE IF( itype.EQ.3 )
THEN
192 WRITE( iounit, fmt = 9937 )1
193 WRITE( iounit, fmt = 9938 )2
194 ELSE IF( itype.EQ.4 )
THEN
198 WRITE( iounit, fmt = 9939 )1
199 ELSE IF( itype.EQ.5 )
THEN
203 WRITE( iounit, fmt = 9940 )1
204 WRITE( iounit, fmt = 9941 )2
205 WRITE( iounit, fmt = 9942 )3
206 WRITE( iounit, fmt = 9943 )4
207 WRITE( iounit, fmt = 9944 )5
208 ELSE IF( itype.EQ.6 )
THEN
212 WRITE( iounit, fmt = 9920 )1
213 WRITE( iounit, fmt = 9921 )2
214 WRITE( iounit, fmt = 9922 )3
215 WRITE( iounit, fmt = 9923 )4
216 WRITE( iounit, fmt = 9924 )5
217 WRITE( iounit, fmt = 9925 )6
218 WRITE( iounit, fmt = 9926 )7
219 WRITE( iounit, fmt = 9927 )8
223 9991 format( / 1x, a3,
': GQR factorization of general matrices' )
224 9992 format( / 1x, a3,
': GRQ factorization of general matrices' )
225 9993 format( / 1x, a3,
': LSE Problem' )
226 9994 format( / 1x, a3,
': GLM Problem' )
227 9995 format( / 1x, a3,
': Generalized Singular Value Decomposition' )
228 9996 format( / 1x, a3,
': CS Decomposition' )
230 9950 format( 3x, i2,
': A-diagonal matrix B-upper triangular' )
231 9951 format( 3x, i2,
': A-diagonal matrix B-lower triangular' )
232 9952 format( 3x, i2,
': A-upper triangular B-upper triangular' )
233 9953 format( 3x, i2,
': A-lower triangular B-diagonal triangular' )
234 9954 format( 3x, i2,
': A-lower triangular B-upper triangular' )
236 9955 format( 3x, i2,
': Random matrices cond(A)=100, cond(B)=10,' )
238 9956 format( 3x, i2,
': Random matrices cond(A)= sqrt( 0.1/EPS ) ',
239 $
'cond(B)= sqrt( 0.1/EPS )' )
240 9957 format( 3x, i2,
': Random matrices cond(A)= 0.1/EPS ',
241 $
'cond(B)= 0.1/EPS' )
242 9959 format( 3x, i2,
': Random matrices cond(A)= sqrt( 0.1/EPS ) ',
243 $
'cond(B)= 0.1/EPS ' )
244 9960 format( 3x, i2,
': Random matrices cond(A)= 0.1/EPS ',
245 $
'cond(B)= sqrt( 0.1/EPS )' )
247 9961 format( 3x, i2,
': Matrix scaled near underflow limit' )
248 9962 format( 3x, i2,
': Matrix scaled near overflow limit' )
249 9963 format( 3x, i2,
': Random orthogonal matrix (Haar measure)' )
250 9964 format( 3x, i2,
': Nearly orthogonal matrix with uniformly ',
251 $
'distributed angles atan2( S, C ) in CS decomposition' )
252 9965 format( 3x, i2,
': Random orthogonal matrix with clustered ',
253 $
'angles atan2( S, C ) in CS decomposition' )
258 9930 format( 3x, i2,
': norm( R - Q'' * A ) / ( min( N, M )*norm( A )',
260 9931 format( 3x, i2,
': norm( T * Z - Q'' * B ) / ( min(P,N)*norm(B)',
262 9932 format( 3x, i2,
': norm( I - Q''*Q ) / ( N * EPS )' )
263 9933 format( 3x, i2,
': norm( I - Z''*Z ) / ( P * EPS )' )
267 9934 format( 3x, i2,
': norm( R - A * Q'' ) / ( min( N,M )*norm(A) * ',
269 9935 format( 3x, i2,
': norm( T * Q - Z'' * B ) / ( min( P,N ) * nor',
274 9937 format( 3x, i2,
': norm( A*x - c ) / ( norm(A)*norm(x) * EPS )' )
275 9938 format( 3x, i2,
': norm( B*x - d ) / ( norm(B)*norm(x) * EPS )' )
279 9939 format( 3x, i2,
': norm( d - A*x - B*y ) / ( (norm(A)+norm(B) )*',
280 $
'(norm(x)+norm(y))*EPS )' )
284 9940 format( 3x, i2,
': norm( U'' * A * Q - D1 * R ) / ( min( M, N )*',
285 $
'norm( A ) * EPS )' )
286 9941 format( 3x, i2,
': norm( V'' * B * Q - D2 * R ) / ( min( P, N )*',
287 $
'norm( B ) * EPS )' )
288 9942 format( 3x, i2,
': norm( I - U''*U ) / ( M * EPS )' )
289 9943 format( 3x, i2,
': norm( I - V''*V ) / ( P * EPS )' )
290 9944 format( 3x, i2,
': norm( I - Q''*Q ) / ( N * EPS )' )
294 9920 format( 3x, i2,
': norm( U1'' * X11 * V1 - C ) / ( max( P, Q)',
295 $
' * max(norm(I-X''*X),EPS) )' )
296 9921 format( 3x, i2,
': norm( U1'' * X12 * V2-(-S)) / ( max( P,',
297 $
'M-Q) * max(norm(I-X''*X),EPS) )' )
298 9922 format( 3x, i2,
': norm( U2'' * X21 * V1 - S ) / ( max(M-P,',
299 $
' Q) * max(norm(I-X''*X),EPS) )' )
300 9923 format( 3x, i2,
': norm( U2'' * X22 * V2 - C ) / ( max(M-P,',
301 $
'M-Q) * max(norm(I-X''*X),EPS) )' )
302 9924 format( 3x, i2,
': norm( I - U1''*U1 ) / ( P * EPS )' )
303 9925 format( 3x, i2,
': norm( I - U2''*U2 ) / ( (M-P) * EPS )' )
304 9926 format( 3x, i2,
': norm( I - V1''*V1 ) / ( Q * EPS )' )
305 9927 format( 3x, i2,
': norm( I - V2''*V2 ) / ( (M-Q) * EPS )' )