73 REAL RCOND, SCALE, SCALES(0)
76 REAL R1( NMAX ), R2( NMAX ), RW( NMAX )
77 COMPLEX 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 ctrtri(
'/',
'N', 0, a, 1, info )
119 CALL chkxer(
'CTRTRI', infot, nout, lerr, ok )
121 CALL ctrtri(
'U',
'/', 0, a, 1, info )
122 CALL chkxer(
'CTRTRI', infot, nout, lerr, ok )
124 CALL ctrtri(
'U',
'N', -1, a, 1, info )
125 CALL chkxer(
'CTRTRI', infot, nout, lerr, ok )
127 CALL ctrtri(
'U',
'N', 2, a, 1, info )
128 CALL chkxer(
'CTRTRI', infot, nout, lerr, ok )
134 CALL ctrti2(
'/',
'N', 0, a, 1, info )
135 CALL chkxer(
'CTRTI2', infot, nout, lerr, ok )
137 CALL ctrti2(
'U',
'/', 0, a, 1, info )
138 CALL chkxer(
'CTRTI2', infot, nout, lerr, ok )
140 CALL ctrti2(
'U',
'N', -1, a, 1, info )
141 CALL chkxer(
'CTRTI2', infot, nout, lerr, ok )
143 CALL ctrti2(
'U',
'N', 2, a, 1, info )
144 CALL chkxer(
'CTRTI2', infot, nout, lerr, ok )
151 CALL ctrtrs(
'/',
'N',
'N', 0, 0, a, 1, x, 1, info )
152 CALL chkxer(
'CTRTRS', infot, nout, lerr, ok )
154 CALL ctrtrs(
'U',
'/',
'N', 0, 0, a, 1, x, 1, info )
155 CALL chkxer(
'CTRTRS', infot, nout, lerr, ok )
157 CALL ctrtrs(
'U',
'N',
'/', 0, 0, a, 1, x, 1, info )
158 CALL chkxer(
'CTRTRS', infot, nout, lerr, ok )
160 CALL ctrtrs(
'U',
'N',
'N', -1, 0, a, 1, x, 1, info )
161 CALL chkxer(
'CTRTRS', infot, nout, lerr, ok )
163 CALL ctrtrs(
'U',
'N',
'N', 0, -1, a, 1, x, 1, info )
164 CALL chkxer(
'CTRTRS', infot, nout, lerr, ok )
171 CALL ctrrfs(
'/',
'N',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
173 CALL chkxer(
'CTRRFS', infot, nout, lerr, ok )
175 CALL ctrrfs(
'U',
'/',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
177 CALL chkxer(
'CTRRFS', infot, nout, lerr, ok )
179 CALL ctrrfs(
'U',
'N',
'/', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
181 CALL chkxer(
'CTRRFS', infot, nout, lerr, ok )
183 CALL ctrrfs(
'U',
'N',
'N', -1, 0, a, 1, b, 1, x, 1, r1, r2, w,
185 CALL chkxer(
'CTRRFS', infot, nout, lerr, ok )
187 CALL ctrrfs(
'U',
'N',
'N', 0, -1, a, 1, b, 1, x, 1, r1, r2, w,
189 CALL chkxer(
'CTRRFS', infot, nout, lerr, ok )
191 CALL ctrrfs(
'U',
'N',
'N', 2, 1, a, 1, b, 2, x, 2, r1, r2, w,
193 CALL chkxer(
'CTRRFS', infot, nout, lerr, ok )
195 CALL ctrrfs(
'U',
'N',
'N', 2, 1, a, 2, b, 1, x, 2, r1, r2, w,
197 CALL chkxer(
'CTRRFS', infot, nout, lerr, ok )
199 CALL ctrrfs(
'U',
'N',
'N', 2, 1, a, 2, b, 2, x, 1, r1, r2, w,
201 CALL chkxer(
'CTRRFS', infot, nout, lerr, ok )
207 CALL ctrcon(
'/',
'U',
'N', 0, a, 1, rcond, w, rw, info )
208 CALL chkxer(
'CTRCON', infot, nout, lerr, ok )
210 CALL ctrcon(
'1',
'/',
'N', 0, a, 1, rcond, w, rw, info )
211 CALL chkxer(
'CTRCON', infot, nout, lerr, ok )
213 CALL ctrcon(
'1',
'U',
'/', 0, a, 1, rcond, w, rw, info )
214 CALL chkxer(
'CTRCON', infot, nout, lerr, ok )
216 CALL ctrcon(
'1',
'U',
'N', -1, a, 1, rcond, w, rw, info )
217 CALL chkxer(
'CTRCON', infot, nout, lerr, ok )
219 CALL ctrcon(
'1',
'U',
'N', 2, a, 1, rcond, w, rw, info )
220 CALL chkxer(
'CTRCON', infot, nout, lerr, ok )
226 CALL clatrs(
'/',
'N',
'N',
'N', 0, a, 1, x, scale, rw, info )
227 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
229 CALL clatrs(
'U',
'/',
'N',
'N', 0, a, 1, x, scale, rw, info )
230 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
232 CALL clatrs(
'U',
'N',
'/',
'N', 0, a, 1, x, scale, rw, info )
233 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
235 CALL clatrs(
'U',
'N',
'N',
'/', 0, a, 1, x, scale, rw, info )
236 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
238 CALL clatrs(
'U',
'N',
'N',
'N', -1, a, 1, x, scale, rw, info )
239 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
241 CALL clatrs(
'U',
'N',
'N',
'N', 2, a, 1, x, scale, rw, info )
242 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
248 CALL clatrs3(
'/',
'N',
'N',
'N', 0, 0, a, 1, x, 1, scales,
249 $ rw, rw( 2 ), 1, info )
250 CALL chkxer(
'CLATRS3', infot, nout, lerr, ok )
252 CALL clatrs3(
'U',
'/',
'N',
'N', 0, 0, a, 1, x, 1, scales,
253 $ rw, rw( 2 ), 1, info )
254 CALL chkxer(
'CLATRS3', infot, nout, lerr, ok )
256 CALL clatrs3(
'U',
'N',
'/',
'N', 0, 0, a, 1, x, 1, scales,
257 $ rw, rw( 2 ), 1, info )
258 CALL chkxer(
'CLATRS3', infot, nout, lerr, ok )
260 CALL clatrs3(
'U',
'N',
'N',
'/', 0, 0, a, 1, x, 1, scales,
261 $ rw, rw( 2 ), 1, info )
262 CALL chkxer(
'CLATRS3', infot, nout, lerr, ok )
264 CALL clatrs3(
'U',
'N',
'N',
'N', -1, 0, a, 1, x, 1, scales,
265 $ rw, rw( 2 ), 1, info )
266 CALL chkxer(
'CLATRS3', infot, nout, lerr, ok )
268 CALL clatrs3(
'U',
'N',
'N',
'N', 0, -1, a, 1, x, 1, scales,
269 $ rw, rw( 2 ), 1, info )
270 CALL chkxer(
'CLATRS3', infot, nout, lerr, ok )
272 CALL clatrs3(
'U',
'N',
'N',
'N', 2, 0, a, 1, x, 1, scales,
273 $ rw, rw( 2 ), 1, info )
274 CALL chkxer(
'CLATRS3', infot, nout, lerr, ok )
276 CALL clatrs3(
'U',
'N',
'N',
'N', 2, 0, a, 2, x, 1, scales,
277 $ rw, rw( 2 ), 1, info )
278 CALL chkxer(
'CLATRS3', infot, nout, lerr, ok )
280 CALL clatrs3(
'U',
'N',
'N',
'N', 1, 0, a, 1, x, 1, scales,
281 $ rw, rw( 2 ), 0, info )
282 CALL chkxer(
'CLATRS3', infot, nout, lerr, ok )
286 ELSE IF( lsamen( 2, c2,
'TP' ) )
THEN
292 CALL ctptri(
'/',
'N', 0, a, info )
293 CALL chkxer(
'CTPTRI', infot, nout, lerr, ok )
295 CALL ctptri(
'U',
'/', 0, a, info )
296 CALL chkxer(
'CTPTRI', infot, nout, lerr, ok )
298 CALL ctptri(
'U',
'N', -1, a, info )
299 CALL chkxer(
'CTPTRI', infot, nout, lerr, ok )
305 CALL ctptrs(
'/',
'N',
'N', 0, 0, a, x, 1, info )
306 CALL chkxer(
'CTPTRS', infot, nout, lerr, ok )
308 CALL ctptrs(
'U',
'/',
'N', 0, 0, a, x, 1, info )
309 CALL chkxer(
'CTPTRS', infot, nout, lerr, ok )
311 CALL ctptrs(
'U',
'N',
'/', 0, 0, a, x, 1, info )
312 CALL chkxer(
'CTPTRS', infot, nout, lerr, ok )
314 CALL ctptrs(
'U',
'N',
'N', -1, 0, a, x, 1, info )
315 CALL chkxer(
'CTPTRS', infot, nout, lerr, ok )
317 CALL ctptrs(
'U',
'N',
'N', 0, -1, a, x, 1, info )
318 CALL chkxer(
'CTPTRS', infot, nout, lerr, ok )
320 CALL ctptrs(
'U',
'N',
'N', 2, 1, a, x, 1, info )
321 CALL chkxer(
'CTPTRS', infot, nout, lerr, ok )
327 CALL ctprfs(
'/',
'N',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, rw,
329 CALL chkxer(
'CTPRFS', infot, nout, lerr, ok )
331 CALL ctprfs(
'U',
'/',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, rw,
333 CALL chkxer(
'CTPRFS', infot, nout, lerr, ok )
335 CALL ctprfs(
'U',
'N',
'/', 0, 0, a, b, 1, x, 1, r1, r2, w, rw,
337 CALL chkxer(
'CTPRFS', infot, nout, lerr, ok )
339 CALL ctprfs(
'U',
'N',
'N', -1, 0, a, b, 1, x, 1, r1, r2, w,
341 CALL chkxer(
'CTPRFS', infot, nout, lerr, ok )
343 CALL ctprfs(
'U',
'N',
'N', 0, -1, a, b, 1, x, 1, r1, r2, w,
345 CALL chkxer(
'CTPRFS', infot, nout, lerr, ok )
347 CALL ctprfs(
'U',
'N',
'N', 2, 1, a, b, 1, x, 2, r1, r2, w, rw,
349 CALL chkxer(
'CTPRFS', infot, nout, lerr, ok )
351 CALL ctprfs(
'U',
'N',
'N', 2, 1, a, b, 2, x, 1, r1, r2, w, rw,
353 CALL chkxer(
'CTPRFS', infot, nout, lerr, ok )
359 CALL ctpcon(
'/',
'U',
'N', 0, a, rcond, w, rw, info )
360 CALL chkxer(
'CTPCON', infot, nout, lerr, ok )
362 CALL ctpcon(
'1',
'/',
'N', 0, a, rcond, w, rw, info )
363 CALL chkxer(
'CTPCON', infot, nout, lerr, ok )
365 CALL ctpcon(
'1',
'U',
'/', 0, a, rcond, w, rw, info )
366 CALL chkxer(
'CTPCON', infot, nout, lerr, ok )
368 CALL ctpcon(
'1',
'U',
'N', -1, a, rcond, w, rw, info )
369 CALL chkxer(
'CTPCON', infot, nout, lerr, ok )
375 CALL clatps(
'/',
'N',
'N',
'N', 0, a, x, scale, rw, info )
376 CALL chkxer(
'CLATPS', infot, nout, lerr, ok )
378 CALL clatps(
'U',
'/',
'N',
'N', 0, a, x, scale, rw, info )
379 CALL chkxer(
'CLATPS', infot, nout, lerr, ok )
381 CALL clatps(
'U',
'N',
'/',
'N', 0, a, x, scale, rw, info )
382 CALL chkxer(
'CLATPS', infot, nout, lerr, ok )
384 CALL clatps(
'U',
'N',
'N',
'/', 0, a, x, scale, rw, info )
385 CALL chkxer(
'CLATPS', infot, nout, lerr, ok )
387 CALL clatps(
'U',
'N',
'N',
'N', -1, a, x, scale, rw, info )
388 CALL chkxer(
'CLATPS', infot, nout, lerr, ok )
392 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
398 CALL ctbtrs(
'/',
'N',
'N', 0, 0, 0, a, 1, x, 1, info )
399 CALL chkxer(
'CTBTRS', infot, nout, lerr, ok )
401 CALL ctbtrs(
'U',
'/',
'N', 0, 0, 0, a, 1, x, 1, info )
402 CALL chkxer(
'CTBTRS', infot, nout, lerr, ok )
404 CALL ctbtrs(
'U',
'N',
'/', 0, 0, 0, a, 1, x, 1, info )
405 CALL chkxer(
'CTBTRS', infot, nout, lerr, ok )
407 CALL ctbtrs(
'U',
'N',
'N', -1, 0, 0, a, 1, x, 1, info )
408 CALL chkxer(
'CTBTRS', infot, nout, lerr, ok )
410 CALL ctbtrs(
'U',
'N',
'N', 0, -1, 0, a, 1, x, 1, info )
411 CALL chkxer(
'CTBTRS', infot, nout, lerr, ok )
413 CALL ctbtrs(
'U',
'N',
'N', 0, 0, -1, a, 1, x, 1, info )
414 CALL chkxer(
'CTBTRS', infot, nout, lerr, ok )
416 CALL ctbtrs(
'U',
'N',
'N', 2, 1, 1, a, 1, x, 2, info )
417 CALL chkxer(
'CTBTRS', infot, nout, lerr, ok )
419 CALL ctbtrs(
'U',
'N',
'N', 2, 0, 1, a, 1, x, 1, info )
420 CALL chkxer(
'CTBTRS', infot, nout, lerr, ok )
426 CALL ctbrfs(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
428 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
430 CALL ctbrfs(
'U',
'/',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
432 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
434 CALL ctbrfs(
'U',
'N',
'/', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
436 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
438 CALL ctbrfs(
'U',
'N',
'N', -1, 0, 0, a, 1, b, 1, x, 1, r1, r2,
440 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
442 CALL ctbrfs(
'U',
'N',
'N', 0, -1, 0, a, 1, b, 1, x, 1, r1, r2,
444 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
446 CALL ctbrfs(
'U',
'N',
'N', 0, 0, -1, a, 1, b, 1, x, 1, r1, r2,
448 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
450 CALL ctbrfs(
'U',
'N',
'N', 2, 1, 1, a, 1, b, 2, x, 2, r1, r2,
452 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
454 CALL ctbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 1, x, 2, r1, r2,
456 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
458 CALL ctbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 2, x, 1, r1, r2,
460 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
466 CALL ctbcon(
'/',
'U',
'N', 0, 0, a, 1, rcond, w, rw, info )
467 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
469 CALL ctbcon(
'1',
'/',
'N', 0, 0, a, 1, rcond, w, rw, info )
470 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
472 CALL ctbcon(
'1',
'U',
'/', 0, 0, a, 1, rcond, w, rw, info )
473 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
475 CALL ctbcon(
'1',
'U',
'N', -1, 0, a, 1, rcond, w, rw, info )
476 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
478 CALL ctbcon(
'1',
'U',
'N', 0, -1, a, 1, rcond, w, rw, info )
479 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
481 CALL ctbcon(
'1',
'U',
'N', 2, 1, a, 1, rcond, w, rw, info )
482 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
488 CALL clatbs(
'/',
'N',
'N',
'N', 0, 0, a, 1, x, scale, rw,
490 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
492 CALL clatbs(
'U',
'/',
'N',
'N', 0, 0, a, 1, x, scale, rw,
494 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
496 CALL clatbs(
'U',
'N',
'/',
'N', 0, 0, a, 1, x, scale, rw,
498 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
500 CALL clatbs(
'U',
'N',
'N',
'/', 0, 0, a, 1, x, scale, rw,
502 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
504 CALL clatbs(
'U',
'N',
'N',
'N', -1, 0, a, 1, x, scale, rw,
506 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
508 CALL clatbs(
'U',
'N',
'N',
'N', 1, -1, a, 1, x, scale, rw,
510 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
512 CALL clatbs(
'U',
'N',
'N',
'N', 2, 1, a, 1, x, scale, rw,
514 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
519 CALL alaesm( path, ok, nout )
subroutine alaesm(path, ok, nout)
ALAESM
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine cerrtr(path, nunit)
CERRTR
subroutine clatbs(uplo, trans, diag, normin, n, kd, ab, ldab, x, scale, cnorm, info)
CLATBS solves a triangular banded system of equations.
subroutine clatps(uplo, trans, diag, normin, n, ap, x, scale, cnorm, info)
CLATPS solves a triangular system of equations with the matrix held in packed storage.
subroutine clatrs3(uplo, trans, diag, normin, n, nrhs, a, lda, x, ldx, scale, cnorm, work, lwork, info)
CLATRS3 solves a triangular system of equations with the scale factors set to prevent overflow.
subroutine clatrs(uplo, trans, diag, normin, n, a, lda, x, scale, cnorm, info)
CLATRS solves a triangular system of equations with the scale factor set to prevent overflow.
subroutine ctbcon(norm, uplo, diag, n, kd, ab, ldab, rcond, work, rwork, info)
CTBCON
subroutine ctbrfs(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, rwork, info)
CTBRFS
subroutine ctbtrs(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info)
CTBTRS
subroutine ctpcon(norm, uplo, diag, n, ap, rcond, work, rwork, info)
CTPCON
subroutine ctprfs(uplo, trans, diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, rwork, info)
CTPRFS
subroutine ctptri(uplo, diag, n, ap, info)
CTPTRI
subroutine ctptrs(uplo, trans, diag, n, nrhs, ap, b, ldb, info)
CTPTRS
subroutine ctrcon(norm, uplo, diag, n, a, lda, rcond, work, rwork, info)
CTRCON
subroutine ctrrfs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, rwork, info)
CTRRFS
subroutine ctrti2(uplo, diag, n, a, lda, info)
CTRTI2 computes the inverse of a triangular matrix (unblocked algorithm).
subroutine ctrtri(uplo, diag, n, a, lda, info)
CTRTRI
subroutine ctrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)
CTRTRS