SUBROUTINE DLAHD2( IOUNIT, PATH ) * * -- LAPACK auxiliary test routine (version 2.0) -- * Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., * Courant Institute, Argonne National Lab, and Rice University * September 30, 1994 * * .. Scalar Arguments .. CHARACTER*3 PATH INTEGER IOUNIT * .. * * Purpose * ======= * * DLAHD2 prints header information for the different test paths. * * Arguments * ========= * * IOUNIT (input) INTEGER. * On entry, IOUNIT specifies the unit number to which the * header information should be printed. * * PATH (input) CHARACTER*3. * On entry, PATH contains the name of the path for which the * header information is to be printed. Current paths are * * DHS, ZHS: Non-symmetric eigenproblem. * DST, ZST: Symmetric eigenproblem. * DSG, ZSG: Symmetric Generalized eigenproblem. * DBD, ZBD: Singular Value Decomposition (SVD) * DBB, ZBB: General Banded reduction to bidiagonal form * * These paths also are supplied in double precision (replace * leading S by D and leading C by Z in path names). * * ===================================================================== * * .. Local Scalars .. LOGICAL CORZ, SORD CHARACTER*2 C2 INTEGER J * .. * .. External Functions .. LOGICAL LSAME, LSAMEN EXTERNAL LSAME, LSAMEN * .. * .. Executable Statements .. * IF( IOUNIT.LE.0 ) $ RETURN SORD = LSAME( PATH, 'S' ) .OR. LSAME( PATH, 'D' ) CORZ = LSAME( PATH, 'C' ) .OR. LSAME( PATH, 'Z' ) IF( .NOT.SORD .AND. .NOT.CORZ ) THEN WRITE( IOUNIT, FMT = 9999 )PATH END IF C2 = PATH( 2: 3 ) * IF( LSAMEN( 2, C2, 'HS' ) ) THEN IF( SORD ) THEN * * Real Non-symmetric Eigenvalue Problem: * WRITE( IOUNIT, FMT = 9998 )PATH * * Matrix types * WRITE( IOUNIT, FMT = 9988 ) WRITE( IOUNIT, FMT = 9987 ) WRITE( IOUNIT, FMT = 9986 )'pairs ', 'pairs ', 'prs.', $ 'prs.' WRITE( IOUNIT, FMT = 9985 ) * * Tests performed * WRITE( IOUNIT, FMT = 9984 )'orthogonal', '''=transpose', $ ( '''', J = 1, 6 ) * ELSE * * Complex Non-symmetric Eigenvalue Problem: * WRITE( IOUNIT, FMT = 9997 )PATH * * Matrix types * WRITE( IOUNIT, FMT = 9988 ) WRITE( IOUNIT, FMT = 9987 ) WRITE( IOUNIT, FMT = 9986 )'e.vals', 'e.vals', 'e.vs', $ 'e.vs' WRITE( IOUNIT, FMT = 9985 ) * * Tests performed * WRITE( IOUNIT, FMT = 9984 )'unitary', '*=conj.transp.', $ ( '*', J = 1, 6 ) END IF * ELSE IF( LSAMEN( 2, C2, 'ST' ) ) THEN * IF( SORD ) THEN * * Real Symmetric Eigenvalue Problem: * WRITE( IOUNIT, FMT = 9996 )PATH * * Matrix types * WRITE( IOUNIT, FMT = 9983 ) WRITE( IOUNIT, FMT = 9982 ) WRITE( IOUNIT, FMT = 9981 )'Symmetric' * * Tests performed * WRITE( IOUNIT, FMT = 9968 ) * ELSE * * Complex Hermitian Eigenvalue Problem: * WRITE( IOUNIT, FMT = 9995 )PATH * * Matrix types * WRITE( IOUNIT, FMT = 9983 ) WRITE( IOUNIT, FMT = 9982 ) WRITE( IOUNIT, FMT = 9981 )'Hermitian' * * Tests performed * WRITE( IOUNIT, FMT = 9967 ) END IF * ELSE IF( LSAMEN( 2, C2, 'SG' ) ) THEN * IF( SORD ) THEN * * Real Symmetric Generalized Eigenvalue Problem: * WRITE( IOUNIT, FMT = 9992 )PATH * * Matrix types * WRITE( IOUNIT, FMT = 9980 ) WRITE( IOUNIT, FMT = 9979 ) WRITE( IOUNIT, FMT = 9978 )'Symmetric' * * Tests performed * WRITE( IOUNIT, FMT = 9977 ) WRITE( IOUNIT, FMT = 9976 ) * ELSE * * Complex Hermitian Generalized Eigenvalue Problem: * WRITE( IOUNIT, FMT = 9991 )PATH * * Matrix types * WRITE( IOUNIT, FMT = 9980 ) WRITE( IOUNIT, FMT = 9979 ) WRITE( IOUNIT, FMT = 9978 )'Hermitian' * * Tests performed * WRITE( IOUNIT, FMT = 9975 ) WRITE( IOUNIT, FMT = 9974 ) * END IF * ELSE IF( LSAMEN( 2, C2, 'BD' ) ) THEN * IF( SORD ) THEN * * Real Singular Value Decomposition: * WRITE( IOUNIT, FMT = 9994 )PATH * * Matrix types * WRITE( IOUNIT, FMT = 9973 ) * * Tests performed * WRITE( IOUNIT, FMT = 9972 )'orthogonal' WRITE( IOUNIT, FMT = 9971 ) ELSE * * Complex Singular Value Decomposition: * WRITE( IOUNIT, FMT = 9993 )PATH * * Matrix types * WRITE( IOUNIT, FMT = 9973 ) * * Tests performed * WRITE( IOUNIT, FMT = 9972 )'unitary ' WRITE( IOUNIT, FMT = 9971 ) END IF * ELSE IF( LSAMEN( 2, C2, 'BB' ) ) THEN * IF( SORD ) THEN * * Real General Band reduction to bidiagonal form: * WRITE( IOUNIT, FMT = 9990 )PATH * * Matrix types * WRITE( IOUNIT, FMT = 9970 ) * * Tests performed * WRITE( IOUNIT, FMT = 9969 )'orthogonal' ELSE * * Complex Band reduction to bidiagonal form: * WRITE( IOUNIT, FMT = 9989 )PATH * * Matrix types * WRITE( IOUNIT, FMT = 9970 ) * * Tests performed * WRITE( IOUNIT, FMT = 9969 )'unitary ' END IF * ELSE * WRITE( IOUNIT, FMT = 9999 )PATH RETURN END IF * RETURN * 9999 FORMAT( 1X, A3, ': no header available' ) 9998 FORMAT( / 1X, A3, ' -- Real Non-symmetric eigenvalue problem' ) 9997 FORMAT( / 1X, A3, ' -- Complex Non-symmetric eigenvalue problem' ) 9996 FORMAT( / 1X, A3, ' -- Real Symmetric eigenvalue problem' ) 9995 FORMAT( / 1X, A3, ' -- Complex Hermitian eigenvalue problem' ) 9994 FORMAT( / 1X, A3, ' -- Real Singular Value Decomposition' ) 9993 FORMAT( / 1X, A3, ' -- Complex Singular Value Decomposition' ) 9992 FORMAT( / 1X, A3, ' -- Real Symmetric Generalized eigenvalue ', $ 'problem' ) 9991 FORMAT( / 1X, A3, ' -- Complex Hermitian Generalized eigenvalue ', $ 'problem' ) 9990 FORMAT( / 1X, A3, ' -- Real Band reduc. to bidiagonal form' ) 9989 FORMAT( / 1X, A3, ' -- Complex Band reduc. to bidiagonal form' ) * 9988 FORMAT( ' Matrix types (see xCHKHS for details): ' ) * 9987 FORMAT( / ' Special Matrices:', / ' 1=Zero matrix. ', $ ' ', ' 5=Diagonal: geometr. spaced entries.', $ / ' 2=Identity matrix. ', ' 6=Diagona', $ 'l: clustered entries.', / ' 3=Transposed Jordan block. ', $ ' ', ' 7=Diagonal: large, evenly spaced.', / ' ', $ '4=Diagonal: evenly spaced entries. ', ' 8=Diagonal: s', $ 'mall, evenly spaced.' ) 9986 FORMAT( ' Dense, Non-Symmetric Matrices:', / ' 9=Well-cond., ev', $ 'enly spaced eigenvals.', ' 14=Ill-cond., geomet. spaced e', $ 'igenals.', / ' 10=Well-cond., geom. spaced eigenvals. ', $ ' 15=Ill-conditioned, clustered e.vals.', / ' 11=Well-cond', $ 'itioned, clustered e.vals. ', ' 16=Ill-cond., random comp', $ 'lex ', A6, / ' 12=Well-cond., random complex ', A6, ' ', $ ' 17=Ill-cond., large rand. complx ', A4, / ' 13=Ill-condi', $ 'tioned, evenly spaced. ', ' 18=Ill-cond., small rand.', $ ' complx ', A4 ) 9985 FORMAT( ' 19=Matrix with random O(1) entries. ', ' 21=Matrix ', $ 'with small random entries.', / ' 20=Matrix with large ran', $ 'dom entries. ' ) 9984 FORMAT( / ' Tests performed: ', '(H is Hessenberg, T is Schur,', $ ' U and Z are ', A, ',', / 20X, A, ', W is a diagonal matr', $ 'ix of eigenvalues,', / 20X, 'L and R are the left and rig', $ 'ht eigenvector matrices)', / ' 1 = | A - U H U', A1, ' |', $ ' / ( |A| n ulp ) ', ' 2 = | I - U U', A1, ' | / ', $ '( n ulp )', / ' 3 = | H - Z T Z', A1, ' | / ( |H| n ulp ', $ ') ', ' 4 = | I - Z Z', A1, ' | / ( n ulp )', $ / ' 5 = | A - UZ T (UZ)', A1, ' | / ( |A| n ulp ) ', $ ' 6 = | I - UZ (UZ)', A1, ' | / ( n ulp )', / ' 7 = | T(', $ 'e.vects.) - T(no e.vects.) | / ( |T| ulp )', / ' 8 = | W', $ '(e.vects.) - W(no e.vects.) | / ( |W| ulp )', / ' 9 = | ', $ 'TR - RW | / ( |T| |R| ulp ) ', ' 10 = | LT - WL | / (', $ ' |T| |L| ulp )', / ' 11= |HX - XW| / (|H| |X| ulp) (inv.', $ 'it)', ' 12= |YH - WY| / (|H| |Y| ulp) (inv.it)' ) * * Symmetric/Hermitian eigenproblem * 9983 FORMAT( ' Matrix types (see xDRVST for details): ' ) * 9982 FORMAT( / ' Special Matrices:', / ' 1=Zero matrix. ', $ ' ', ' 5=Diagonal: clustered entries.', / ' 2=', $ 'Identity matrix. ', ' 6=Diagonal: lar', $ 'ge, evenly spaced.', / ' 3=Diagonal: evenly spaced entri', $ 'es. ', ' 7=Diagonal: small, evenly spaced.', / ' 4=D', $ 'iagonal: geometr. spaced entries.' ) 9981 FORMAT( ' Dense ', A, ' Matrices:', / ' 8=Evenly spaced eigen', $ 'vals. ', ' 12=Small, evenly spaced eigenvals.', $ / ' 9=Geometrically spaced eigenvals. ', ' 13=Matrix ', $ 'with random O(1) entries.', / ' 10=Clustered eigenvalues.', $ ' ', ' 14=Matrix with large random entries.', $ / ' 11=Large, evenly spaced eigenvals. ', ' 15=Matrix ', $ 'with small random entries.' ) * * Symmetric/Hermitian Generalized eigenproblem * 9980 FORMAT( ' Matrix types (see xDRVSG for details): ' ) * 9979 FORMAT( / ' Special Matrices:', / ' 1=Zero matrix. ', $ ' ', ' 5=Diagonal: clustered entries.', / ' 2=', $ 'Identity matrix. ', ' 6=Diagonal: lar', $ 'ge, evenly spaced.', / ' 3=Diagonal: evenly spaced entri', $ 'es. ', ' 7=Diagonal: small, evenly spaced.', / ' 4=D', $ 'iagonal: geometr. spaced entries.' ) 9978 FORMAT( ' Dense or Banded ', A, ' Matrices: ', $ / ' 8=Evenly spaced eigenvals. ', $ ' 15=Matrix with small random entries.', $ / ' 9=Geometrically spaced eigenvals. ', $ ' 16=Evenly spaced eigenvals, KA=1, KB=1.', $ / ' 10=Clustered eigenvalues. ', $ ' 17=Evenly spaced eigenvals, KA=2, KB=1.', $ / ' 11=Large, evenly spaced eigenvals. ', $ ' 18=Evenly spaced eigenvals, KA=2, KB=2.', $ / ' 12=Small, evenly spaced eigenvals. ', $ ' 19=Evenly spaced eigenvals, KA=3, KB=1.', $ / ' 13=Matrix with random O(1) entries. ', $ ' 20=Evenly spaced eigenvals, KA=3, KB=2.', $ / ' 14=Matrix with large random entries.', $ ' 21=Evenly spaced eigenvals, KA=3, KB=3.' ) 9977 FORMAT( / ' Tests performed: ', $ / '( For each pair (A,B), where A is of the given type ', $ / ' and B is a random well-conditioned matrix. D is ', $ / ' diagonal, and Z is orthogonal. )', $ / ' 1 = DSYGV, with ITYPE=1 and UPLO=''U'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ', $ / ' 2 = DSPGV, with ITYPE=1 and UPLO=''U'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ', $ / ' 3 = DSBGV, with ITYPE=1 and UPLO=''U'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ', $ / ' 4 = DSYGV, with ITYPE=1 and UPLO=''L'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ', $ / ' 5 = DSPGV, with ITYPE=1 and UPLO=''L'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ', $ / ' 6 = DSBGV, with ITYPE=1 and UPLO=''L'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ' ) 9976 FORMAT( ' 7 = DSYGV, with ITYPE=2 and UPLO=''U'':', $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ', $ / ' 8 = DSPGV, with ITYPE=2 and UPLO=''U'':', $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ', $ / ' 9 = DSPGV, with ITYPE=2 and UPLO=''L'':', $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ', $ / '10 = DSPGV, with ITYPE=2 and UPLO=''L'':', $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ', $ / '11 = DSYGV, with ITYPE=3 and UPLO=''U'':', $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ', $ / '12 = DSPGV, with ITYPE=3 and UPLO=''U'':', $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ', $ / '13 = DSYGV, with ITYPE=3 and UPLO=''L'':', $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ', $ / '14 = DSPGV, with ITYPE=3 and UPLO=''L'':', $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ' ) 9975 FORMAT( / ' Tests performed: ', $ / '( For each pair (A,B), where A is of the given type ', $ / ' and B is a random well-conditioned matrix. D is ', $ / ' diagonal, and Z is unitary. )', $ / ' 1 = ZHEGV, with ITYPE=1 and UPLO=''U'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ', $ / ' 2 = ZHPGV, with ITYPE=1 and UPLO=''U'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ', $ / ' 3 = ZHBGV, with ITYPE=1 and UPLO=''U'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ', $ / ' 4 = ZHEGV, with ITYPE=1 and UPLO=''L'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ', $ / ' 5 = ZHPGV, with ITYPE=1 and UPLO=''L'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ', $ / ' 6 = ZHBGV, with ITYPE=1 and UPLO=''L'':', $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ' ) 9974 FORMAT( ' 7 = ZHEGV, with ITYPE=2 and UPLO=''U'':', $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ', $ / ' 8 = ZHPGV, with ITYPE=2 and UPLO=''U'':', $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ', $ / ' 9 = ZHPGV, with ITYPE=2 and UPLO=''L'':', $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ', $ / '10 = ZHPGV, with ITYPE=2 and UPLO=''L'':', $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ', $ / '11 = ZHEGV, with ITYPE=3 and UPLO=''U'':', $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ', $ / '12 = ZHPGV, with ITYPE=3 and UPLO=''U'':', $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ', $ / '13 = ZHEGV, with ITYPE=3 and UPLO=''L'':', $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ', $ / '14 = ZHPGV, with ITYPE=3 and UPLO=''L'':', $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ' ) * * Singular Value Decomposition * 9973 FORMAT( ' Matrix types (see xCHKBD for details):', $ / ' Diagonal matrices:', / ' 1: Zero', 28X, $ ' 5: Clustered entries', / ' 2: Identity', 24X, $ ' 6: Large, evenly spaced entries', $ / ' 3: Evenly spaced entries', 11X, $ ' 7: Small, evenly spaced entries', $ / ' 4: Geometrically spaced entries', $ / ' General matrices:', / ' 8: Evenly spaced sing. vals.', $ 7X, '12: Small, evenly spaced sing vals', $ / ' 9: Geometrically spaced sing vals ', $ '13: Random, O(1) entries', / ' 10: Clustered sing. vals.', $ 11X, '14: Random, scaled near overflow', $ / ' 11: Large, evenly spaced sing vals ', $ '15: Random, scaled near underflow' ) * 9972 FORMAT( / ' Test ratios: ', $ '(B: bidiagonal, S: diagonal, Q, P, U, and V: ', A10, / 16X, $ 'X: m x nrhs, Y = Q'' X, and Z = U'' Y)', $ / ' 1: norm( A - Q B P'' ) / ( norm(A) max(m,n) ulp )', $ / ' 2: norm( I - Q'' Q ) / ( m ulp )', $ / ' 3: norm( I - P'' P ) / ( n ulp )', $ / ' 4: norm( B - U S V'' ) / ( norm(B) min(m,n) ulp )', / $ ' 5: norm( Y - U Z ) / ( norm(Z) max(min(m,n),k) ulp )' $ , / ' 6: norm( I - U'' U ) / ( min(m,n) ulp )', $ / ' 7: norm( I - V'' V ) / ( min(m,n) ulp )' ) 9971 FORMAT( ' 8: Test ordering of S (0 if nondecreasing, 1/ulp ', $ ' otherwise)', / $ ' 9: norm( S - S2 ) / ( norm(S) ulp ),', $ ' where S2 is computed', / 44X, $ 'without computing U and V''', $ / ' 10: Sturm sequence test ', $ '(0 if sing. vals of B within THRESH of S)', $ / ' 11: norm( A - (QU) S (V'' P'') ) / ', $ '( norm(A) max(m,n) ulp )', / $ ' 12: norm( X - (QU) Z ) / ( |X| max(M,k) ulp )', $ / ' 13: norm( I - (QU)''(QU) ) / ( M ulp )', $ / ' 14: norm( I - (V'' P'') (P V) ) / ( N ulp )' ) * * Band reduction to bidiagonal form * 9970 FORMAT( ' Matrix types (see xCHKBB for details):', $ / ' Diagonal matrices:', / ' 1: Zero', 28X, $ ' 5: Clustered entries', / ' 2: Identity', 24X, $ ' 6: Large, evenly spaced entries', $ / ' 3: Evenly spaced entries', 11X, $ ' 7: Small, evenly spaced entries', $ / ' 4: Geometrically spaced entries', $ / ' General matrices:', / ' 8: Evenly spaced sing. vals.', $ 7X, '12: Small, evenly spaced sing vals', $ / ' 9: Geometrically spaced sing vals ', $ '13: Random, O(1) entries', / ' 10: Clustered sing. vals.', $ 11X, '14: Random, scaled near overflow', $ / ' 11: Large, evenly spaced sing vals ', $ '15: Random, scaled near underflow' ) * 9969 FORMAT( / ' Test ratios: ', '(B: upper bidiagonal, Q and P: ', $ A10, / 16X, 'C: m x nrhs, PT = P'', Y = Q'' C)', $ / ' 1: norm( A - Q B PT ) / ( norm(A) max(m,n) ulp )', $ / ' 2: norm( I - Q'' Q ) / ( m ulp )', $ / ' 3: norm( I - PT PT'' ) / ( n ulp )', $ / ' 4: norm( Y - Q'' C ) / ( norm(Y) max(m,nrhs) ulp )' ) 9968 FORMAT( / ' Tests performed: See sdrvst.f' ) 9967 FORMAT( / ' Tests performed: See cdrvst.f' ) * * End of DLAHD2 * END