LAPACK  3.10.1
LAPACK: Linear Algebra PACKage
zerrhex.f
Go to the documentation of this file.
1 *> \brief \b ZERRHEX
2 *
3 * =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
7 *
8 * Definition:
9 * ===========
10 *
11 * SUBROUTINE ZERRHE( PATH, NUNIT )
12 *
13 * .. Scalar Arguments ..
14 * CHARACTER*3 PATH
15 * INTEGER NUNIT
16 * ..
17 *
18 *
19 *> \par Purpose:
20 * =============
21 *>
22 *> \verbatim
23 *>
24 *> ZERRHE tests the error exits for the COMPLEX*16 routines
25 *> for Hermitian indefinite matrices.
26 *>
27 *> Note that this file is used only when the XBLAS are available,
28 *> otherwise zerrhe.f defines this subroutine.
29 *> \endverbatim
30 *
31 * Arguments:
32 * ==========
33 *
34 *> \param[in] PATH
35 *> \verbatim
36 *> PATH is CHARACTER*3
37 *> The LAPACK path name for the routines to be tested.
38 *> \endverbatim
39 *>
40 *> \param[in] NUNIT
41 *> \verbatim
42 *> NUNIT is INTEGER
43 *> The unit number for output.
44 *> \endverbatim
45 *
46 * Authors:
47 * ========
48 *
49 *> \author Univ. of Tennessee
50 *> \author Univ. of California Berkeley
51 *> \author Univ. of Colorado Denver
52 *> \author NAG Ltd.
53 *
54 *> \ingroup complex16_lin
55 *
56 * =====================================================================
57  SUBROUTINE zerrhe( PATH, NUNIT )
58 *
59 * -- LAPACK test routine --
60 * -- LAPACK is a software package provided by Univ. of Tennessee, --
61 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
62 *
63 * .. Scalar Arguments ..
64  CHARACTER*3 PATH
65  INTEGER NUNIT
66 * ..
67 *
68 * =====================================================================
69 *
70 *
71 * .. Parameters ..
72  INTEGER NMAX
73  parameter( nmax = 4 )
74 * ..
75 * .. Local Scalars ..
76  CHARACTER EQ
77  CHARACTER*2 C2
78  INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
79  DOUBLE PRECISION ANRM, RCOND, BERR
80 * ..
81 * .. Local Arrays ..
82  INTEGER IP( NMAX )
83  DOUBLE PRECISION R( NMAX ), R1( NMAX ), R2( NMAX ),
84  $ S( NMAX ), ERR_BNDS_N( NMAX, 3 ),
85  $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 )
86  COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
87  $ E( NMAX ), W( 2*NMAX ), X( NMAX )
88 * ..
89 * .. External Functions ..
90  LOGICAL LSAMEN
91  EXTERNAL lsamen
92 * ..
93 * .. External Subroutines ..
100 * ..
101 * .. Scalars in Common ..
102  LOGICAL LERR, OK
103  CHARACTER*32 SRNAMT
104  INTEGER INFOT, NOUT
105 * ..
106 * .. Common blocks ..
107  COMMON / infoc / infot, nout, ok, lerr
108  COMMON / srnamc / srnamt
109 * ..
110 * .. Intrinsic Functions ..
111  INTRINSIC dble, dcmplx
112 * ..
113 * .. Executable Statements ..
114 *
115  nout = nunit
116  WRITE( nout, fmt = * )
117  c2 = path( 2: 3 )
118 *
119 * Set the variables to innocuous values.
120 *
121  DO 20 j = 1, nmax
122  DO 10 i = 1, nmax
123  a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
124  $ -1.d0 / dble( i+j ) )
125  af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
126  $ -1.d0 / dble( i+j ) )
127  10 CONTINUE
128  b( j ) = 0.d0
129  e( j ) = 0.d0
130  r1( j ) = 0.d0
131  r2( j ) = 0.d0
132  w( j ) = 0.d0
133  x( j ) = 0.d0
134  s( j ) = 0.d0
135  ip( j ) = j
136  20 CONTINUE
137  anrm = 1.0d0
138  ok = .true.
139 *
140 * Test error exits of the routines that use factorization
141 * of a Hermitian indefinite matrix with patrial
142 * (Bunch-Kaufman) diagonal pivoting method.
143 *
144  IF( lsamen( 2, c2, 'HE' ) ) THEN
145 *
146 * ZHETRF
147 *
148  srnamt = 'ZHETRF'
149  infot = 1
150  CALL zhetrf( '/', 0, a, 1, ip, w, 1, info )
151  CALL chkxer( 'ZHETRF', infot, nout, lerr, ok )
152  infot = 2
153  CALL zhetrf( 'U', -1, a, 1, ip, w, 1, info )
154  CALL chkxer( 'ZHETRF', infot, nout, lerr, ok )
155  infot = 4
156  CALL zhetrf( 'U', 2, a, 1, ip, w, 4, info )
157  CALL chkxer( 'ZHETRF', infot, nout, lerr, ok )
158  infot = 7
159  CALL zhetrf( 'U', 0, a, 1, ip, w, 0, info )
160  CALL chkxer( 'ZHETRF', infot, nout, lerr, ok )
161  infot = 7
162  CALL zhetrf( 'U', 0, a, 1, ip, w, -2, info )
163  CALL chkxer( 'ZHETRF', infot, nout, lerr, ok )
164 *
165 * ZHETF2
166 *
167  srnamt = 'ZHETF2'
168  infot = 1
169  CALL zhetf2( '/', 0, a, 1, ip, info )
170  CALL chkxer( 'ZHETF2', infot, nout, lerr, ok )
171  infot = 2
172  CALL zhetf2( 'U', -1, a, 1, ip, info )
173  CALL chkxer( 'ZHETF2', infot, nout, lerr, ok )
174  infot = 4
175  CALL zhetf2( 'U', 2, a, 1, ip, info )
176  CALL chkxer( 'ZHETF2', infot, nout, lerr, ok )
177 *
178 * ZHETRI
179 *
180  srnamt = 'ZHETRI'
181  infot = 1
182  CALL zhetri( '/', 0, a, 1, ip, w, info )
183  CALL chkxer( 'ZHETRI', infot, nout, lerr, ok )
184  infot = 2
185  CALL zhetri( 'U', -1, a, 1, ip, w, info )
186  CALL chkxer( 'ZHETRI', infot, nout, lerr, ok )
187  infot = 4
188  CALL zhetri( 'U', 2, a, 1, ip, w, info )
189  CALL chkxer( 'ZHETRI', infot, nout, lerr, ok )
190 *
191 * ZHETRI2
192 *
193  srnamt = 'ZHETRI2'
194  infot = 1
195  CALL zhetri2( '/', 0, a, 1, ip, w, 1, info )
196  CALL chkxer( 'ZHETRI2', infot, nout, lerr, ok )
197  infot = 2
198  CALL zhetri2( 'U', -1, a, 1, ip, w, 1, info )
199  CALL chkxer( 'ZHETRI2', infot, nout, lerr, ok )
200  infot = 4
201  CALL zhetri2( 'U', 2, a, 1, ip, w, 1, info )
202  CALL chkxer( 'ZHETRI2', infot, nout, lerr, ok )
203 *
204 * ZHETRI2X
205 *
206  srnamt = 'ZHETRI2X'
207  infot = 1
208  CALL zhetri2x( '/', 0, a, 1, ip, w, 1, info )
209  CALL chkxer( 'ZHETRI2X', infot, nout, lerr, ok )
210  infot = 2
211  CALL zhetri2x( 'U', -1, a, 1, ip, w, 1, info )
212  CALL chkxer( 'ZHETRI2X', infot, nout, lerr, ok )
213  infot = 4
214  CALL zhetri2x( 'U', 2, a, 1, ip, w, 1, info )
215  CALL chkxer( 'ZHETRI2X', infot, nout, lerr, ok )
216 *
217 * ZHETRS
218 *
219  srnamt = 'ZHETRS'
220  infot = 1
221  CALL zhetrs( '/', 0, 0, a, 1, ip, b, 1, info )
222  CALL chkxer( 'ZHETRS', infot, nout, lerr, ok )
223  infot = 2
224  CALL zhetrs( 'U', -1, 0, a, 1, ip, b, 1, info )
225  CALL chkxer( 'ZHETRS', infot, nout, lerr, ok )
226  infot = 3
227  CALL zhetrs( 'U', 0, -1, a, 1, ip, b, 1, info )
228  CALL chkxer( 'ZHETRS', infot, nout, lerr, ok )
229  infot = 5
230  CALL zhetrs( 'U', 2, 1, a, 1, ip, b, 2, info )
231  CALL chkxer( 'ZHETRS', infot, nout, lerr, ok )
232  infot = 8
233  CALL zhetrs( 'U', 2, 1, a, 2, ip, b, 1, info )
234  CALL chkxer( 'ZHETRS', infot, nout, lerr, ok )
235 *
236 * ZHERFS
237 *
238  srnamt = 'ZHERFS'
239  infot = 1
240  CALL zherfs( '/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
241  $ r, info )
242  CALL chkxer( 'ZHERFS', infot, nout, lerr, ok )
243  infot = 2
244  CALL zherfs( 'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
245  $ w, r, info )
246  CALL chkxer( 'ZHERFS', infot, nout, lerr, ok )
247  infot = 3
248  CALL zherfs( 'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
249  $ w, r, info )
250  CALL chkxer( 'ZHERFS', infot, nout, lerr, ok )
251  infot = 5
252  CALL zherfs( 'U', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
253  $ r, info )
254  CALL chkxer( 'ZHERFS', infot, nout, lerr, ok )
255  infot = 7
256  CALL zherfs( 'U', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
257  $ r, info )
258  CALL chkxer( 'ZHERFS', infot, nout, lerr, ok )
259  infot = 10
260  CALL zherfs( 'U', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
261  $ r, info )
262  CALL chkxer( 'ZHERFS', infot, nout, lerr, ok )
263  infot = 12
264  CALL zherfs( 'U', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
265  $ r, info )
266  CALL chkxer( 'ZHERFS', infot, nout, lerr, ok )
267 *
268 * ZHERFSX
269 *
270  n_err_bnds = 3
271  nparams = 0
272  srnamt = 'ZHERFSX'
273  infot = 1
274  CALL zherfsx( '/', eq, 0, 0, a, 1, af, 1, ip, s, b, 1, x, 1,
275  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
276  $ params, w, r, info )
277  CALL chkxer( 'ZHERFSX', infot, nout, lerr, ok )
278  infot = 2
279  CALL zherfsx( 'U', eq, -1, 0, a, 1, af, 1, ip, s, b, 1, x, 1,
280  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
281  $ params, w, r, info )
282  CALL chkxer( 'ZHERFSX', infot, nout, lerr, ok )
283  eq = 'N'
284  infot = 3
285  CALL zherfsx( 'U', eq, -1, 0, a, 1, af, 1, ip, s, b, 1, x, 1,
286  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
287  $ params, w, r, info )
288  CALL chkxer( 'ZHERFSX', infot, nout, lerr, ok )
289  infot = 4
290  CALL zherfsx( 'U', eq, 0, -1, a, 1, af, 1, ip, s, b, 1, x, 1,
291  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
292  $ params, w, r, info )
293  CALL chkxer( 'ZHERFSX', infot, nout, lerr, ok )
294  infot = 6
295  CALL zherfsx( 'U', eq, 2, 1, a, 1, af, 2, ip, s, b, 2, x, 2,
296  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
297  $ params, w, r, info )
298  CALL chkxer( 'ZHERFSX', infot, nout, lerr, ok )
299  infot = 8
300  CALL zherfsx( 'U', eq, 2, 1, a, 2, af, 1, ip, s, b, 2, x, 2,
301  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
302  $ params, w, r, info )
303  CALL chkxer( 'ZHERFSX', infot, nout, lerr, ok )
304  infot = 12
305  CALL zherfsx( 'U', eq, 2, 1, a, 2, af, 2, ip, s, b, 1, x, 2,
306  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
307  $ params, w, r, info )
308  CALL chkxer( 'ZHERFSX', infot, nout, lerr, ok )
309  infot = 14
310  CALL zherfsx( 'U', eq, 2, 1, a, 2, af, 2, ip, s, b, 2, x, 1,
311  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
312  $ params, w, r, info )
313  CALL chkxer( 'ZHERFSX', infot, nout, lerr, ok )
314 *
315 * ZHECON
316 *
317  srnamt = 'ZHECON'
318  infot = 1
319  CALL zhecon( '/', 0, a, 1, ip, anrm, rcond, w, info )
320  CALL chkxer( 'ZHECON', infot, nout, lerr, ok )
321  infot = 2
322  CALL zhecon( 'U', -1, a, 1, ip, anrm, rcond, w, info )
323  CALL chkxer( 'ZHECON', infot, nout, lerr, ok )
324  infot = 4
325  CALL zhecon( 'U', 2, a, 1, ip, anrm, rcond, w, info )
326  CALL chkxer( 'ZHECON', infot, nout, lerr, ok )
327  infot = 6
328  CALL zhecon( 'U', 1, a, 1, ip, -anrm, rcond, w, info )
329  CALL chkxer( 'ZHECON', infot, nout, lerr, ok )
330 *
331  ELSE IF( lsamen( 2, c2, 'HR' ) ) THEN
332 *
333 * Test error exits of the routines that use factorization
334 * of a Hermitian indefinite matrix with rook
335 * (bounded Bunch-Kaufman) diagonal pivoting method.
336 *
337 * ZHETRF_ROOK
338 *
339  srnamt = 'ZHETRF_ROOK'
340  infot = 1
341  CALL zhetrf_rook( '/', 0, a, 1, ip, w, 1, info )
342  CALL chkxer( 'ZHETRF_ROOK', infot, nout, lerr, ok )
343  infot = 2
344  CALL zhetrf_rook( 'U', -1, a, 1, ip, w, 1, info )
345  CALL chkxer( 'ZHETRF_ROOK', infot, nout, lerr, ok )
346  infot = 4
347  CALL zhetrf_rook( 'U', 2, a, 1, ip, w, 4, info )
348  CALL chkxer( 'ZHETRF_ROOK', infot, nout, lerr, ok )
349  infot = 7
350  CALL zhetrf_rook( 'U', 0, a, 1, ip, w, 0, info )
351  CALL chkxer( 'ZHETRF_ROOK', infot, nout, lerr, ok )
352  infot = 7
353  CALL zhetrf_rook( 'U', 0, a, 1, ip, w, -2, info )
354  CALL chkxer( 'ZHETRF_ROOK', infot, nout, lerr, ok )
355 *
356 * ZHETF2_ROOK
357 *
358  srnamt = 'ZHETF2_ROOK'
359  infot = 1
360  CALL zhetf2_rook( '/', 0, a, 1, ip, info )
361  CALL chkxer( 'ZHETF2_ROOK', infot, nout, lerr, ok )
362  infot = 2
363  CALL zhetf2_rook( 'U', -1, a, 1, ip, info )
364  CALL chkxer( 'ZHETF2_ROOK', infot, nout, lerr, ok )
365  infot = 4
366  CALL zhetf2_rook( 'U', 2, a, 1, ip, info )
367  CALL chkxer( 'ZHETF2_ROOK', infot, nout, lerr, ok )
368 *
369 * ZHETRI_ROOK
370 *
371  srnamt = 'ZHETRI_ROOK'
372  infot = 1
373  CALL zhetri_rook( '/', 0, a, 1, ip, w, info )
374  CALL chkxer( 'ZHETRI_ROOK', infot, nout, lerr, ok )
375  infot = 2
376  CALL zhetri_rook( 'U', -1, a, 1, ip, w, info )
377  CALL chkxer( 'ZHETRI_ROOK', infot, nout, lerr, ok )
378  infot = 4
379  CALL zhetri_rook( 'U', 2, a, 1, ip, w, info )
380  CALL chkxer( 'ZHETRI_ROOK', infot, nout, lerr, ok )
381 *
382 * ZHETRS_ROOK
383 *
384  srnamt = 'ZHETRS_ROOK'
385  infot = 1
386  CALL zhetrs_rook( '/', 0, 0, a, 1, ip, b, 1, info )
387  CALL chkxer( 'ZHETRS_ROOK', infot, nout, lerr, ok )
388  infot = 2
389  CALL zhetrs_rook( 'U', -1, 0, a, 1, ip, b, 1, info )
390  CALL chkxer( 'ZHETRS_ROOK', infot, nout, lerr, ok )
391  infot = 3
392  CALL zhetrs_rook( 'U', 0, -1, a, 1, ip, b, 1, info )
393  CALL chkxer( 'ZHETRS_ROOK', infot, nout, lerr, ok )
394  infot = 5
395  CALL zhetrs_rook( 'U', 2, 1, a, 1, ip, b, 2, info )
396  CALL chkxer( 'ZHETRS_ROOK', infot, nout, lerr, ok )
397  infot = 8
398  CALL zhetrs_rook( 'U', 2, 1, a, 2, ip, b, 1, info )
399  CALL chkxer( 'ZHETRS_ROOK', infot, nout, lerr, ok )
400 *
401 * ZHECON_ROOK
402 *
403  srnamt = 'ZHECON_ROOK'
404  infot = 1
405  CALL zhecon_rook( '/', 0, a, 1, ip, anrm, rcond, w, info )
406  CALL chkxer( 'ZHECON_ROOK', infot, nout, lerr, ok )
407  infot = 2
408  CALL zhecon_rook( 'U', -1, a, 1, ip, anrm, rcond, w, info )
409  CALL chkxer( 'ZHECON_ROOK', infot, nout, lerr, ok )
410  infot = 4
411  CALL zhecon_rook( 'U', 2, a, 1, ip, anrm, rcond, w, info )
412  CALL chkxer( 'ZHECON_ROOK', infot, nout, lerr, ok )
413  infot = 6
414  CALL zhecon_rook( 'U', 1, a, 1, ip, -anrm, rcond, w, info )
415  CALL chkxer( 'ZHECON_ROOK', infot, nout, lerr, ok )
416 *
417  ELSE IF( lsamen( 2, c2, 'HK' ) ) THEN
418 *
419 * Test error exits of the routines that use factorization
420 * of a symmetric indefinite matrix with rook
421 * (bounded Bunch-Kaufman) pivoting with the new storage
422 * format for factors L ( or U) and D.
423 *
424 * L (or U) is stored in A, diagonal of D is stored on the
425 * diagonal of A, subdiagonal of D is stored in a separate array E.
426 *
427 * ZHETRF_RK
428 *
429  srnamt = 'ZHETRF_RK'
430  infot = 1
431  CALL zhetrf_rk( '/', 0, a, 1, e, ip, w, 1, info )
432  CALL chkxer( 'ZHETRF_RK', infot, nout, lerr, ok )
433  infot = 2
434  CALL zhetrf_rk( 'U', -1, a, 1, e, ip, w, 1, info )
435  CALL chkxer( 'ZHETRF_RK', infot, nout, lerr, ok )
436  infot = 4
437  CALL zhetrf_rk( 'U', 2, a, 1, e, ip, w, 4, info )
438  CALL chkxer( 'ZHETRF_RK', infot, nout, lerr, ok )
439  infot = 8
440  CALL zhetrf_rk( 'U', 0, a, 1, e, ip, w, 0, info )
441  CALL chkxer( 'ZHETRF_RK', infot, nout, lerr, ok )
442  infot = 8
443  CALL zhetrf_rk( 'U', 0, a, 1, e, ip, w, -2, info )
444  CALL chkxer( 'ZHETRF_RK', infot, nout, lerr, ok )
445 *
446 * ZHETF2_RK
447 *
448  srnamt = 'ZHETF2_RK'
449  infot = 1
450  CALL zhetf2_rk( '/', 0, a, 1, e, ip, info )
451  CALL chkxer( 'ZHETF2_RK', infot, nout, lerr, ok )
452  infot = 2
453  CALL zhetf2_rk( 'U', -1, a, 1, e, ip, info )
454  CALL chkxer( 'ZHETF2_RK', infot, nout, lerr, ok )
455  infot = 4
456  CALL zhetf2_rk( 'U', 2, a, 1, e, ip, info )
457  CALL chkxer( 'ZHETF2_RK', infot, nout, lerr, ok )
458 *
459 * ZHETRI_3
460 *
461  srnamt = 'ZHETRI_3'
462  infot = 1
463  CALL zhetri_3( '/', 0, a, 1, e, ip, w, 1, info )
464  CALL chkxer( 'ZHETRI_3', infot, nout, lerr, ok )
465  infot = 2
466  CALL zhetri_3( 'U', -1, a, 1, e, ip, w, 1, info )
467  CALL chkxer( 'ZHETRI_3', infot, nout, lerr, ok )
468  infot = 4
469  CALL zhetri_3( 'U', 2, a, 1, e, ip, w, 1, info )
470  CALL chkxer( 'ZHETRI_3', infot, nout, lerr, ok )
471  infot = 8
472  CALL zhetri_3( 'U', 0, a, 1, e, ip, w, 0, info )
473  CALL chkxer( 'ZHETRI_3', infot, nout, lerr, ok )
474  infot = 8
475  CALL zhetri_3( 'U', 0, a, 1, e, ip, w, -2, info )
476  CALL chkxer( 'ZHETRI_3', infot, nout, lerr, ok )
477 *
478 * ZHETRI_3X
479 *
480  srnamt = 'ZHETRI_3X'
481  infot = 1
482  CALL zhetri_3x( '/', 0, a, 1, e, ip, w, 1, info )
483  CALL chkxer( 'ZHETRI_3X', infot, nout, lerr, ok )
484  infot = 2
485  CALL zhetri_3x( 'U', -1, a, 1, e, ip, w, 1, info )
486  CALL chkxer( 'ZHETRI_3X', infot, nout, lerr, ok )
487  infot = 4
488  CALL zhetri_3x( 'U', 2, a, 1, e, ip, w, 1, info )
489  CALL chkxer( 'ZHETRI_3X', infot, nout, lerr, ok )
490 *
491 * ZHETRS_3
492 *
493  srnamt = 'ZHETRS_3'
494  infot = 1
495  CALL zhetrs_3( '/', 0, 0, a, 1, e, ip, b, 1, info )
496  CALL chkxer( 'ZHETRS_3', infot, nout, lerr, ok )
497  infot = 2
498  CALL zhetrs_3( 'U', -1, 0, a, 1, e, ip, b, 1, info )
499  CALL chkxer( 'ZHETRS_3', infot, nout, lerr, ok )
500  infot = 3
501  CALL zhetrs_3( 'U', 0, -1, a, 1, e, ip, b, 1, info )
502  CALL chkxer( 'ZHETRS_3', infot, nout, lerr, ok )
503  infot = 5
504  CALL zhetrs_3( 'U', 2, 1, a, 1, e, ip, b, 2, info )
505  CALL chkxer( 'ZHETRS_3', infot, nout, lerr, ok )
506  infot = 9
507  CALL zhetrs_3( 'U', 2, 1, a, 2, e, ip, b, 1, info )
508  CALL chkxer( 'ZHETRS_3', infot, nout, lerr, ok )
509 *
510 * ZHECON_3
511 *
512  srnamt = 'ZHECON_3'
513  infot = 1
514  CALL zhecon_3( '/', 0, a, 1, e, ip, anrm, rcond, w, info )
515  CALL chkxer( 'ZHECON_3', infot, nout, lerr, ok )
516  infot = 2
517  CALL zhecon_3( 'U', -1, a, 1, e, ip, anrm, rcond, w, info )
518  CALL chkxer( 'ZHECON_3', infot, nout, lerr, ok )
519  infot = 4
520  CALL zhecon_3( 'U', 2, a, 1, e, ip, anrm, rcond, w, info )
521  CALL chkxer( 'ZHECON_3', infot, nout, lerr, ok )
522  infot = 7
523  CALL zhecon_3( 'U', 1, a, 1, e, ip, -1.0d0, rcond, w, info)
524  CALL chkxer( 'ZHECON_3', infot, nout, lerr, ok )
525 *
526  ELSE IF( lsamen( 2, c2, 'HP' ) ) THEN
527 *
528 * Test error exits of the routines that use factorization
529 * of a Hermitian indefinite packed matrix with patrial
530 * (Bunch-Kaufman) diagonal pivoting method.
531 *
532 * ZHPTRF
533 *
534  srnamt = 'ZHPTRF'
535  infot = 1
536  CALL zhptrf( '/', 0, a, ip, info )
537  CALL chkxer( 'ZHPTRF', infot, nout, lerr, ok )
538  infot = 2
539  CALL zhptrf( 'U', -1, a, ip, info )
540  CALL chkxer( 'ZHPTRF', infot, nout, lerr, ok )
541 *
542 * ZHPTRI
543 *
544  srnamt = 'ZHPTRI'
545  infot = 1
546  CALL zhptri( '/', 0, a, ip, w, info )
547  CALL chkxer( 'ZHPTRI', infot, nout, lerr, ok )
548  infot = 2
549  CALL zhptri( 'U', -1, a, ip, w, info )
550  CALL chkxer( 'ZHPTRI', infot, nout, lerr, ok )
551 *
552 * ZHPTRS
553 *
554  srnamt = 'ZHPTRS'
555  infot = 1
556  CALL zhptrs( '/', 0, 0, a, ip, b, 1, info )
557  CALL chkxer( 'ZHPTRS', infot, nout, lerr, ok )
558  infot = 2
559  CALL zhptrs( 'U', -1, 0, a, ip, b, 1, info )
560  CALL chkxer( 'ZHPTRS', infot, nout, lerr, ok )
561  infot = 3
562  CALL zhptrs( 'U', 0, -1, a, ip, b, 1, info )
563  CALL chkxer( 'ZHPTRS', infot, nout, lerr, ok )
564  infot = 7
565  CALL zhptrs( 'U', 2, 1, a, ip, b, 1, info )
566  CALL chkxer( 'ZHPTRS', infot, nout, lerr, ok )
567 *
568 * ZHPRFS
569 *
570  srnamt = 'ZHPRFS'
571  infot = 1
572  CALL zhprfs( '/', 0, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
573  $ info )
574  CALL chkxer( 'ZHPRFS', infot, nout, lerr, ok )
575  infot = 2
576  CALL zhprfs( 'U', -1, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
577  $ info )
578  CALL chkxer( 'ZHPRFS', infot, nout, lerr, ok )
579  infot = 3
580  CALL zhprfs( 'U', 0, -1, a, af, ip, b, 1, x, 1, r1, r2, w, r,
581  $ info )
582  CALL chkxer( 'ZHPRFS', infot, nout, lerr, ok )
583  infot = 8
584  CALL zhprfs( 'U', 2, 1, a, af, ip, b, 1, x, 2, r1, r2, w, r,
585  $ info )
586  CALL chkxer( 'ZHPRFS', infot, nout, lerr, ok )
587  infot = 10
588  CALL zhprfs( 'U', 2, 1, a, af, ip, b, 2, x, 1, r1, r2, w, r,
589  $ info )
590  CALL chkxer( 'ZHPRFS', infot, nout, lerr, ok )
591 *
592 * ZHPCON
593 *
594  srnamt = 'ZHPCON'
595  infot = 1
596  CALL zhpcon( '/', 0, a, ip, anrm, rcond, w, info )
597  CALL chkxer( 'ZHPCON', infot, nout, lerr, ok )
598  infot = 2
599  CALL zhpcon( 'U', -1, a, ip, anrm, rcond, w, info )
600  CALL chkxer( 'ZHPCON', infot, nout, lerr, ok )
601  infot = 5
602  CALL zhpcon( 'U', 1, a, ip, -anrm, rcond, w, info )
603  CALL chkxer( 'ZHPCON', infot, nout, lerr, ok )
604  END IF
605 *
606 * Print a summary line.
607 *
608  CALL alaesm( path, ok, nout )
609 *
610  RETURN
611 *
612 * End of ZERRHEX
613 *
614  END
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
subroutine alaesm(PATH, OK, NOUT)
ALAESM
Definition: alaesm.f:63
subroutine zerrhe(PATH, NUNIT)
ZERRHE
Definition: zerrhe.f:55
subroutine zhetri_3(UPLO, N, A, LDA, E, IPIV, WORK, LWORK, INFO)
ZHETRI_3
Definition: zhetri_3.f:170
subroutine zherfs(UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
ZHERFS
Definition: zherfs.f:192
subroutine zhetf2(UPLO, N, A, LDA, IPIV, INFO)
ZHETF2 computes the factorization of a complex Hermitian matrix, using the diagonal pivoting method (...
Definition: zhetf2.f:191
subroutine zhecon_3(UPLO, N, A, LDA, E, IPIV, ANORM, RCOND, WORK, INFO)
ZHECON_3
Definition: zhecon_3.f:166
subroutine zhetri_rook(UPLO, N, A, LDA, IPIV, WORK, INFO)
ZHETRI_ROOK computes the inverse of HE matrix using the factorization obtained with the bounded Bunch...
Definition: zhetri_rook.f:128
subroutine zhetri(UPLO, N, A, LDA, IPIV, WORK, INFO)
ZHETRI
Definition: zhetri.f:114
subroutine zhecon(UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, INFO)
ZHECON
Definition: zhecon.f:125
subroutine zhetrf_rk(UPLO, N, A, LDA, E, IPIV, WORK, LWORK, INFO)
ZHETRF_RK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bunch...
Definition: zhetrf_rk.f:259
subroutine zhetrs_3(UPLO, N, NRHS, A, LDA, E, IPIV, B, LDB, INFO)
ZHETRS_3
Definition: zhetrs_3.f:165
subroutine zhetf2_rook(UPLO, N, A, LDA, IPIV, INFO)
ZHETF2_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
Definition: zhetf2_rook.f:194
subroutine zhetri_3x(UPLO, N, A, LDA, E, IPIV, WORK, NB, INFO)
ZHETRI_3X
Definition: zhetri_3x.f:159
subroutine zhecon_rook(UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, INFO)
ZHECON_ROOK estimates the reciprocal of the condition number fort HE matrices using factorization obt...
Definition: zhecon_rook.f:139
subroutine zhetrs_rook(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
ZHETRS_ROOK computes the solution to a system of linear equations A * X = B for HE matrices using fac...
Definition: zhetrs_rook.f:136
subroutine zherfsx(UPLO, EQUED, N, NRHS, A, LDA, AF, LDAF, IPIV, S, B, LDB, X, LDX, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_NORM, ERR_BNDS_COMP, NPARAMS, PARAMS, WORK, RWORK, INFO)
ZHERFSX
Definition: zherfsx.f:401
subroutine zhetf2_rk(UPLO, N, A, LDA, E, IPIV, INFO)
ZHETF2_RK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bunch...
Definition: zhetf2_rk.f:241
subroutine zhetrf_rook(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
ZHETRF_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
Definition: zhetrf_rook.f:212
subroutine zhetri2(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
ZHETRI2
Definition: zhetri2.f:127
subroutine zhetrs(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
ZHETRS
Definition: zhetrs.f:120
subroutine zhetri2x(UPLO, N, A, LDA, IPIV, WORK, NB, INFO)
ZHETRI2X
Definition: zhetri2x.f:120
subroutine zhetrf(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
ZHETRF
Definition: zhetrf.f:177
subroutine zhpcon(UPLO, N, AP, IPIV, ANORM, RCOND, WORK, INFO)
ZHPCON
Definition: zhpcon.f:118
subroutine zhptrf(UPLO, N, AP, IPIV, INFO)
ZHPTRF
Definition: zhptrf.f:159
subroutine zhptri(UPLO, N, AP, IPIV, WORK, INFO)
ZHPTRI
Definition: zhptri.f:109
subroutine zhprfs(UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
ZHPRFS
Definition: zhprfs.f:180
subroutine zhptrs(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
ZHPTRS
Definition: zhptrs.f:115