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