59 SUBROUTINE cerrpo( PATH, NUNIT )
80 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
81 REAL ANRM, RCOND, BERR
84 REAL S( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
85 $ ERR_BNDS_N( NMAX, 3 ), ERR_BNDS_C( NMAX, 3 ),
87 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
88 $ W( 2*NMAX ), X( NMAX )
106 COMMON / infoc / infot, nout, ok, lerr
107 COMMON / srnamc / srnamt
110 INTRINSIC cmplx, real
115 WRITE( nout, fmt = * )
122 a( i, j ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
123 af( i, j ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
138 IF( lsamen( 2, c2,
'PO' ) )
THEN
144 CALL cpotrf(
'/', 0, a, 1, info )
145 CALL chkxer(
'CPOTRF', infot, nout, lerr, ok )
147 CALL cpotrf(
'U', -1, a, 1, info )
148 CALL chkxer(
'CPOTRF', infot, nout, lerr, ok )
150 CALL cpotrf(
'U', 2, a, 1, info )
151 CALL chkxer(
'CPOTRF', infot, nout, lerr, ok )
157 CALL cpotf2(
'/', 0, a, 1, info )
158 CALL chkxer(
'CPOTF2', infot, nout, lerr, ok )
160 CALL cpotf2(
'U', -1, a, 1, info )
161 CALL chkxer(
'CPOTF2', infot, nout, lerr, ok )
163 CALL cpotf2(
'U', 2, a, 1, info )
164 CALL chkxer(
'CPOTF2', infot, nout, lerr, ok )
170 CALL cpotri(
'/', 0, a, 1, info )
171 CALL chkxer(
'CPOTRI', infot, nout, lerr, ok )
173 CALL cpotri(
'U', -1, a, 1, info )
174 CALL chkxer(
'CPOTRI', infot, nout, lerr, ok )
176 CALL cpotri(
'U', 2, a, 1, info )
177 CALL chkxer(
'CPOTRI', infot, nout, lerr, ok )
183 CALL cpotrs(
'/', 0, 0, a, 1, b, 1, info )
184 CALL chkxer(
'CPOTRS', infot, nout, lerr, ok )
186 CALL cpotrs(
'U', -1, 0, a, 1, b, 1, info )
187 CALL chkxer(
'CPOTRS', infot, nout, lerr, ok )
189 CALL cpotrs(
'U', 0, -1, a, 1, b, 1, info )
190 CALL chkxer(
'CPOTRS', infot, nout, lerr, ok )
192 CALL cpotrs(
'U', 2, 1, a, 1, b, 2, info )
193 CALL chkxer(
'CPOTRS', infot, nout, lerr, ok )
195 CALL cpotrs(
'U', 2, 1, a, 2, b, 1, info )
196 CALL chkxer(
'CPOTRS', infot, nout, lerr, ok )
202 CALL cporfs(
'/', 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
204 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
206 CALL cporfs(
'U', -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
208 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
210 CALL cporfs(
'U', 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
212 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
214 CALL cporfs(
'U', 2, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w, r,
216 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
218 CALL cporfs(
'U', 2, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w, r,
220 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
222 CALL cporfs(
'U', 2, 1, a, 2, af, 2, b, 1, x, 2, r1, r2, w, r,
224 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
226 CALL cporfs(
'U', 2, 1, a, 2, af, 2, b, 2, x, 1, r1, r2, w, r,
228 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
236 CALL cporfsx(
'/', eq, 0, 0, a, 1, af, 1, s, b, 1, x, 1,
237 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
238 $ params, w, r, info )
239 CALL chkxer(
'CPORFSX', infot, nout, lerr, ok )
241 CALL cporfsx(
'U',
'/', -1, 0, a, 1, af, 1, s, b, 1, x, 1,
242 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
243 $ params, w, r, info )
244 CALL chkxer(
'CPORFSX', infot, nout, lerr, ok )
247 CALL cporfsx(
'U', eq, -1, 0, a, 1, af, 1, s, b, 1, x, 1,
248 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
249 $ params, w, r, info )
250 CALL chkxer(
'CPORFSX', infot, nout, lerr, ok )
252 CALL cporfsx(
'U', eq, 0, -1, a, 1, af, 1, s, b, 1, x, 1,
253 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
254 $ params, w, r, info )
255 CALL chkxer(
'CPORFSX', infot, nout, lerr, ok )
257 CALL cporfsx(
'U', eq, 2, 1, a, 1, af, 2, s, b, 2, x, 2,
258 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
259 $ params, w, r, info )
260 CALL chkxer(
'CPORFSX', infot, nout, lerr, ok )
262 CALL cporfsx(
'U', eq, 2, 1, a, 2, af, 1, s, b, 2, x, 2,
263 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
264 $ params, w, r, info )
265 CALL chkxer(
'CPORFSX', infot, nout, lerr, ok )
267 CALL cporfsx(
'U', eq, 2, 1, a, 2, af, 2, s, b, 1, x, 2,
268 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
269 $ params, w, r, info )
270 CALL chkxer(
'CPORFSX', infot, nout, lerr, ok )
272 CALL cporfsx(
'U', eq, 2, 1, a, 2, af, 2, s, b, 2, x, 1,
273 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
274 $ params, w, r, info )
275 CALL chkxer(
'CPORFSX', infot, nout, lerr, ok )
281 CALL cpocon(
'/', 0, a, 1, anrm, rcond, w, r, info )
282 CALL chkxer(
'CPOCON', infot, nout, lerr, ok )
284 CALL cpocon(
'U', -1, a, 1, anrm, rcond, w, r, info )
285 CALL chkxer(
'CPOCON', infot, nout, lerr, ok )
287 CALL cpocon(
'U', 2, a, 1, anrm, rcond, w, r, info )
288 CALL chkxer(
'CPOCON', infot, nout, lerr, ok )
290 CALL cpocon(
'U', 1, a, 1, -anrm, rcond, w, r, info )
291 CALL chkxer(
'CPOCON', infot, nout, lerr, ok )
297 CALL cpoequ( -1, a, 1, r1, rcond, anrm, info )
298 CALL chkxer(
'CPOEQU', infot, nout, lerr, ok )
300 CALL cpoequ( 2, a, 1, r1, rcond, anrm, info )
301 CALL chkxer(
'CPOEQU', infot, nout, lerr, ok )
307 CALL cpoequb( -1, a, 1, r1, rcond, anrm, info )
308 CALL chkxer(
'CPOEQUB', infot, nout, lerr, ok )
310 CALL cpoequb( 2, a, 1, r1, rcond, anrm, info )
311 CALL chkxer(
'CPOEQUB', infot, nout, lerr, ok )
316 ELSE IF( lsamen( 2, c2,
'PP' ) )
THEN
322 CALL cpptrf(
'/', 0, a, info )
323 CALL chkxer(
'CPPTRF', infot, nout, lerr, ok )
325 CALL cpptrf(
'U', -1, a, info )
326 CALL chkxer(
'CPPTRF', infot, nout, lerr, ok )
332 CALL cpptri(
'/', 0, a, info )
333 CALL chkxer(
'CPPTRI', infot, nout, lerr, ok )
335 CALL cpptri(
'U', -1, a, info )
336 CALL chkxer(
'CPPTRI', infot, nout, lerr, ok )
342 CALL cpptrs(
'/', 0, 0, a, b, 1, info )
343 CALL chkxer(
'CPPTRS', infot, nout, lerr, ok )
345 CALL cpptrs(
'U', -1, 0, a, b, 1, info )
346 CALL chkxer(
'CPPTRS', infot, nout, lerr, ok )
348 CALL cpptrs(
'U', 0, -1, a, b, 1, info )
349 CALL chkxer(
'CPPTRS', infot, nout, lerr, ok )
351 CALL cpptrs(
'U', 2, 1, a, b, 1, info )
352 CALL chkxer(
'CPPTRS', infot, nout, lerr, ok )
358 CALL cpprfs(
'/', 0, 0, a, af, b, 1, x, 1, r1, r2, w, r, info )
359 CALL chkxer(
'CPPRFS', infot, nout, lerr, ok )
361 CALL cpprfs(
'U', -1, 0, a, af, b, 1, x, 1, r1, r2, w, r,
363 CALL chkxer(
'CPPRFS', infot, nout, lerr, ok )
365 CALL cpprfs(
'U', 0, -1, a, af, b, 1, x, 1, r1, r2, w, r,
367 CALL chkxer(
'CPPRFS', infot, nout, lerr, ok )
369 CALL cpprfs(
'U', 2, 1, a, af, b, 1, x, 2, r1, r2, w, r, info )
370 CALL chkxer(
'CPPRFS', infot, nout, lerr, ok )
372 CALL cpprfs(
'U', 2, 1, a, af, b, 2, x, 1, r1, r2, w, r, info )
373 CALL chkxer(
'CPPRFS', infot, nout, lerr, ok )
379 CALL cppcon(
'/', 0, a, anrm, rcond, w, r, info )
380 CALL chkxer(
'CPPCON', infot, nout, lerr, ok )
382 CALL cppcon(
'U', -1, a, anrm, rcond, w, r, info )
383 CALL chkxer(
'CPPCON', infot, nout, lerr, ok )
385 CALL cppcon(
'U', 1, a, -anrm, rcond, w, r, info )
386 CALL chkxer(
'CPPCON', infot, nout, lerr, ok )
392 CALL cppequ(
'/', 0, a, r1, rcond, anrm, info )
393 CALL chkxer(
'CPPEQU', infot, nout, lerr, ok )
395 CALL cppequ(
'U', -1, a, r1, rcond, anrm, info )
396 CALL chkxer(
'CPPEQU', infot, nout, lerr, ok )
401 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
407 CALL cpbtrf(
'/', 0, 0, a, 1, info )
408 CALL chkxer(
'CPBTRF', infot, nout, lerr, ok )
410 CALL cpbtrf(
'U', -1, 0, a, 1, info )
411 CALL chkxer(
'CPBTRF', infot, nout, lerr, ok )
413 CALL cpbtrf(
'U', 1, -1, a, 1, info )
414 CALL chkxer(
'CPBTRF', infot, nout, lerr, ok )
416 CALL cpbtrf(
'U', 2, 1, a, 1, info )
417 CALL chkxer(
'CPBTRF', infot, nout, lerr, ok )
423 CALL cpbtf2(
'/', 0, 0, a, 1, info )
424 CALL chkxer(
'CPBTF2', infot, nout, lerr, ok )
426 CALL cpbtf2(
'U', -1, 0, a, 1, info )
427 CALL chkxer(
'CPBTF2', infot, nout, lerr, ok )
429 CALL cpbtf2(
'U', 1, -1, a, 1, info )
430 CALL chkxer(
'CPBTF2', infot, nout, lerr, ok )
432 CALL cpbtf2(
'U', 2, 1, a, 1, info )
433 CALL chkxer(
'CPBTF2', infot, nout, lerr, ok )
439 CALL cpbtrs(
'/', 0, 0, 0, a, 1, b, 1, info )
440 CALL chkxer(
'CPBTRS', infot, nout, lerr, ok )
442 CALL cpbtrs(
'U', -1, 0, 0, a, 1, b, 1, info )
443 CALL chkxer(
'CPBTRS', infot, nout, lerr, ok )
445 CALL cpbtrs(
'U', 1, -1, 0, a, 1, b, 1, info )
446 CALL chkxer(
'CPBTRS', infot, nout, lerr, ok )
448 CALL cpbtrs(
'U', 0, 0, -1, a, 1, b, 1, info )
449 CALL chkxer(
'CPBTRS', infot, nout, lerr, ok )
451 CALL cpbtrs(
'U', 2, 1, 1, a, 1, b, 1, info )
452 CALL chkxer(
'CPBTRS', infot, nout, lerr, ok )
454 CALL cpbtrs(
'U', 2, 0, 1, a, 1, b, 1, info )
455 CALL chkxer(
'CPBTRS', infot, nout, lerr, ok )
461 CALL cpbrfs(
'/', 0, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
463 CALL chkxer(
'CPBRFS', infot, nout, lerr, ok )
465 CALL cpbrfs(
'U', -1, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
467 CALL chkxer(
'CPBRFS', infot, nout, lerr, ok )
469 CALL cpbrfs(
'U', 1, -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
471 CALL chkxer(
'CPBRFS', infot, nout, lerr, ok )
473 CALL cpbrfs(
'U', 0, 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
475 CALL chkxer(
'CPBRFS', infot, nout, lerr, ok )
477 CALL cpbrfs(
'U', 2, 1, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w,
479 CALL chkxer(
'CPBRFS', infot, nout, lerr, ok )
481 CALL cpbrfs(
'U', 2, 1, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w,
483 CALL chkxer(
'CPBRFS', infot, nout, lerr, ok )
485 CALL cpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 1, x, 2, r1, r2, w,
487 CALL chkxer(
'CPBRFS', infot, nout, lerr, ok )
489 CALL cpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 2, x, 1, r1, r2, w,
491 CALL chkxer(
'CPBRFS', infot, nout, lerr, ok )
497 CALL cpbcon(
'/', 0, 0, a, 1, anrm, rcond, w, r, info )
498 CALL chkxer(
'CPBCON', infot, nout, lerr, ok )
500 CALL cpbcon(
'U', -1, 0, a, 1, anrm, rcond, w, r, info )
501 CALL chkxer(
'CPBCON', infot, nout, lerr, ok )
503 CALL cpbcon(
'U', 1, -1, a, 1, anrm, rcond, w, r, info )
504 CALL chkxer(
'CPBCON', infot, nout, lerr, ok )
506 CALL cpbcon(
'U', 2, 1, a, 1, anrm, rcond, w, r, info )
507 CALL chkxer(
'CPBCON', infot, nout, lerr, ok )
509 CALL cpbcon(
'U', 1, 0, a, 1, -anrm, rcond, w, r, info )
510 CALL chkxer(
'CPBCON', infot, nout, lerr, ok )
516 CALL cpbequ(
'/', 0, 0, a, 1, r1, rcond, anrm, info )
517 CALL chkxer(
'CPBEQU', infot, nout, lerr, ok )
519 CALL cpbequ(
'U', -1, 0, a, 1, r1, rcond, anrm, info )
520 CALL chkxer(
'CPBEQU', infot, nout, lerr, ok )
522 CALL cpbequ(
'U', 1, -1, a, 1, r1, rcond, anrm, info )
523 CALL chkxer(
'CPBEQU', infot, nout, lerr, ok )
525 CALL cpbequ(
'U', 2, 1, a, 1, r1, rcond, anrm, info )
526 CALL chkxer(
'CPBEQU', infot, nout, lerr, ok )
531 CALL alaesm( path, ok, nout )