56 SUBROUTINE derrpo( PATH, NUNIT )
72 parameter ( nmax = 4 )
77 DOUBLE PRECISION ANRM, RCOND
81 DOUBLE PRECISION A( nmax, nmax ), AF( nmax, nmax ), B( nmax ),
82 $ r1( nmax ), r2( nmax ), w( 3*nmax ), x( nmax )
100 COMMON / infoc / infot, nout, ok, lerr
101 COMMON / srnamc / srnamt
109 WRITE( nout, fmt = * )
116 a( i, j ) = 1.d0 / dble( i+j )
117 af( i, j ) = 1.d0 / dble( i+j )
128 IF( lsamen( 2, c2,
'PO' ) )
THEN
137 CALL dpotrf(
'/', 0, a, 1, info )
138 CALL chkxer(
'DPOTRF', infot, nout, lerr, ok )
140 CALL dpotrf(
'U', -1, a, 1, info )
141 CALL chkxer(
'DPOTRF', infot, nout, lerr, ok )
143 CALL dpotrf(
'U', 2, a, 1, info )
144 CALL chkxer(
'DPOTRF', infot, nout, lerr, ok )
150 CALL dpotf2(
'/', 0, a, 1, info )
151 CALL chkxer(
'DPOTF2', infot, nout, lerr, ok )
153 CALL dpotf2(
'U', -1, a, 1, info )
154 CALL chkxer(
'DPOTF2', infot, nout, lerr, ok )
156 CALL dpotf2(
'U', 2, a, 1, info )
157 CALL chkxer(
'DPOTF2', infot, nout, lerr, ok )
163 CALL dpotri(
'/', 0, a, 1, info )
164 CALL chkxer(
'DPOTRI', infot, nout, lerr, ok )
166 CALL dpotri(
'U', -1, a, 1, info )
167 CALL chkxer(
'DPOTRI', infot, nout, lerr, ok )
169 CALL dpotri(
'U', 2, a, 1, info )
170 CALL chkxer(
'DPOTRI', infot, nout, lerr, ok )
176 CALL dpotrs(
'/', 0, 0, a, 1, b, 1, info )
177 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
179 CALL dpotrs(
'U', -1, 0, a, 1, b, 1, info )
180 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
182 CALL dpotrs(
'U', 0, -1, a, 1, b, 1, info )
183 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
185 CALL dpotrs(
'U', 2, 1, a, 1, b, 2, info )
186 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
188 CALL dpotrs(
'U', 2, 1, a, 2, b, 1, info )
189 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
195 CALL dporfs(
'/', 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, iw,
197 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
199 CALL dporfs(
'U', -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
201 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
203 CALL dporfs(
'U', 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
205 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
207 CALL dporfs(
'U', 2, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w, iw,
209 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
211 CALL dporfs(
'U', 2, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w, iw,
213 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
215 CALL dporfs(
'U', 2, 1, a, 2, af, 2, b, 1, x, 2, r1, r2, w, iw,
217 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
219 CALL dporfs(
'U', 2, 1, a, 2, af, 2, b, 2, x, 1, r1, r2, w, iw,
221 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
227 CALL dpocon(
'/', 0, a, 1, anrm, rcond, w, iw, info )
228 CALL chkxer(
'DPOCON', infot, nout, lerr, ok )
230 CALL dpocon(
'U', -1, a, 1, anrm, rcond, w, iw, info )
231 CALL chkxer(
'DPOCON', infot, nout, lerr, ok )
233 CALL dpocon(
'U', 2, a, 1, anrm, rcond, w, iw, info )
234 CALL chkxer(
'DPOCON', infot, nout, lerr, ok )
240 CALL dpoequ( -1, a, 1, r1, rcond, anrm, info )
241 CALL chkxer(
'DPOEQU', infot, nout, lerr, ok )
243 CALL dpoequ( 2, a, 1, r1, rcond, anrm, info )
244 CALL chkxer(
'DPOEQU', infot, nout, lerr, ok )
246 ELSE IF( lsamen( 2, c2,
'PP' ) )
THEN
255 CALL dpptrf(
'/', 0, a, info )
256 CALL chkxer(
'DPPTRF', infot, nout, lerr, ok )
258 CALL dpptrf(
'U', -1, a, info )
259 CALL chkxer(
'DPPTRF', infot, nout, lerr, ok )
265 CALL dpptri(
'/', 0, a, info )
266 CALL chkxer(
'DPPTRI', infot, nout, lerr, ok )
268 CALL dpptri(
'U', -1, a, info )
269 CALL chkxer(
'DPPTRI', infot, nout, lerr, ok )
275 CALL dpptrs(
'/', 0, 0, a, b, 1, info )
276 CALL chkxer(
'DPPTRS', infot, nout, lerr, ok )
278 CALL dpptrs(
'U', -1, 0, a, b, 1, info )
279 CALL chkxer(
'DPPTRS', infot, nout, lerr, ok )
281 CALL dpptrs(
'U', 0, -1, a, b, 1, info )
282 CALL chkxer(
'DPPTRS', infot, nout, lerr, ok )
284 CALL dpptrs(
'U', 2, 1, a, b, 1, info )
285 CALL chkxer(
'DPPTRS', infot, nout, lerr, ok )
291 CALL dpprfs(
'/', 0, 0, a, af, b, 1, x, 1, r1, r2, w, iw,
293 CALL chkxer(
'DPPRFS', infot, nout, lerr, ok )
295 CALL dpprfs(
'U', -1, 0, a, af, b, 1, x, 1, r1, r2, w, iw,
297 CALL chkxer(
'DPPRFS', infot, nout, lerr, ok )
299 CALL dpprfs(
'U', 0, -1, a, af, b, 1, x, 1, r1, r2, w, iw,
301 CALL chkxer(
'DPPRFS', infot, nout, lerr, ok )
303 CALL dpprfs(
'U', 2, 1, a, af, b, 1, x, 2, r1, r2, w, iw,
305 CALL chkxer(
'DPPRFS', infot, nout, lerr, ok )
307 CALL dpprfs(
'U', 2, 1, a, af, b, 2, x, 1, r1, r2, w, iw,
309 CALL chkxer(
'DPPRFS', infot, nout, lerr, ok )
315 CALL dppcon(
'/', 0, a, anrm, rcond, w, iw, info )
316 CALL chkxer(
'DPPCON', infot, nout, lerr, ok )
318 CALL dppcon(
'U', -1, a, anrm, rcond, w, iw, info )
319 CALL chkxer(
'DPPCON', infot, nout, lerr, ok )
325 CALL dppequ(
'/', 0, a, r1, rcond, anrm, info )
326 CALL chkxer(
'DPPEQU', infot, nout, lerr, ok )
328 CALL dppequ(
'U', -1, a, r1, rcond, anrm, info )
329 CALL chkxer(
'DPPEQU', infot, nout, lerr, ok )
331 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
340 CALL dpbtrf(
'/', 0, 0, a, 1, info )
341 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
343 CALL dpbtrf(
'U', -1, 0, a, 1, info )
344 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
346 CALL dpbtrf(
'U', 1, -1, a, 1, info )
347 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
349 CALL dpbtrf(
'U', 2, 1, a, 1, info )
350 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
356 CALL dpbtf2(
'/', 0, 0, a, 1, info )
357 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
359 CALL dpbtf2(
'U', -1, 0, a, 1, info )
360 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
362 CALL dpbtf2(
'U', 1, -1, a, 1, info )
363 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
365 CALL dpbtf2(
'U', 2, 1, a, 1, info )
366 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
372 CALL dpbtrs(
'/', 0, 0, 0, a, 1, b, 1, info )
373 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
375 CALL dpbtrs(
'U', -1, 0, 0, a, 1, b, 1, info )
376 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
378 CALL dpbtrs(
'U', 1, -1, 0, a, 1, b, 1, info )
379 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
381 CALL dpbtrs(
'U', 0, 0, -1, a, 1, b, 1, info )
382 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
384 CALL dpbtrs(
'U', 2, 1, 1, a, 1, b, 1, info )
385 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
387 CALL dpbtrs(
'U', 2, 0, 1, a, 1, b, 1, info )
388 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
394 CALL dpbrfs(
'/', 0, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
396 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
398 CALL dpbrfs(
'U', -1, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
400 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
402 CALL dpbrfs(
'U', 1, -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
404 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
406 CALL dpbrfs(
'U', 0, 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
408 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
410 CALL dpbrfs(
'U', 2, 1, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w,
412 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
414 CALL dpbrfs(
'U', 2, 1, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w,
416 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
418 CALL dpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 1, x, 2, r1, r2, w,
420 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
422 CALL dpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 2, x, 1, r1, r2, w,
424 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
430 CALL dpbcon(
'/', 0, 0, a, 1, anrm, rcond, w, iw, info )
431 CALL chkxer(
'DPBCON', infot, nout, lerr, ok )
433 CALL dpbcon(
'U', -1, 0, a, 1, anrm, rcond, w, iw, info )
434 CALL chkxer(
'DPBCON', infot, nout, lerr, ok )
436 CALL dpbcon(
'U', 1, -1, a, 1, anrm, rcond, w, iw, info )
437 CALL chkxer(
'DPBCON', infot, nout, lerr, ok )
439 CALL dpbcon(
'U', 2, 1, a, 1, anrm, rcond, w, iw, info )
440 CALL chkxer(
'DPBCON', infot, nout, lerr, ok )
446 CALL dpbequ(
'/', 0, 0, a, 1, r1, rcond, anrm, info )
447 CALL chkxer(
'DPBEQU', infot, nout, lerr, ok )
449 CALL dpbequ(
'U', -1, 0, a, 1, r1, rcond, anrm, info )
450 CALL chkxer(
'DPBEQU', infot, nout, lerr, ok )
452 CALL dpbequ(
'U', 1, -1, a, 1, r1, rcond, anrm, info )
453 CALL chkxer(
'DPBEQU', infot, nout, lerr, ok )
455 CALL dpbequ(
'U', 2, 1, a, 1, r1, rcond, anrm, info )
456 CALL chkxer(
'DPBEQU', infot, nout, lerr, ok )
461 CALL alaesm( path, ok, nout )
subroutine dpbtrf(UPLO, N, KD, AB, LDAB, INFO)
DPBTRF
subroutine dpprfs(UPLO, N, NRHS, AP, AFP, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DPPRFS
subroutine dpotrf(UPLO, N, A, LDA, INFO)
DPOTRF
subroutine dpocon(UPLO, N, A, LDA, ANORM, RCOND, WORK, IWORK, INFO)
DPOCON
subroutine dppcon(UPLO, N, AP, ANORM, RCOND, WORK, IWORK, INFO)
DPPCON
subroutine dpbrfs(UPLO, N, KD, NRHS, AB, LDAB, AFB, LDAFB, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DPBRFS
subroutine alaesm(PATH, OK, NOUT)
ALAESM
subroutine dpptri(UPLO, N, AP, INFO)
DPPTRI
subroutine dpptrf(UPLO, N, AP, INFO)
DPPTRF
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine dpbtf2(UPLO, N, KD, AB, LDAB, INFO)
DPBTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite band matrix (un...
subroutine dpotrs(UPLO, N, NRHS, A, LDA, B, LDB, INFO)
DPOTRS
subroutine dpptrs(UPLO, N, NRHS, AP, B, LDB, INFO)
DPPTRS
subroutine dpbequ(UPLO, N, KD, AB, LDAB, S, SCOND, AMAX, INFO)
DPBEQU
subroutine dpbtrs(UPLO, N, KD, NRHS, AB, LDAB, B, LDB, INFO)
DPBTRS
subroutine dppequ(UPLO, N, AP, S, SCOND, AMAX, INFO)
DPPEQU
subroutine dpotf2(UPLO, N, A, LDA, INFO)
DPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine dpbcon(UPLO, N, KD, AB, LDAB, ANORM, RCOND, WORK, IWORK, INFO)
DPBCON
subroutine dporfs(UPLO, N, NRHS, A, LDA, AF, LDAF, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DPORFS
subroutine dpoequ(N, A, LDA, S, SCOND, AMAX, INFO)
DPOEQU
subroutine derrpo(PATH, NUNIT)
DERRPO
subroutine dpotri(UPLO, N, A, LDA, INFO)
DPOTRI