74 REAL RCOND, SCALE, SCALES(0)
78 REAL A( NMAX, NMAX ), B( NMAX ), R1( NMAX ),
79 $ R2( NMAX ), W( NMAX ), X( NMAX )
97 COMMON / infoc / infot, nout, ok, lerr
98 COMMON / srnamc / srnamt
103 WRITE( nout, fmt = * )
111 IF( lsamen( 2, c2,
'TR' ) )
THEN
119 CALL strtri(
'/',
'N', 0, a, 1, info )
120 CALL chkxer(
'STRTRI', infot, nout, lerr, ok )
122 CALL strtri(
'U',
'/', 0, a, 1, info )
123 CALL chkxer(
'STRTRI', infot, nout, lerr, ok )
125 CALL strtri(
'U',
'N', -1, a, 1, info )
126 CALL chkxer(
'STRTRI', infot, nout, lerr, ok )
128 CALL strtri(
'U',
'N', 2, a, 1, info )
129 CALL chkxer(
'STRTRI', infot, nout, lerr, ok )
135 CALL strti2(
'/',
'N', 0, a, 1, info )
136 CALL chkxer(
'STRTI2', infot, nout, lerr, ok )
138 CALL strti2(
'U',
'/', 0, a, 1, info )
139 CALL chkxer(
'STRTI2', infot, nout, lerr, ok )
141 CALL strti2(
'U',
'N', -1, a, 1, info )
142 CALL chkxer(
'STRTI2', infot, nout, lerr, ok )
144 CALL strti2(
'U',
'N', 2, a, 1, info )
145 CALL chkxer(
'STRTI2', infot, nout, lerr, ok )
151 CALL strtrs(
'/',
'N',
'N', 0, 0, a, 1, x, 1, info )
152 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
154 CALL strtrs(
'U',
'/',
'N', 0, 0, a, 1, x, 1, info )
155 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
157 CALL strtrs(
'U',
'N',
'/', 0, 0, a, 1, x, 1, info )
158 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
160 CALL strtrs(
'U',
'N',
'N', -1, 0, a, 1, x, 1, info )
161 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
163 CALL strtrs(
'U',
'N',
'N', 0, -1, a, 1, x, 1, info )
164 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
166 CALL strtrs(
'U',
'N',
'N', 2, 1, a, 1, x, 2, info )
167 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
169 CALL strtrs(
'U',
'N',
'N', 2, 1, a, 2, x, 1, info )
170 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
176 CALL strrfs(
'/',
'N',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
178 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
180 CALL strrfs(
'U',
'/',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
182 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
184 CALL strrfs(
'U',
'N',
'/', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
186 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
188 CALL strrfs(
'U',
'N',
'N', -1, 0, a, 1, b, 1, x, 1, r1, r2, w,
190 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
192 CALL strrfs(
'U',
'N',
'N', 0, -1, a, 1, b, 1, x, 1, r1, r2, w,
194 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
196 CALL strrfs(
'U',
'N',
'N', 2, 1, a, 1, b, 2, x, 2, r1, r2, w,
198 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
200 CALL strrfs(
'U',
'N',
'N', 2, 1, a, 2, b, 1, x, 2, r1, r2, w,
202 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
204 CALL strrfs(
'U',
'N',
'N', 2, 1, a, 2, b, 2, x, 1, r1, r2, w,
206 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
212 CALL strcon(
'/',
'U',
'N', 0, a, 1, rcond, w, iw, info )
213 CALL chkxer(
'STRCON', infot, nout, lerr, ok )
215 CALL strcon(
'1',
'/',
'N', 0, a, 1, rcond, w, iw, info )
216 CALL chkxer(
'STRCON', infot, nout, lerr, ok )
218 CALL strcon(
'1',
'U',
'/', 0, a, 1, rcond, w, iw, info )
219 CALL chkxer(
'STRCON', infot, nout, lerr, ok )
221 CALL strcon(
'1',
'U',
'N', -1, a, 1, rcond, w, iw, info )
222 CALL chkxer(
'STRCON', infot, nout, lerr, ok )
224 CALL strcon(
'1',
'U',
'N', 2, a, 1, rcond, w, iw, info )
225 CALL chkxer(
'STRCON', infot, nout, lerr, ok )
231 CALL slatrs(
'/',
'N',
'N',
'N', 0, a, 1, x, scale, w, info )
232 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
234 CALL slatrs(
'U',
'/',
'N',
'N', 0, a, 1, x, scale, w, info )
235 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
237 CALL slatrs(
'U',
'N',
'/',
'N', 0, a, 1, x, scale, w, info )
238 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
240 CALL slatrs(
'U',
'N',
'N',
'/', 0, a, 1, x, scale, w, info )
241 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
243 CALL slatrs(
'U',
'N',
'N',
'N', -1, a, 1, x, scale, w, info )
244 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
246 CALL slatrs(
'U',
'N',
'N',
'N', 2, a, 1, x, scale, w, info )
247 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
253 CALL slatrs3(
'/',
'N',
'N',
'N', 0, 0, a, 1, x, 1, scales,
254 $ w, w( 2 ), 1, info )
255 CALL chkxer(
'SLATRS3', infot, nout, lerr, ok )
257 CALL slatrs3(
'U',
'/',
'N',
'N', 0, 0, a, 1, x, 1, scales,
258 $ w, w( 2 ), 1, info )
259 CALL chkxer(
'SLATRS3', infot, nout, lerr, ok )
261 CALL slatrs3(
'U',
'N',
'/',
'N', 0, 0, a, 1, x, 1, scales,
262 $ w, w( 2 ), 1, info )
263 CALL chkxer(
'SLATRS3', infot, nout, lerr, ok )
265 CALL slatrs3(
'U',
'N',
'N',
'/', 0, 0, a, 1, x, 1, scales,
266 $ w, w( 2 ), 1, info )
267 CALL chkxer(
'SLATRS3', infot, nout, lerr, ok )
269 CALL slatrs3(
'U',
'N',
'N',
'N', -1, 0, a, 1, x, 1, scales,
270 $ w, w( 2 ), 1, info )
271 CALL chkxer(
'SLATRS3', infot, nout, lerr, ok )
273 CALL slatrs3(
'U',
'N',
'N',
'N', 0, -1, a, 1, x, 1, scales,
274 $ w, w( 2 ), 1, info )
275 CALL chkxer(
'SLATRS3', infot, nout, lerr, ok )
277 CALL slatrs3(
'U',
'N',
'N',
'N', 2, 0, a, 1, x, 1, scales,
278 $ w, w( 2 ), 1, info )
279 CALL chkxer(
'SLATRS3', infot, nout, lerr, ok )
281 CALL slatrs3(
'U',
'N',
'N',
'N', 2, 0, a, 2, x, 1, scales,
282 $ w, w( 2 ), 1, info )
283 CALL chkxer(
'SLATRS3', infot, nout, lerr, ok )
285 CALL slatrs3(
'U',
'N',
'N',
'N', 1, 0, a, 1, x, 1, scales,
286 $ w, w( 2 ), 0, info )
287 CALL chkxer(
'SLATRS3', infot, nout, lerr, ok )
289 ELSE IF( lsamen( 2, c2,
'TP' ) )
THEN
297 CALL stptri(
'/',
'N', 0, a, info )
298 CALL chkxer(
'STPTRI', infot, nout, lerr, ok )
300 CALL stptri(
'U',
'/', 0, a, info )
301 CALL chkxer(
'STPTRI', infot, nout, lerr, ok )
303 CALL stptri(
'U',
'N', -1, a, info )
304 CALL chkxer(
'STPTRI', infot, nout, lerr, ok )
310 CALL stptrs(
'/',
'N',
'N', 0, 0, a, x, 1, info )
311 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
313 CALL stptrs(
'U',
'/',
'N', 0, 0, a, x, 1, info )
314 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
316 CALL stptrs(
'U',
'N',
'/', 0, 0, a, x, 1, info )
317 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
319 CALL stptrs(
'U',
'N',
'N', -1, 0, a, x, 1, info )
320 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
322 CALL stptrs(
'U',
'N',
'N', 0, -1, a, x, 1, info )
323 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
325 CALL stptrs(
'U',
'N',
'N', 2, 1, a, x, 1, info )
326 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
332 CALL stprfs(
'/',
'N',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
334 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
336 CALL stprfs(
'U',
'/',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
338 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
340 CALL stprfs(
'U',
'N',
'/', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
342 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
344 CALL stprfs(
'U',
'N',
'N', -1, 0, a, b, 1, x, 1, r1, r2, w,
346 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
348 CALL stprfs(
'U',
'N',
'N', 0, -1, a, b, 1, x, 1, r1, r2, w,
350 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
352 CALL stprfs(
'U',
'N',
'N', 2, 1, a, b, 1, x, 2, r1, r2, w, iw,
354 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
356 CALL stprfs(
'U',
'N',
'N', 2, 1, a, b, 2, x, 1, r1, r2, w, iw,
358 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
364 CALL stpcon(
'/',
'U',
'N', 0, a, rcond, w, iw, info )
365 CALL chkxer(
'STPCON', infot, nout, lerr, ok )
367 CALL stpcon(
'1',
'/',
'N', 0, a, rcond, w, iw, info )
368 CALL chkxer(
'STPCON', infot, nout, lerr, ok )
370 CALL stpcon(
'1',
'U',
'/', 0, a, rcond, w, iw, info )
371 CALL chkxer(
'STPCON', infot, nout, lerr, ok )
373 CALL stpcon(
'1',
'U',
'N', -1, a, rcond, w, iw, info )
374 CALL chkxer(
'STPCON', infot, nout, lerr, ok )
380 CALL slatps(
'/',
'N',
'N',
'N', 0, a, x, scale, w, info )
381 CALL chkxer(
'SLATPS', infot, nout, lerr, ok )
383 CALL slatps(
'U',
'/',
'N',
'N', 0, a, x, scale, w, info )
384 CALL chkxer(
'SLATPS', infot, nout, lerr, ok )
386 CALL slatps(
'U',
'N',
'/',
'N', 0, a, x, scale, w, info )
387 CALL chkxer(
'SLATPS', infot, nout, lerr, ok )
389 CALL slatps(
'U',
'N',
'N',
'/', 0, a, x, scale, w, info )
390 CALL chkxer(
'SLATPS', infot, nout, lerr, ok )
392 CALL slatps(
'U',
'N',
'N',
'N', -1, a, x, scale, w, info )
393 CALL chkxer(
'SLATPS', infot, nout, lerr, ok )
395 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
403 CALL stbtrs(
'/',
'N',
'N', 0, 0, 0, a, 1, x, 1, info )
404 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
406 CALL stbtrs(
'U',
'/',
'N', 0, 0, 0, a, 1, x, 1, info )
407 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
409 CALL stbtrs(
'U',
'N',
'/', 0, 0, 0, a, 1, x, 1, info )
410 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
412 CALL stbtrs(
'U',
'N',
'N', -1, 0, 0, a, 1, x, 1, info )
413 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
415 CALL stbtrs(
'U',
'N',
'N', 0, -1, 0, a, 1, x, 1, info )
416 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
418 CALL stbtrs(
'U',
'N',
'N', 0, 0, -1, a, 1, x, 1, info )
419 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
421 CALL stbtrs(
'U',
'N',
'N', 2, 1, 1, a, 1, x, 2, info )
422 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
424 CALL stbtrs(
'U',
'N',
'N', 2, 0, 1, a, 1, x, 1, info )
425 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
431 CALL stbrfs(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
433 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
435 CALL stbrfs(
'U',
'/',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
437 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
439 CALL stbrfs(
'U',
'N',
'/', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
441 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
443 CALL stbrfs(
'U',
'N',
'N', -1, 0, 0, a, 1, b, 1, x, 1, r1, r2,
445 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
447 CALL stbrfs(
'U',
'N',
'N', 0, -1, 0, a, 1, b, 1, x, 1, r1, r2,
449 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
451 CALL stbrfs(
'U',
'N',
'N', 0, 0, -1, a, 1, b, 1, x, 1, r1, r2,
453 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
455 CALL stbrfs(
'U',
'N',
'N', 2, 1, 1, a, 1, b, 2, x, 2, r1, r2,
457 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
459 CALL stbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 1, x, 2, r1, r2,
461 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
463 CALL stbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 2, x, 1, r1, r2,
465 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
471 CALL stbcon(
'/',
'U',
'N', 0, 0, a, 1, rcond, w, iw, info )
472 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
474 CALL stbcon(
'1',
'/',
'N', 0, 0, a, 1, rcond, w, iw, info )
475 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
477 CALL stbcon(
'1',
'U',
'/', 0, 0, a, 1, rcond, w, iw, info )
478 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
480 CALL stbcon(
'1',
'U',
'N', -1, 0, a, 1, rcond, w, iw, info )
481 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
483 CALL stbcon(
'1',
'U',
'N', 0, -1, a, 1, rcond, w, iw, info )
484 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
486 CALL stbcon(
'1',
'U',
'N', 2, 1, a, 1, rcond, w, iw, info )
487 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
493 CALL slatbs(
'/',
'N',
'N',
'N', 0, 0, a, 1, x, scale, w,
495 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
497 CALL slatbs(
'U',
'/',
'N',
'N', 0, 0, a, 1, x, scale, w,
499 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
501 CALL slatbs(
'U',
'N',
'/',
'N', 0, 0, a, 1, x, scale, w,
503 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
505 CALL slatbs(
'U',
'N',
'N',
'/', 0, 0, a, 1, x, scale, w,
507 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
509 CALL slatbs(
'U',
'N',
'N',
'N', -1, 0, a, 1, x, scale, w,
511 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
513 CALL slatbs(
'U',
'N',
'N',
'N', 1, -1, a, 1, x, scale, w,
515 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
517 CALL slatbs(
'U',
'N',
'N',
'N', 2, 1, a, 1, x, scale, w,
519 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
524 CALL alaesm( path, ok, nout )
subroutine alaesm(path, ok, nout)
ALAESM
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine slatbs(uplo, trans, diag, normin, n, kd, ab, ldab, x, scale, cnorm, info)
SLATBS solves a triangular banded system of equations.
subroutine slatps(uplo, trans, diag, normin, n, ap, x, scale, cnorm, info)
SLATPS solves a triangular system of equations with the matrix held in packed storage.
subroutine slatrs3(uplo, trans, diag, normin, n, nrhs, a, lda, x, ldx, scale, cnorm, work, lwork, info)
SLATRS3 solves a triangular system of equations with the scale factors set to prevent overflow.
subroutine slatrs(uplo, trans, diag, normin, n, a, lda, x, scale, cnorm, info)
SLATRS solves a triangular system of equations with the scale factor set to prevent overflow.
subroutine stbcon(norm, uplo, diag, n, kd, ab, ldab, rcond, work, iwork, info)
STBCON
subroutine stbrfs(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, iwork, info)
STBRFS
subroutine stbtrs(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info)
STBTRS
subroutine stpcon(norm, uplo, diag, n, ap, rcond, work, iwork, info)
STPCON
subroutine stprfs(uplo, trans, diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, iwork, info)
STPRFS
subroutine stptri(uplo, diag, n, ap, info)
STPTRI
subroutine stptrs(uplo, trans, diag, n, nrhs, ap, b, ldb, info)
STPTRS
subroutine strcon(norm, uplo, diag, n, a, lda, rcond, work, iwork, info)
STRCON
subroutine strrfs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, iwork, info)
STRRFS
subroutine strti2(uplo, diag, n, a, lda, info)
STRTI2 computes the inverse of a triangular matrix (unblocked algorithm).
subroutine strtri(uplo, diag, n, a, lda, info)
STRTRI
subroutine strtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)
STRTRS
subroutine serrtr(path, nunit)
SERRTR