84 EXTERNAL lsame, lsamen
90 sord = lsame( path,
'S' ) .OR. lsame( path,
'D' )
91 corz = lsame( path,
'C' ) .OR. lsame( path,
'Z' )
92 IF( .NOT.sord .AND. .NOT.corz )
THEN
93 WRITE( iounit, fmt = 9999 )path
97 IF( lsamen( 2, c2,
'HS' ) )
THEN
102 WRITE( iounit, fmt = 9998 )path
106 WRITE( iounit, fmt = 9988 )
107 WRITE( iounit, fmt = 9987 )
108 WRITE( iounit, fmt = 9986 )
'pairs ',
'pairs ',
'prs.',
110 WRITE( iounit, fmt = 9985 )
114 WRITE( iounit, fmt = 9984 )
'orthogonal',
'''=transpose',
121 WRITE( iounit, fmt = 9997 )path
125 WRITE( iounit, fmt = 9988 )
126 WRITE( iounit, fmt = 9987 )
127 WRITE( iounit, fmt = 9986 )
'e.vals',
'e.vals',
'e.vs',
129 WRITE( iounit, fmt = 9985 )
133 WRITE( iounit, fmt = 9984 )
'unitary',
'*=conj.transp.',
137 ELSE IF( lsamen( 2, c2,
'ST' ) )
THEN
143 WRITE( iounit, fmt = 9996 )path
147 WRITE( iounit, fmt = 9983 )
148 WRITE( iounit, fmt = 9982 )
149 WRITE( iounit, fmt = 9981 )
'Symmetric'
153 WRITE( iounit, fmt = 9968 )
159 WRITE( iounit, fmt = 9995 )path
163 WRITE( iounit, fmt = 9983 )
164 WRITE( iounit, fmt = 9982 )
165 WRITE( iounit, fmt = 9981 )
'Hermitian'
169 WRITE( iounit, fmt = 9967 )
172 ELSE IF( lsamen( 2, c2,
'SG' ) )
THEN
178 WRITE( iounit, fmt = 9992 )path
182 WRITE( iounit, fmt = 9980 )
183 WRITE( iounit, fmt = 9979 )
184 WRITE( iounit, fmt = 9978 )'symmetric
'
188 WRITE( IOUNIT, FMT = 9977 )
189 WRITE( IOUNIT, FMT = 9976 )
195 WRITE( IOUNIT, FMT = 9991 )PATH
199 WRITE( IOUNIT, FMT = 9980 )
200 WRITE( IOUNIT, FMT = 9979 )
201 WRITE( IOUNIT, FMT = 9978 )'hermitian
'
205 WRITE( IOUNIT, FMT = 9975 )
206 WRITE( IOUNIT, FMT = 9974 )
210 ELSE IF( LSAMEN( 2, C2, 'bd
' ) ) THEN
216 WRITE( IOUNIT, FMT = 9994 )PATH
220 WRITE( IOUNIT, FMT = 9973 )
224 WRITE( IOUNIT, FMT = 9972 )'orthogonal
'
225 WRITE( IOUNIT, FMT = 9971 )
230 WRITE( IOUNIT, FMT = 9993 )PATH
234 WRITE( IOUNIT, FMT = 9973 )
238 WRITE( IOUNIT, FMT = 9972 )'unitary
'
239 WRITE( IOUNIT, FMT = 9971 )
242 ELSE IF( LSAMEN( 2, C2, 'bb
' ) ) THEN
248 WRITE( IOUNIT, FMT = 9990 )PATH
252 WRITE( IOUNIT, FMT = 9970 )
256 WRITE( IOUNIT, FMT = 9969 )'orthogonal
'
261 WRITE( IOUNIT, FMT = 9989 )PATH
265 WRITE( IOUNIT, FMT = 9970 )
269 WRITE( IOUNIT, FMT = 9969 )'unitary
'
274 WRITE( IOUNIT, FMT = 9999 )PATH
280 9999 FORMAT( 1X, A3, ': no
header available
' )
281 9998 FORMAT( / 1X, A3, ' -- real non-symmetric eigenvalue problem
' )
282 9997 FORMAT( / 1X, A3, ' --
Complex Non-symmetric eigenvalue problem
' )
283 9996 FORMAT( / 1X, A3, ' --
Real Symmetric eigenvalue problem
' )
284 9995 FORMAT( / 1X, A3, ' --
Complex Hermitian eigenvalue problem
' )
285 9994 FORMAT( / 1X, A3, ' --
Real Singular
Value Decomposition
' )
286 9993 FORMAT( / 1X, A3, ' --
Complex Singular
Value Decomposition
' )
287 9992 FORMAT( / 1X, A3, ' --
Real Symmetric Generalized eigenvalue
',
289 9991 FORMAT( / 1X, A3, ' --
Complex Hermitian Generalized eigenvalue
',
291 9990 FORMAT( / 1X, A3, ' --
Real Band reduc. bidiagonal form
' )
292 9989 FORMAT( / 1X, A3, ' --
Complex Band reduc. to bidiagonal form
' )
294 9988 FORMAT( ' Matrix types (see xCHKHS for details):
' )
296 9987 FORMAT( / ' Special Matrices:
', / ' 1=zero matrix.
',
297 $ ' ', ' 5=diagonal: geometr. spaced entries.
',
298 $ / ' 2=identity matrix.
', ' 6=diagona
',
300 $
' ',
' 7=Diagonal: large, evenly spaced.', /
' ',
301 $
'4=Diagonal: evenly spaced entries. ',
' 8=Diagonal: s',
302 $
'mall, evenly spaced.' )
303 9986
FORMAT(
' Dense, Non-Symmetric Matrices:', /
' 9=Well-cond., ev',
304 $
'enly spaced eigenvals.',
' 14=Ill-cond., geomet. spaced e',
305 $
'igenals.', /
' 10=Well-cond., geom. spaced eigenvals. ',
306 $
' 15=Ill-conditioned, clustered e.vals.', /
' 11=Well-cond',
307 $
'itioned, clustered e.vals. ',
' 16=Ill-cond., random comp',
308 $
'lex ', a6, /
' 12=Well-cond., random complex ', a6,
' ',
309 $
' 17=Ill-cond., large rand. complx ', a4, /
' 13=Ill-condi',
310 $
'tioned, evenly spaced. ',
' 18=Ill-cond., small rand.',
312 9985
FORMAT(
' 19=Matrix with random O(1) entries. ',
' 21=Matrix ',
313 $
'with small random entries.', /
' 20=Matrix with large ran',
315 9984
FORMAT( /
' Tests performed: ',
'(H is Hessenberg, T is Schur,',
316 $
' U and Z are ', a,
',', / 20x, a,
', W is a diagonal matr',
317 $
'ix of eigenvalues,', / 20x,
'L and R are the left and rig',
318 $
'ht eigenvector matrices)', /
' 1 = | A - U H U', a1,
' |',
319 $
' / ( |A| n ulp ) ',
' 2 = | I - U U', a1,
' | / ',
320 $
'( n ulp )', /
' 3 = | H - Z T Z', a1,
' | / ( |H| n ulp ',
321 $
') ',
' 4 = | I - Z Z', a1,
' | / ( n ulp )',
322 $ /
' 5 = | A - UZ T (UZ)', a1,
' | / ( |A| n ulp ) ',
323 $
' 6 = | I - UZ (UZ)', a1,
' | / ( n ulp )', /
' 7 = | T(',
324 $
'e.vects.) - T(no e.vects.) | / ( |T| ulp )', /
' 8 = | W',
325 $
'(e.vects.) - W(no e.vects.) | / ( |W| ulp )', /
' 9 = | ',
326 $
'TR - RW | / ( |T| |R| ulp ) ',
' 10 = | LT - WL | / (',
327 $
' |T| |L| ulp )', /
' 11= |HX - XW| / (|H| |X| ulp) (inv.',
328 $
'it)',
' 12= |YH - WY| / (|H| |Y| ulp) (inv.it)' )
332 9983
FORMAT(
' Matrix types (see xDRVST for details): ' )
334 9982
FORMAT( /
' Special Matrices:', /
' 1=Zero matrix. ',
335 $
' ',
' 5=Diagonal: clustered entries.', /
' 2=',
336 $
'Identity matrix. ',
' 6=Diagonal: lar',
337 $ 'ge, evenly spaced.
', / ' 3=diagonal: evenly spaced entri
',
338 $ 'es.
', ' 7=diagonal: small, evenly spaced.
', / ' 4=d
',
339 $ 'iagonal: geometr
' )
340 9981 FORMAT( ' dense
', A, ' matrices:
', / ' 8=evenly spaced eigen
',
341 $ 'vals.
', ' 12=small, evenly spaced eigenvals.
',
342 $ / ' 9=geometrically spaced eigenvals.
', ' 13=matrix
',
343 $ 'with random o(1) entries.
', / ' 10=clustered eigenvalues.
',
344 $ ' ', ' 14=matrix with large random entries.
',
345 $ / ' 11=large, evenly spaced eigenvals.
', ' 15=matrix
',
346 $ 'with small random entries.
' )
350 9980 FORMAT( ' matrix types(see xdrvsg for details):
' )
352 9979 FORMAT( / ' special matrices:
', / ' 1=zero matrix.
',
353 $ ' ', ' 5=diagonal: clustered entries.
', / ' 2=
',
354 $ 'identity matrix.
', ' 6=diagonal: lar
',
355 $ 'ge, evenly spaced.
', / ' 3=diagonal: evenly spaced entri
',
356 $ 'es.
', ' 7=diagonal: small, evenly spaced.
', / ' 4=d
',
357 $ 'iagonal: geometr. spaced entries.
' )
358 9978 FORMAT( ' dense or banded
', A, ' matrices:
',
359 $ / ' 8=evenly spaced eigenvals.
',
360 $ ' 15=matrix with small random entries.
',
361 $ / ' 9=geometrically spaced eigenvals.
',
362 $ ' 16=evenly spaced eigenvals, ka=1, kb=1.
',
363 $ / ' 10=clustered eigenvalues.
',
364 $ ' 17=evenly spaced eigenvals, ka=2, kb=1.
',
365 $ / ' 11=large, evenly spaced eigenvals.
',
366 $ ' 18=evenly spaced eigenvals, ka=2, kb=2.
',
367 $ / ' 12=small, evenly spaced eigenvals.
',
368 $ ' 19=evenly spaced eigenvals, ka=3, kb=1.
',
369 $ / ' 13=matrix with random o(1) entries.
',
370 $ ' 20=evenly spaced eigenvals, ka=3, kb=2.
',
371 $ / ' 14=matrix with large random entries.
',
372 $ ' 21=evenly spaced eigenvals, ka=3, kb=3.
' )
373 9977 FORMAT( / ' tests performed:
',
374 $ / '( for each pair(a,b),
where a is of
the given
type ',
375 $ / ' and b is a random well-conditioned matrix. d is
',
376 $ / ' diagonal, and z is orthogonal. )
',
377 $ / ' 1 =
ssygv, with itype=1 and uplo=
''u
'':
',
378 $ ' | a z - b z d | / ( |a| |z| n ulp )
',
379 $ / ' 2 =
sspgv, with itype=1 and uplo=
''u
'':
',
380 $ ' | a z - b z d | / ( |a| |z| n ulp )
',
381 $ / ' 3 =
ssbgv, with itype=1 and uplo=
''u
'':
',
382 $ ' | a z - b z d | / ( |a| |z| n ulp )
',
383 $ / ' 4 =
ssygv, with itype=1 and uplo=
''l
'':
',
384 $ ' | a z - b z d | / ( |a| |z| n ulp )
',
385 $ / ' 5 =
sspgv, with itype=1 and uplo=
''l
'':
',
386 $ ' | a z - b z d | / ( |a| |z| n ulp )
',
387 $ / ' 6 =
ssbgv, with itype=1 and uplo=
''l
'':
',
388 $ ' | a z - b z d | / ( |a| |z| n ulp )
' )
389 9976 FORMAT( ' 7 =
ssygv, with itype=2 and uplo=
''u'
':',
390 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
391 $ /
' 8 = SSPGV, with ITYPE=2 and UPLO=''U'':',
392 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
393 $ /
' 9 = SSPGV, with ITYPE=2 and UPLO=''L'':',
394 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
395 $ /
'10 = SSPGV, with ITYPE=2 and UPLO=''L'':',
396 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
397 $ /
'11 = SSYGV, with ITYPE=3 and UPLO=''U'':',
398 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
399 $ /
'12 = SSPGV, with ITYPE=3 and UPLO=''U'':',
400 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
401 $ /
'13 = SSYGV, with ITYPE=3 and UPLO=''L'':',
402 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
403 $ /
'14 = SSPGV, with ITYPE=3 and UPLO=''L'':',
404 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ' )
405 9975
FORMAT( /
' Tests performed: ',
406 $ /
'( For each pair (A,B), where A is of the given type ',
407 $ /
' and B is a random well-conditioned matrix. D is ',
408 $ /
' diagonal, and Z is unitary. )',
409 $ /
' 1 = CHEGV, with ITYPE=1 and UPLO=''U'':',
410 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
411 $ /
' 2 = CHPGV, with ITYPE=1 and UPLO=''U'':',
412 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
413 $ /
' 3 = CHBGV, with ITYPE=1 and UPLO=''U'':',
414 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
415 $ /
' 4 = CHEGV, with ITYPE=1 and UPLO=''L'':',
416 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
417 $ /
' 5 = CHPGV, with ITYPE=1 and UPLO=''L'':',
418 $ ' | a z - b z d | / ( |a| |z| n ulp )
',
419 $ / ' 6 =
chbgv, with itype=1 and uplo=
''l
'':
',
420 $ ' | a z - b z d | / ( |a| |z| n ulp )
' )
421 9974 FORMAT( ' 7
''u
'':
',
422 $ ' | a b z - z d | / ( |a| |z| n ulp )
',
423 $ / ' 8 =
chpgv, with itype=2 and uplo=
''u
'':
',
424 $ ' | a b z - z d | / ( |a| |z| n ulp )
',
425 $ / ' 9 =
chpgv, with itype=2 and uplo=
''l
'':
',
426 $ ' | a b z - z d | / ( |a| |z| n ulp )
',
427 $ / '10 =
chpgv, with itype=2 and uplo=
''l
'':
',
428 $ ' | a b z - z d | / ( |a| |z| n ulp )
',
429 $ / '11 =
chegv, with itype=3 and uplo=
''u
'':
',
430 $ ' | b a z - z d | / ( |a| |z| n ulp )
',
431 $ / '12 =
chpgv, with itype=3 and uplo=
''u
'':
',
432 $ ' | b a z - z d | / ( |a| |z| n ulp )
',
433 $ / '13 =
chegv, with itype=3 and uplo=
''l
'':
',
434 $ ' | b a z - z d | / ( |a| |z| n ulp )
',
435 $ / '14 =
chpgv, with itype=3 and uplo=
''l
'':
',
436 $ ' | b a z - z d | / ( |a| |z| n ulp )
' )
440 9973 FORMAT( ' matrix types(see xchkbd for details):
',
441 $ / ' diagonal matrices:
', / ' 1: zero
', 28X,
442 $ ' 5: clustered entries
', / ' 2: identity
', 24X,
443 $ ' 6: large, evenly spaced entries
',
444 $ / ' 3: evenly spaced entries
', 11X,
445 $ ' 7: small, evenly spaced entries
',
446 $ / ' 4: geometrically spaced entries
',
447 $ / ' general matrices:
', / ' 8: evenly spaced sing. vals.
',
448 $ 7X, '12: small, evenly spaced sing vals
',
449 $ / ' 9: geometrically
',
450 $ '13: random, o(1) entries
', / ' 10: clustered sing. vals.
',
451 $ 11X, '14: random, scaled near overflow
',
452 $ / ' 11: large, evenly spaced sing vals
',
453 $ '15: random, scaled near underflow
' )
455 9972 FORMAT( / ' test ratios:
',
456 $ '(b: bidiagonal, s: diagonal, q, p, u, and v:
', A10, / 16X,
457 $ 'x: m x nrhs, y = q
'' x, and z = u
'' y)
' )
458 9971 FORMAT( ' 1:
norm( a - q b p
'' ) / (
norm(a)
max(m,n) ulp )
',
459 $ / ' 2:
norm( i - q
'' q ) / ( m ulp )
',
460 $ / ' 3:
norm( i - p
'' p ) / ( n ulp )
',
461 $ / ' 4:
norm( b - u s v
'' ) / (
norm(b)
min(m,n) ulp )
',
462 $ / ' 5:
norm( y - u z ) /
',
464 $ / ' 6:
norm( i - u
'' u ) / (
min(m,n) ulp )
',
465 $ / ' 7:
norm( i - v
'' v ) / (
min(m,n) ulp )
',
466 $ / ' 8: test ordering of s(0
if nondecreasing, 1/ulp
',
468 $ /
' 9: norm( S - S1 ) / ( norm(S) ulp ),',
469 $
' where S1 is computed', / 43x,
470 $
' without computing U and V''',
471 $ /
' 10: Sturm sequence test ',
472 $
'(0 if sing. vals of B within THRESH of S)',
473 $ /
' 11: norm( A - (QU) S (V'' P'') ) / ',
474 $
'( norm(A) max(m,n) ulp )',
475 $ /
' 12: norm( X - (QU) Z ) / ( |X| max(M,k) ulp )',
476 $ /
' 13: norm( I - (QU)''(QU) ) / ( M ulp )',
477 $ /
' 14: norm( I - (V'' P'') (P V) ) / ( N ulp )',
478 $ /
' 15: norm( B - U S V'' ) / ( norm(B) min(m,n) ulp )',
479 $ /
' 16: norm( I - U'' U ) / ( min(m,n) ulp )',
480 $ /
' 17: norm( I - V'' V ) / ( min(m,n) ulp )',
481 $ /
' 18: Test ordering of S (0 if nondecreasing, 1/ulp ',
483 $ /
' 19: norm( S - S1 ) / ( norm(S) ulp ),',
484 $
' where S1 is computed', / 43x,
485 $
' without computing U and V''',
486 $ /
' 20: norm( B - U S V'' ) / ( norm(B) min(m,n) ulp )',
488 $ /
' 21: norm( I - U'' U ) / ( min(m,n) ulp )',
489 $ /
' 22: norm( I - V'' V ) / ( min(m,n) ulp )',
490 $ /
' 23: Test ordering of S (0 if nondecreasing, 1/ulp ',
492 $ /
' 24: norm( S - S1 ) / ( norm(S) ulp ),',
493 $
' where S1 is computed', / 44x,
494 $
' without computing U and V''',
495 $ /
' 25: norm( S - U'' B V ) / ( norm(B) n ulp )',
497 $ / ' 26:
norm( i - u
'' u ) / (
min(m,n) ulp )
',
498 $ / ' 27:
norm( i - v
'' v ) / (
min(m,n) ulp )
',
499 $ / ' 28: test ordering of s(0
if nondecreasing, 1/ulp
',
501 $ / ' 29:
norm( s - s1
',
502 $ ' where s1 is computed
', / 44X,
503 $ ' without computing u and v
''',
504 $ / ' 30:
norm( s - u
'' b v ) / (
norm(b) n ulp )
',
506 $ / ' 31:
norm( i - u
'' u ) / (
min(m,n) ulp )
',
507 $ / ' 32:
norm( i - v
'' v ) / (
min(m,n) ulp )',
508 $ /
' 33: Test ordering of S (0 if nondecreasing, 1/ulp ',
510 $ /
' 34: norm( S - S1 ) / ( norm(S) ulp ),',
511 $ '
where s1 is computed
', / 44X,
512 $ ' without computing u and v
''' )
516 9970 FORMAT( ' matrix types(see xchkbb for details):
',
517 $ / ' diagonal matrices:
', / ' 1: zero
', 28X,
518 $ ' 5: clustered entries', /
' 2: Identity', 24x,
519 $
' 6: Large, evenly spaced entries',
520 $ /
' 3: Evenly spaced entries', 11x,
521 $
' 7: Small, evenly spaced entries',
522 $ /
' 4: Geometrically spaced entries',
523 $ /
' General matrices:', /
' 8: Evenly spaced sing. vals.',
524 $ 7x,
'12: Small, evenly spaced sing vals',
525 $ /
' 9: Geometrically spaced sing vals '
526 $
'13: Random, O(1) entries', /
' 10: Clustered sing. vals.',
527 $ 11x,
'14: Random, scaled near overflow',
528 $ /
' 11: Large, evenly spaced sing vals ',
529 $
'15: Random, scaled near underflow' )
531 9969
FORMAT( /
' Test ratios: ',
'(B: upper bidiagonal, Q and P: ',
532 $ a10, / 16x,
'C: m x nrhs, PT = P'', Y = Q'' C)',
533 $ /
' 1: norm( A - Q B PT ) / ( norm(A) max(m,n) ulp )',
534 $ /
' 2: norm( I - Q'' Q ) / ( m ulp )',
535 $ /
' 3: norm( I - PT PT'' ) / ( n ulp )',
536 $ /
' 4: norm( Y - Q'' C ) / ( norm(Y) max(m,nrhs) ulp )' )
537 9968
FORMAT( /
' Tests performed: See sdrvst.f' )
538 9967
FORMAT( /
' Tests performed: See cdrvst.f' )