LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ zchkec()

subroutine zchkec ( double precision  THRESH,
logical  TSTERR,
integer  NIN,
integer  NOUT 
)

ZCHKEC

Purpose:
 ZCHKEC tests eigen- condition estimation routines
        ZTRSYL, CTREXC, CTRSNA, CTRSEN

 In all cases, the routine runs through a fixed set of numerical
 examples, subjects them to various tests, and compares the test
 results to a threshold THRESH. In addition, ZTRSNA and CTRSEN are
 tested by reading in precomputed examples from a file (on input unit
 NIN).  Output is written to output unit NOUT.
Parameters
[in]THRESH
          THRESH is DOUBLE PRECISION
          Threshold for residual tests.  A computed test ratio passes
          the threshold if it is less than THRESH.
[in]TSTERR
          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.
[in]NIN
          NIN is INTEGER
          The logical unit number for input.
[in]NOUT
          NOUT is INTEGER
          The logical unit number for output.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
December 2016

Definition at line 77 of file zchkec.f.

77 *
78 * -- LAPACK test routine (version 3.7.0) --
79 * -- LAPACK is a software package provided by Univ. of Tennessee, --
80 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
81 * December 2016
82 *
83 * .. Scalar Arguments ..
84  LOGICAL tsterr
85  INTEGER nin, nout
86  DOUBLE PRECISION thresh
87 * ..
88 *
89 * =====================================================================
90 *
91 * .. Local Scalars ..
92  LOGICAL ok
93  CHARACTER*3 path
94  INTEGER ktrexc, ktrsen, ktrsna, ktrsyl, ltrexc, ltrsyl,
95  $ ntests, ntrexc, ntrsyl
96  DOUBLE PRECISION eps, rtrexc, rtrsyl, sfmin
97 * ..
98 * .. Local Arrays ..
99  INTEGER ltrsen( 3 ), ltrsna( 3 ), ntrsen( 3 ),
100  $ ntrsna( 3 )
101  DOUBLE PRECISION rtrsen( 3 ), rtrsna( 3 )
102 * ..
103 * .. External Subroutines ..
104  EXTERNAL zerrec, zget35, zget36, zget37, zget38
105 * ..
106 * .. External Functions ..
107  DOUBLE PRECISION dlamch
108  EXTERNAL dlamch
109 * ..
110 * .. Executable Statements ..
111 *
112  path( 1: 1 ) = 'Zomplex precision'
113  path( 2: 3 ) = 'EC'
114  eps = dlamch( 'P' )
115  sfmin = dlamch( 'S' )
116  WRITE( nout, fmt = 9994 )
117  WRITE( nout, fmt = 9993 )eps, sfmin
118  WRITE( nout, fmt = 9992 )thresh
119 *
120 * Test error exits if TSTERR is .TRUE.
121 *
122  IF( tsterr )
123  $ CALL zerrec( path, nout )
124 *
125  ok = .true.
126  CALL zget35( rtrsyl, ltrsyl, ntrsyl, ktrsyl, nin )
127  IF( rtrsyl.GT.thresh ) THEN
128  ok = .false.
129  WRITE( nout, fmt = 9999 )rtrsyl, ltrsyl, ntrsyl, ktrsyl
130  END IF
131 *
132  CALL zget36( rtrexc, ltrexc, ntrexc, ktrexc, nin )
133  IF( rtrexc.GT.thresh .OR. ntrexc.GT.0 ) THEN
134  ok = .false.
135  WRITE( nout, fmt = 9998 )rtrexc, ltrexc, ntrexc, ktrexc
136  END IF
137 *
138  CALL zget37( rtrsna, ltrsna, ntrsna, ktrsna, nin )
139  IF( rtrsna( 1 ).GT.thresh .OR. rtrsna( 2 ).GT.thresh .OR.
140  $ ntrsna( 1 ).NE.0 .OR. ntrsna( 2 ).NE.0 .OR. ntrsna( 3 ).NE.0 )
141  $ THEN
142  ok = .false.
143  WRITE( nout, fmt = 9997 )rtrsna, ltrsna, ntrsna, ktrsna
144  END IF
145 *
146  CALL zget38( rtrsen, ltrsen, ntrsen, ktrsen, nin )
147  IF( rtrsen( 1 ).GT.thresh .OR. rtrsen( 2 ).GT.thresh .OR.
148  $ ntrsen( 1 ).NE.0 .OR. ntrsen( 2 ).NE.0 .OR. ntrsen( 3 ).NE.0 )
149  $ THEN
150  ok = .false.
151  WRITE( nout, fmt = 9996 )rtrsen, ltrsen, ntrsen, ktrsen
152  END IF
153 *
154  ntests = ktrsyl + ktrexc + ktrsna + ktrsen
155  IF( ok )
156  $ WRITE( nout, fmt = 9995 )path, ntests
157 *
158  9999 FORMAT( ' Error in ZTRSYL: RMAX =', d12.3, / ' LMAX = ', i8,
159  $ ' NINFO=', i8, ' KNT=', i8 )
160  9998 FORMAT( ' Error in ZTREXC: RMAX =', d12.3, / ' LMAX = ', i8,
161  $ ' NINFO=', i8, ' KNT=', i8 )
162  9997 FORMAT( ' Error in ZTRSNA: RMAX =', 3d12.3, / ' LMAX = ', 3i8,
163  $ ' NINFO=', 3i8, ' KNT=', i8 )
164  9996 FORMAT( ' Error in ZTRSEN: RMAX =', 3d12.3, / ' LMAX = ', 3i8,
165  $ ' NINFO=', 3i8, ' KNT=', i8 )
166  9995 FORMAT( / 1x, 'All tests for ', a3,
167  $ ' routines passed the threshold ( ', i6, ' tests run)' )
168  9994 FORMAT( ' Tests of the Nonsymmetric eigenproblem condition',
169  $ ' estimation routines', / ' ZTRSYL, ZTREXC, ZTRSNA, ZTRSEN',
170  $ / )
171  9993 FORMAT( ' Relative machine precision (EPS) = ', d16.6,
172  $ / ' Safe minimum (SFMIN) = ', d16.6, / )
173  9992 FORMAT( ' Routines pass computational tests if test ratio is ',
174  $ 'less than', f8.2, / / )
175  RETURN
176 *
177 * End of ZCHKEC
178 *
double precision function dlamch(CMACH)
DLAMCH
Definition: dlamch.f:65
subroutine zget37(RMAX, LMAX, NINFO, KNT, NIN)
ZGET37
Definition: zget37.f:92
subroutine zerrec(PATH, NUNIT)
ZERREC
Definition: zerrec.f:58
subroutine zget35(RMAX, LMAX, NINFO, KNT, NIN)
ZGET35
Definition: zget35.f:86
subroutine zget36(RMAX, LMAX, NINFO, KNT, NIN)
ZGET36
Definition: zget36.f:87
subroutine zget38(RMAX, LMAX, NINFO, KNT, NIN)
ZGET38
Definition: zget38.f:93
Here is the call graph for this function:
Here is the caller graph for this function: