59 SUBROUTINE zerrpo( PATH, NUNIT )
80 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
81 DOUBLE PRECISION ANRM, RCOND, BERR
84 DOUBLE PRECISION S( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
85 $ ERR_BNDS_N( NMAX, 3 ), ERR_BNDS_C( NMAX, 3 ),
87 COMPLEX*16 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 dble, dcmplx
115 WRITE( nout, fmt = * )
122 a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
123 $ -1.d0 / dble( i+j ) )
124 af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
125 $ -1.d0 / dble( i+j ) )
140 IF( lsamen( 2, c2,
'PO' ) )
THEN
146 CALL zpotrf(
'/', 0, a, 1, info )
147 CALL chkxer(
'ZPOTRF', infot, nout, lerr, ok )
149 CALL zpotrf(
'U', -1, a, 1, info )
150 CALL chkxer(
'ZPOTRF', infot, nout, lerr, ok )
152 CALL zpotrf(
'U', 2, a, 1, info )
153 CALL chkxer(
'ZPOTRF', infot, nout, lerr, ok )
159 CALL zpotf2(
'/', 0, a, 1, info )
160 CALL chkxer(
'ZPOTF2', infot, nout, lerr, ok )
162 CALL zpotf2(
'U', -1, a, 1, info )
163 CALL chkxer(
'ZPOTF2', infot, nout, lerr, ok )
165 CALL zpotf2(
'U', 2, a, 1, info )
166 CALL chkxer(
'ZPOTF2', infot, nout, lerr, ok )
172 CALL zpotri(
'/', 0, a, 1, info )
173 CALL chkxer(
'ZPOTRI', infot, nout, lerr, ok )
175 CALL zpotri(
'U', -1, a, 1, info )
176 CALL chkxer(
'ZPOTRI', infot, nout, lerr, ok )
178 CALL zpotri(
'U', 2, a, 1, info )
179 CALL chkxer(
'ZPOTRI', infot, nout, lerr, ok )
185 CALL zpotrs(
'/', 0, 0, a, 1, b, 1, info )
186 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
188 CALL zpotrs(
'U', -1, 0, a, 1, b, 1, info )
189 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
191 CALL zpotrs(
'U', 0, -1, a, 1, b, 1, info )
192 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
194 CALL zpotrs(
'U', 2, 1, a, 1, b, 2, info )
195 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
197 CALL zpotrs(
'U', 2, 1, a, 2, b, 1, info )
198 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
204 CALL zporfs(
'/', 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
206 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
208 CALL zporfs(
'U', -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
210 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
212 CALL zporfs(
'U', 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
214 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
216 CALL zporfs(
'U', 2, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w, r,
218 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
220 CALL zporfs(
'U', 2, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w, r,
222 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
224 CALL zporfs(
'U', 2, 1, a, 2, af, 2, b, 1, x, 2, r1, r2, w, r,
226 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
228 CALL zporfs(
'U', 2, 1, a, 2, af, 2, b, 2, x, 1, r1, r2, w, r,
230 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
238 CALL zporfsx(
'/', eq, 0, 0, a, 1, af, 1, s, b, 1, x, 1,
239 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
240 $ params, w, r, info )
241 CALL chkxer(
'ZPORFSX', infot, nout, lerr, ok )
243 CALL zporfsx(
'U',
"/", -1, 0, a, 1, af, 1, s, b, 1, x, 1,
244 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
245 $ params, w, r, info )
246 CALL chkxer(
'ZPORFSX', infot, nout, lerr, ok )
249 CALL zporfsx(
'U', eq, -1, 0, a, 1, af, 1, s, b, 1, x, 1,
250 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
251 $ params, w, r, info )
252 CALL chkxer(
'ZPORFSX', infot, nout, lerr, ok )
254 CALL zporfsx(
'U', eq, 0, -1, a, 1, af, 1, s, b, 1, x, 1,
255 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
256 $ params, w, r, info )
257 CALL chkxer(
'ZPORFSX', infot, nout, lerr, ok )
259 CALL zporfsx(
'U', eq, 2, 1, a, 1, af, 2, s, b, 2, x, 2,
260 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
261 $ params, w, r, info )
262 CALL chkxer(
'ZPORFSX', infot, nout, lerr, ok )
264 CALL zporfsx(
'U', eq, 2, 1, a, 2, af, 1, s, b, 2, x, 2,
265 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
266 $ params, w, r, info )
267 CALL chkxer(
'ZPORFSX', infot, nout, lerr, ok )
269 CALL zporfsx(
'U', eq, 2, 1, a, 2, af, 2, s, b, 1, x, 2,
270 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
271 $ params, w, r, info )
272 CALL chkxer(
'ZPORFSX', infot, nout, lerr, ok )
274 CALL zporfsx(
'U', eq, 2, 1, a, 2, af, 2, s, b, 2, x, 1,
275 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
276 $ params, w, r, info )
277 CALL chkxer(
'ZPORFSX', infot, nout, lerr, ok )
283 CALL zpocon(
'/', 0, a, 1, anrm, rcond, w, r, info )
284 CALL chkxer(
'ZPOCON', infot, nout, lerr, ok )
286 CALL zpocon(
'U', -1, a, 1, anrm, rcond, w, r, info )
287 CALL chkxer(
'ZPOCON', infot, nout, lerr, ok )
289 CALL zpocon(
'U', 2, a, 1, anrm, rcond, w, r, info )
290 CALL chkxer(
'ZPOCON', infot, nout, lerr, ok )
292 CALL zpocon(
'U', 1, a, 1, -anrm, rcond, w, r, info )
293 CALL chkxer(
'ZPOCON', infot, nout, lerr, ok )
299 CALL zpoequ( -1, a, 1, r1, rcond, anrm, info )
300 CALL chkxer(
'ZPOEQU', infot, nout, lerr, ok )
302 CALL zpoequ( 2, a, 1, r1, rcond, anrm, info )
303 CALL chkxer(
'ZPOEQU', infot, nout, lerr, ok )
309 CALL zpoequb( -1, a, 1, r1, rcond, anrm, info )
310 CALL chkxer(
'ZPOEQUB', infot, nout, lerr, ok )
312 CALL zpoequb( 2, a, 1, r1, rcond, anrm, info )
313 CALL chkxer(
'ZPOEQUB', infot, nout, lerr, ok )
318 ELSE IF( lsamen( 2, c2,
'PP' ) )
THEN
324 CALL zpptrf(
'/', 0, a, info )
325 CALL chkxer(
'ZPPTRF', infot, nout, lerr, ok )
327 CALL zpptrf(
'U', -1, a, info )
328 CALL chkxer(
'ZPPTRF', infot, nout, lerr, ok )
334 CALL zpptri(
'/', 0, a, info )
335 CALL chkxer(
'ZPPTRI', infot, nout, lerr, ok )
337 CALL zpptri(
'U', -1, a, info )
338 CALL chkxer(
'ZPPTRI', infot, nout, lerr, ok )
344 CALL zpptrs(
'/', 0, 0, a, b, 1, info )
345 CALL chkxer(
'ZPPTRS', infot, nout, lerr, ok )
347 CALL zpptrs(
'U', -1, 0, a, b, 1, info )
348 CALL chkxer(
'ZPPTRS', infot, nout, lerr, ok )
350 CALL zpptrs(
'U', 0, -1, a, b, 1, info )
351 CALL chkxer(
'ZPPTRS', infot, nout, lerr, ok )
353 CALL zpptrs(
'U', 2, 1, a, b, 1, info )
354 CALL chkxer(
'ZPPTRS', infot, nout, lerr, ok )
360 CALL zpprfs(
'/', 0, 0, a, af, b, 1, x, 1, r1, r2, w, r, info )
361 CALL chkxer(
'ZPPRFS', infot, nout, lerr, ok )
363 CALL zpprfs(
'U', -1, 0, a, af, b, 1, x, 1, r1, r2, w, r,
365 CALL chkxer(
'ZPPRFS', infot, nout, lerr, ok )
367 CALL zpprfs(
'U', 0, -1, a, af, b, 1, x, 1, r1, r2, w, r,
369 CALL chkxer(
'ZPPRFS', infot, nout, lerr, ok )
371 CALL zpprfs(
'U', 2, 1, a, af, b, 1, x, 2, r1, r2, w, r, info )
372 CALL chkxer(
'ZPPRFS', infot, nout, lerr, ok )
374 CALL zpprfs(
'U', 2, 1, a, af, b, 2, x, 1, r1, r2, w, r, info )
375 CALL chkxer(
'ZPPRFS', infot, nout, lerr, ok )
381 CALL zppcon(
'/', 0, a, anrm, rcond, w, r, info )
382 CALL chkxer(
'ZPPCON', infot, nout, lerr, ok )
384 CALL zppcon(
'U', -1, a, anrm, rcond, w, r, info )
385 CALL chkxer(
'ZPPCON', infot, nout, lerr, ok )
387 CALL zppcon(
'U', 1, a, -anrm, rcond, w, r, info )
388 CALL chkxer(
'ZPPCON', infot, nout, lerr, ok )
394 CALL zppequ(
'/', 0, a, r1, rcond, anrm, info )
395 CALL chkxer(
'ZPPEQU', infot, nout, lerr, ok )
397 CALL zppequ(
'U', -1, a, r1, rcond, anrm, info )
398 CALL chkxer(
'ZPPEQU', infot, nout, lerr, ok )
403 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
409 CALL zpbtrf(
'/', 0, 0, a, 1, info )
410 CALL chkxer(
'ZPBTRF', infot, nout, lerr, ok )
412 CALL zpbtrf(
'U', -1, 0, a, 1, info )
413 CALL chkxer(
'ZPBTRF', infot, nout, lerr, ok )
415 CALL zpbtrf(
'U', 1, -1, a, 1, info )
416 CALL chkxer(
'ZPBTRF', infot, nout, lerr, ok )
418 CALL zpbtrf(
'U', 2, 1, a, 1, info )
419 CALL chkxer(
'ZPBTRF', infot, nout, lerr, ok )
425 CALL zpbtf2(
'/', 0, 0, a, 1, info )
426 CALL chkxer(
'ZPBTF2', infot, nout, lerr, ok )
428 CALL zpbtf2(
'U', -1, 0, a, 1, info )
429 CALL chkxer(
'ZPBTF2', infot, nout, lerr, ok )
431 CALL zpbtf2(
'U', 1, -1, a, 1, info )
432 CALL chkxer(
'ZPBTF2', infot, nout, lerr, ok )
434 CALL zpbtf2(
'U', 2, 1, a, 1, info )
435 CALL chkxer(
'ZPBTF2', infot, nout, lerr, ok )
441 CALL zpbtrs(
'/', 0, 0, 0, a, 1, b, 1, info )
442 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
444 CALL zpbtrs(
'U', -1, 0, 0, a, 1, b, 1, info )
445 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
447 CALL zpbtrs(
'U', 1, -1, 0, a, 1, b, 1, info )
448 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
450 CALL zpbtrs(
'U', 0, 0, -1, a, 1, b, 1, info )
451 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
453 CALL zpbtrs(
'U', 2, 1, 1, a, 1, b, 1, info )
454 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
456 CALL zpbtrs(
'U', 2, 0, 1, a, 1, b, 1, info )
457 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
463 CALL zpbrfs(
'/', 0, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
465 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
467 CALL zpbrfs(
'U', -1, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
469 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
471 CALL zpbrfs(
'U', 1, -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
473 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
475 CALL zpbrfs(
'U', 0, 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
477 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
479 CALL zpbrfs(
'U', 2, 1, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w,
481 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
483 CALL zpbrfs(
'U', 2, 1, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w,
485 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
487 CALL zpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 1, x, 2, r1, r2, w,
489 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
491 CALL zpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 2, x, 1, r1, r2, w,
493 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
499 CALL zpbcon(
'/', 0, 0, a, 1, anrm, rcond, w, r, info )
500 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
502 CALL zpbcon(
'U', -1, 0, a, 1, anrm, rcond, w, r, info )
503 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
505 CALL zpbcon(
'U', 1, -1, a, 1, anrm, rcond, w, r, info )
506 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
508 CALL zpbcon(
'U', 2, 1, a, 1, anrm, rcond, w, r, info )
509 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
511 CALL zpbcon(
'U', 1, 0, a, 1, -anrm, rcond, w, r, info )
512 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
518 CALL zpbequ(
'/', 0, 0, a, 1, r1, rcond, anrm, info )
519 CALL chkxer(
'ZPBEQU', infot, nout, lerr, ok )
521 CALL zpbequ(
'U', -1, 0, a, 1, r1, rcond, anrm, info )
522 CALL chkxer(
'ZPBEQU', infot, nout, lerr, ok )
524 CALL zpbequ(
'U', 1, -1, a, 1, r1, rcond, anrm, info )
525 CALL chkxer(
'ZPBEQU', infot, nout, lerr, ok )
527 CALL zpbequ(
'U', 2, 1, a, 1, r1, rcond, anrm, info )
528 CALL chkxer(
'ZPBEQU', infot, nout, lerr, ok )
533 CALL alaesm( path, ok, nout )