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. to bidiagonal form
' )
292 9989 FORMAT( / 1X, A3, ' --
Complex Band reduc. to bidiagonal form
' )
294 9988 FORMAT( ' Matrix types (see for details):
' )
296 9987 FORMAT( / ' Special Matrices:
', / ' 1=zero matrix.
',
297 $ ' ', ' 5=diagonal: geometr. spaced entries.
',
298 $ / ' 2=identity matrix.
', ' 6=diagona
',
299 $ 'l: clustered entries.
', / ' 3=transposed jordan block.
',
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.
', / '',
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. spaced entries.
' )
340 9981 FORMAT( ' dense
', A, ' matrices:
', / ' 8=evenly spaced eigen
',
341 $ 'vals.
', ' 12=small
',
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 = DSYGV, with ITYPE=1 and UPLO=''U'':',
378 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
379 $ /
' 2 = DSPGV, with ITYPE=1 and UPLO=''U'':',
380 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
381 $ /
' 3 = DSBGV, with ITYPE=1 and UPLO=''U'':',
382 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
383 $ /
' 4 = DSYGV, with ITYPE=1 and UPLO=''L'':',
384 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
385 $ /
' 5 = DSPGV, with ITYPE=1 and UPLO=''L'':
',
386 $ ' | a z - b z d | / ( |a| |z| n ulp )
',
387 $ / ' 6 =
dsbgv, with itype=1 and uplo=
''l
'':
',
388 $ ' | a z - b z d | / ( |a| |z| n ulp )
' )
389 9976 FORMAT( ' 7 =
dsygv, with itype=2 and uplo=
''u
'':
',
390 $ ' | a b z - z d | / ( |a| |z| n ulp )
',
391 $ / ' 8 =
dspgv, with itype=2 and uplo=
''u
'':
',
392 $ ' | a b z - z d | / ( |a| |z| n ulp )
',
393 $ / ' 9 =
dspgv, with itype=2 and uplo=
''l
'':
',
394 $ ' | a b z - z d | / ( |a| |z| n ulp )
',
395 $ / '10 =
dspgv, with itype=2 and uplo=
''l
'':
',
396 $ ' | a b z - z d | / ( |a| |z| n ulp )
',
397 $ / '11 =
dsygv, with itype=3 and uplo=
''u
'':
',
398 $ ' | b a z - z d | / ( |a| |z| n ulp )
',
399 $ / '12 =
dspgv, with itype=3 and uplo=
''u
'':
',
400 $ ' | b a z - z d | / ( |a| |z| n ulp )
',
401 $ / '13 =
dsygv, with itype=3 and uplo=
''l
'':
',
402 $ ' | b a z - z d | / ( |a| |z| n ulp )
',
403 $ / '14 =
dspgv, with itype=3 and
''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 =
zhegv, with itype=1 and uplo=
''u
'':',
410 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
411 $ /
' 2 = ZHPGV, with ITYPE=1 and UPLO=''U'':',
412 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
413 $ /
' 3 = ZHBGV, with ITYPE=1 and UPLO=''U'':',
414 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
415 $ /
' 4 = ZHEGV, with ITYPE=1 and UPLO=''L'':',
416 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
417 $ /
' 5 = ZHPGV, with ITYPE=1 and UPLO=''L'':',
418 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
419 $ /
' 6 = ZHBGV, with ITYPE=1 and UPLO=''L'':',
420 $
' | A Z - B Z D | / ( |A| |Z| n ulp ) ' )
421 9974
FORMAT(
' 7 = ZHEGV, with ITYPE=2 and UPLO=''U'':',
422 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
423 $ /
' 8 = ZHPGV, with ITYPE=2 and UPLO=''U'':',
424 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
425 $ /
' 9 = ZHPGV, with ITYPE=2 and UPLO=''L'':',
426 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
427 $ /
'10 = ZHPGV, with ITYPE=2 and UPLO=''L'':',
428 $
' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
429 $ / '11 =
zhegv, with itype=3 and uplo=
''u
'':
',
430 $ ' | b a z - z d | / ( |a| |z| n ulp )
',
431 $ / '12 =
zhpgv, with itype=3 and uplo=
''u
'':
',
432 $ ' | b a z - z d | / ( |a| |z| n ulp )
',
433 $ / '13 =
zhegv, with itype=3 and uplo=
''l
'':
',
434 $ ' | b a z - z d | / ( |a| |z| n ulp )
',
435 $ / '14 =
zhpgv, 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 spaced sing vals
',
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
'') ) /
',
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 ) / (
norm(s) ulp ),
',
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
' )
subroutine cdrvst(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, d1, d2, d3, wa1, wa2, wa3, u, ldu, v, tau, z, work, lwork, rwork, lrwork, iwork, liwork, result, info)
CDRVST
subroutine sdrvst(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, d1, d2, d3, d4, eveigs, wa1, wa2, wa3, u, ldu, v, tau, z, work, lwork, iwork, liwork, result, info)
SDRVST