1 SUBROUTINE CERRPO( PATH, NUNIT )
2 *
3 * -- LAPACK test routine (version 3.2.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * April 2009
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * CERRPO tests the error exits for the COMPLEX routines
16 * for Hermitian positive definite matrices.
17 *
18 * Note that this file is used only when the XBLAS are available,
19 * otherwise cerrpo.f defines this subroutine.
20 *
21 * Arguments
22 * =========
23 *
24 * PATH (input) CHARACTER*3
25 * The LAPACK path name for the routines to be tested.
26 *
27 * NUNIT (input) INTEGER
28 * The unit number for output.
29 *
30 * =====================================================================
31 *
32 * .. Parameters ..
33 INTEGER NMAX
34 PARAMETER ( NMAX = 4 )
35 * ..
36 * .. Local Scalars ..
37 CHARACTER EQ
38 CHARACTER*2 C2
39 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
40 REAL ANRM, RCOND, BERR
41 * ..
42 * .. Local Arrays ..
43 REAL S( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
44 $ ERR_BNDS_N( NMAX, 3 ), ERR_BNDS_C( NMAX, 3 ),
45 $ PARAMS( 1 )
46 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
47 $ W( 2*NMAX ), X( NMAX )
48 * ..
49 * .. External Functions ..
50 LOGICAL LSAMEN
51 EXTERNAL LSAMEN
52 * ..
53 * .. External Subroutines ..
54 EXTERNAL ALAESM, CHKXER, CPBCON, CPBEQU, CPBRFS, CPBTF2,
55 $ CPBTRF, CPBTRS, CPOCON, CPOEQU, CPORFS, CPOTF2,
56 $ CPOTRF, CPOTRI, CPOTRS, CPPCON, CPPEQU, CPPRFS,
57 $ CPPTRF, CPPTRI, CPPTRS, CPOEQUB, CPORFSX
58 * ..
59 * .. Scalars in Common ..
60 LOGICAL LERR, OK
61 CHARACTER*32 SRNAMT
62 INTEGER INFOT, NOUT
63 * ..
64 * .. Common blocks ..
65 COMMON / INFOC / INFOT, NOUT, OK, LERR
66 COMMON / SRNAMC / SRNAMT
67 * ..
68 * .. Intrinsic Functions ..
69 INTRINSIC CMPLX, REAL
70 * ..
71 * .. Executable Statements ..
72 *
73 NOUT = NUNIT
74 WRITE( NOUT, FMT = * )
75 C2 = PATH( 2: 3 )
76 *
77 * Set the variables to innocuous values.
78 *
79 DO 20 J = 1, NMAX
80 DO 10 I = 1, NMAX
81 A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
82 AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
83 10 CONTINUE
84 B( J ) = 0.
85 R1( J ) = 0.
86 R2( J ) = 0.
87 W( J ) = 0.
88 X( J ) = 0.
89 S( J ) = 0.
90 20 CONTINUE
91 ANRM = 1.
92 OK = .TRUE.
93 *
94 * Test error exits of the routines that use the Cholesky
95 * decomposition of a Hermitian positive definite matrix.
96 *
97 IF( LSAMEN( 2, C2, 'PO' ) ) THEN
98 *
99 * CPOTRF
100 *
101 SRNAMT = 'CPOTRF'
102 INFOT = 1
103 CALL CPOTRF( '/', 0, A, 1, INFO )
104 CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK )
105 INFOT = 2
106 CALL CPOTRF( 'U', -1, A, 1, INFO )
107 CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK )
108 INFOT = 4
109 CALL CPOTRF( 'U', 2, A, 1, INFO )
110 CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK )
111 *
112 * CPOTF2
113 *
114 SRNAMT = 'CPOTF2'
115 INFOT = 1
116 CALL CPOTF2( '/', 0, A, 1, INFO )
117 CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK )
118 INFOT = 2
119 CALL CPOTF2( 'U', -1, A, 1, INFO )
120 CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK )
121 INFOT = 4
122 CALL CPOTF2( 'U', 2, A, 1, INFO )
123 CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK )
124 *
125 * CPOTRI
126 *
127 SRNAMT = 'CPOTRI'
128 INFOT = 1
129 CALL CPOTRI( '/', 0, A, 1, INFO )
130 CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK )
131 INFOT = 2
132 CALL CPOTRI( 'U', -1, A, 1, INFO )
133 CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK )
134 INFOT = 4
135 CALL CPOTRI( 'U', 2, A, 1, INFO )
136 CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK )
137 *
138 * CPOTRS
139 *
140 SRNAMT = 'CPOTRS'
141 INFOT = 1
142 CALL CPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
143 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
144 INFOT = 2
145 CALL CPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
146 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
147 INFOT = 3
148 CALL CPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
149 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
150 INFOT = 5
151 CALL CPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
152 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
153 INFOT = 7
154 CALL CPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
155 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
156 *
157 * CPORFS
158 *
159 SRNAMT = 'CPORFS'
160 INFOT = 1
161 CALL CPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
162 $ INFO )
163 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
164 INFOT = 2
165 CALL CPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
166 $ INFO )
167 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
168 INFOT = 3
169 CALL CPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
170 $ INFO )
171 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
172 INFOT = 5
173 CALL CPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, R,
174 $ INFO )
175 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
176 INFOT = 7
177 CALL CPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, R,
178 $ INFO )
179 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
180 INFOT = 9
181 CALL CPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, R,
182 $ INFO )
183 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
184 INFOT = 11
185 CALL CPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, R,
186 $ INFO )
187 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
188 *
189 * CPORFSX
190 *
191 N_ERR_BNDS = 3
192 NPARAMS = 0
193 SRNAMT = 'CPORFSX'
194 INFOT = 1
195 CALL CPORFSX( '/', EQ, 0, 0, A, 1, AF, 1, S, B, 1, X, 1,
196 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
197 $ PARAMS, W, R, INFO )
198 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
199 INFOT = 2
200 CALL CPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
201 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
202 $ PARAMS, W, R, INFO )
203 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
204 EQ = 'N'
205 INFOT = 3
206 CALL CPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
207 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
208 $ PARAMS, W, R, INFO )
209 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
210 INFOT = 4
211 CALL CPORFSX( 'U', EQ, 0, -1, A, 1, AF, 1, S, B, 1, X, 1,
212 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
213 $ PARAMS, W, R, INFO )
214 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
215 INFOT = 6
216 CALL CPORFSX( 'U', EQ, 2, 1, A, 1, AF, 2, S, B, 2, X, 2,
217 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
218 $ PARAMS, W, R, INFO )
219 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
220 INFOT = 8
221 CALL CPORFSX( 'U', EQ, 2, 1, A, 2, AF, 1, S, B, 2, X, 2,
222 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
223 $ PARAMS, W, R, INFO )
224 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
225 INFOT = 11
226 CALL CPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 1, X, 2,
227 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
228 $ PARAMS, W, R, INFO )
229 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
230 INFOT = 13
231 CALL CPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 2, X, 1,
232 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
233 $ PARAMS, W, R, INFO )
234 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
235 *
236 * CPOCON
237 *
238 SRNAMT = 'CPOCON'
239 INFOT = 1
240 CALL CPOCON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO )
241 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
242 INFOT = 2
243 CALL CPOCON( 'U', -1, A, 1, ANRM, RCOND, W, R, INFO )
244 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
245 INFOT = 4
246 CALL CPOCON( 'U', 2, A, 1, ANRM, RCOND, W, R, INFO )
247 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
248 INFOT = 5
249 CALL CPOCON( 'U', 1, A, 1, -ANRM, RCOND, W, R, INFO )
250 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
251 *
252 * CPOEQU
253 *
254 SRNAMT = 'CPOEQU'
255 INFOT = 1
256 CALL CPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
257 CALL CHKXER( 'CPOEQU', INFOT, NOUT, LERR, OK )
258 INFOT = 3
259 CALL CPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
260 CALL CHKXER( 'CPOEQU', INFOT, NOUT, LERR, OK )
261 *
262 * CPOEQUB
263 *
264 SRNAMT = 'CPOEQUB'
265 INFOT = 1
266 CALL CPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO )
267 CALL CHKXER( 'CPOEQUB', INFOT, NOUT, LERR, OK )
268 INFOT = 3
269 CALL CPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO )
270 CALL CHKXER( 'CPOEQUB', INFOT, NOUT, LERR, OK )
271 *
272 * Test error exits of the routines that use the Cholesky
273 * decomposition of a Hermitian positive definite packed matrix.
274 *
275 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
276 *
277 * CPPTRF
278 *
279 SRNAMT = 'CPPTRF'
280 INFOT = 1
281 CALL CPPTRF( '/', 0, A, INFO )
282 CALL CHKXER( 'CPPTRF', INFOT, NOUT, LERR, OK )
283 INFOT = 2
284 CALL CPPTRF( 'U', -1, A, INFO )
285 CALL CHKXER( 'CPPTRF', INFOT, NOUT, LERR, OK )
286 *
287 * CPPTRI
288 *
289 SRNAMT = 'CPPTRI'
290 INFOT = 1
291 CALL CPPTRI( '/', 0, A, INFO )
292 CALL CHKXER( 'CPPTRI', INFOT, NOUT, LERR, OK )
293 INFOT = 2
294 CALL CPPTRI( 'U', -1, A, INFO )
295 CALL CHKXER( 'CPPTRI', INFOT, NOUT, LERR, OK )
296 *
297 * CPPTRS
298 *
299 SRNAMT = 'CPPTRS'
300 INFOT = 1
301 CALL CPPTRS( '/', 0, 0, A, B, 1, INFO )
302 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
303 INFOT = 2
304 CALL CPPTRS( 'U', -1, 0, A, B, 1, INFO )
305 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
306 INFOT = 3
307 CALL CPPTRS( 'U', 0, -1, A, B, 1, INFO )
308 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
309 INFOT = 6
310 CALL CPPTRS( 'U', 2, 1, A, B, 1, INFO )
311 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
312 *
313 * CPPRFS
314 *
315 SRNAMT = 'CPPRFS'
316 INFOT = 1
317 CALL CPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, R, INFO )
318 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
319 INFOT = 2
320 CALL CPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, R,
321 $ INFO )
322 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
323 INFOT = 3
324 CALL CPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, R,
325 $ INFO )
326 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
327 INFOT = 7
328 CALL CPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, R, INFO )
329 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
330 INFOT = 9
331 CALL CPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, R, INFO )
332 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
333 *
334 * CPPCON
335 *
336 SRNAMT = 'CPPCON'
337 INFOT = 1
338 CALL CPPCON( '/', 0, A, ANRM, RCOND, W, R, INFO )
339 CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK )
340 INFOT = 2
341 CALL CPPCON( 'U', -1, A, ANRM, RCOND, W, R, INFO )
342 CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK )
343 INFOT = 4
344 CALL CPPCON( 'U', 1, A, -ANRM, RCOND, W, R, INFO )
345 CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK )
346 *
347 * CPPEQU
348 *
349 SRNAMT = 'CPPEQU'
350 INFOT = 1
351 CALL CPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
352 CALL CHKXER( 'CPPEQU', INFOT, NOUT, LERR, OK )
353 INFOT = 2
354 CALL CPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
355 CALL CHKXER( 'CPPEQU', INFOT, NOUT, LERR, OK )
356 *
357 * Test error exits of the routines that use the Cholesky
358 * decomposition of a Hermitian positive definite band matrix.
359 *
360 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
361 *
362 * CPBTRF
363 *
364 SRNAMT = 'CPBTRF'
365 INFOT = 1
366 CALL CPBTRF( '/', 0, 0, A, 1, INFO )
367 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
368 INFOT = 2
369 CALL CPBTRF( 'U', -1, 0, A, 1, INFO )
370 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
371 INFOT = 3
372 CALL CPBTRF( 'U', 1, -1, A, 1, INFO )
373 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
374 INFOT = 5
375 CALL CPBTRF( 'U', 2, 1, A, 1, INFO )
376 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
377 *
378 * CPBTF2
379 *
380 SRNAMT = 'CPBTF2'
381 INFOT = 1
382 CALL CPBTF2( '/', 0, 0, A, 1, INFO )
383 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
384 INFOT = 2
385 CALL CPBTF2( 'U', -1, 0, A, 1, INFO )
386 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
387 INFOT = 3
388 CALL CPBTF2( 'U', 1, -1, A, 1, INFO )
389 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
390 INFOT = 5
391 CALL CPBTF2( 'U', 2, 1, A, 1, INFO )
392 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
393 *
394 * CPBTRS
395 *
396 SRNAMT = 'CPBTRS'
397 INFOT = 1
398 CALL CPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
399 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
400 INFOT = 2
401 CALL CPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
402 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
403 INFOT = 3
404 CALL CPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
405 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
406 INFOT = 4
407 CALL CPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
408 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
409 INFOT = 6
410 CALL CPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
411 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
412 INFOT = 8
413 CALL CPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
414 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
415 *
416 * CPBRFS
417 *
418 SRNAMT = 'CPBRFS'
419 INFOT = 1
420 CALL CPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
421 $ R, INFO )
422 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
423 INFOT = 2
424 CALL CPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
425 $ R, INFO )
426 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
427 INFOT = 3
428 CALL CPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
429 $ R, INFO )
430 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
431 INFOT = 4
432 CALL CPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
433 $ R, INFO )
434 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
435 INFOT = 6
436 CALL CPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
437 $ R, INFO )
438 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
439 INFOT = 8
440 CALL CPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
441 $ R, INFO )
442 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
443 INFOT = 10
444 CALL CPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
445 $ R, INFO )
446 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
447 INFOT = 12
448 CALL CPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
449 $ R, INFO )
450 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
451 *
452 * CPBCON
453 *
454 SRNAMT = 'CPBCON'
455 INFOT = 1
456 CALL CPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, R, INFO )
457 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
458 INFOT = 2
459 CALL CPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, R, INFO )
460 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
461 INFOT = 3
462 CALL CPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, R, INFO )
463 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
464 INFOT = 5
465 CALL CPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, R, INFO )
466 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
467 INFOT = 6
468 CALL CPBCON( 'U', 1, 0, A, 1, -ANRM, RCOND, W, R, INFO )
469 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
470 *
471 * CPBEQU
472 *
473 SRNAMT = 'CPBEQU'
474 INFOT = 1
475 CALL CPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
476 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
477 INFOT = 2
478 CALL CPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
479 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
480 INFOT = 3
481 CALL CPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
482 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
483 INFOT = 5
484 CALL CPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
485 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
486 END IF
487 *
488 * Print a summary line.
489 *
490 CALL ALAESM( PATH, OK, NOUT )
491 *
492 RETURN
493 *
494 * End of CERRPO
495 *
496 END
2 *
3 * -- LAPACK test routine (version 3.2.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * April 2009
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * CERRPO tests the error exits for the COMPLEX routines
16 * for Hermitian positive definite matrices.
17 *
18 * Note that this file is used only when the XBLAS are available,
19 * otherwise cerrpo.f defines this subroutine.
20 *
21 * Arguments
22 * =========
23 *
24 * PATH (input) CHARACTER*3
25 * The LAPACK path name for the routines to be tested.
26 *
27 * NUNIT (input) INTEGER
28 * The unit number for output.
29 *
30 * =====================================================================
31 *
32 * .. Parameters ..
33 INTEGER NMAX
34 PARAMETER ( NMAX = 4 )
35 * ..
36 * .. Local Scalars ..
37 CHARACTER EQ
38 CHARACTER*2 C2
39 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
40 REAL ANRM, RCOND, BERR
41 * ..
42 * .. Local Arrays ..
43 REAL S( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
44 $ ERR_BNDS_N( NMAX, 3 ), ERR_BNDS_C( NMAX, 3 ),
45 $ PARAMS( 1 )
46 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
47 $ W( 2*NMAX ), X( NMAX )
48 * ..
49 * .. External Functions ..
50 LOGICAL LSAMEN
51 EXTERNAL LSAMEN
52 * ..
53 * .. External Subroutines ..
54 EXTERNAL ALAESM, CHKXER, CPBCON, CPBEQU, CPBRFS, CPBTF2,
55 $ CPBTRF, CPBTRS, CPOCON, CPOEQU, CPORFS, CPOTF2,
56 $ CPOTRF, CPOTRI, CPOTRS, CPPCON, CPPEQU, CPPRFS,
57 $ CPPTRF, CPPTRI, CPPTRS, CPOEQUB, CPORFSX
58 * ..
59 * .. Scalars in Common ..
60 LOGICAL LERR, OK
61 CHARACTER*32 SRNAMT
62 INTEGER INFOT, NOUT
63 * ..
64 * .. Common blocks ..
65 COMMON / INFOC / INFOT, NOUT, OK, LERR
66 COMMON / SRNAMC / SRNAMT
67 * ..
68 * .. Intrinsic Functions ..
69 INTRINSIC CMPLX, REAL
70 * ..
71 * .. Executable Statements ..
72 *
73 NOUT = NUNIT
74 WRITE( NOUT, FMT = * )
75 C2 = PATH( 2: 3 )
76 *
77 * Set the variables to innocuous values.
78 *
79 DO 20 J = 1, NMAX
80 DO 10 I = 1, NMAX
81 A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
82 AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
83 10 CONTINUE
84 B( J ) = 0.
85 R1( J ) = 0.
86 R2( J ) = 0.
87 W( J ) = 0.
88 X( J ) = 0.
89 S( J ) = 0.
90 20 CONTINUE
91 ANRM = 1.
92 OK = .TRUE.
93 *
94 * Test error exits of the routines that use the Cholesky
95 * decomposition of a Hermitian positive definite matrix.
96 *
97 IF( LSAMEN( 2, C2, 'PO' ) ) THEN
98 *
99 * CPOTRF
100 *
101 SRNAMT = 'CPOTRF'
102 INFOT = 1
103 CALL CPOTRF( '/', 0, A, 1, INFO )
104 CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK )
105 INFOT = 2
106 CALL CPOTRF( 'U', -1, A, 1, INFO )
107 CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK )
108 INFOT = 4
109 CALL CPOTRF( 'U', 2, A, 1, INFO )
110 CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK )
111 *
112 * CPOTF2
113 *
114 SRNAMT = 'CPOTF2'
115 INFOT = 1
116 CALL CPOTF2( '/', 0, A, 1, INFO )
117 CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK )
118 INFOT = 2
119 CALL CPOTF2( 'U', -1, A, 1, INFO )
120 CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK )
121 INFOT = 4
122 CALL CPOTF2( 'U', 2, A, 1, INFO )
123 CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK )
124 *
125 * CPOTRI
126 *
127 SRNAMT = 'CPOTRI'
128 INFOT = 1
129 CALL CPOTRI( '/', 0, A, 1, INFO )
130 CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK )
131 INFOT = 2
132 CALL CPOTRI( 'U', -1, A, 1, INFO )
133 CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK )
134 INFOT = 4
135 CALL CPOTRI( 'U', 2, A, 1, INFO )
136 CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK )
137 *
138 * CPOTRS
139 *
140 SRNAMT = 'CPOTRS'
141 INFOT = 1
142 CALL CPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
143 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
144 INFOT = 2
145 CALL CPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
146 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
147 INFOT = 3
148 CALL CPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
149 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
150 INFOT = 5
151 CALL CPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
152 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
153 INFOT = 7
154 CALL CPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
155 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK )
156 *
157 * CPORFS
158 *
159 SRNAMT = 'CPORFS'
160 INFOT = 1
161 CALL CPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
162 $ INFO )
163 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
164 INFOT = 2
165 CALL CPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
166 $ INFO )
167 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
168 INFOT = 3
169 CALL CPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
170 $ INFO )
171 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
172 INFOT = 5
173 CALL CPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, R,
174 $ INFO )
175 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
176 INFOT = 7
177 CALL CPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, R,
178 $ INFO )
179 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
180 INFOT = 9
181 CALL CPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, R,
182 $ INFO )
183 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
184 INFOT = 11
185 CALL CPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, R,
186 $ INFO )
187 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK )
188 *
189 * CPORFSX
190 *
191 N_ERR_BNDS = 3
192 NPARAMS = 0
193 SRNAMT = 'CPORFSX'
194 INFOT = 1
195 CALL CPORFSX( '/', EQ, 0, 0, A, 1, AF, 1, S, B, 1, X, 1,
196 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
197 $ PARAMS, W, R, INFO )
198 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
199 INFOT = 2
200 CALL CPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
201 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
202 $ PARAMS, W, R, INFO )
203 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
204 EQ = 'N'
205 INFOT = 3
206 CALL CPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
207 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
208 $ PARAMS, W, R, INFO )
209 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
210 INFOT = 4
211 CALL CPORFSX( 'U', EQ, 0, -1, A, 1, AF, 1, S, B, 1, X, 1,
212 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
213 $ PARAMS, W, R, INFO )
214 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
215 INFOT = 6
216 CALL CPORFSX( 'U', EQ, 2, 1, A, 1, AF, 2, S, B, 2, X, 2,
217 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
218 $ PARAMS, W, R, INFO )
219 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
220 INFOT = 8
221 CALL CPORFSX( 'U', EQ, 2, 1, A, 2, AF, 1, S, B, 2, X, 2,
222 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
223 $ PARAMS, W, R, INFO )
224 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
225 INFOT = 11
226 CALL CPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 1, X, 2,
227 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
228 $ PARAMS, W, R, INFO )
229 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
230 INFOT = 13
231 CALL CPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 2, X, 1,
232 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
233 $ PARAMS, W, R, INFO )
234 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK )
235 *
236 * CPOCON
237 *
238 SRNAMT = 'CPOCON'
239 INFOT = 1
240 CALL CPOCON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO )
241 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
242 INFOT = 2
243 CALL CPOCON( 'U', -1, A, 1, ANRM, RCOND, W, R, INFO )
244 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
245 INFOT = 4
246 CALL CPOCON( 'U', 2, A, 1, ANRM, RCOND, W, R, INFO )
247 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
248 INFOT = 5
249 CALL CPOCON( 'U', 1, A, 1, -ANRM, RCOND, W, R, INFO )
250 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK )
251 *
252 * CPOEQU
253 *
254 SRNAMT = 'CPOEQU'
255 INFOT = 1
256 CALL CPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
257 CALL CHKXER( 'CPOEQU', INFOT, NOUT, LERR, OK )
258 INFOT = 3
259 CALL CPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
260 CALL CHKXER( 'CPOEQU', INFOT, NOUT, LERR, OK )
261 *
262 * CPOEQUB
263 *
264 SRNAMT = 'CPOEQUB'
265 INFOT = 1
266 CALL CPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO )
267 CALL CHKXER( 'CPOEQUB', INFOT, NOUT, LERR, OK )
268 INFOT = 3
269 CALL CPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO )
270 CALL CHKXER( 'CPOEQUB', INFOT, NOUT, LERR, OK )
271 *
272 * Test error exits of the routines that use the Cholesky
273 * decomposition of a Hermitian positive definite packed matrix.
274 *
275 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
276 *
277 * CPPTRF
278 *
279 SRNAMT = 'CPPTRF'
280 INFOT = 1
281 CALL CPPTRF( '/', 0, A, INFO )
282 CALL CHKXER( 'CPPTRF', INFOT, NOUT, LERR, OK )
283 INFOT = 2
284 CALL CPPTRF( 'U', -1, A, INFO )
285 CALL CHKXER( 'CPPTRF', INFOT, NOUT, LERR, OK )
286 *
287 * CPPTRI
288 *
289 SRNAMT = 'CPPTRI'
290 INFOT = 1
291 CALL CPPTRI( '/', 0, A, INFO )
292 CALL CHKXER( 'CPPTRI', INFOT, NOUT, LERR, OK )
293 INFOT = 2
294 CALL CPPTRI( 'U', -1, A, INFO )
295 CALL CHKXER( 'CPPTRI', INFOT, NOUT, LERR, OK )
296 *
297 * CPPTRS
298 *
299 SRNAMT = 'CPPTRS'
300 INFOT = 1
301 CALL CPPTRS( '/', 0, 0, A, B, 1, INFO )
302 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
303 INFOT = 2
304 CALL CPPTRS( 'U', -1, 0, A, B, 1, INFO )
305 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
306 INFOT = 3
307 CALL CPPTRS( 'U', 0, -1, A, B, 1, INFO )
308 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
309 INFOT = 6
310 CALL CPPTRS( 'U', 2, 1, A, B, 1, INFO )
311 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK )
312 *
313 * CPPRFS
314 *
315 SRNAMT = 'CPPRFS'
316 INFOT = 1
317 CALL CPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, R, INFO )
318 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
319 INFOT = 2
320 CALL CPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, R,
321 $ INFO )
322 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
323 INFOT = 3
324 CALL CPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, R,
325 $ INFO )
326 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
327 INFOT = 7
328 CALL CPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, R, INFO )
329 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
330 INFOT = 9
331 CALL CPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, R, INFO )
332 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK )
333 *
334 * CPPCON
335 *
336 SRNAMT = 'CPPCON'
337 INFOT = 1
338 CALL CPPCON( '/', 0, A, ANRM, RCOND, W, R, INFO )
339 CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK )
340 INFOT = 2
341 CALL CPPCON( 'U', -1, A, ANRM, RCOND, W, R, INFO )
342 CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK )
343 INFOT = 4
344 CALL CPPCON( 'U', 1, A, -ANRM, RCOND, W, R, INFO )
345 CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK )
346 *
347 * CPPEQU
348 *
349 SRNAMT = 'CPPEQU'
350 INFOT = 1
351 CALL CPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
352 CALL CHKXER( 'CPPEQU', INFOT, NOUT, LERR, OK )
353 INFOT = 2
354 CALL CPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
355 CALL CHKXER( 'CPPEQU', INFOT, NOUT, LERR, OK )
356 *
357 * Test error exits of the routines that use the Cholesky
358 * decomposition of a Hermitian positive definite band matrix.
359 *
360 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
361 *
362 * CPBTRF
363 *
364 SRNAMT = 'CPBTRF'
365 INFOT = 1
366 CALL CPBTRF( '/', 0, 0, A, 1, INFO )
367 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
368 INFOT = 2
369 CALL CPBTRF( 'U', -1, 0, A, 1, INFO )
370 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
371 INFOT = 3
372 CALL CPBTRF( 'U', 1, -1, A, 1, INFO )
373 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
374 INFOT = 5
375 CALL CPBTRF( 'U', 2, 1, A, 1, INFO )
376 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK )
377 *
378 * CPBTF2
379 *
380 SRNAMT = 'CPBTF2'
381 INFOT = 1
382 CALL CPBTF2( '/', 0, 0, A, 1, INFO )
383 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
384 INFOT = 2
385 CALL CPBTF2( 'U', -1, 0, A, 1, INFO )
386 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
387 INFOT = 3
388 CALL CPBTF2( 'U', 1, -1, A, 1, INFO )
389 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
390 INFOT = 5
391 CALL CPBTF2( 'U', 2, 1, A, 1, INFO )
392 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK )
393 *
394 * CPBTRS
395 *
396 SRNAMT = 'CPBTRS'
397 INFOT = 1
398 CALL CPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
399 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
400 INFOT = 2
401 CALL CPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
402 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
403 INFOT = 3
404 CALL CPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
405 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
406 INFOT = 4
407 CALL CPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
408 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
409 INFOT = 6
410 CALL CPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
411 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
412 INFOT = 8
413 CALL CPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
414 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK )
415 *
416 * CPBRFS
417 *
418 SRNAMT = 'CPBRFS'
419 INFOT = 1
420 CALL CPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
421 $ R, INFO )
422 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
423 INFOT = 2
424 CALL CPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
425 $ R, INFO )
426 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
427 INFOT = 3
428 CALL CPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
429 $ R, INFO )
430 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
431 INFOT = 4
432 CALL CPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
433 $ R, INFO )
434 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
435 INFOT = 6
436 CALL CPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
437 $ R, INFO )
438 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
439 INFOT = 8
440 CALL CPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
441 $ R, INFO )
442 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
443 INFOT = 10
444 CALL CPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
445 $ R, INFO )
446 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
447 INFOT = 12
448 CALL CPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
449 $ R, INFO )
450 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK )
451 *
452 * CPBCON
453 *
454 SRNAMT = 'CPBCON'
455 INFOT = 1
456 CALL CPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, R, INFO )
457 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
458 INFOT = 2
459 CALL CPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, R, INFO )
460 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
461 INFOT = 3
462 CALL CPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, R, INFO )
463 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
464 INFOT = 5
465 CALL CPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, R, INFO )
466 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
467 INFOT = 6
468 CALL CPBCON( 'U', 1, 0, A, 1, -ANRM, RCOND, W, R, INFO )
469 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK )
470 *
471 * CPBEQU
472 *
473 SRNAMT = 'CPBEQU'
474 INFOT = 1
475 CALL CPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
476 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
477 INFOT = 2
478 CALL CPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
479 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
480 INFOT = 3
481 CALL CPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
482 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
483 INFOT = 5
484 CALL CPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
485 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK )
486 END IF
487 *
488 * Print a summary line.
489 *
490 CALL ALAESM( PATH, OK, NOUT )
491 *
492 RETURN
493 *
494 * End of CERRPO
495 *
496 END