66 SUBROUTINE dlahd2( IOUNIT, PATH )
87 EXTERNAL lsame, lsamen
93 sord = lsame( path,
'S' ) .OR. lsame( path,
'D' )
94 corz = lsame( path,
'C' ) .OR. lsame( path,
'Z' )
95 IF( .NOT.sord .AND. .NOT.corz )
THEN
96 WRITE( iounit, fmt = 9999 )path
100 IF( lsamen( 2, c2,
'HS' ) )
THEN
105 WRITE( iounit, fmt = 9998 )path
109 WRITE( iounit, fmt = 9988 )
110 WRITE( iounit, fmt = 9987 )
111 WRITE( iounit, fmt = 9986 )
'pairs ',
'pairs ',
'prs.',
113 WRITE( iounit, fmt = 9985 )
117 WRITE( iounit, fmt = 9984 )
'orthogonal',
'''=transpose',
124 WRITE( iounit, fmt = 9997 )path
128 WRITE( iounit, fmt = 9988 )
129 WRITE( iounit, fmt = 9987 )
130 WRITE( iounit, fmt = 9986 )
'e.vals',
'e.vals',
'e.vs',
132 WRITE( iounit, fmt = 9985 )
136 WRITE( iounit, fmt = 9984 )
'unitary',
'*=conj.transp.',
140 ELSE IF( lsamen( 2, c2,
'ST' ) )
THEN
146 WRITE( iounit, fmt = 9996 )path
150 WRITE( iounit, fmt = 9983 )
151 WRITE( iounit, fmt = 9982 )
152 WRITE( iounit, fmt = 9981 )
'Symmetric'
156 WRITE( iounit, fmt = 9968 )
162 WRITE( iounit, fmt = 9995 )path
166 WRITE( iounit, fmt = 9983 )
167 WRITE( iounit, fmt = 9982 )
168 WRITE( iounit, fmt = 9981 )
'Hermitian'
172 WRITE( iounit, fmt = 9967 )
175 ELSE IF( lsamen( 2, c2,
'SG' ) )
THEN
181 WRITE( iounit, fmt = 9992 )path
185 WRITE( iounit, fmt = 9980 )
186 WRITE( iounit, fmt = 9979 )
187 WRITE( iounit, fmt = 9978 )
'Symmetric'
191 WRITE( iounit, fmt = 9977 )
192 WRITE( iounit, fmt = 9976 )
198 WRITE( iounit, fmt = 9991 )path
202 WRITE( iounit, fmt = 9980 )
203 WRITE( iounit, fmt = 9979 )
204 WRITE( iounit, fmt = 9978 )
'Hermitian'
208 WRITE( iounit, fmt = 9975 )
209 WRITE( iounit, fmt = 9974 )
213 ELSE IF( lsamen( 2, c2,
'BD' ) )
THEN
219 WRITE( iounit, fmt = 9994 )path
223 WRITE( iounit, fmt = 9973 )
227 WRITE( iounit, fmt = 9972 )
'orthogonal'
228 WRITE( iounit, fmt = 9971 )
233 WRITE( iounit, fmt = 9993 )path
237 WRITE( iounit, fmt = 9973 )
241 WRITE( iounit, fmt = 9972 )
'unitary '
242 WRITE( iounit, fmt = 9971 )
245 ELSE IF( lsamen( 2, c2,
'BB' ) )
THEN
251 WRITE( iounit, fmt = 9990 )path
255 WRITE( iounit, fmt = 9970 )
259 WRITE( iounit, fmt = 9969 )
'orthogonal'
264 WRITE( iounit, fmt = 9989 )path
268 WRITE( iounit, fmt = 9970 )
272 WRITE( iounit, fmt = 9969 )
'unitary '
277 WRITE( iounit, fmt = 9999 )path
283 9999
FORMAT( 1x, a3,
': no header available' )
284 9998
FORMAT( / 1x, a3,
' -- Real Non-symmetric eigenvalue problem' )
285 9997
FORMAT( / 1x, a3,
' -- Complex Non-symmetric eigenvalue problem' )
286 9996
FORMAT( / 1x, a3,
' -- Real Symmetric eigenvalue problem' )
287 9995
FORMAT( / 1x, a3,
' -- Complex Hermitian eigenvalue problem' )
288 9994
FORMAT( / 1x, a3,
' -- Real Singular Value Decomposition' )
289 9993
FORMAT( / 1x, a3,
' -- Complex Singular Value Decomposition' )
290 9992
FORMAT( / 1x, a3,
' -- Real Symmetric Generalized eigenvalue ',
292 9991
FORMAT( / 1x, a3,
' -- Complex Hermitian Generalized eigenvalue ',
294 9990
FORMAT( / 1x, a3,
' -- Real Band reduc. to bidiagonal form' )
295 9989
FORMAT( / 1x, a3,
' -- Complex Band reduc. to bidiagonal form' )
297 9988
FORMAT(
' Matrix types (see xCHKHS for details): ' )
299 9987
FORMAT( /
' Special Matrices:', /
' 1=Zero matrix. ',
300 $
' ',
' 5=Diagonal: geometr. spaced entries.',
301 $ /
' 2=Identity matrix. ',
' 6=Diagona',
302 $
'l: clustered entries.', /
' 3=Transposed Jordan block. ',
303 $
' ',
' 7=Diagonal: large, evenly spaced.', /
' ',
304 $
'4=Diagonal: evenly spaced entries. ',
' 8=Diagonal: s',
305 $
'mall, evenly spaced.' )
306 9986
FORMAT(
' Dense, Non-Symmetric Matrices:', /
' 9=Well-cond., ev',
307 $
'enly spaced eigenvals.',
' 14=Ill-cond., geomet. spaced e',
308 $
'igenals.', /
' 10=Well-cond., geom. spaced eigenvals. ',
309 $
' 15=Ill-conditioned, clustered e.vals.', /
' 11=Well-cond',
310 $
'itioned, clustered e.vals. ',
' 16=Ill-cond., random comp',
311 $
'lex ', a6, /
' 12=Well-cond., random complex ', a6,
' ',
312 $
' 17=Ill-cond., large rand. complx ', a4, /
' 13=Ill-condi',
313 $
'tioned, evenly spaced. ',
' 18=Ill-cond., small rand.',
315 9985
FORMAT(
' 19=Matrix with random O(1) entries. ',
' 21=Matrix ',
316 $
'with small random entries.', /
' 20=Matrix with large ran',
318 9984
FORMAT( /
' Tests performed: ',
'(H is Hessenberg, T is Schur,',
319 $
' U and Z are ', a,
',', / 20x, a,
', W is a diagonal matr',
320 $
'ix of eigenvalues,', / 20x,
'L and R are the left and rig',
321 $
'ht eigenvector matrices)', /
' 1 = | A - U H U', a1,
' |',
322 $
' / ( |A| n ulp ) ',
' 2 = | I - U U', a1,
' | / ',
323 $
'( n ulp )', /
' 3 = | H - Z T Z', a1,
' | / ( |H| n ulp ',
324 $
') ',
' 4 = | I - Z Z', a1,
' | / ( n ulp )',
325 $ /
' 5 = | A - UZ T (UZ)', a1,
' | / ( |A| n ulp ) ',
326 $
' 6 = | I - UZ (UZ)', a1,
' | / ( n ulp )', /
' 7 = | T(',
327 $
'e.vects.) - T(no e.vects.) | / ( |T| ulp )', /
' 8 = | W',
328 $
'(e.vects.) - W(no e.vects.) | / ( |W| ulp )', /
' 9 = | ',
329 $
'TR - RW | / ( |T| |R| ulp ) ',
' 10 = | LT - WL | / (',
330 $
' |T| |L| ulp )', /
' 11= |HX - XW| / (|H| |X| ulp) (inv.',
331 $
'it)',
' 12= |YH - WY| / (|H| |Y| ulp) (inv.it)' )
335 9983
FORMAT(
' Matrix types (see xDRVST for details): ' )
337 9982
FORMAT( /
' Special Matrices:', /
' 1=Zero matrix. ',
338 $
' ',
' 5=Diagonal: clustered entries.', /
' 2=',
339 $
'Identity matrix. ',
' 6=Diagonal: lar',
340 $
'ge, evenly spaced.', /
' 3=Diagonal: evenly spaced entri',
341 $
'es. ',
' 7=Diagonal: small, evenly spaced.', /
' 4=D',
342 $
'iagonal: geometr. spaced entries.' )
343 9981
FORMAT(
' Dense ', a,
' Matrices:', /
' 8=Evenly spaced eigen',
344 $
'vals. ',
' 12=Small, evenly spaced eigenvals.',
345 $ /
' 9=Geometrically spaced eigenvals. ',
' 13=Matrix ',
346 $
'with random O(1) entries.', /
' 10=Clustered eigenvalues.',
347 $
' ',
' 14=Matrix with large random entries.',
348 $ /
' 11=Large, evenly spaced eigenvals. ',
' 15=Matrix ',
349 $
'with small random entries.' )
353 9980
FORMAT(
' Matrix types (see xDRVSG for details): ' )
355 9979
FORMAT( /
' Special Matrices:', /
' 1=Zero matrix. ',
356 $
' ',
' 5=Diagonal: clustered entries.', /
' 2=',
357 $
'Identity matrix. ',
' 6=Diagonal: lar',
358 $
'ge, evenly spaced.', /
' 3=Diagonal: evenly spaced entri',
359 $
'es. ',
' 7=Diagonal: small, evenly spaced.', /
' 4=D',
360 $
'iagonal: geometr. spaced entries.' )
361 9978
FORMAT(
' Dense or Banded ', a,
' Matrices: ',
362 $ /
' 8=Evenly spaced eigenvals. ',
363 $
' 15=Matrix with small random entries.',
364 $ /
' 9=Geometrically spaced eigenvals. ',
365 $
' 16=Evenly spaced eigenvals, KA=1, KB=1.',
366 $ /
' 10=Clustered eigenvalues. ',
367 $
' 17=Evenly spaced eigenvals, KA=2, KB=1.',
368 $ /
' 11=Large, evenly spaced eigenvals. ',
369 $
' 18=Evenly spaced eigenvals, KA=2, KB=2.',
370 $ /
' 12=Small, evenly spaced eigenvals. ',
371 $
' 19=Evenly spaced eigenvals, KA=3, KB=1.',
372 $ /
' 13=Matrix with random O(1) entries. ',
373 $
' 20=Evenly spaced eigenvals, KA=3, KB=2.',
374 $ /
' 14=Matrix with large random entries.',
375 $
' 21=Evenly spaced eigenvals, KA=3, KB=3.' )
376 9977
FORMAT( /
' Tests performed: ',
377 $ /
'( For each pair (A,B), where A is of the given type ',
378 $ /
' and B is a random well-conditioned matrix. D is ',
379 $ /
' diagonal, and Z is orthogonal. )',
380 $ /
' 1 = DSYGV, with ITYPE=1 and UPLO=''U'':',
381 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
382 $ /
' 2 = DSPGV, with ITYPE=1 and UPLO=''U'':',
383 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
384 $ /
' 3 = DSBGV, with ITYPE=1 and UPLO=''U'':',
385 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
386 $ /
' 4 = DSYGV, with ITYPE=1 and UPLO=''L'':',
387 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
388 $ /
' 5 = DSPGV, with ITYPE=1 and UPLO=''L'':',
389 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
390 $ /
' 6 = DSBGV, with ITYPE=1 and UPLO=''L'':',
391 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ' )
392 9976
FORMAT(
' 7 = DSYGV, with ITYPE=2 and UPLO=''U'':',
393 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
394 $ /
' 8 = DSPGV, with ITYPE=2 and UPLO=''U'':',
395 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
396 $ /
' 9 = DSPGV, with ITYPE=2 and UPLO=''L'':',
397 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
398 $ /
'10 = DSPGV, with ITYPE=2 and UPLO=''L'':',
399 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
400 $ /
'11 = DSYGV, with ITYPE=3 and UPLO=''U'':',
401 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
402 $ /
'12 = DSPGV, with ITYPE=3 and UPLO=''U'':',
403 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
404 $ /
'13 = DSYGV, with ITYPE=3 and UPLO=''L'':',
405 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
406 $ /
'14 = DSPGV, with ITYPE=3 and UPLO=''L'':',
407 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ' )
408 9975
FORMAT( /
' Tests performed: ',
409 $ /
'( For each pair (A,B), where A is of the given type ',
410 $ /
' and B is a random well-conditioned matrix. D is ',
411 $ /
' diagonal, and Z is unitary. )',
412 $ /
' 1 = ZHEGV, with ITYPE=1 and UPLO=''U'':',
413 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
414 $ /
' 2 = ZHPGV, with ITYPE=1 and UPLO=''U'':',
415 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
416 $ /
' 3 = ZHBGV, with ITYPE=1 and UPLO=''U'':',
417 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
418 $ /
' 4 = ZHEGV, with ITYPE=1 and UPLO=''L'':',
419 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
420 $ /
' 5 = ZHPGV, with ITYPE=1 and UPLO=''L'':',
421 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
422 $ /
' 6 = ZHBGV, with ITYPE=1 and UPLO=''L'':',
423 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ' )
424 9974
FORMAT(
' 7 = ZHEGV, with ITYPE=2 and UPLO=''U'':',
425 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
426 $ /
' 8 = ZHPGV, with ITYPE=2 and UPLO=''U'':',
427 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
428 $ /
' 9 = ZHPGV, with ITYPE=2 and UPLO=''L'':',
429 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
430 $ /
'10 = ZHPGV, with ITYPE=2 and UPLO=''L'':',
431 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
432 $ /
'11 = ZHEGV, with ITYPE=3 and UPLO=''U'':',
433 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
434 $ /
'12 = ZHPGV, with ITYPE=3 and UPLO=''U'':',
435 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
436 $ /
'13 = ZHEGV, with ITYPE=3 and UPLO=''L'':',
437 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
438 $ /
'14 = ZHPGV, with ITYPE=3 and UPLO=''L'':',
439 $
' | B A Z - Z D | / ( |A| |Z| n ulp ) ' )
443 9973
FORMAT(
' Matrix types (see xCHKBD for details):',
444 $ /
' Diagonal matrices:', /
' 1: Zero', 28x,
445 $
' 5: Clustered entries', /
' 2: Identity', 24x,
446 $
' 6: Large, evenly spaced entries',
447 $ /
' 3: Evenly spaced entries', 11x,
448 $
' 7: Small, evenly spaced entries',
449 $ /
' 4: Geometrically spaced entries',
450 $ /
' General matrices:', /
' 8: Evenly spaced sing. vals.',
451 $ 7x,
'12: Small, evenly spaced sing vals',
452 $ /
' 9: Geometrically spaced sing vals ',
453 $
'13: Random, O(1) entries', /
' 10: Clustered sing. vals.',
454 $ 11x,
'14: Random, scaled near overflow',
455 $ /
' 11: Large, evenly spaced sing vals ',
456 $
'15: Random, scaled near underflow' )
458 9972
FORMAT( /
' Test ratios: ',
459 $
'(B: bidiagonal, S: diagonal, Q, P, U, and V: ', a10, / 16x,
460 $
'X: m x nrhs, Y = Q'' X, and Z = U'' Y)' )
461 9971
FORMAT(
' 1: norm( A - Q B P'' ) / ( norm(A) max(m,n) ulp )',
462 $ /
' 2: norm( I - Q'' Q ) / ( m ulp )',
463 $ /
' 3: norm( I - P'' P ) / ( n ulp )',
464 $ /
' 4: norm( B - U S V'' ) / ( norm(B) min(m,n) ulp )',
465 $ /
' 5: norm( Y - U Z ) / ',
466 $
'( norm(Z) max(min(m,n),k) ulp )',
467 $ /
' 6: norm( I - U'' U ) / ( min(m,n) ulp )',
468 $ /
' 7: norm( I - V'' V ) / ( min(m,n) ulp )',
469 $ /
' 8: Test ordering of S (0 if nondecreasing, 1/ulp ',
471 $ /
' 9: norm( S - S1 ) / ( norm(S) ulp ),',
472 $
' where S1 is computed', / 43x,
473 $
' without computing U and V''',
474 $ /
' 10: Sturm sequence test ',
475 $
'(0 if sing. vals of B within THRESH of S)',
476 $ /
' 11: norm( A - (QU) S (V'' P'') ) / ',
477 $
'( norm(A) max(m,n) ulp )',
478 $ /
' 12: norm( X - (QU) Z ) / ( |X| max(M,k) ulp )',
479 $ /
' 13: norm( I - (QU)''(QU) ) / ( M ulp )',
480 $ /
' 14: norm( I - (V'' P'') (P V) ) / ( N ulp )',
481 $ /
' 15: norm( B - U S V'' ) / ( norm(B) min(m,n) ulp )',
482 $ /
' 16: norm( I - U'' U ) / ( min(m,n) ulp )',
483 $ /
' 17: norm( I - V'' V ) / ( min(m,n) ulp )',
484 $ /
' 18: Test ordering of S (0 if nondecreasing, 1/ulp ',
486 $ /
' 19: norm( S - S1 ) / ( norm(S) ulp ),',
487 $
' where S1 is computed', / 43x,
488 $
' without computing U and V''',
489 $ /
' 20: norm( B - U S V'' ) / ( norm(B) min(m,n) ulp )',
491 $ /
' 21: norm( I - U'' U ) / ( min(m,n) ulp )',
492 $ /
' 22: norm( I - V'' V ) / ( min(m,n) ulp )',
493 $ /
' 23: Test ordering of S (0 if nondecreasing, 1/ulp ',
495 $ /
' 24: norm( S - S1 ) / ( norm(S) ulp ),',
496 $
' where S1 is computed', / 44x,
497 $
' without computing U and V''',
498 $ /
' 25: norm( S - U'' B V ) / ( norm(B) n ulp )',
500 $ /
' 26: norm( I - U'' U ) / ( min(m,n) ulp )',
501 $ /
' 27: norm( I - V'' V ) / ( min(m,n) ulp )',
502 $ /
' 28: Test ordering of S (0 if nondecreasing, 1/ulp ',
504 $ /
' 29: norm( S - S1 ) / ( norm(S) ulp ),',
505 $
' where S1 is computed', / 44x,
506 $
' without computing U and V''',
507 $ /
' 30: norm( S - U'' B V ) / ( norm(B) n ulp )',
509 $ /
' 31: norm( I - U'' U ) / ( min(m,n) ulp )',
510 $ /
' 32: norm( I - V'' V ) / ( min(m,n) ulp )',
511 $ /
' 33: Test ordering of S (0 if nondecreasing, 1/ulp ',
513 $ /
' 34: norm( S - S1 ) / ( norm(S) ulp ),',
514 $
' where S1 is computed', / 44x,
515 $
' without computing U and V''' )
519 9970
FORMAT(
' Matrix types (see xCHKBB for details):',
520 $ /
' Diagonal matrices:', /
' 1: Zero', 28x,
521 $
' 5: Clustered entries', /
' 2: Identity', 24x,
522 $
' 6: Large, evenly spaced entries',
523 $ /
' 3: Evenly spaced entries', 11x,
524 $
' 7: Small, evenly spaced entries',
525 $ /
' 4: Geometrically spaced entries',
526 $ /
' General matrices:', /
' 8: Evenly spaced sing. vals.',
527 $ 7x,
'12: Small, evenly spaced sing vals',
528 $ /
' 9: Geometrically spaced sing vals ',
529 $
'13: Random, O(1) entries', /
' 10: Clustered sing. vals.',
530 $ 11x,
'14: Random, scaled near overflow',
531 $ /
' 11: Large, evenly spaced sing vals ',
532 $
'15: Random, scaled near underflow' )
534 9969
FORMAT( /
' Test ratios: ',
'(B: upper bidiagonal, Q and P: ',
535 $ a10, / 16x,
'C: m x nrhs, PT = P'', Y = Q'' C)',
536 $ /
' 1: norm( A - Q B PT ) / ( norm(A) max(m,n) ulp )',
537 $ /
' 2: norm( I - Q'' Q ) / ( m ulp )',
538 $ /
' 3: norm( I - PT PT'' ) / ( n ulp )',
539 $ /
' 4: norm( Y - Q'' C ) / ( norm(Y) max(m,nrhs) ulp )' )
540 9968
FORMAT( /
' Tests performed: See sdrvst.f' )
541 9967
FORMAT( /
' Tests performed: See cdrvst.f' )
subroutine dlahd2(IOUNIT, PATH)
DLAHD2