77 DOUBLE PRECISION RCOND, SCALE
81 DOUBLE PRECISION A( nmax, nmax ), B( nmax ), R1( nmax ),
82 $ r2( nmax ), w( nmax ), x( nmax )
99 COMMON / infoc / infot, nout, ok, lerr
100 COMMON / srnamc / srnamt
105 WRITE( nout, fmt = * )
113 IF( lsamen( 2, c2,
'TR' ) )
THEN
121 CALL
dtrtri(
'/',
'N', 0, a, 1, info )
122 CALL
chkxer(
'DTRTRI', infot, nout, lerr, ok )
124 CALL
dtrtri(
'U',
'/', 0, a, 1, info )
125 CALL
chkxer(
'DTRTRI', infot, nout, lerr, ok )
127 CALL
dtrtri(
'U',
'N', -1, a, 1, info )
128 CALL
chkxer(
'DTRTRI', infot, nout, lerr, ok )
130 CALL
dtrtri(
'U',
'N', 2, a, 1, info )
131 CALL
chkxer(
'DTRTRI', infot, nout, lerr, ok )
137 CALL
dtrti2(
'/',
'N', 0, a, 1, info )
138 CALL
chkxer(
'DTRTI2', infot, nout, lerr, ok )
140 CALL
dtrti2(
'U',
'/', 0, a, 1, info )
141 CALL
chkxer(
'DTRTI2', infot, nout, lerr, ok )
143 CALL
dtrti2(
'U',
'N', -1, a, 1, info )
144 CALL
chkxer(
'DTRTI2', infot, nout, lerr, ok )
146 CALL
dtrti2(
'U',
'N', 2, a, 1, info )
147 CALL
chkxer(
'DTRTI2', infot, nout, lerr, ok )
153 CALL
dtrtrs(
'/',
'N',
'N', 0, 0, a, 1, x, 1, info )
154 CALL
chkxer(
'DTRTRS', infot, nout, lerr, ok )
156 CALL
dtrtrs(
'U',
'/',
'N', 0, 0, a, 1, x, 1, info )
157 CALL
chkxer(
'DTRTRS', infot, nout, lerr, ok )
159 CALL
dtrtrs(
'U',
'N',
'/', 0, 0, a, 1, x, 1, info )
160 CALL
chkxer(
'DTRTRS', infot, nout, lerr, ok )
162 CALL
dtrtrs(
'U',
'N',
'N', -1, 0, a, 1, x, 1, info )
163 CALL
chkxer(
'DTRTRS', infot, nout, lerr, ok )
165 CALL
dtrtrs(
'U',
'N',
'N', 0, -1, a, 1, x, 1, info )
166 CALL
chkxer(
'DTRTRS', infot, nout, lerr, ok )
168 CALL
dtrtrs(
'U',
'N',
'N', 2, 1, a, 1, x, 2, info )
169 CALL
chkxer(
'DTRTRS', infot, nout, lerr, ok )
171 CALL
dtrtrs(
'U',
'N',
'N', 2, 1, a, 2, x, 1, info )
172 CALL
chkxer(
'DTRTRS', infot, nout, lerr, ok )
178 CALL
dtrrfs(
'/',
'N',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
180 CALL
chkxer(
'DTRRFS', infot, nout, lerr, ok )
182 CALL
dtrrfs(
'U',
'/',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
184 CALL
chkxer(
'DTRRFS', infot, nout, lerr, ok )
186 CALL
dtrrfs(
'U',
'N',
'/', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
188 CALL
chkxer(
'DTRRFS', infot, nout, lerr, ok )
190 CALL
dtrrfs(
'U',
'N',
'N', -1, 0, a, 1, b, 1, x, 1, r1, r2, w,
192 CALL
chkxer(
'DTRRFS', infot, nout, lerr, ok )
194 CALL
dtrrfs(
'U',
'N',
'N', 0, -1, a, 1, b, 1, x, 1, r1, r2, w,
196 CALL
chkxer(
'DTRRFS', infot, nout, lerr, ok )
198 CALL
dtrrfs(
'U',
'N',
'N', 2, 1, a, 1, b, 2, x, 2, r1, r2, w,
200 CALL
chkxer(
'DTRRFS', infot, nout, lerr, ok )
202 CALL
dtrrfs(
'U',
'N',
'N', 2, 1, a, 2, b, 1, x, 2, r1, r2, w,
204 CALL
chkxer(
'DTRRFS', infot, nout, lerr, ok )
206 CALL
dtrrfs(
'U',
'N',
'N', 2, 1, a, 2, b, 2, x, 1, r1, r2, w,
208 CALL
chkxer(
'DTRRFS', infot, nout, lerr, ok )
214 CALL
dtrcon(
'/',
'U',
'N', 0, a, 1, rcond, w, iw, info )
215 CALL
chkxer(
'DTRCON', infot, nout, lerr, ok )
217 CALL
dtrcon(
'1',
'/',
'N', 0, a, 1, rcond, w, iw, info )
218 CALL
chkxer(
'DTRCON', infot, nout, lerr, ok )
220 CALL
dtrcon(
'1',
'U',
'/', 0, a, 1, rcond, w, iw, info )
221 CALL
chkxer(
'DTRCON', infot, nout, lerr, ok )
223 CALL
dtrcon(
'1',
'U',
'N', -1, a, 1, rcond, w, iw, info )
224 CALL
chkxer(
'DTRCON', infot, nout, lerr, ok )
226 CALL
dtrcon(
'1',
'U',
'N', 2, a, 1, rcond, w, iw, info )
227 CALL
chkxer(
'DTRCON', infot, nout, lerr, ok )
233 CALL
dlatrs(
'/',
'N',
'N',
'N', 0, a, 1, x, scale, w, info )
234 CALL
chkxer(
'DLATRS', infot, nout, lerr, ok )
236 CALL
dlatrs(
'U',
'/',
'N',
'N', 0, a, 1, x, scale, w, info )
237 CALL
chkxer(
'DLATRS', infot, nout, lerr, ok )
239 CALL
dlatrs(
'U',
'N',
'/',
'N', 0, a, 1, x, scale, w, info )
240 CALL
chkxer(
'DLATRS', infot, nout, lerr, ok )
242 CALL
dlatrs(
'U',
'N',
'N',
'/', 0, a, 1, x, scale, w, info )
243 CALL
chkxer(
'DLATRS', infot, nout, lerr, ok )
245 CALL
dlatrs(
'U',
'N',
'N',
'N', -1, a, 1, x, scale, w, info )
246 CALL
chkxer(
'DLATRS', infot, nout, lerr, ok )
248 CALL
dlatrs(
'U',
'N',
'N',
'N', 2, a, 1, x, scale, w, info )
249 CALL
chkxer(
'DLATRS', infot, nout, lerr, ok )
251 ELSE IF( lsamen( 2, c2,
'TP' ) )
THEN
259 CALL
dtptri(
'/',
'N', 0, a, info )
260 CALL
chkxer(
'DTPTRI', infot, nout, lerr, ok )
262 CALL
dtptri(
'U',
'/', 0, a, info )
263 CALL
chkxer(
'DTPTRI', infot, nout, lerr, ok )
265 CALL
dtptri(
'U',
'N', -1, a, info )
266 CALL
chkxer(
'DTPTRI', infot, nout, lerr, ok )
272 CALL
dtptrs(
'/',
'N',
'N', 0, 0, a, x, 1, info )
273 CALL
chkxer(
'DTPTRS', infot, nout, lerr, ok )
275 CALL
dtptrs(
'U',
'/',
'N', 0, 0, a, x, 1, info )
276 CALL
chkxer(
'DTPTRS', infot, nout, lerr, ok )
278 CALL
dtptrs(
'U',
'N',
'/', 0, 0, a, x, 1, info )
279 CALL
chkxer(
'DTPTRS', infot, nout, lerr, ok )
281 CALL
dtptrs(
'U',
'N',
'N', -1, 0, a, x, 1, info )
282 CALL
chkxer(
'DTPTRS', infot, nout, lerr, ok )
284 CALL
dtptrs(
'U',
'N',
'N', 0, -1, a, x, 1, info )
285 CALL
chkxer(
'DTPTRS', infot, nout, lerr, ok )
287 CALL
dtptrs(
'U',
'N',
'N', 2, 1, a, x, 1, info )
288 CALL
chkxer(
'DTPTRS', infot, nout, lerr, ok )
294 CALL
dtprfs(
'/',
'N',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
296 CALL
chkxer(
'DTPRFS', infot, nout, lerr, ok )
298 CALL
dtprfs(
'U',
'/',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
300 CALL
chkxer(
'DTPRFS', infot, nout, lerr, ok )
302 CALL
dtprfs(
'U',
'N',
'/', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
304 CALL
chkxer(
'DTPRFS', infot, nout, lerr, ok )
306 CALL
dtprfs(
'U',
'N',
'N', -1, 0, a, b, 1, x, 1, r1, r2, w,
308 CALL
chkxer(
'DTPRFS', infot, nout, lerr, ok )
310 CALL
dtprfs(
'U',
'N',
'N', 0, -1, a, b, 1, x, 1, r1, r2, w,
312 CALL
chkxer(
'DTPRFS', infot, nout, lerr, ok )
314 CALL
dtprfs(
'U',
'N',
'N', 2, 1, a, b, 1, x, 2, r1, r2, w, iw,
316 CALL
chkxer(
'DTPRFS', infot, nout, lerr, ok )
318 CALL
dtprfs(
'U',
'N',
'N', 2, 1, a, b, 2, x, 1, r1, r2, w, iw,
320 CALL
chkxer(
'DTPRFS', infot, nout, lerr, ok )
326 CALL
dtpcon(
'/',
'U',
'N', 0, a, rcond, w, iw, info )
327 CALL
chkxer(
'DTPCON', infot, nout, lerr, ok )
329 CALL
dtpcon(
'1',
'/',
'N', 0, a, rcond, w, iw, info )
330 CALL
chkxer(
'DTPCON', infot, nout, lerr, ok )
332 CALL
dtpcon(
'1',
'U',
'/', 0, a, rcond, w, iw, info )
333 CALL
chkxer(
'DTPCON', infot, nout, lerr, ok )
335 CALL
dtpcon(
'1',
'U',
'N', -1, a, rcond, w, iw, info )
336 CALL
chkxer(
'DTPCON', infot, nout, lerr, ok )
342 CALL
dlatps(
'/',
'N',
'N',
'N', 0, a, x, scale, w, info )
343 CALL
chkxer(
'DLATPS', infot, nout, lerr, ok )
345 CALL
dlatps(
'U',
'/',
'N',
'N', 0, a, x, scale, w, info )
346 CALL
chkxer(
'DLATPS', infot, nout, lerr, ok )
348 CALL
dlatps(
'U',
'N',
'/',
'N', 0, a, x, scale, w, info )
349 CALL
chkxer(
'DLATPS', infot, nout, lerr, ok )
351 CALL
dlatps(
'U',
'N',
'N',
'/', 0, a, x, scale, w, info )
352 CALL
chkxer(
'DLATPS', infot, nout, lerr, ok )
354 CALL
dlatps(
'U',
'N',
'N',
'N', -1, a, x, scale, w, info )
355 CALL
chkxer(
'DLATPS', infot, nout, lerr, ok )
357 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
365 CALL
dtbtrs(
'/',
'N',
'N', 0, 0, 0, a, 1, x, 1, info )
366 CALL
chkxer(
'DTBTRS', infot, nout, lerr, ok )
368 CALL
dtbtrs(
'U',
'/',
'N', 0, 0, 0, a, 1, x, 1, info )
369 CALL
chkxer(
'DTBTRS', infot, nout, lerr, ok )
371 CALL
dtbtrs(
'U',
'N',
'/', 0, 0, 0, a, 1, x, 1, info )
372 CALL
chkxer(
'DTBTRS', infot, nout, lerr, ok )
374 CALL
dtbtrs(
'U',
'N',
'N', -1, 0, 0, a, 1, x, 1, info )
375 CALL
chkxer(
'DTBTRS', infot, nout, lerr, ok )
377 CALL
dtbtrs(
'U',
'N',
'N', 0, -1, 0, a, 1, x, 1, info )
378 CALL
chkxer(
'DTBTRS', infot, nout, lerr, ok )
380 CALL
dtbtrs(
'U',
'N',
'N', 0, 0, -1, a, 1, x, 1, info )
381 CALL
chkxer(
'DTBTRS', infot, nout, lerr, ok )
383 CALL
dtbtrs(
'U',
'N',
'N', 2, 1, 1, a, 1, x, 2, info )
384 CALL
chkxer(
'DTBTRS', infot, nout, lerr, ok )
386 CALL
dtbtrs(
'U',
'N',
'N', 2, 0, 1, a, 1, x, 1, info )
387 CALL
chkxer(
'DTBTRS', infot, nout, lerr, ok )
393 CALL
dtbrfs(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
395 CALL
chkxer(
'DTBRFS', infot, nout, lerr, ok )
397 CALL
dtbrfs(
'U',
'/',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
399 CALL
chkxer(
'DTBRFS', infot, nout, lerr, ok )
401 CALL
dtbrfs(
'U',
'N',
'/', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
403 CALL
chkxer(
'DTBRFS', infot, nout, lerr, ok )
405 CALL
dtbrfs(
'U',
'N',
'N', -1, 0, 0, a, 1, b, 1, x, 1, r1, r2,
407 CALL
chkxer(
'DTBRFS', infot, nout, lerr, ok )
409 CALL
dtbrfs(
'U',
'N',
'N', 0, -1, 0, a, 1, b, 1, x, 1, r1, r2,
411 CALL
chkxer(
'DTBRFS', infot, nout, lerr, ok )
413 CALL
dtbrfs(
'U',
'N',
'N', 0, 0, -1, a, 1, b, 1, x, 1, r1, r2,
415 CALL
chkxer(
'DTBRFS', infot, nout, lerr, ok )
417 CALL
dtbrfs(
'U',
'N',
'N', 2, 1, 1, a, 1, b, 2, x, 2, r1, r2,
419 CALL
chkxer(
'DTBRFS', infot, nout, lerr, ok )
421 CALL
dtbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 1, x, 2, r1, r2,
423 CALL
chkxer(
'DTBRFS', infot, nout, lerr, ok )
425 CALL
dtbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 2, x, 1, r1, r2,
427 CALL
chkxer(
'DTBRFS', infot, nout, lerr, ok )
433 CALL
dtbcon(
'/',
'U',
'N', 0, 0, a, 1, rcond, w, iw, info )
434 CALL
chkxer(
'DTBCON', infot, nout, lerr, ok )
436 CALL
dtbcon(
'1',
'/',
'N', 0, 0, a, 1, rcond, w, iw, info )
437 CALL
chkxer(
'DTBCON', infot, nout, lerr, ok )
439 CALL
dtbcon(
'1',
'U',
'/', 0, 0, a, 1, rcond, w, iw, info )
440 CALL
chkxer(
'DTBCON', infot, nout, lerr, ok )
442 CALL
dtbcon(
'1',
'U',
'N', -1, 0, a, 1, rcond, w, iw, info )
443 CALL
chkxer(
'DTBCON', infot, nout, lerr, ok )
445 CALL
dtbcon(
'1',
'U',
'N', 0, -1, a, 1, rcond, w, iw, info )
446 CALL
chkxer(
'DTBCON', infot, nout, lerr, ok )
448 CALL
dtbcon(
'1',
'U',
'N', 2, 1, a, 1, rcond, w, iw, info )
449 CALL
chkxer(
'DTBCON', infot, nout, lerr, ok )
455 CALL
dlatbs(
'/',
'N',
'N',
'N', 0, 0, a, 1, x, scale, w,
457 CALL
chkxer(
'DLATBS', infot, nout, lerr, ok )
459 CALL
dlatbs(
'U',
'/',
'N',
'N', 0, 0, a, 1, x, scale, w,
461 CALL
chkxer(
'DLATBS', infot, nout, lerr, ok )
463 CALL
dlatbs(
'U',
'N',
'/',
'N', 0, 0, a, 1, x, scale, w,
465 CALL
chkxer(
'DLATBS', infot, nout, lerr, ok )
467 CALL
dlatbs(
'U',
'N',
'N',
'/', 0, 0, a, 1, x, scale, w,
469 CALL
chkxer(
'DLATBS', infot, nout, lerr, ok )
471 CALL
dlatbs(
'U',
'N',
'N',
'N', -1, 0, a, 1, x, scale, w,
473 CALL
chkxer(
'DLATBS', infot, nout, lerr, ok )
475 CALL
dlatbs(
'U',
'N',
'N',
'N', 1, -1, a, 1, x, scale, w,
477 CALL
chkxer(
'DLATBS', infot, nout, lerr, ok )
479 CALL
dlatbs(
'U',
'N',
'N',
'N', 2, 1, a, 1, x, scale, w,
481 CALL
chkxer(
'DLATBS', infot, nout, lerr, ok )
486 CALL
alaesm( path, ok, nout )
subroutine dtptri(UPLO, DIAG, N, AP, INFO)
DTPTRI
subroutine dtbtrs(UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, INFO)
DTBTRS
subroutine dlatps(UPLO, TRANS, DIAG, NORMIN, N, AP, X, SCALE, CNORM, INFO)
DLATPS solves a triangular system of equations with the matrix held in packed storage.
subroutine dtrrfs(UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DTRRFS
subroutine dlatbs(UPLO, TRANS, DIAG, NORMIN, N, KD, AB, LDAB, X, SCALE, CNORM, INFO)
DLATBS solves a triangular banded system of equations.
subroutine derrtr(PATH, NUNIT)
DERRTR
subroutine dlatrs(UPLO, TRANS, DIAG, NORMIN, N, A, LDA, X, SCALE, CNORM, INFO)
DLATRS solves a triangular system of equations with the scale factor set to prevent overflow...
subroutine dtpcon(NORM, UPLO, DIAG, N, AP, RCOND, WORK, IWORK, INFO)
DTPCON
subroutine dtrcon(NORM, UPLO, DIAG, N, A, LDA, RCOND, WORK, IWORK, INFO)
DTRCON
subroutine dtptrs(UPLO, TRANS, DIAG, N, NRHS, AP, B, LDB, INFO)
DTPTRS
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine dtrtrs(UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, INFO)
DTRTRS
subroutine dtbcon(NORM, UPLO, DIAG, N, KD, AB, LDAB, RCOND, WORK, IWORK, INFO)
DTBCON
subroutine dtprfs(UPLO, TRANS, DIAG, N, NRHS, AP, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DTPRFS
subroutine dtbrfs(UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DTBRFS
subroutine alaesm(PATH, OK, NOUT)
ALAESM
subroutine dtrtri(UPLO, DIAG, N, A, LDA, INFO)
DTRTRI
subroutine dtrti2(UPLO, DIAG, N, A, LDA, INFO)
DTRTI2 computes the inverse of a triangular matrix (unblocked algorithm).