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