LAPACK  3.10.1
LAPACK: Linear Algebra PACKage
cerrhex.f
Go to the documentation of this file.
1 *> \brief \b CERRHEX
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 CERRHE( 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 *> CERRHE tests the error exits for the COMPLEX routines
25 *> for Hermitian indefinite matrices.
26 *>
27 *> Note that this file is used only when the XBLAS are available,
28 *> otherwise cerrhe.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 complex_lin
55 *
56 * =====================================================================
57  SUBROUTINE cerrhe( 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  REAL ANRM, RCOND, BERR
80 * ..
81 * .. Local Arrays ..
82  INTEGER IP( NMAX )
83  REAL R( NMAX ), R1( NMAX ), R2( NMAX ),
84  $ S( NMAX ), ERR_BNDS_N( NMAX, 3 ),
85  $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 )
86  COMPLEX 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 cmplx, real
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 ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
124  af( i, j ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
125  10 CONTINUE
126  b( j ) = 0.e+0
127  e( j ) = 0.e+0
128  r1( j ) = 0.e+0
129  r2( j ) = 0.e+0
130  w( j ) = 0.e+0
131  x( j ) = 0.e+0
132  ip( j ) = j
133  20 CONTINUE
134  anrm = 1.0
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 * CHETRF
144 *
145  srnamt = 'CHETRF'
146  infot = 1
147  CALL chetrf( '/', 0, a, 1, ip, w, 1, info )
148  CALL chkxer( 'CHETRF', infot, nout, lerr, ok )
149  infot = 2
150  CALL chetrf( 'U', -1, a, 1, ip, w, 1, info )
151  CALL chkxer( 'CHETRF', infot, nout, lerr, ok )
152  infot = 4
153  CALL chetrf( 'U', 2, a, 1, ip, w, 4, info )
154  CALL chkxer( 'CHETRF', infot, nout, lerr, ok )
155  infot = 7
156  CALL chetrf( 'U', 0, a, 1, ip, w, 0, info )
157  CALL chkxer( 'CHETRF', infot, nout, lerr, ok )
158  infot = 7
159  CALL chetrf( 'U', 0, a, 1, ip, w, -2, info )
160  CALL chkxer( 'CHETRF', infot, nout, lerr, ok )
161 *
162 * CHETF2
163 *
164  srnamt = 'CHETF2'
165  infot = 1
166  CALL chetf2( '/', 0, a, 1, ip, info )
167  CALL chkxer( 'CHETF2', infot, nout, lerr, ok )
168  infot = 2
169  CALL chetf2( 'U', -1, a, 1, ip, info )
170  CALL chkxer( 'CHETF2', infot, nout, lerr, ok )
171  infot = 4
172  CALL chetf2( 'U', 2, a, 1, ip, info )
173  CALL chkxer( 'CHETF2', infot, nout, lerr, ok )
174 *
175 * CHETRI
176 *
177  srnamt = 'CHETRI'
178  infot = 1
179  CALL chetri( '/', 0, a, 1, ip, w, info )
180  CALL chkxer( 'CHETRI', infot, nout, lerr, ok )
181  infot = 2
182  CALL chetri( 'U', -1, a, 1, ip, w, info )
183  CALL chkxer( 'CHETRI', infot, nout, lerr, ok )
184  infot = 4
185  CALL chetri( 'U', 2, a, 1, ip, w, info )
186  CALL chkxer( 'CHETRI', infot, nout, lerr, ok )
187 *
188 * CHETRI2
189 *
190  srnamt = 'CHETRI2'
191  infot = 1
192  CALL chetri2( '/', 0, a, 1, ip, w, 1, info )
193  CALL chkxer( 'CHETRI2', infot, nout, lerr, ok )
194  infot = 2
195  CALL chetri2( 'U', -1, a, 1, ip, w, 1, info )
196  CALL chkxer( 'CHETRI2', infot, nout, lerr, ok )
197  infot = 4
198  CALL chetri2( 'U', 2, a, 1, ip, w, 1, info )
199  CALL chkxer( 'CHETRI2', infot, nout, lerr, ok )
200 *
201 * CHETRI2X
202 *
203  srnamt = 'CHETRI2X'
204  infot = 1
205  CALL chetri2x( '/', 0, a, 1, ip, w, 1, info )
206  CALL chkxer( 'CHETRI2X', infot, nout, lerr, ok )
207  infot = 2
208  CALL chetri2x( 'U', -1, a, 1, ip, w, 1, info )
209  CALL chkxer( 'CHETRI2X', infot, nout, lerr, ok )
210  infot = 4
211  CALL chetri2x( 'U', 2, a, 1, ip, w, 1, info )
212  CALL chkxer( 'CHETRI2X', infot, nout, lerr, ok )
213 *
214 * CHETRS
215 *
216  srnamt = 'CHETRS'
217  infot = 1
218  CALL chetrs( '/', 0, 0, a, 1, ip, b, 1, info )
219  CALL chkxer( 'CHETRS', infot, nout, lerr, ok )
220  infot = 2
221  CALL chetrs( 'U', -1, 0, a, 1, ip, b, 1, info )
222  CALL chkxer( 'CHETRS', infot, nout, lerr, ok )
223  infot = 3
224  CALL chetrs( 'U', 0, -1, a, 1, ip, b, 1, info )
225  CALL chkxer( 'CHETRS', infot, nout, lerr, ok )
226  infot = 5
227  CALL chetrs( 'U', 2, 1, a, 1, ip, b, 2, info )
228  CALL chkxer( 'CHETRS', infot, nout, lerr, ok )
229  infot = 8
230  CALL chetrs( 'U', 2, 1, a, 2, ip, b, 1, info )
231  CALL chkxer( 'CHETRS', infot, nout, lerr, ok )
232 *
233 * CHERFS
234 *
235  srnamt = 'CHERFS'
236  infot = 1
237  CALL cherfs( '/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
238  $ r, info )
239  CALL chkxer( 'CHERFS', infot, nout, lerr, ok )
240  infot = 2
241  CALL cherfs( 'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
242  $ w, r, info )
243  CALL chkxer( 'CHERFS', infot, nout, lerr, ok )
244  infot = 3
245  CALL cherfs( 'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
246  $ w, r, info )
247  CALL chkxer( 'CHERFS', infot, nout, lerr, ok )
248  infot = 5
249  CALL cherfs( 'U', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
250  $ r, info )
251  CALL chkxer( 'CHERFS', infot, nout, lerr, ok )
252  infot = 7
253  CALL cherfs( 'U', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
254  $ r, info )
255  CALL chkxer( 'CHERFS', infot, nout, lerr, ok )
256  infot = 10
257  CALL cherfs( 'U', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
258  $ r, info )
259  CALL chkxer( 'CHERFS', infot, nout, lerr, ok )
260  infot = 12
261  CALL cherfs( 'U', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
262  $ r, info )
263  CALL chkxer( 'CHERFS', infot, nout, lerr, ok )
264 *
265 * CHECON
266 *
267  srnamt = 'CHECON'
268  infot = 1
269  CALL checon( '/', 0, a, 1, ip, anrm, rcond, w, info )
270  CALL chkxer( 'CHECON', infot, nout, lerr, ok )
271  infot = 2
272  CALL checon( 'U', -1, a, 1, ip, anrm, rcond, w, info )
273  CALL chkxer( 'CHECON', infot, nout, lerr, ok )
274  infot = 4
275  CALL checon( 'U', 2, a, 1, ip, anrm, rcond, w, info )
276  CALL chkxer( 'CHECON', infot, nout, lerr, ok )
277  infot = 6
278  CALL checon( 'U', 1, a, 1, ip, -anrm, rcond, w, info )
279  CALL chkxer( 'CHECON', infot, nout, lerr, ok )
280 *
281 * CHERFSX
282 *
283  n_err_bnds = 3
284  nparams = 0
285  srnamt = 'CHERFSX'
286  infot = 1
287  CALL cherfsx( '/', eq, 0, 0, a, 1, af, 1, ip, s, b, 1, x, 1,
288  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
289  $ params, w, r, info )
290  CALL chkxer( 'CHERFSX', infot, nout, lerr, ok )
291  infot = 2
292  CALL cherfsx( 'U', eq, -1, 0, a, 1, af, 1, ip, s, b, 1, x, 1,
293  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
294  $ params, w, r, info )
295  CALL chkxer( 'CHERFSX', infot, nout, lerr, ok )
296  eq = 'N'
297  infot = 3
298  CALL cherfsx( 'U', eq, -1, 0, a, 1, af, 1, ip, s, b, 1, x, 1,
299  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
300  $ params, w, r, info )
301  CALL chkxer( 'CHERFSX', infot, nout, lerr, ok )
302  infot = 4
303  CALL cherfsx( 'U', eq, 0, -1, a, 1, af, 1, ip, s, b, 1, x, 1,
304  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
305  $ params, w, r, info )
306  CALL chkxer( 'CHERFSX', infot, nout, lerr, ok )
307  infot = 6
308  CALL cherfsx( 'U', eq, 2, 1, a, 1, af, 2, ip, s, b, 2, x, 2,
309  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
310  $ params, w, r, info )
311  CALL chkxer( 'CHERFSX', infot, nout, lerr, ok )
312  infot = 8
313  CALL cherfsx( 'U', eq, 2, 1, a, 2, af, 1, ip, s, b, 2, x, 2,
314  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
315  $ params, w, r, info )
316  CALL chkxer( 'CHERFSX', infot, nout, lerr, ok )
317  infot = 12
318  CALL cherfsx( 'U', eq, 2, 1, a, 2, af, 2, ip, s, b, 1, x, 2,
319  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
320  $ params, w, r, info )
321  CALL chkxer( 'CHERFSX', infot, nout, lerr, ok )
322  infot = 14
323  CALL cherfsx( 'U', eq, 2, 1, a, 2, af, 2, ip, s, b, 2, x, 1,
324  $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
325  $ params, w, r, info )
326  CALL chkxer( 'CHERFSX', infot, nout, lerr, ok )
327 *
328  ELSE IF( lsamen( 2, c2, 'HR' ) ) THEN
329 *
330 * Test error exits of the routines that use factorization
331 * of a Hermitian indefinite matrix with rook
332 * (bounded Bunch-Kaufman) diagonal pivoting method.
333 *
334 * CHETRF_ROOK
335 *
336  srnamt = 'CHETRF_ROOK'
337  infot = 1
338  CALL chetrf_rook( '/', 0, a, 1, ip, w, 1, info )
339  CALL chkxer( 'CHETRF_ROOK', infot, nout, lerr, ok )
340  infot = 2
341  CALL chetrf_rook( 'U', -1, a, 1, ip, w, 1, info )
342  CALL chkxer( 'CHETRF_ROOK', infot, nout, lerr, ok )
343  infot = 4
344  CALL chetrf_rook( 'U', 2, a, 1, ip, w, 4, info )
345  CALL chkxer( 'CHETRF_ROOK', infot, nout, lerr, ok )
346  infot = 7
347  CALL chetrf_rook( 'U', 0, a, 1, ip, w, 0, info )
348  CALL chkxer( 'CHETRF_ROOK', infot, nout, lerr, ok )
349  infot = 7
350  CALL chetrf_rook( 'U', 0, a, 1, ip, w, -2, info )
351  CALL chkxer( 'CHETRF_ROOK', infot, nout, lerr, ok )
352 *
353 * CHETF2_ROOK
354 *
355  srnamt = 'CHETF2_ROOK'
356  infot = 1
357  CALL chetf2_rook( '/', 0, a, 1, ip, info )
358  CALL chkxer( 'CHETF2_ROOK', infot, nout, lerr, ok )
359  infot = 2
360  CALL chetf2_rook( 'U', -1, a, 1, ip, info )
361  CALL chkxer( 'CHETF2_ROOK', infot, nout, lerr, ok )
362  infot = 4
363  CALL chetf2_rook( 'U', 2, a, 1, ip, info )
364  CALL chkxer( 'CHETF2_ROOK', infot, nout, lerr, ok )
365 *
366 * CHETRI_ROOK
367 *
368  srnamt = 'CHETRI_ROOK'
369  infot = 1
370  CALL chetri_rook( '/', 0, a, 1, ip, w, info )
371  CALL chkxer( 'CHETRI_ROOK', infot, nout, lerr, ok )
372  infot = 2
373  CALL chetri_rook( 'U', -1, a, 1, ip, w, info )
374  CALL chkxer( 'CHETRI_ROOK', infot, nout, lerr, ok )
375  infot = 4
376  CALL chetri_rook( 'U', 2, a, 1, ip, w, info )
377  CALL chkxer( 'CHETRI_ROOK', infot, nout, lerr, ok )
378 *
379 * CHETRS_ROOK
380 *
381  srnamt = 'CHETRS_ROOK'
382  infot = 1
383  CALL chetrs_rook( '/', 0, 0, a, 1, ip, b, 1, info )
384  CALL chkxer( 'CHETRS_ROOK', infot, nout, lerr, ok )
385  infot = 2
386  CALL chetrs_rook( 'U', -1, 0, a, 1, ip, b, 1, info )
387  CALL chkxer( 'CHETRS_ROOK', infot, nout, lerr, ok )
388  infot = 3
389  CALL chetrs_rook( 'U', 0, -1, a, 1, ip, b, 1, info )
390  CALL chkxer( 'CHETRS_ROOK', infot, nout, lerr, ok )
391  infot = 5
392  CALL chetrs_rook( 'U', 2, 1, a, 1, ip, b, 2, info )
393  CALL chkxer( 'CHETRS_ROOK', infot, nout, lerr, ok )
394  infot = 8
395  CALL chetrs_rook( 'U', 2, 1, a, 2, ip, b, 1, info )
396  CALL chkxer( 'CHETRS_ROOK', infot, nout, lerr, ok )
397 *
398 * CHECON_ROOK
399 *
400  srnamt = 'CHECON_ROOK'
401  infot = 1
402  CALL checon_rook( '/', 0, a, 1, ip, anrm, rcond, w, info )
403  CALL chkxer( 'CHECON_ROOK', infot, nout, lerr, ok )
404  infot = 2
405  CALL checon_rook( 'U', -1, a, 1, ip, anrm, rcond, w, info )
406  CALL chkxer( 'CHECON_ROOK', infot, nout, lerr, ok )
407  infot = 4
408  CALL checon_rook( 'U', 2, a, 1, ip, anrm, rcond, w, info )
409  CALL chkxer( 'CHECON_ROOK', infot, nout, lerr, ok )
410  infot = 6
411  CALL checon_rook( 'U', 1, a, 1, ip, -anrm, rcond, w, info )
412  CALL chkxer( 'CHECON_ROOK', infot, nout, lerr, ok )
413 *
414  ELSE IF( lsamen( 2, c2, 'HK' ) ) THEN
415 *
416 * Test error exits of the routines that use factorization
417 * of a Hermitian indefinite matrix with rook
418 * (bounded Bunch-Kaufman) pivoting with the new storage
419 * format for factors L ( or U) and D.
420 *
421 * L (or U) is stored in A, diagonal of D is stored on the
422 * diagonal of A, subdiagonal of D is stored in a separate array E.
423 *
424 * CHETRF_RK
425 *
426  srnamt = 'CHETRF_RK'
427  infot = 1
428  CALL chetrf_rk( '/', 0, a, 1, e, ip, w, 1, info )
429  CALL chkxer( 'CHETRF_RK', infot, nout, lerr, ok )
430  infot = 2
431  CALL chetrf_rk( 'U', -1, a, 1, e, ip, w, 1, info )
432  CALL chkxer( 'CHETRF_RK', infot, nout, lerr, ok )
433  infot = 4
434  CALL chetrf_rk( 'U', 2, a, 1, e, ip, w, 4, info )
435  CALL chkxer( 'CHETRF_RK', infot, nout, lerr, ok )
436  infot = 8
437  CALL chetrf_rk( 'U', 0, a, 1, e, ip, w, 0, info )
438  CALL chkxer( 'CHETRF_RK', infot, nout, lerr, ok )
439  infot = 8
440  CALL chetrf_rk( 'U', 0, a, 1, e, ip, w, -2, info )
441  CALL chkxer( 'CHETRF_RK', infot, nout, lerr, ok )
442 *
443 * CHETF2_RK
444 *
445  srnamt = 'CHETF2_RK'
446  infot = 1
447  CALL chetf2_rk( '/', 0, a, 1, e, ip, info )
448  CALL chkxer( 'CHETF2_RK', infot, nout, lerr, ok )
449  infot = 2
450  CALL chetf2_rk( 'U', -1, a, 1, e, ip, info )
451  CALL chkxer( 'CHETF2_RK', infot, nout, lerr, ok )
452  infot = 4
453  CALL chetf2_rk( 'U', 2, a, 1, e, ip, info )
454  CALL chkxer( 'CHETF2_RK', infot, nout, lerr, ok )
455 *
456 * CHETRI_3
457 *
458  srnamt = 'CHETRI_3'
459  infot = 1
460  CALL chetri_3( '/', 0, a, 1, e, ip, w, 1, info )
461  CALL chkxer( 'CHETRI_3', infot, nout, lerr, ok )
462  infot = 2
463  CALL chetri_3( 'U', -1, a, 1, e, ip, w, 1, info )
464  CALL chkxer( 'CHETRI_3', infot, nout, lerr, ok )
465  infot = 4
466  CALL chetri_3( 'U', 2, a, 1, e, ip, w, 1, info )
467  CALL chkxer( 'CHETRI_3', infot, nout, lerr, ok )
468  infot = 8
469  CALL chetri_3( 'U', 0, a, 1, e, ip, w, 0, info )
470  CALL chkxer( 'CHETRI_3', infot, nout, lerr, ok )
471  infot = 8
472  CALL chetri_3( 'U', 0, a, 1, e, ip, w, -2, info )
473  CALL chkxer( 'CHETRI_3', infot, nout, lerr, ok )
474 *
475 * CHETRI_3X
476 *
477  srnamt = 'CHETRI_3X'
478  infot = 1
479  CALL chetri_3x( '/', 0, a, 1, e, ip, w, 1, info )
480  CALL chkxer( 'CHETRI_3X', infot, nout, lerr, ok )
481  infot = 2
482  CALL chetri_3x( 'U', -1, a, 1, e, ip, w, 1, info )
483  CALL chkxer( 'CHETRI_3X', infot, nout, lerr, ok )
484  infot = 4
485  CALL chetri_3x( 'U', 2, a, 1, e, ip, w, 1, info )
486  CALL chkxer( 'CHETRI_3X', infot, nout, lerr, ok )
487 *
488 * CHETRS_3
489 *
490  srnamt = 'CHETRS_3'
491  infot = 1
492  CALL chetrs_3( '/', 0, 0, a, 1, e, ip, b, 1, info )
493  CALL chkxer( 'CHETRS_3', infot, nout, lerr, ok )
494  infot = 2
495  CALL chetrs_3( 'U', -1, 0, a, 1, e, ip, b, 1, info )
496  CALL chkxer( 'CHETRS_3', infot, nout, lerr, ok )
497  infot = 3
498  CALL chetrs_3( 'U', 0, -1, a, 1, e, ip, b, 1, info )
499  CALL chkxer( 'CHETRS_3', infot, nout, lerr, ok )
500  infot = 5
501  CALL chetrs_3( 'U', 2, 1, a, 1, e, ip, b, 2, info )
502  CALL chkxer( 'CHETRS_3', infot, nout, lerr, ok )
503  infot = 9
504  CALL chetrs_3( 'U', 2, 1, a, 2, e, ip, b, 1, info )
505  CALL chkxer( 'CHETRS_3', infot, nout, lerr, ok )
506 *
507 * CHECON_3
508 *
509  srnamt = 'CHECON_3'
510  infot = 1
511  CALL checon_3( '/', 0, a, 1, e, ip, anrm, rcond, w, info )
512  CALL chkxer( 'CHECON_3', infot, nout, lerr, ok )
513  infot = 2
514  CALL checon_3( 'U', -1, a, 1, e, ip, anrm, rcond, w, info )
515  CALL chkxer( 'CHECON_3', infot, nout, lerr, ok )
516  infot = 4
517  CALL checon_3( 'U', 2, a, 1, e, ip, anrm, rcond, w, info )
518  CALL chkxer( 'CHECON_3', infot, nout, lerr, ok )
519  infot = 7
520  CALL checon_3( 'U', 1, a, 1, e, ip, -1.0e0, rcond, w, info)
521  CALL chkxer( 'CHECON_3', infot, nout, lerr, ok )
522 *
523  ELSE IF( lsamen( 2, c2, 'HP' ) ) THEN
524 *
525 * Test error exits of the routines that use factorization
526 * of a Hermitian indefinite packed matrix with patrial
527 * (Bunch-Kaufman) diagonal pivoting method.
528 *
529 * CHPTRF
530 *
531  srnamt = 'CHPTRF'
532  infot = 1
533  CALL chptrf( '/', 0, a, ip, info )
534  CALL chkxer( 'CHPTRF', infot, nout, lerr, ok )
535  infot = 2
536  CALL chptrf( 'U', -1, a, ip, info )
537  CALL chkxer( 'CHPTRF', infot, nout, lerr, ok )
538 *
539 * CHPTRI
540 *
541  srnamt = 'CHPTRI'
542  infot = 1
543  CALL chptri( '/', 0, a, ip, w, info )
544  CALL chkxer( 'CHPTRI', infot, nout, lerr, ok )
545  infot = 2
546  CALL chptri( 'U', -1, a, ip, w, info )
547  CALL chkxer( 'CHPTRI', infot, nout, lerr, ok )
548 *
549 * CHPTRS
550 *
551  srnamt = 'CHPTRS'
552  infot = 1
553  CALL chptrs( '/', 0, 0, a, ip, b, 1, info )
554  CALL chkxer( 'CHPTRS', infot, nout, lerr, ok )
555  infot = 2
556  CALL chptrs( 'U', -1, 0, a, ip, b, 1, info )
557  CALL chkxer( 'CHPTRS', infot, nout, lerr, ok )
558  infot = 3
559  CALL chptrs( 'U', 0, -1, a, ip, b, 1, info )
560  CALL chkxer( 'CHPTRS', infot, nout, lerr, ok )
561  infot = 7
562  CALL chptrs( 'U', 2, 1, a, ip, b, 1, info )
563  CALL chkxer( 'CHPTRS', infot, nout, lerr, ok )
564 *
565 * CHPRFS
566 *
567  srnamt = 'CHPRFS'
568  infot = 1
569  CALL chprfs( '/', 0, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
570  $ info )
571  CALL chkxer( 'CHPRFS', infot, nout, lerr, ok )
572  infot = 2
573  CALL chprfs( 'U', -1, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
574  $ info )
575  CALL chkxer( 'CHPRFS', infot, nout, lerr, ok )
576  infot = 3
577  CALL chprfs( 'U', 0, -1, a, af, ip, b, 1, x, 1, r1, r2, w, r,
578  $ info )
579  CALL chkxer( 'CHPRFS', infot, nout, lerr, ok )
580  infot = 8
581  CALL chprfs( 'U', 2, 1, a, af, ip, b, 1, x, 2, r1, r2, w, r,
582  $ info )
583  CALL chkxer( 'CHPRFS', infot, nout, lerr, ok )
584  infot = 10
585  CALL chprfs( 'U', 2, 1, a, af, ip, b, 2, x, 1, r1, r2, w, r,
586  $ info )
587  CALL chkxer( 'CHPRFS', infot, nout, lerr, ok )
588 *
589 * CHPCON
590 *
591  srnamt = 'CHPCON'
592  infot = 1
593  CALL chpcon( '/', 0, a, ip, anrm, rcond, w, info )
594  CALL chkxer( 'CHPCON', infot, nout, lerr, ok )
595  infot = 2
596  CALL chpcon( 'U', -1, a, ip, anrm, rcond, w, info )
597  CALL chkxer( 'CHPCON', infot, nout, lerr, ok )
598  infot = 5
599  CALL chpcon( 'U', 1, a, ip, -anrm, rcond, w, info )
600  CALL chkxer( 'CHPCON', infot, nout, lerr, ok )
601  END IF
602 *
603 * Print a summary line.
604 *
605  CALL alaesm( path, ok, nout )
606 *
607  RETURN
608 *
609 * End of CERRHEX
610 *
611  END
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
subroutine alaesm(PATH, OK, NOUT)
ALAESM
Definition: alaesm.f:63
subroutine cerrhe(PATH, NUNIT)
CERRHE
Definition: cerrhe.f:55
subroutine chetf2_rook(UPLO, N, A, LDA, IPIV, INFO)
CHETF2_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
Definition: chetf2_rook.f:194
subroutine chetrf(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CHETRF
Definition: chetrf.f:177
subroutine checon_rook(UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, INFO)
CHECON_ROOK estimates the reciprocal of the condition number fort HE matrices using factorization obt...
Definition: checon_rook.f:139
subroutine cherfs(UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
CHERFS
Definition: cherfs.f:192
subroutine chetri_3x(UPLO, N, A, LDA, E, IPIV, WORK, NB, INFO)
CHETRI_3X
Definition: chetri_3x.f:159
subroutine chetrs_rook(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CHETRS_ROOK computes the solution to a system of linear equations A * X = B for HE matrices using fac...
Definition: chetrs_rook.f:136
subroutine chetri_3(UPLO, N, A, LDA, E, IPIV, WORK, LWORK, INFO)
CHETRI_3
Definition: chetri_3.f:170
subroutine chetf2(UPLO, N, A, LDA, IPIV, INFO)
CHETF2 computes the factorization of a complex Hermitian matrix, using the diagonal pivoting method (...
Definition: chetf2.f:186
subroutine chetrf_rook(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CHETRF_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
Definition: chetrf_rook.f:212
subroutine chetri2(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CHETRI2
Definition: chetri2.f:127
subroutine chetrf_rk(UPLO, N, A, LDA, E, IPIV, WORK, LWORK, INFO)
CHETRF_RK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bunch...
Definition: chetrf_rk.f:259
subroutine checon_3(UPLO, N, A, LDA, E, IPIV, ANORM, RCOND, WORK, INFO)
CHECON_3
Definition: checon_3.f:166
subroutine checon(UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, INFO)
CHECON
Definition: checon.f:125
subroutine chetrs(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CHETRS
Definition: chetrs.f:120
subroutine chetf2_rk(UPLO, N, A, LDA, E, IPIV, INFO)
CHETF2_RK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bunch...
Definition: chetf2_rk.f:241
subroutine chetri_rook(UPLO, N, A, LDA, IPIV, WORK, INFO)
CHETRI_ROOK computes the inverse of HE matrix using the factorization obtained with the bounded Bunch...
Definition: chetri_rook.f:128
subroutine cherfsx(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)
CHERFSX
Definition: cherfsx.f:401
subroutine chetri(UPLO, N, A, LDA, IPIV, WORK, INFO)
CHETRI
Definition: chetri.f:114
subroutine chetrs_3(UPLO, N, NRHS, A, LDA, E, IPIV, B, LDB, INFO)
CHETRS_3
Definition: chetrs_3.f:165
subroutine chetri2x(UPLO, N, A, LDA, IPIV, WORK, NB, INFO)
CHETRI2X
Definition: chetri2x.f:120
subroutine chptrs(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
CHPTRS
Definition: chptrs.f:115
subroutine chptrf(UPLO, N, AP, IPIV, INFO)
CHPTRF
Definition: chptrf.f:159
subroutine chpcon(UPLO, N, AP, IPIV, ANORM, RCOND, WORK, INFO)
CHPCON
Definition: chpcon.f:118
subroutine chprfs(UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
CHPRFS
Definition: chprfs.f:180
subroutine chptri(UPLO, N, AP, IPIV, WORK, INFO)
CHPTRI
Definition: chptri.f:109