OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
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
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 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 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 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 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 cerrhe(path, nunit)
CERRHE
Definition cerrhe.f:55