59 SUBROUTINE derrpo( PATH, NUNIT )
75 parameter ( nmax = 4 )
80 INTEGER i, info, j, n_err_bnds, nparams
81 DOUBLE PRECISION anrm, rcond, berr
85 DOUBLE PRECISION a( nmax, nmax ), af( nmax, nmax ), b( nmax ),
86 $ r1( nmax ), r2( nmax ), w( 3*nmax ), x( nmax ),
87 $ s( nmax ), err_bnds_n( nmax, 3 ),
88 $ err_bnds_c( nmax, 3), params( 1 )
106 COMMON / infoc / infot, nout, ok, lerr
107 COMMON / srnamc / srnamt
115 WRITE( nout, fmt = * )
122 a( i, j ) = 1.d0 / dble( i+j )
123 af( i, j ) = 1.d0 / dble( i+j )
135 IF(
lsamen( 2, c2,
'PO' ) )
THEN
144 CALL dpotrf(
'/', 0, a, 1, info )
145 CALL chkxer(
'DPOTRF', infot, nout, lerr, ok )
147 CALL dpotrf(
'U', -1, a, 1, info )
148 CALL chkxer(
'DPOTRF', infot, nout, lerr, ok )
150 CALL dpotrf(
'U', 2, a, 1, info )
151 CALL chkxer(
'DPOTRF', infot, nout, lerr, ok )
157 CALL dpotf2(
'/', 0, a, 1, info )
158 CALL chkxer(
'DPOTF2', infot, nout, lerr, ok )
160 CALL dpotf2(
'U', -1, a, 1, info )
161 CALL chkxer(
'DPOTF2', infot, nout, lerr, ok )
163 CALL dpotf2(
'U', 2, a, 1, info )
164 CALL chkxer(
'DPOTF2', infot, nout, lerr, ok )
170 CALL dpotri(
'/', 0, a, 1, info )
171 CALL chkxer(
'DPOTRI', infot, nout, lerr, ok )
173 CALL dpotri(
'U', -1, a, 1, info )
174 CALL chkxer(
'DPOTRI', infot, nout, lerr, ok )
176 CALL dpotri(
'U', 2, a, 1, info )
177 CALL chkxer(
'DPOTRI', infot, nout, lerr, ok )
183 CALL dpotrs(
'/', 0, 0, a, 1, b, 1, info )
184 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
186 CALL dpotrs(
'U', -1, 0, a, 1, b, 1, info )
187 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
189 CALL dpotrs(
'U', 0, -1, a, 1, b, 1, info )
190 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
192 CALL dpotrs(
'U', 2, 1, a, 1, b, 2, info )
193 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
195 CALL dpotrs(
'U', 2, 1, a, 2, b, 1, info )
196 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
202 CALL dporfs(
'/', 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, iw,
204 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
206 CALL dporfs(
'U', -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
208 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
210 CALL dporfs(
'U', 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
212 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
214 CALL dporfs(
'U', 2, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w, iw,
216 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
218 CALL dporfs(
'U', 2, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w, iw,
220 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
222 CALL dporfs(
'U', 2, 1, a, 2, af, 2, b, 1, x, 2, r1, r2, w, iw,
224 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
226 CALL dporfs(
'U', 2, 1, a, 2, af, 2, b, 2, x, 1, r1, r2, w, iw,
228 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
236 CALL dporfsx(
'/', 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, iw, info )
239 CALL chkxer(
'DPORFSX', infot, nout, lerr, ok )
241 CALL dporfsx(
'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, iw, info )
244 CALL chkxer(
'DPORFSX', infot, nout, lerr, ok )
247 CALL dporfsx(
'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, iw, info )
250 CALL chkxer(
'DPORFSX', infot, nout, lerr, ok )
252 CALL dporfsx(
'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, iw, info )
255 CALL chkxer(
'DPORFSX', infot, nout, lerr, ok )
257 CALL dporfsx(
'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, iw, info )
260 CALL chkxer(
'DPORFSX', infot, nout, lerr, ok )
262 CALL dporfsx(
'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, iw, info )
265 CALL chkxer(
'DPORFSX', infot, nout, lerr, ok )
267 CALL dporfsx(
'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, iw, info )
270 CALL chkxer(
'DPORFSX', infot, nout, lerr, ok )
272 CALL dporfsx(
'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, iw, info )
275 CALL chkxer(
'DPORFSX', infot, nout, lerr, ok )
281 CALL dpocon(
'/', 0, a, 1, anrm, rcond, w, iw, info )
282 CALL chkxer(
'DPOCON', infot, nout, lerr, ok )
284 CALL dpocon(
'U', -1, a, 1, anrm, rcond, w, iw, info )
285 CALL chkxer(
'DPOCON', infot, nout, lerr, ok )
287 CALL dpocon(
'U', 2, a, 1, anrm, rcond, w, iw, info )
288 CALL chkxer(
'DPOCON', infot, nout, lerr, ok )
294 CALL dpoequ( -1, a, 1, r1, rcond, anrm, info )
295 CALL chkxer(
'DPOEQU', infot, nout, lerr, ok )
297 CALL dpoequ( 2, a, 1, r1, rcond, anrm, info )
298 CALL chkxer(
'DPOEQU', infot, nout, lerr, ok )
304 CALL dpoequb( -1, a, 1, r1, rcond, anrm, info )
305 CALL chkxer(
'DPOEQUB', infot, nout, lerr, ok )
307 CALL dpoequb( 2, a, 1, r1, rcond, anrm, info )
308 CALL chkxer(
'DPOEQUB', infot, nout, lerr, ok )
310 ELSE IF(
lsamen( 2, c2,
'PP' ) )
THEN
319 CALL dpptrf(
'/', 0, a, info )
320 CALL chkxer(
'DPPTRF', infot, nout, lerr, ok )
322 CALL dpptrf(
'U', -1, a, info )
323 CALL chkxer(
'DPPTRF', infot, nout, lerr, ok )
329 CALL dpptri(
'/', 0, a, info )
330 CALL chkxer(
'DPPTRI', infot, nout, lerr, ok )
332 CALL dpptri(
'U', -1, a, info )
333 CALL chkxer(
'DPPTRI', infot, nout, lerr, ok )
339 CALL dpptrs(
'/', 0, 0, a, b, 1, info )
340 CALL chkxer(
'DPPTRS', infot, nout, lerr, ok )
342 CALL dpptrs(
'U', -1, 0, a, b, 1, info )
343 CALL chkxer(
'DPPTRS', infot, nout, lerr, ok )
345 CALL dpptrs(
'U', 0, -1, a, b, 1, info )
346 CALL chkxer(
'DPPTRS', infot, nout, lerr, ok )
348 CALL dpptrs(
'U', 2, 1, a, b, 1, info )
349 CALL chkxer(
'DPPTRS', infot, nout, lerr, ok )
355 CALL dpprfs(
'/', 0, 0, a, af, b, 1, x, 1, r1, r2, w, iw,
357 CALL chkxer(
'DPPRFS', infot, nout, lerr, ok )
359 CALL dpprfs(
'U', -1, 0, a, af, b, 1, x, 1, r1, r2, w, iw,
361 CALL chkxer(
'DPPRFS', infot, nout, lerr, ok )
363 CALL dpprfs(
'U', 0, -1, a, af, b, 1, x, 1, r1, r2, w, iw,
365 CALL chkxer(
'DPPRFS', infot, nout, lerr, ok )
367 CALL dpprfs(
'U', 2, 1, a, af, b, 1, x, 2, r1, r2, w, iw,
369 CALL chkxer(
'DPPRFS', infot, nout, lerr, ok )
371 CALL dpprfs(
'U', 2, 1, a, af, b, 2, x, 1, r1, r2, w, iw,
373 CALL chkxer(
'DPPRFS', infot, nout, lerr, ok )
379 CALL dppcon(
'/', 0, a, anrm, rcond, w, iw, info )
380 CALL chkxer(
'DPPCON', infot, nout, lerr, ok )
382 CALL dppcon(
'U', -1, a, anrm, rcond, w, iw, info )
383 CALL chkxer(
'DPPCON', infot, nout, lerr, ok )
389 CALL dppequ(
'/', 0, a, r1, rcond, anrm, info )
390 CALL chkxer(
'DPPEQU', infot, nout, lerr, ok )
392 CALL dppequ(
'U', -1, a, r1, rcond, anrm, info )
393 CALL chkxer(
'DPPEQU', infot, nout, lerr, ok )
395 ELSE IF(
lsamen( 2, c2,
'PB' ) )
THEN
404 CALL dpbtrf(
'/', 0, 0, a, 1, info )
405 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
407 CALL dpbtrf(
'U', -1, 0, a, 1, info )
408 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
410 CALL dpbtrf(
'U', 1, -1, a, 1, info )
411 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
413 CALL dpbtrf(
'U', 2, 1, a, 1, info )
414 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
420 CALL dpbtf2(
'/', 0, 0, a, 1, info )
421 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
423 CALL dpbtf2(
'U', -1, 0, a, 1, info )
424 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
426 CALL dpbtf2(
'U', 1, -1, a, 1, info )
427 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
429 CALL dpbtf2(
'U', 2, 1, a, 1, info )
430 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
436 CALL dpbtrs(
'/', 0, 0, 0, a, 1, b, 1, info )
437 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
439 CALL dpbtrs(
'U', -1, 0, 0, a, 1, b, 1, info )
440 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
442 CALL dpbtrs(
'U', 1, -1, 0, a, 1, b, 1, info )
443 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
445 CALL dpbtrs(
'U', 0, 0, -1, a, 1, b, 1, info )
446 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
448 CALL dpbtrs(
'U', 2, 1, 1, a, 1, b, 1, info )
449 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
451 CALL dpbtrs(
'U', 2, 0, 1, a, 1, b, 1, info )
452 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
458 CALL dpbrfs(
'/', 0, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
460 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
462 CALL dpbrfs(
'U', -1, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
464 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
466 CALL dpbrfs(
'U', 1, -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
468 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
470 CALL dpbrfs(
'U', 0, 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
472 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
474 CALL dpbrfs(
'U', 2, 1, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w,
476 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
478 CALL dpbrfs(
'U', 2, 1, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w,
480 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
482 CALL dpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 1, x, 2, r1, r2, w,
484 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
486 CALL dpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 2, x, 1, r1, r2, w,
488 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
494 CALL dpbcon(
'/', 0, 0, a, 1, anrm, rcond, w, iw, info )
495 CALL chkxer(
'DPBCON', infot, nout, lerr, ok )
497 CALL dpbcon(
'U', -1, 0, a, 1, anrm, rcond, w, iw, info )
498 CALL chkxer(
'DPBCON', infot, nout, lerr, ok )
500 CALL dpbcon(
'U', 1, -1, a, 1, anrm, rcond, w, iw, info )
501 CALL chkxer(
'DPBCON', infot, nout, lerr, ok )
503 CALL dpbcon(
'U', 2, 1, a, 1, anrm, rcond, w, iw, info )
504 CALL chkxer(
'DPBCON', infot, nout, lerr, ok )
510 CALL dpbequ(
'/', 0, 0, a, 1, r1, rcond, anrm, info )
511 CALL chkxer(
'DPBEQU', infot, nout, lerr, ok )
513 CALL dpbequ(
'U', -1, 0, a, 1, r1, rcond, anrm, info )
514 CALL chkxer(
'DPBEQU', infot, nout, lerr, ok )
516 CALL dpbequ(
'U', 1, -1, a, 1, r1, rcond, anrm, info )
517 CALL chkxer(
'DPBEQU', infot, nout, lerr, ok )
519 CALL dpbequ(
'U', 2, 1, a, 1, r1, rcond, anrm, info )
520 CALL chkxer(
'DPBEQU', infot, nout, lerr, ok )
525 CALL alaesm( path, ok, nout )
subroutine dpptrs(UPLO, N, NRHS, AP, B, LDB, INFO)
DPPTRS
subroutine dpotrf(UPLO, N, A, LDA, INFO)
DPOTRF
subroutine dpocon(UPLO, N, A, LDA, ANORM, RCOND, WORK, IWORK, INFO)
DPOCON
subroutine dpbcon(UPLO, N, KD, AB, LDAB, ANORM, RCOND, WORK, IWORK, INFO)
DPBCON
logical function lsamen(N, CA, CB)
LSAMEN
subroutine alaesm(PATH, OK, NOUT)
ALAESM
subroutine dpprfs(UPLO, N, NRHS, AP, AFP, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DPPRFS
subroutine dpbequ(UPLO, N, KD, AB, LDAB, S, SCOND, AMAX, INFO)
DPBEQU
subroutine dpptrf(UPLO, N, AP, INFO)
DPPTRF
subroutine dpoequb(N, A, LDA, S, SCOND, AMAX, INFO)
DPOEQUB
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine dppequ(UPLO, N, AP, S, SCOND, AMAX, INFO)
DPPEQU
subroutine dpbtrf(UPLO, N, KD, AB, LDAB, INFO)
DPBTRF
subroutine dpotrs(UPLO, N, NRHS, A, LDA, B, LDB, INFO)
DPOTRS
subroutine dpbtf2(UPLO, N, KD, AB, LDAB, INFO)
DPBTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite band matrix (un...
subroutine dpbtrs(UPLO, N, KD, NRHS, AB, LDAB, B, LDB, INFO)
DPBTRS
subroutine dpotf2(UPLO, N, A, LDA, INFO)
DPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine dpptri(UPLO, N, AP, INFO)
DPPTRI
subroutine dpbrfs(UPLO, N, KD, NRHS, AB, LDAB, AFB, LDAFB, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DPBRFS
subroutine dppcon(UPLO, N, AP, ANORM, RCOND, WORK, IWORK, INFO)
DPPCON
subroutine dporfs(UPLO, N, NRHS, A, LDA, AF, LDAF, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DPORFS
subroutine dporfsx(UPLO, EQUED, N, NRHS, A, LDA, AF, LDAF, S, B, LDB, X, LDX, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_NORM, ERR_BNDS_COMP, NPARAMS, PARAMS, WORK, IWORK, INFO)
DPORFSX
subroutine dpoequ(N, A, LDA, S, SCOND, AMAX, INFO)
DPOEQU
subroutine derrpo(PATH, NUNIT)
DERRPO
subroutine dpotri(UPLO, N, A, LDA, INFO)
DPOTRI