OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cerrhe.f
Go to the documentation of this file.
1*> \brief \b CERRHE
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*> \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 complex_lin
52*
53* =====================================================================
54 SUBROUTINE cerrhe( 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 REAL ANRM, RCOND
76* ..
77* .. Local Arrays ..
78 INTEGER IP( NMAX )
79 REAL R( NMAX ), R1( NMAX ), R2( NMAX )
80 COMPLEX 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 ..
95 $ chptri, chptrs
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 cmplx, real
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 ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
120 af( i, j ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
121 10 CONTINUE
122 b( j ) = 0.e+0
123 e( j ) = 0.e+0
124 r1( j ) = 0.e+0
125 r2( j ) = 0.e+0
126 w( j ) = 0.e+0
127 x( j ) = 0.e+0
128 ip( j ) = j
129 20 CONTINUE
130 anrm = 1.0
131 ok = .true.
132*
133 IF( lsamen( 2, c2, 'HE' ) ) THEN
134*
135* Test error exits of the routines that use factorization
136* of a Hermitian indefinite matrix with patrial
137* (Bunch-Kaufman) diagonal pivoting method.
138*
139* CHETRF
140*
141 srnamt = 'chetrf'
142 INFOT = 1
143 CALL CHETRF( '/', 0, A, 1, IP, W, 1, INFO )
144 CALL CHKXER( 'chetrf', INFOT, NOUT, LERR, OK )
145 INFOT = 2
146 CALL CHETRF( 'u', -1, A, 1, IP, W, 1, INFO )
147 CALL CHKXER( 'chetrf', INFOT, NOUT, LERR, OK )
148 INFOT = 4
149 CALL CHETRF( 'u', 2, A, 1, IP, W, 4, INFO )
150 CALL CHKXER( 'chetrf', INFOT, NOUT, LERR, OK )
151 INFOT = 7
152 CALL CHETRF( 'u', 0, A, 1, IP, W, 0, INFO )
153 CALL CHKXER( 'chetrf', INFOT, NOUT, LERR, OK )
154 INFOT = 7
155 CALL CHETRF( 'u', 0, A, 1, IP, W, -2, INFO )
156 CALL CHKXER( 'chetrf', INFOT, NOUT, LERR, OK )
157*
158* CHETF2
159*
160 SRNAMT = 'chetf2'
161 INFOT = 1
162 CALL CHETF2( '/', 0, A, 1, IP, INFO )
163 CALL CHKXER( 'chetf2', INFOT, NOUT, LERR, OK )
164 INFOT = 2
165 CALL CHETF2( 'u', -1, A, 1, IP, INFO )
166 CALL CHKXER( 'chetf2', INFOT, NOUT, LERR, OK )
167 INFOT = 4
168 CALL CHETF2( 'u', 2, A, 1, IP, INFO )
169 CALL CHKXER( 'chetf2', INFOT, NOUT, LERR, OK )
170*
171* CHETRI
172*
173 SRNAMT = 'chetri'
174 INFOT = 1
175 CALL CHETRI( '/', 0, A, 1, IP, W, INFO )
176 CALL CHKXER( 'chetri', INFOT, NOUT, LERR, OK )
177 INFOT = 2
178 CALL CHETRI( 'u', -1, A, 1, IP, W, INFO )
179 CALL CHKXER( 'chetri', INFOT, NOUT, LERR, OK )
180 INFOT = 4
181 CALL CHETRI( 'u', 2, A, 1, IP, W, INFO )
182 CALL CHKXER( 'chetri', INFOT, NOUT, LERR, OK )
183*
184* CHETRI2
185*
186 SRNAMT = 'chetri2'
187 INFOT = 1
188 CALL CHETRI2( '/', 0, A, 1, IP, W, 1, INFO )
189 CALL CHKXER( 'chetri2', INFOT, NOUT, LERR, OK )
190 INFOT = 2
191 CALL CHETRI2( 'u', -1, A, 1, IP, W, 1, INFO )
192 CALL CHKXER( 'chetri2', INFOT, NOUT, LERR, OK )
193 INFOT = 4
194 CALL CHETRI2( 'u', 2, A, 1, IP, W, 1, INFO )
195 CALL CHKXER( 'chetri2', INFOT, NOUT, LERR, OK )
196*
197* CHETRI2X
198*
199 SRNAMT = 'chetri2x'
200 INFOT = 1
201 CALL CHETRI2X( '/', 0, A, 1, IP, W, 1, INFO )
202 CALL CHKXER( 'chetri2x', INFOT, NOUT, LERR, OK )
203 INFOT = 2
204 CALL CHETRI2X( 'u', -1, A, 1, IP, W, 1, INFO )
205 CALL CHKXER( 'chetri2x', INFOT, NOUT, LERR, OK )
206 INFOT = 4
207 CALL CHETRI2X( 'u', 2, A, 1, IP, W, 1, INFO )
208 CALL CHKXER( 'chetri2x', INFOT, NOUT, LERR, OK )
209*
210* CHETRS
211*
212 SRNAMT = 'chetrs'
213 INFOT = 1
214 CALL CHETRS( '/', 0, 0, A, 1, IP, B, 1, INFO )
215 CALL CHKXER( 'chetrs', INFOT, NOUT, LERR, OK )
216 INFOT = 2
217 CALL CHETRS( 'u', -1, 0, A, 1, IP, B, 1, INFO )
218 CALL CHKXER( 'chetrs', INFOT, NOUT, LERR, OK )
219 INFOT = 3
220 CALL CHETRS( 'u', 0, -1, A, 1, IP, B, 1, INFO )
221 CALL CHKXER( 'chetrs', INFOT, NOUT, LERR, OK )
222 INFOT = 5
223 CALL CHETRS( 'u', 2, 1, A, 1, IP, B, 2, INFO )
224 CALL CHKXER( 'chetrs', INFOT, NOUT, LERR, OK )
225 INFOT = 8
226 CALL CHETRS( 'u', 2, 1, a, 2, ip, b, 1, info )
227 CALL chkxer( 'CHETRS', infot, nout, lerr, ok )
228*
229* CHERFS
230*
231 srnamt = 'CHERFS'
232 infot = 1
233 CALL cherfs( '/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
234 $ r, info )
235 CALL chkxer( 'CHERFS', infot, nout, lerr, ok )
236 infot = 2
237 CALL cherfs( 'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
238 $ w, r, info )
239 CALL chkxer( 'CHERFS', infot, nout, lerr, ok )
240 infot = 3
241 CALL cherfs( 'u', 0, -1, 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 = 5
245 CALL CHERFS( 'u', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W,
246 $ R, INFO )
247 CALL CHKXER( 'cherfs', INFOT, NOUT, LERR, OK )
248 INFOT = 7
249 CALL CHERFS( 'u', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W,
250 $ R, INFO )
251 CALL CHKXER( 'cherfs', INFOT, NOUT, LERR, OK )
252 INFOT = 10
253 CALL CHERFS( 'u', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W,
254 $ R, INFO )
255 CALL CHKXER( 'cherfs', INFOT, NOUT, LERR, OK )
256 INFOT = 12
257 CALL CHERFS( 'u', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W,
258 $ R, INFO )
259 CALL CHKXER( 'cherfs', INFOT, NOUT, LERR, OK )
260*
261* CHECON
262*
263 SRNAMT = 'checon'
264 INFOT = 1
265 CALL CHECON( '/', 0, A, 1, IP, ANRM, RCOND, W, INFO )
266 CALL CHKXER( 'checon', INFOT, NOUT, LERR, OK )
267 INFOT = 2
268 CALL CHECON( 'u', -1, A, 1, IP, ANRM, RCOND, W, INFO )
269 CALL CHKXER( 'checon', INFOT, NOUT, LERR, OK )
270 INFOT = 4
271 CALL CHECON( 'u', 2, A, 1, IP, ANRM, RCOND, W, INFO )
272 CALL CHKXER( 'checon', INFOT, NOUT, LERR, OK )
273 INFOT = 6
274 CALL CHECON( 'u', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
275 CALL CHKXER( 'checon', INFOT, NOUT, LERR, OK )
276*
277 ELSE IF( LSAMEN( 2, C2, 'hr' ) ) THEN
278*
279* Test error exits of the routines that use factorization
280* of a Hermitian indefinite matrix with rook
281* (bounded Bunch-Kaufman) diagonal pivoting method.
282*
283* CHETRF_ROOK
284*
285 SRNAMT = 'chetrf_rook'
286 INFOT = 1
287 CALL CHETRF_ROOK( '/', 0, A, 1, IP, W, 1, INFO )
288 CALL CHKXER( 'chetrf_rook', INFOT, NOUT, LERR, OK )
289 INFOT = 2
290 CALL CHETRF_ROOK( 'u', -1, A, 1, IP, W, 1, INFO )
291 CALL CHKXER( 'chetrf_rook', INFOT, NOUT, LERR, OK )
292 INFOT = 4
293 CALL CHETRF_ROOK( 'u', 2, A, 1, IP, W, 4, INFO )
294 CALL CHKXER( 'chetrf_rook', INFOT, NOUT, LERR, OK )
295 INFOT = 7
296 CALL CHETRF_ROOK( 'u', 0, A, 1, IP, W, 0, INFO )
297 CALL CHKXER( 'chetrf_rook', INFOT, NOUT, LERR, OK )
298 INFOT = 7
299 CALL CHETRF_ROOK( 'u', 0, A, 1, IP, W, -2, INFO )
300 CALL CHKXER( 'chetrf_rook', INFOT, NOUT, LERR, OK )
301*
302* CHETF2_ROOK
303*
304 SRNAMT = 'chetf2_rook'
305 INFOT = 1
306 CALL CHETF2_ROOK( '/', 0, A, 1, IP, INFO )
307 CALL CHKXER( 'chetf2_rook', INFOT, NOUT, LERR, OK )
308 INFOT = 2
309 CALL CHETF2_ROOK( 'u', -1, A, 1, IP, INFO )
310 CALL CHKXER( 'chetf2_rook', INFOT, NOUT, LERR, OK )
311 INFOT = 4
312 CALL CHETF2_ROOK( 'u', 2, A, 1, IP, INFO )
313 CALL CHKXER( 'chetf2_rook', INFOT, NOUT, LERR, OK )
314*
315* CHETRI_ROOK
316*
317 SRNAMT = 'chetri_rook'
318 INFOT = 1
319 CALL CHETRI_ROOK( '/', 0, A, 1, IP, W, INFO )
320 CALL CHKXER( 'chetri_rook', INFOT, NOUT, LERR, OK )
321 INFOT = 2
322 CALL CHETRI_ROOK( 'u', -1, A, 1, IP, W, INFO )
323 CALL CHKXER( 'chetri_rook', INFOT, NOUT, LERR, OK )
324 INFOT = 4
325 CALL CHETRI_ROOK( 'u', 2, A, 1, IP, W, INFO )
326 CALL CHKXER( 'chetri_rook', INFOT, NOUT, LERR, OK )
327*
328* CHETRS_ROOK
329*
330 SRNAMT = 'chetrs_rook'
331 INFOT = 1
332 CALL CHETRS_ROOK( '/', 0, 0, A, 1, IP, B, 1, INFO )
333 CALL CHKXER( 'chetrs_rook', INFOT, NOUT, LERR, OK )
334 INFOT = 2
335 CALL CHETRS_ROOK( 'u', -1, 0, A, 1, IP, B, 1, INFO )
336 CALL CHKXER( 'chetrs_rook', INFOT, NOUT, LERR, OK )
337 INFOT = 3
338 CALL CHETRS_ROOK( 'u', 0, -1, A, 1, IP, B, 1, INFO )
339 CALL CHKXER( 'chetrs_rook', INFOT, NOUT, LERR, OK )
340 INFOT = 5
341 CALL CHETRS_ROOK( 'u', 2, 1, A, 1, IP, B, 2, INFO )
342 CALL CHKXER( 'chetrs_rook', INFOT, NOUT, LERR, OK )
343 INFOT = 8
344 CALL CHETRS_ROOK( 'u', 2, 1, A, 2, IP, B, 1, INFO )
345 CALL CHKXER( 'chetrs_rook', INFOT, NOUT, LERR, OK )
346*
347* CHECON_ROOK
348*
349 SRNAMT = 'checon_rook'
350 INFOT = 1
351 CALL CHECON_ROOK( '/', 0, A, 1, IP, ANRM, RCOND, W, INFO )
352 CALL CHKXER( 'checon_rook', INFOT, NOUT, LERR, OK )
353 INFOT = 2
354 CALL CHECON_ROOK( 'u', -1, A, 1, IP, ANRM, RCOND, W, INFO )
355 CALL CHKXER( 'checon_rook', INFOT, NOUT, LERR, OK )
356 INFOT = 4
357 CALL CHECON_ROOK( 'u', 2, A, 1, IP, ANRM, RCOND, W, INFO )
358 CALL CHKXER( 'checon_rook', INFOT, NOUT, LERR, OK )
359 INFOT = 6
360 CALL CHECON_ROOK( 'u', 1, A, 1, IP, -ANRM, RCOND, W, INFO )
361 CALL CHKXER( 'checon_rook', INFOT, NOUT, LERR, OK )
362*
363 ELSE IF( LSAMEN( 2, C2, 'hk' ) ) THEN
364*
365* Test error exits of the routines that use factorization
366* of a Hermitian indefinite matrix with rook
367* (bounded Bunch-Kaufman) pivoting with the new storage
368* format for factors L ( or U) and D.
369*
370* L (or U) is stored in A, diagonal of D is stored on the
371* diagonal of A, subdiagonal of D is stored in a separate array E.
372*
373* CHETRF_RK
374*
375 SRNAMT = 'chetrf_rk'
376 INFOT = 1
377 CALL CHETRF_RK( '/', 0, A, 1, E, IP, W, 1, INFO )
378 CALL CHKXER( 'chetrf_rk', INFOT, NOUT, LERR, OK )
379 INFOT = 2
380 CALL CHETRF_RK( 'u', -1, A, 1, E, IP, W, 1, INFO )
381 CALL CHKXER( 'chetrf_rk', INFOT, NOUT, LERR, OK )
382 INFOT = 4
383 CALL CHETRF_RK( 'u', 2, A, 1, E, IP, W, 4, INFO )
384 CALL CHKXER( 'chetrf_rk', INFOT, NOUT, LERR, OK )
385 INFOT = 8
386 CALL CHETRF_RK( 'u', 0, A, 1, E, IP, W, 0, INFO )
387 CALL CHKXER( 'chetrf_rk', INFOT, NOUT, LERR, OK )
388 INFOT = 8
389 CALL CHETRF_RK( 'u', 0, A, 1, E, IP, W, -2, INFO )
390 CALL CHKXER( 'chetrf_rk', INFOT, NOUT, LERR, OK )
391*
392* CHETF2_RK
393*
394 SRNAMT = 'chetf2_rk'
395 INFOT = 1
396 CALL CHETF2_RK( '/', 0, A, 1, E, IP, INFO )
397 CALL CHKXER( 'chetf2_rk', INFOT, NOUT, LERR, OK )
398 INFOT = 2
399 CALL CHETF2_RK( 'u', -1, A, 1, E, IP, INFO )
400 CALL CHKXER( 'chetf2_rk', INFOT, NOUT, LERR, OK )
401 INFOT = 4
402 CALL CHETF2_RK( 'u', 2, A, 1, E, IP, INFO )
403 CALL CHKXER( 'chetf2_rk', INFOT, NOUT, LERR, OK )
404*
405* CHETRI_3
406*
407 SRNAMT = 'chetri_3'
408 INFOT = 1
409 CALL CHETRI_3( '/', 0, A, 1, E, IP, W, 1, INFO )
410 CALL CHKXER( 'chetri_3', INFOT, NOUT, LERR, OK )
411 INFOT = 2
412 CALL CHETRI_3( 'u', -1, A, 1, E, IP, W, 1, INFO )
413 CALL CHKXER( 'chetri_3', INFOT, NOUT, LERR, OK )
414 INFOT = 4
415 CALL CHETRI_3( 'u', 2, A, 1, E, IP, W, 1, INFO )
416 CALL CHKXER( 'chetri_3', INFOT, NOUT, LERR, OK )
417 INFOT = 8
418 CALL CHETRI_3( 'u', 0, A, 1, E, IP, W, 0, INFO )
419 CALL CHKXER( 'chetri_3', INFOT, NOUT, LERR, OK )
420 INFOT = 8
421 CALL CHETRI_3( 'u', 0, A, 1, E, IP, W, -2, INFO )
422 CALL CHKXER( 'chetri_3', INFOT, NOUT, LERR, OK )
423*
424* CHETRI_3X
425*
426 SRNAMT = 'chetri_3x'
427 INFOT = 1
428 CALL CHETRI_3X( '/', 0, A, 1, E, IP, W, 1, INFO )
429 CALL CHKXER( 'chetri_3x', INFOT, NOUT, LERR, OK )
430 INFOT = 2
431 CALL CHETRI_3X( 'u', -1, A, 1, E, IP, W, 1, INFO )
432 CALL CHKXER( 'chetri_3x', INFOT, NOUT, LERR, OK )
433 INFOT = 4
434 CALL CHETRI_3X( 'u', 2, A, 1, E, IP, W, 1, INFO )
435 CALL CHKXER( 'chetri_3x', INFOT, NOUT, LERR, OK )
436*
437* CHETRS_3
438*
439 SRNAMT = 'chetrs_3'
440 INFOT = 1
441 CALL CHETRS_3( '/', 0, 0, A, 1, E, IP, B, 1, INFO )
442 CALL CHKXER( 'chetrs_3', INFOT, NOUT, LERR, OK )
443 INFOT = 2
444 CALL CHETRS_3( 'u', -1, 0, A, 1, E, IP, B, 1, INFO )
445 CALL CHKXER( 'chetrs_3', INFOT, NOUT, LERR, OK )
446 INFOT = 3
447 CALL CHETRS_3( 'u', 0, -1, A, 1, E, IP, B, 1, INFO )
448 CALL CHKXER( 'chetrs_3', INFOT, NOUT, LERR, OK )
449 INFOT = 5
450 CALL CHETRS_3( 'u', 2, 1, A, 1, E, IP, B, 2, INFO )
451 CALL CHKXER( 'chetrs_3', INFOT, NOUT, LERR, OK )
452 INFOT = 9
453 CALL CHETRS_3( 'u', 2, 1, A, 2, E, IP, B, 1, INFO )
454 CALL CHKXER( 'chetrs_3', INFOT, NOUT, LERR, OK )
455*
456* CHECON_3
457*
458 SRNAMT = 'checon_3'
459 INFOT = 1
460 CALL CHECON_3( '/', 0, A, 1, E, IP, ANRM, RCOND, W, INFO )
461 CALL CHKXER( 'checon_3', INFOT, NOUT, LERR, OK )
462 INFOT = 2
463 CALL CHECON_3( 'u', -1, A, 1, E, IP, ANRM, RCOND, W, INFO )
464 CALL CHKXER( 'checon_3', INFOT, NOUT, LERR, OK )
465 INFOT = 4
466 CALL CHECON_3( 'u', 2, A, 1, E, IP, ANRM, RCOND, W, INFO )
467 CALL CHKXER( 'checon_3', INFOT, NOUT, LERR, OK )
468 INFOT = 7
469 CALL CHECON_3( 'u', 1, A, 1, E, IP, -1.0E0, RCOND, W, INFO)
470 CALL CHKXER( 'checon_3', INFOT, NOUT, LERR, OK )
471*
472 ELSE IF( LSAMEN( 2, C2, 'ha' ) ) THEN
473*
474* Test error exits of the routines that use factorization
475* of a Hermitian indefinite matrix with Aasen's algorithm.
476*
477* CHETRF_AA
478*
479 SRNAMT = 'chetrf_aa'
480 INFOT = 1
481 CALL CHETRF_AA( '/', 0, a, 1, ip, w, 1, info )
482 CALL chkxer( 'CHETRF_AA', infot, nout, lerr, ok )
483 infot = 2
484 CALL chetrf_aa( 'U', -1, a, 1, ip, w, 1, info )
485 CALL chkxer( 'chetrf_aa', INFOT, NOUT, LERR, OK )
486 INFOT = 4
487 CALL CHETRF_AA( 'u', 2, A, 1, IP, W, 4, INFO )
488 CALL CHKXER( 'chetrf_aa', INFOT, NOUT, LERR, OK )
489 INFOT = 7
490 CALL CHETRF_AA( 'u', 2, A, 2, IP, W, 0, INFO )
491 CALL CHKXER( 'chetrf_aa', INFOT, NOUT, LERR, OK )
492 INFOT = 7
493 CALL CHETRF_AA( 'u', 2, A, 2, IP, W, -2, INFO )
494 CALL CHKXER( 'chetrf_aa', INFOT, NOUT, LERR, OK )
495*
496* CHETRS_AA
497*
498 SRNAMT = 'chetrs_aa'
499 INFOT = 1
500 CALL CHETRS_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
501 CALL CHKXER( 'chetrs_aa', INFOT, NOUT, LERR, OK )
502 INFOT = 2
503 CALL CHETRS_AA( 'u', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
504 CALL CHKXER( 'chetrs_aa', INFOT, NOUT, LERR, OK )
505 INFOT = 3
506 CALL CHETRS_AA( 'u', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
507 CALL CHKXER( 'chetrs_aa', INFOT, NOUT, LERR, OK )
508 INFOT = 5
509 CALL CHETRS_AA( 'u', 2, 1, A, 1, IP, B, 2, W, 1, INFO )
510 CALL CHKXER( 'chetrs_aa', INFOT, NOUT, LERR, OK )
511 INFOT = 8
512 CALL CHETRS_AA( 'u', 2, 1, A, 2, IP, B, 1, W, 1, INFO )
513 CALL CHKXER( 'chetrs_aa', INFOT, NOUT, LERR, OK )
514 INFOT = 10
515 CALL CHETRS_AA( 'u', 2, 1, A, 2, IP, B, 2, W, 0, INFO )
516 CALL CHKXER( 'chetrs_aa', INFOT, NOUT, LERR, OK )
517 INFOT = 10
518 CALL CHETRS_AA( 'u', 2, 1, A, 2, IP, B, 2, W, -2, INFO )
519 CALL CHKXER( 'chetrs_aa', INFOT, NOUT, LERR, OK )
520*
521 ELSE IF( LSAMEN( 2, C2, 'h2' ) ) THEN
522*
523* Test error exits of the routines that use factorization
524* of a symmetric indefinite matrix with Aasen's algorithm.
525*
526* CHETRF_AA_2STAGE
527*
528 SRNAMT = 'chetrf_aa_2stage'
529 INFOT = 1
530 CALL CHETRF_AA_2STAGE( '/', 0, A, 1, A, 1, IP, IP, W, 1,
531 $ INFO )
532 CALL CHKXER( 'chetrf_aa_2stage', INFOT, NOUT, LERR, OK )
533 INFOT = 2
534 CALL CHETRF_AA_2STAGE( 'u', -1, A, 1, A, 1, IP, IP, W, 1,
535 $ INFO )
536 CALL CHKXER( 'chetrf_aa_2stage', INFOT, NOUT, LERR, OK )
537 INFOT = 4
538 CALL CHETRF_AA_2STAGE( 'u', 2, A, 1, A, 2, IP, IP, W, 1,
539 $ INFO )
540 CALL CHKXER( 'chetrf_aa_2stage', INFOT, NOUT, LERR, OK )
541 INFOT = 6
542 CALL CHETRF_AA_2STAGE( 'u', 2, A, 2, A, 1, IP, IP, W, 1,
543 $ INFO )
544 CALL CHKXER( 'chetrf_aa_2stage', INFOT, NOUT, LERR, OK )
545 INFOT = 10
546 CALL CHETRF_AA_2STAGE( 'u', 2, A, 2, A, 8, IP, IP, W, 0,
547 $ INFO )
548 CALL CHKXER( 'chetrf_aa_2stage', INFOT, NOUT, LERR, OK )
549*
550* CHETRS_AA_2STAGE
551*
552 SRNAMT = 'chetrs_aa_2stage'
553 INFOT = 1
554 CALL CHETRS_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP,
555 $ B, 1, INFO )
556 CALL CHKXER( 'chetrs_aa_2stage', INFOT, NOUT, LERR, OK )
557 INFOT = 2
558 CALL CHETRS_AA_2STAGE( 'u', -1, 0, A, 1, A, 1, IP, IP,
559 $ B, 1, INFO )
560 CALL CHKXER( 'chetrs_aa_2stage', INFOT, NOUT, LERR, OK )
561 INFOT = 3
562 CALL CHETRS_AA_2STAGE( 'u', 0, -1, A, 1, A, 1, IP, IP,
563 $ B, 1, INFO )
564 CALL CHKXER( 'chetrs_aa_2stage', INFOT, NOUT, LERR, OK )
565 INFOT = 5
566 CALL CHETRS_AA_2STAGE( 'u', 2, 1, A, 1, A, 1, IP, IP,
567 $ B, 1, INFO )
568 CALL CHKXER( 'chetrs_aa_2stage', INFOT, NOUT, LERR, OK )
569 INFOT = 7
570 CALL CHETRS_AA_2STAGE( 'u', 2, 1, A, 2, A, 1, IP, IP,
571 $ B, 1, INFO )
572 CALL CHKXER( 'chetrs_aa_2stage', INFOT, NOUT, LERR, OK )
573 INFOT = 11
574 CALL CHETRS_AA_2STAGE( 'u', 2, 1, A, 2, A, 8, IP, IP,
575 $ B, 1, INFO )
576 CALL CHKXER( 'chetrs_aa_stage', INFOT, NOUT, LERR, OK )
577*
578* Test error exits of the routines that use factorization
579* of a Hermitian indefinite packed matrix with patrial
580* (Bunch-Kaufman) diagonal pivoting method.
581*
582 ELSE IF( LSAMEN( 2, C2, 'hp' ) ) THEN
583*
584* CHPTRF
585*
586 SRNAMT = 'chptrf'
587 INFOT = 1
588 CALL CHPTRF( '/', 0, A, IP, INFO )
589 CALL CHKXER( 'chptrf', INFOT, NOUT, LERR, OK )
590 INFOT = 2
591 CALL CHPTRF( 'u', -1, A, IP, INFO )
592 CALL CHKXER( 'chptrf', INFOT, NOUT, LERR, OK )
593*
594* CHPTRI
595*
596 SRNAMT = 'chptri'
597 INFOT = 1
598 CALL CHPTRI( '/', 0, A, IP, W, INFO )
599 CALL CHKXER( 'chptri', INFOT, NOUT, LERR, OK )
600 INFOT = 2
601 CALL CHPTRI( 'u', -1, A, IP, W, INFO )
602 CALL CHKXER( 'chptri', INFOT, NOUT, LERR, OK )
603*
604* CHPTRS
605*
606 SRNAMT = 'chptrs'
607 INFOT = 1
608 CALL CHPTRS( '/', 0, 0, A, IP, B, 1, INFO )
609 CALL CHKXER( 'chptrs', INFOT, NOUT, LERR, OK )
610 INFOT = 2
611 CALL CHPTRS( 'u', -1, 0, A, IP, B, 1, INFO )
612 CALL CHKXER( 'chptrs', INFOT, NOUT, LERR, OK )
613 INFOT = 3
614 CALL CHPTRS( 'u', 0, -1, A, IP, B, 1, INFO )
615 CALL CHKXER( 'chptrs', INFOT, NOUT, LERR, OK )
616 INFOT = 7
617 CALL CHPTRS( 'u', 2, 1, A, IP, B, 1, INFO )
618 CALL CHKXER( 'chptrs', INFOT, NOUT, LERR, OK )
619*
620* CHPRFS
621*
622 SRNAMT = 'chprfs'
623 INFOT = 1
624 CALL CHPRFS( '/', 0, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, R,
625 $ INFO )
626 CALL CHKXER( 'chprfs', INFOT, NOUT, LERR, OK )
627 INFOT = 2
628 CALL CHPRFS( 'u', -1, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, R,
629 $ INFO )
630 CALL CHKXER( 'chprfs', INFOT, NOUT, LERR, OK )
631 INFOT = 3
632 CALL CHPRFS( 'u', 0, -1, A, AF, IP, B, 1, X, 1, R1, R2, W, R,
633 $ INFO )
634 CALL CHKXER( 'chprfs', INFOT, NOUT, LERR, OK )
635 INFOT = 8
636 CALL CHPRFS( 'u', 2, 1, A, AF, IP, B, 1, X, 2, R1, R2, W, R,
637 $ INFO )
638 CALL CHKXER( 'chprfs', INFOT, NOUT, LERR, OK )
639 INFOT = 10
640 CALL CHPRFS( 'u', 2, 1, A, AF, IP, B, 2, X, 1, R1, R2, W, R,
641 $ INFO )
642 CALL CHKXER( 'chprfs', INFOT, NOUT, LERR, OK )
643*
644* CHPCON
645*
646 SRNAMT = 'chpcon'
647 INFOT = 1
648 CALL CHPCON( '/', 0, A, IP, ANRM, RCOND, W, INFO )
649 CALL CHKXER( 'chpcon', INFOT, NOUT, LERR, OK )
650 INFOT = 2
651 CALL CHPCON( 'u', -1, A, IP, ANRM, RCOND, W, INFO )
652 CALL CHKXER( 'chpcon', INFOT, NOUT, LERR, OK )
653 INFOT = 5
654 CALL CHPCON( 'u', 1, A, IP, -ANRM, RCOND, W, INFO )
655 CALL CHKXER( 'chpcon', INFOT, NOUT, LERR, OK )
656 END IF
657*
658* Print a summary line.
659*
660 CALL ALAESM( PATH, OK, NOUT )
661*
662 RETURN
663*
664* End of CERRHE
665*
666 END
float cmplx[2]
Definition pblas.h:136
subroutine chkxer(srnamt, infot, nout, lerr, ok)
Definition cblat2.f:3196
subroutine alaesm(path, ok, nout)
ALAESM
Definition alaesm.f:63
subroutine checon_3(uplo, n, a, lda, e, ipiv, anorm, rcond, work, info)
CHECON_3
Definition checon_3.f:166
subroutine chetrs_3(uplo, n, nrhs, a, lda, e, ipiv, b, ldb, info)
CHETRS_3
Definition chetrs_3.f:165
subroutine chetrs(uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
CHETRS
Definition chetrs.f:120
subroutine chetf2_rook(uplo, n, a, lda, ipiv, info)
CHETF2_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
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...
subroutine chetri_3x(uplo, n, a, lda, e, ipiv, work, nb, info)
CHETRI_3X
Definition chetri_3x.f:159
subroutine chetrs_aa(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info)
CHETRS_AA
Definition chetrs_aa.f:131
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 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...
subroutine chetri_3(uplo, n, a, lda, e, ipiv, work, lwork, info)
CHETRI_3
Definition chetri_3.f:170
subroutine checon(uplo, n, a, lda, ipiv, anorm, rcond, work, info)
CHECON
Definition checon.f:125
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 chetri2x(uplo, n, a, lda, ipiv, work, nb, info)
CHETRI2X
Definition chetri2x.f:120
subroutine chetri2(uplo, n, a, lda, ipiv, work, lwork, info)
CHETRI2
Definition chetri2.f:127
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...
subroutine chetrf(uplo, n, a, lda, ipiv, work, lwork, info)
CHETRF
Definition chetrf.f:177
subroutine chetri(uplo, n, a, lda, ipiv, work, info)
CHETRI
Definition chetri.f:114
subroutine chetrf_aa(uplo, n, a, lda, ipiv, work, lwork, info)
CHETRF_AA
Definition chetrf_aa.f:132
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 cherfs(uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info)
CHERFS
Definition cherfs.f:192
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...
subroutine chptri(uplo, n, ap, ipiv, work, info)
CHPTRI
Definition chptri.f:109
subroutine chprfs(uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info)
CHPRFS
Definition chprfs.f:180
subroutine chptrf(uplo, n, ap, ipiv, info)
CHPTRF
Definition chptrf.f:159
subroutine chptrs(uplo, n, nrhs, ap, ipiv, b, ldb, info)
CHPTRS
Definition chptrs.f:115
subroutine chpcon(uplo, n, ap, ipiv, anorm, rcond, work, info)
CHPCON
Definition chpcon.f:118
subroutine chetrs_aa_2stage(uplo, n, nrhs, a, lda, tb, ltb, ipiv, ipiv2, b, ldb, info)
CHETRS_AA_2STAGE
subroutine csycon_3(uplo, n, a, lda, e, ipiv, anorm, rcond, work, info)
CSYCON_3
Definition csycon_3.f:166
subroutine chetrf_aa_2stage(uplo, n, a, lda, tb, ltb, ipiv, ipiv2, work, lwork, info)
CHETRF_AA_2STAGE
subroutine cerrhe(path, nunit)
CERRHE
Definition cerrhe.f:55