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