73 DOUBLE PRECISION RCOND, SCALE, SCALES(0)
76 DOUBLE PRECISION R1( NMAX ), R2( NMAX ), RW( NMAX )
77 COMPLEX*16 A( NMAX, NMAX ), B( NMAX ), W( NMAX ),
96 COMMON / infoc / infot, nout, ok, lerr
97 COMMON / srnamc / srnamt
102 WRITE( nout, fmt = * )
112 IF( lsamen( 2, c2,
'TR' ) )
THEN
118 CALL ztrtri(
'/',
'N', 0, a, 1, info )
119 CALL chkxer(
'ZTRTRI', infot, nout, lerr, ok )
121 CALL ztrtri(
'U',
'/', 0, a, 1, info )
122 CALL chkxer(
'ZTRTRI', infot, nout, lerr, ok )
124 CALL ztrtri(
'U',
'N', -1, a, 1, info )
125 CALL chkxer(
'ZTRTRI', infot, nout, lerr, ok )
127 CALL ztrtri(
'U',
'N', 2, a, 1, info )
128 CALL chkxer(
'ZTRTRI', infot, nout, lerr, ok )
134 CALL ztrti2(
'/',
'N', 0, a, 1, info )
135 CALL chkxer(
'ZTRTI2', infot, nout, lerr, ok )
137 CALL ztrti2(
'U',
'/', 0, a, 1, info )
138 CALL chkxer(
'ZTRTI2', infot, nout, lerr, ok )
140 CALL ztrti2(
'U',
'N', -1, a, 1, info )
141 CALL chkxer(
'ZTRTI2', infot, nout, lerr, ok )
143 CALL ztrti2(
'U',
'N', 2, a, 1, info )
144 CALL chkxer(
'ZTRTI2', infot, nout, lerr, ok )
151 CALL ztrtrs(
'/',
'N',
'N', 0, 0, a, 1, x, 1, info )
152 CALL chkxer(
'ZTRTRS', infot, nout, lerr, ok )
154 CALL ztrtrs(
'U',
'/',
'N', 0, 0, a, 1, x, 1, info )
155 CALL chkxer(
'ZTRTRS', infot, nout, lerr, ok )
157 CALL ztrtrs(
'U',
'N',
'/', 0, 0, a, 1, x, 1, info )
158 CALL chkxer(
'ZTRTRS', infot, nout, lerr, ok )
160 CALL ztrtrs(
'U',
'N',
'N', -1, 0, a, 1, x, 1, info )
161 CALL chkxer(
'ZTRTRS', infot, nout, lerr, ok )
163 CALL ztrtrs(
'U',
'N',
'N', 0, -1, a, 1, x, 1, info )
164 CALL chkxer(
'ZTRTRS', infot, nout, lerr, ok )
171 CALL ztrrfs(
'/',
'N',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
173 CALL chkxer(
'ZTRRFS', infot, nout, lerr, ok )
175 CALL ztrrfs(
'U',
'/',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
177 CALL chkxer(
'ZTRRFS', infot, nout, lerr, ok )
179 CALL ztrrfs(
'U',
'N',
'/', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
181 CALL chkxer(
'ZTRRFS', infot, nout, lerr, ok )
183 CALL ztrrfs(
'U',
'N',
'N', -1, 0, a, 1, b, 1, x, 1, r1, r2, w,
185 CALL chkxer(
'ZTRRFS', infot, nout, lerr, ok )
187 CALL ztrrfs(
'U',
'N',
'N', 0, -1, a, 1, b, 1, x, 1, r1, r2, w,
189 CALL chkxer(
'ZTRRFS', infot, nout, lerr, ok )
191 CALL ztrrfs(
'U',
'N',
'N', 2, 1, a, 1, b, 2, x, 2, r1, r2, w,
193 CALL chkxer(
'ZTRRFS', infot, nout, lerr, ok )
195 CALL ztrrfs(
'U',
'N',
'N', 2, 1, a, 2, b, 1, x, 2, r1, r2, w,
197 CALL chkxer(
'ZTRRFS', infot, nout, lerr, ok )
199 CALL ztrrfs(
'U',
'N',
'N', 2, 1, a, 2, b, 2, x, 1, r1, r2, w,
201 CALL chkxer(
'ZTRRFS', infot, nout, lerr, ok )
207 CALL ztrcon(
'/',
'U',
'N', 0, a, 1, rcond, w, rw, info )
208 CALL chkxer(
'ZTRCON', infot, nout, lerr, ok )
210 CALL ztrcon(
'1',
'/',
'N', 0, a, 1, rcond, w, rw, info )
211 CALL chkxer(
'ZTRCON', infot, nout, lerr, ok )
213 CALL ztrcon(
'1',
'U',
'/', 0, a, 1, rcond, w, rw, info )
214 CALL chkxer(
'ZTRCON', infot, nout, lerr, ok )
216 CALL ztrcon(
'1',
'U',
'N', -1, a, 1, rcond, w, rw, info )
217 CALL chkxer(
'ZTRCON', infot, nout, lerr, ok )
219 CALL ztrcon(
'1',
'U',
'N', 2, a, 1, rcond, w, rw, info )
220 CALL chkxer(
'ZTRCON', infot, nout, lerr, ok )
226 CALL zlatrs(
'/',
'N',
'N',
'N', 0, a, 1, x, scale, rw, info )
227 CALL chkxer(
'ZLATRS', infot, nout, lerr, ok )
229 CALL zlatrs(
'U',
'/',
'N',
'N', 0, a, 1, x, scale, rw, info )
230 CALL chkxer(
'ZLATRS', infot, nout, lerr, ok )
232 CALL zlatrs(
'U',
'N',
'/',
'N', 0, a, 1, x, scale, rw, info )
233 CALL chkxer(
'ZLATRS', infot, nout, lerr, ok )
235 CALL zlatrs(
'U',
'N',
'N',
'/', 0, a, 1, x, scale, rw, info )
236 CALL chkxer(
'ZLATRS', infot, nout, lerr, ok )
238 CALL zlatrs(
'U',
'N',
'N',
'N', -1, a, 1, x, scale, rw, info )
239 CALL chkxer(
'ZLATRS', infot, nout, lerr, ok )
241 CALL zlatrs(
'U',
'N',
'N',
'N', 2, a, 1, x, scale, rw, info )
242 CALL chkxer(
'ZLATRS', infot, nout, lerr, ok )
248 CALL zlatrs3(
'/',
'N',
'N',
'N', 0, 0, a, 1, x, 1, scales,
249 $ rw, rw( 2 ), 1, info )
250 CALL chkxer(
'ZLATRS3', infot, nout, lerr, ok )
252 CALL zlatrs3(
'U',
'/',
'N',
'N', 0, 0, a, 1, x, 1, scales,
253 $ rw, rw( 2 ), 1, info )
254 CALL chkxer(
'ZLATRS3', infot, nout, lerr, ok )
256 CALL zlatrs3(
'U',
'N',
'/',
'N', 0, 0, a, 1, x, 1, scales,
257 $ rw, rw( 2 ), 1, info )
258 CALL chkxer(
'ZLATRS3', infot, nout, lerr, ok )
260 CALL zlatrs3(
'U',
'N',
'N',
'/', 0, 0, a, 1, x, 1, scales,
261 $ rw, rw( 2 ), 1, info )
262 CALL chkxer(
'ZLATRS3', infot, nout, lerr, ok )
264 CALL zlatrs3(
'U',
'N',
'N',
'N', -1, 0, a, 1, x, 1, scales,
265 $ rw, rw( 2 ), 1, info )
266 CALL chkxer(
'ZLATRS3', infot, nout, lerr, ok )
268 CALL zlatrs3(
'U',
'N',
'N',
'N', 0, -1, a, 1, x, 1, scales,
269 $ rw, rw( 2 ), 1, info )
270 CALL chkxer(
'ZLATRS3', infot, nout, lerr, ok )
272 CALL zlatrs3(
'U',
'N',
'N',
'N', 2, 0, a, 1, x, 1, scales,
273 $ rw, rw( 2 ), 1, info )
274 CALL chkxer(
'ZLATRS3', infot, nout, lerr, ok )
276 CALL zlatrs3(
'U',
'N',
'N',
'N', 2, 0, a, 2, x, 1, scales,
277 $ rw, rw( 2 ), 1, info )
278 CALL chkxer(
'ZLATRS3', infot, nout, lerr, ok )
280 CALL zlatrs3(
'U',
'N',
'N',
'N', 1, 0, a, 1, x, 1, scales,
281 $ rw, rw( 2 ), 0, info )
282 CALL chkxer(
'ZLATRS3', infot, nout, lerr, ok )
286 ELSE IF( lsamen( 2, c2,
'TP' ) )
THEN
292 CALL ztptri(
'/',
'N', 0, a, info )
293 CALL chkxer(
'ZTPTRI', infot, nout, lerr, ok )
295 CALL ztptri(
'U',
'/', 0, a, info )
296 CALL chkxer(
'ZTPTRI', infot, nout, lerr, ok )
298 CALL ztptri(
'U',
'N', -1, a, info )
299 CALL chkxer(
'ZTPTRI', infot, nout, lerr, ok )
305 CALL ztptrs(
'/',
'N',
'N', 0, 0, a, x, 1, info )
306 CALL chkxer(
'ZTPTRS', infot, nout, lerr, ok )
308 CALL ztptrs(
'U',
'/',
'N', 0, 0, a, x, 1, info )
309 CALL chkxer(
'ZTPTRS', infot, nout, lerr, ok )
311 CALL ztptrs(
'U',
'N',
'/', 0, 0, a, x, 1, info )
312 CALL chkxer(
'ZTPTRS', infot, nout, lerr, ok )
314 CALL ztptrs(
'U',
'N',
'N', -1, 0, a, x, 1, info )
315 CALL chkxer(
'ZTPTRS', infot, nout, lerr, ok )
317 CALL ztptrs(
'U',
'N',
'N', 0, -1, a, x, 1, info )
318 CALL chkxer(
'ZTPTRS', infot, nout, lerr, ok )
320 CALL ztptrs(
'U',
'N',
'N', 2, 1, a, x, 1, info )
321 CALL chkxer(
'ZTPTRS', infot, nout, lerr, ok )
327 CALL ztprfs(
'/',
'N',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, rw,
329 CALL chkxer(
'ZTPRFS', infot, nout, lerr, ok )
331 CALL ztprfs(
'U',
'/',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, rw,
333 CALL chkxer(
'ZTPRFS', infot, nout, lerr, ok )
335 CALL ztprfs(
'U',
'N',
'/', 0, 0, a, b, 1, x, 1, r1, r2, w, rw,
337 CALL chkxer(
'ZTPRFS', infot, nout, lerr, ok )
339 CALL ztprfs(
'U',
'N',
'N', -1, 0, a, b, 1, x, 1, r1, r2, w,
341 CALL chkxer(
'ZTPRFS', infot, nout, lerr, ok )
343 CALL ztprfs(
'U',
'N',
'N', 0, -1, a, b, 1, x, 1, r1, r2, w,
345 CALL chkxer(
'ZTPRFS', infot, nout, lerr, ok )
347 CALL ztprfs(
'U',
'N',
'N', 2, 1, a, b, 1, x, 2, r1, r2, w, rw,
349 CALL chkxer(
'ZTPRFS', infot, nout, lerr, ok )
351 CALL ztprfs(
'U',
'N',
'N', 2, 1, a, b, 2, x, 1, r1, r2, w, rw,
353 CALL chkxer(
'ZTPRFS', infot, nout, lerr, ok )
359 CALL ztpcon(
'/',
'U',
'N', 0, a, rcond, w, rw, info )
360 CALL chkxer(
'ZTPCON', infot, nout, lerr, ok )
362 CALL ztpcon(
'1',
'/',
'N', 0, a, rcond, w, rw, info )
363 CALL chkxer(
'ZTPCON', infot, nout, lerr, ok )
365 CALL ztpcon(
'1',
'U',
'/', 0, a, rcond, w, rw, info )
366 CALL chkxer(
'ZTPCON', infot, nout, lerr, ok )
368 CALL ztpcon(
'1',
'U',
'N', -1, a, rcond, w, rw, info )
369 CALL chkxer(
'ZTPCON', infot, nout, lerr, ok )
375 CALL zlatps(
'/',
'N',
'N',
'N', 0, a, x, scale, rw, info )
376 CALL chkxer(
'ZLATPS', infot, nout, lerr, ok )
378 CALL zlatps(
'U',
'/',
'N',
'N', 0, a, x, scale, rw, info )
379 CALL chkxer(
'ZLATPS', infot, nout, lerr, ok )
381 CALL zlatps(
'U',
'N',
'/',
'N', 0, a, x, scale, rw, info )
382 CALL chkxer(
'ZLATPS', infot, nout, lerr, ok )
384 CALL zlatps(
'U',
'N',
'N',
'/', 0, a, x, scale, rw, info )
385 CALL chkxer(
'ZLATPS', infot, nout, lerr, ok )
387 CALL zlatps(
'U',
'N',
'N',
'N', -1, a, x, scale, rw, info )
388 CALL chkxer(
'ZLATPS', infot, nout, lerr, ok )
392 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
398 CALL ztbtrs(
'/',
'N',
'N', 0, 0, 0, a, 1, x, 1, info )
399 CALL chkxer(
'ZTBTRS', infot, nout, lerr, ok )
401 CALL ztbtrs(
'U',
'/',
'N', 0, 0, 0, a, 1, x, 1, info )
402 CALL chkxer(
'ZTBTRS', infot, nout, lerr, ok )
404 CALL ztbtrs(
'U',
'N',
'/', 0, 0, 0, a, 1, x, 1, info )
405 CALL chkxer(
'ZTBTRS', infot, nout, lerr, ok )
407 CALL ztbtrs(
'U',
'N',
'N', -1, 0, 0, a, 1, x, 1, info )
408 CALL chkxer(
'ZTBTRS', infot, nout, lerr, ok )
410 CALL ztbtrs(
'U',
'N',
'N', 0, -1, 0, a, 1, x, 1, info )
411 CALL chkxer(
'ZTBTRS', infot, nout, lerr, ok )
413 CALL ztbtrs(
'U',
'N',
'N', 0, 0, -1, a, 1, x, 1, info )
414 CALL chkxer(
'ZTBTRS', infot, nout, lerr, ok )
416 CALL ztbtrs(
'U',
'N',
'N', 2, 1, 1, a, 1, x, 2, info )
417 CALL chkxer(
'ZTBTRS', infot, nout, lerr, ok )
419 CALL ztbtrs(
'U',
'N',
'N', 2, 0, 1, a, 1, x, 1, info )
420 CALL chkxer(
'ZTBTRS', infot, nout, lerr, ok )
426 CALL ztbrfs(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
428 CALL chkxer(
'ZTBRFS', infot, nout, lerr, ok )
430 CALL ztbrfs(
'U',
'/',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
432 CALL chkxer(
'ZTBRFS', infot, nout, lerr, ok )
434 CALL ztbrfs(
'U',
'N',
'/', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
436 CALL chkxer(
'ZTBRFS', infot, nout, lerr, ok )
438 CALL ztbrfs(
'U',
'N',
'N', -1, 0, 0, a, 1, b, 1, x, 1, r1, r2,
440 CALL chkxer(
'ZTBRFS', infot, nout, lerr, ok )
442 CALL ztbrfs(
'U',
'N',
'N', 0, -1, 0, a, 1, b, 1, x, 1, r1, r2,
444 CALL chkxer(
'ZTBRFS', infot, nout, lerr, ok )
446 CALL ztbrfs(
'U',
'N',
'N', 0, 0, -1, a, 1, b, 1, x, 1, r1, r2,
448 CALL chkxer(
'ZTBRFS', infot, nout, lerr, ok )
450 CALL ztbrfs(
'U',
'N',
'N', 2, 1, 1, a, 1, b, 2, x, 2, r1, r2,
452 CALL chkxer(
'ZTBRFS', infot, nout, lerr, ok )
454 CALL ztbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 1, x, 2, r1, r2,
456 CALL chkxer(
'ZTBRFS', infot, nout, lerr, ok )
458 CALL ztbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 2, x, 1, r1, r2,
460 CALL chkxer(
'ZTBRFS', infot, nout, lerr, ok )
466 CALL ztbcon(
'/',
'U',
'N', 0, 0, a, 1, rcond, w, rw, info )
467 CALL chkxer(
'ZTBCON', infot, nout, lerr, ok )
469 CALL ztbcon(
'1',
'/',
'N', 0, 0, a, 1, rcond, w, rw, info )
470 CALL chkxer(
'ZTBCON', infot, nout, lerr, ok )
472 CALL ztbcon(
'1',
'U',
'/', 0, 0, a, 1, rcond, w, rw, info )
473 CALL chkxer(
'ZTBCON', infot, nout, lerr, ok )
475 CALL ztbcon(
'1',
'U',
'N', -1, 0, a, 1, rcond, w, rw, info )
476 CALL chkxer(
'ZTBCON', infot, nout, lerr, ok )
478 CALL ztbcon(
'1',
'U',
'N', 0, -1, a, 1, rcond, w, rw, info )
479 CALL chkxer(
'ZTBCON', infot, nout, lerr, ok )
481 CALL ztbcon(
'1',
'U',
'N', 2, 1, a, 1, rcond, w, rw, info )
482 CALL chkxer(
'ZTBCON', infot, nout, lerr, ok )
488 CALL zlatbs(
'/',
'N',
'N',
'N', 0, 0, a, 1, x, scale, rw,
490 CALL chkxer(
'ZLATBS', infot, nout, lerr, ok )
492 CALL zlatbs(
'U',
'/',
'N',
'N', 0, 0, a, 1, x, scale, rw,
494 CALL chkxer(
'ZLATBS', infot, nout, lerr, ok )
496 CALL zlatbs(
'U',
'N',
'/',
'N', 0, 0, a, 1, x, scale, rw,
498 CALL chkxer(
'ZLATBS', infot, nout, lerr, ok )
500 CALL zlatbs(
'U',
'N',
'N',
'/', 0, 0, a, 1, x, scale, rw,
502 CALL chkxer(
'ZLATBS', infot, nout, lerr, ok )
504 CALL zlatbs(
'U',
'N',
'N',
'N', -1, 0, a, 1, x, scale, rw,
506 CALL chkxer(
'ZLATBS', infot, nout, lerr, ok )
508 CALL zlatbs(
'U',
'N',
'N',
'N', 1, -1, a, 1, x, scale, rw,
510 CALL chkxer(
'ZLATBS', infot, nout, lerr, ok )
512 CALL zlatbs(
'U',
'N',
'N',
'N', 2, 1, a, 1, x, scale, rw,
514 CALL chkxer(
'ZLATBS', infot, nout, lerr, ok )
519 CALL alaesm( path, ok, nout )
subroutine alaesm(path, ok, nout)
ALAESM
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine zlatbs(uplo, trans, diag, normin, n, kd, ab, ldab, x, scale, cnorm, info)
ZLATBS solves a triangular banded system of equations.
subroutine zlatps(uplo, trans, diag, normin, n, ap, x, scale, cnorm, info)
ZLATPS solves a triangular system of equations with the matrix held in packed storage.
subroutine zlatrs3(uplo, trans, diag, normin, n, nrhs, a, lda, x, ldx, scale, cnorm, work, lwork, info)
ZLATRS3 solves a triangular system of equations with the scale factors set to prevent overflow.
subroutine zlatrs(uplo, trans, diag, normin, n, a, lda, x, scale, cnorm, info)
ZLATRS solves a triangular system of equations with the scale factor set to prevent overflow.
subroutine ztbcon(norm, uplo, diag, n, kd, ab, ldab, rcond, work, rwork, info)
ZTBCON
subroutine ztbrfs(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, rwork, info)
ZTBRFS
subroutine ztbtrs(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info)
ZTBTRS
subroutine ztpcon(norm, uplo, diag, n, ap, rcond, work, rwork, info)
ZTPCON
subroutine ztprfs(uplo, trans, diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, rwork, info)
ZTPRFS
subroutine ztptri(uplo, diag, n, ap, info)
ZTPTRI
subroutine ztptrs(uplo, trans, diag, n, nrhs, ap, b, ldb, info)
ZTPTRS
subroutine ztrcon(norm, uplo, diag, n, a, lda, rcond, work, rwork, info)
ZTRCON
subroutine ztrrfs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, rwork, info)
ZTRRFS
subroutine ztrti2(uplo, diag, n, a, lda, info)
ZTRTI2 computes the inverse of a triangular matrix (unblocked algorithm).
subroutine ztrtri(uplo, diag, n, a, lda, info)
ZTRTRI
subroutine ztrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)
ZTRTRS
subroutine zerrtr(path, nunit)
ZERRTR