72 parameter ( nmax = 2 )
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 dtrtrs(UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, INFO)
DTRTRS
subroutine dtrrfs(UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DTRRFS
logical function lsamen(N, CA, CB)
LSAMEN
subroutine dtbcon(NORM, UPLO, DIAG, N, KD, AB, LDAB, RCOND, WORK, IWORK, INFO)
DTBCON
subroutine alaesm(PATH, OK, NOUT)
ALAESM
subroutine dtbtrs(UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, INFO)
DTBTRS
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 dtptrs(UPLO, TRANS, DIAG, N, NRHS, AP, B, LDB, INFO)
DTPTRS
subroutine dtrti2(UPLO, DIAG, N, A, LDA, INFO)
DTRTI2 computes the inverse of a triangular matrix (unblocked algorithm).
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine dtrcon(NORM, UPLO, DIAG, N, A, LDA, RCOND, WORK, IWORK, INFO)
DTRCON
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 dtbrfs(UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DTBRFS
subroutine dtptri(UPLO, DIAG, N, AP, INFO)
DTPTRI
subroutine dlatbs(UPLO, TRANS, DIAG, NORMIN, N, KD, AB, LDAB, X, SCALE, CNORM, INFO)
DLATBS solves a triangular banded system of equations.
subroutine dtrtri(UPLO, DIAG, N, A, LDA, INFO)
DTRTRI
subroutine dtprfs(UPLO, TRANS, DIAG, N, NRHS, AP, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
DTPRFS
subroutine dtpcon(NORM, UPLO, DIAG, N, AP, RCOND, WORK, IWORK, INFO)
DTPCON