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