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