78 REAL A( NMAX, NMAX ), B( NMAX ), R1( NMAX ),
79 $ R2( NMAX ), W( NMAX ), X( NMAX )
96 COMMON / infoc / infot, nout, ok, lerr
97 COMMON / srnamc / srnamt
102 WRITE( nout, fmt = * )
110 IF( lsamen( 2, c2,
'TR' ) )
THEN
118 CALL strtri(
'/',
'N', 0, a, 1, info )
119 CALL chkxer(
'STRTRI', infot, nout, lerr, ok )
121 CALL strtri(
'U',
'/', 0, a, 1, info )
122 CALL chkxer(
'STRTRI', infot, nout, lerr, ok )
124 CALL strtri(
'U',
'N', -1, a, 1, info )
125 CALL chkxer(
'STRTRI', infot, nout, lerr, ok )
127 CALL strtri(
'U',
'N', 2, a, 1, info )
128 CALL chkxer(
'STRTRI', infot, nout, lerr, ok )
134 CALL strti2(
'/',
'N', 0, a, 1, info )
135 CALL chkxer(
'STRTI2', infot, nout, lerr, ok )
137 CALL strti2(
'U',
'/', 0, a, 1, info )
138 CALL chkxer(
'STRTI2', infot, nout, lerr, ok )
140 CALL strti2(
'U',
'N', -1, a, 1, info )
141 CALL chkxer(
'STRTI2', infot, nout, lerr, ok )
143 CALL strti2(
'U',
'N', 2, a, 1, info )
144 CALL chkxer(
'STRTI2', infot, nout, lerr, ok )
150 CALL strtrs(
'/',
'N',
'N', 0, 0, a, 1, x, 1, info )
151 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
153 CALL strtrs(
'U',
'/',
'N', 0, 0, a, 1, x, 1, info )
154 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
156 CALL strtrs(
'U',
'N',
'/', 0, 0, a, 1, x, 1, info )
157 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
159 CALL strtrs(
'U',
'N',
'N', -1, 0, a, 1, x, 1, info )
160 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
162 CALL strtrs(
'U',
'N',
'N', 0, -1, a, 1, x, 1, info )
163 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
165 CALL strtrs(
'U',
'N',
'N', 2, 1, a, 1, x, 2, info )
166 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
168 CALL strtrs(
'U',
'N',
'N', 2, 1, a, 2, x, 1, info )
169 CALL chkxer(
'STRTRS', infot, nout, lerr, ok )
175 CALL strrfs(
'/',
'N',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
177 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
179 CALL strrfs(
'U',
'/',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
181 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
183 CALL strrfs(
'U',
'N',
'/', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
185 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
187 CALL strrfs(
'U',
'N',
'N', -1, 0, a, 1, b, 1, x, 1, r1, r2, w,
189 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
191 CALL strrfs(
'U',
'N',
'N', 0, -1, a, 1, b, 1, x, 1, r1, r2, w,
193 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
195 CALL strrfs(
'U',
'N',
'N', 2, 1, a, 1, b, 2, x, 2, r1, r2, w,
197 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
199 CALL strrfs(
'U',
'N',
'N', 2, 1, a, 2, b, 1, x, 2, r1, r2, w,
201 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
203 CALL strrfs(
'U',
'N',
'N', 2, 1, a, 2, b, 2, x, 1, r1, r2, w,
205 CALL chkxer(
'STRRFS', infot, nout, lerr, ok )
211 CALL strcon(
'/',
'U',
'N', 0, a, 1, rcond, w, iw, info )
212 CALL chkxer(
'STRCON', infot, nout, lerr, ok )
214 CALL strcon(
'1',
'/',
'N', 0, a, 1, rcond, w, iw, info )
215 CALL chkxer(
'STRCON', infot, nout, lerr, ok )
217 CALL strcon(
'1',
'U',
'/', 0, a, 1, rcond, w, iw, info )
218 CALL chkxer(
'STRCON', infot, nout, lerr, ok )
220 CALL strcon(
'1',
'U',
'N', -1, a, 1, rcond, w, iw, info )
221 CALL chkxer(
'STRCON', infot, nout, lerr, ok )
223 CALL strcon(
'1',
'U',
'N', 2, a, 1, rcond, w, iw, info )
224 CALL chkxer(
'STRCON', infot, nout, lerr, ok )
230 CALL slatrs(
'/',
'N',
'N',
'N', 0, a, 1, x, scale, w, info )
231 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
233 CALL slatrs(
'U',
'/',
'N',
'N', 0, a, 1, x, scale, w, info )
234 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
236 CALL slatrs(
'U',
'N',
'/',
'N', 0, a, 1, x, scale, w, info )
237 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
239 CALL slatrs(
'U',
'N',
'N',
'/', 0, a, 1, x, scale, w, info )
240 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
242 CALL slatrs(
'U',
'N',
'N',
'N', -1, a, 1, x, scale, w, info )
243 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
245 CALL slatrs(
'U',
'N',
'N',
'N', 2, a, 1, x, scale, w, info )
246 CALL chkxer(
'SLATRS', infot, nout, lerr, ok )
248 ELSE IF( lsamen( 2, c2,
'TP' ) )
THEN
256 CALL stptri(
'/',
'N', 0, a, info )
257 CALL chkxer(
'STPTRI', infot, nout, lerr, ok )
259 CALL stptri(
'U',
'/', 0, a, info )
260 CALL chkxer(
'STPTRI', infot, nout, lerr, ok )
262 CALL stptri(
'U',
'N', -1, a, info )
263 CALL chkxer(
'STPTRI', infot, nout, lerr, ok )
269 CALL stptrs(
'/',
'N',
'N', 0, 0, a, x, 1, info )
270 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
272 CALL stptrs(
'U',
'/',
'N', 0, 0, a, x, 1, info )
273 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
275 CALL stptrs(
'U',
'N',
'/', 0, 0, a, x, 1, info )
276 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
278 CALL stptrs(
'U',
'N',
'N', -1, 0, a, x, 1, info )
279 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
281 CALL stptrs(
'U',
'N',
'N', 0, -1, a, x, 1, info )
282 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
284 CALL stptrs(
'U',
'N',
'N', 2, 1, a, x, 1, info )
285 CALL chkxer(
'STPTRS', infot, nout, lerr, ok )
291 CALL stprfs(
'/',
'N',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
293 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
295 CALL stprfs(
'U',
'/',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
297 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
299 CALL stprfs(
'U',
'N',
'/', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
301 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
303 CALL stprfs(
'U',
'N',
'N', -1, 0, a, b, 1, x, 1, r1, r2, w,
305 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
307 CALL stprfs(
'U',
'N',
'N', 0, -1, a, b, 1, x, 1, r1, r2, w,
309 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
311 CALL stprfs(
'U',
'N',
'N', 2, 1, a, b, 1, x, 2, r1, r2, w, iw,
313 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
315 CALL stprfs(
'U',
'N',
'N', 2, 1, a, b, 2, x, 1, r1, r2, w, iw,
317 CALL chkxer(
'STPRFS', infot, nout, lerr, ok )
323 CALL stpcon(
'/',
'U',
'N', 0, a, rcond, w, iw, info )
324 CALL chkxer(
'STPCON', infot, nout, lerr, ok )
326 CALL stpcon(
'1',
'/',
'N', 0, a, rcond, w, iw, info )
327 CALL chkxer(
'STPCON', infot, nout, lerr, ok )
329 CALL stpcon(
'1',
'U',
'/', 0, a, rcond, w, iw, info )
330 CALL chkxer(
'STPCON', infot, nout, lerr, ok )
332 CALL stpcon(
'1',
'U',
'N', -1, a, rcond, w, iw, info )
333 CALL chkxer(
'STPCON', infot, nout, lerr, ok )
339 CALL slatps(
'/',
'N',
'N',
'N', 0, a, x, scale, w, info )
340 CALL chkxer(
'SLATPS', infot, nout, lerr, ok )
342 CALL slatps(
'U',
'/',
'N',
'N', 0, a, x, scale, w, info )
343 CALL chkxer(
'SLATPS', infot, nout, lerr, ok )
345 CALL slatps(
'U',
'N',
'/',
'N', 0, a, x, scale, w, info )
346 CALL chkxer(
'SLATPS', infot, nout, lerr, ok )
348 CALL slatps(
'U',
'N',
'N',
'/', 0, a, x, scale, w, info )
349 CALL chkxer(
'SLATPS', infot, nout, lerr, ok )
351 CALL slatps(
'U',
'N',
'N',
'N', -1, a, x, scale, w, info )
352 CALL chkxer(
'SLATPS', infot, nout, lerr, ok )
354 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
362 CALL stbtrs(
'/',
'N',
'N', 0, 0, 0, a, 1, x, 1, info )
363 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
365 CALL stbtrs(
'U',
'/',
'N', 0, 0, 0, a, 1, x, 1, info )
366 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
368 CALL stbtrs(
'U',
'N',
'/', 0, 0, 0, a, 1, x, 1, info )
369 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
371 CALL stbtrs(
'U',
'N',
'N', -1, 0, 0, a, 1, x, 1, info )
372 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
374 CALL stbtrs(
'U',
'N',
'N', 0, -1, 0, a, 1, x, 1, info )
375 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
377 CALL stbtrs(
'U',
'N',
'N', 0, 0, -1, a, 1, x, 1, info )
378 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
380 CALL stbtrs(
'U',
'N',
'N', 2, 1, 1, a, 1, x, 2, info )
381 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
383 CALL stbtrs(
'U',
'N',
'N', 2, 0, 1, a, 1, x, 1, info )
384 CALL chkxer(
'STBTRS', infot, nout, lerr, ok )
390 CALL stbrfs(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
392 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
394 CALL stbrfs(
'U',
'/',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
396 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
398 CALL stbrfs(
'U',
'N',
'/', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
400 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
402 CALL stbrfs(
'U',
'N',
'N', -1, 0, 0, a, 1, b, 1, x, 1, r1, r2,
404 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
406 CALL stbrfs(
'U',
'N',
'N', 0, -1, 0, a, 1, b, 1, x, 1, r1, r2,
408 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
410 CALL stbrfs(
'U',
'N',
'N', 0, 0, -1, a, 1, b, 1, x, 1, r1, r2,
412 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
414 CALL stbrfs(
'U',
'N',
'N', 2, 1, 1, a, 1, b, 2, x, 2, r1, r2,
416 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
418 CALL stbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 1, x, 2, r1, r2,
420 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
422 CALL stbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 2, x, 1, r1, r2,
424 CALL chkxer(
'STBRFS', infot, nout, lerr, ok )
430 CALL stbcon(
'/',
'U',
'N', 0, 0, a, 1, rcond, w, iw, info )
431 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
433 CALL stbcon(
'1',
'/',
'N', 0, 0, a, 1, rcond, w, iw, info )
434 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
436 CALL stbcon(
'1',
'U',
'/', 0, 0, a, 1, rcond, w, iw, info )
437 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
439 CALL stbcon(
'1',
'U',
'N', -1, 0, a, 1, rcond, w, iw, info )
440 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
442 CALL stbcon(
'1',
'U',
'N', 0, -1, a, 1, rcond, w, iw, info )
443 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
445 CALL stbcon(
'1',
'U',
'N', 2, 1, a, 1, rcond, w, iw, info )
446 CALL chkxer(
'STBCON', infot, nout, lerr, ok )
452 CALL slatbs(
'/',
'N',
'N',
'N', 0, 0, a, 1, x, scale, w,
454 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
456 CALL slatbs(
'U',
'/',
'N',
'N', 0, 0, a, 1, x, scale, w,
458 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
460 CALL slatbs(
'U',
'N',
'/',
'N', 0, 0, a, 1, x, scale, w,
462 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
464 CALL slatbs(
'U',
'N',
'N',
'/', 0, 0, a, 1, x, scale, w,
466 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
468 CALL slatbs(
'U',
'N',
'N',
'N', -1, 0, a, 1, x, scale, w,
470 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
472 CALL slatbs(
'U',
'N',
'N',
'N', 1, -1, a, 1, x, scale, w,
474 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
476 CALL slatbs(
'U',
'N',
'N',
'N', 2, 1, a, 1, x, scale, w,
478 CALL chkxer(
'SLATBS', infot, nout, lerr, ok )
483 CALL alaesm( path, ok, nout )
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine alaesm(PATH, OK, NOUT)
ALAESM
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 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 strtri(UPLO, DIAG, N, A, LDA, INFO)
STRTRI
subroutine stptrs(UPLO, TRANS, DIAG, N, NRHS, AP, B, LDB, INFO)
STPTRS
subroutine stptri(UPLO, DIAG, N, AP, INFO)
STPTRI
subroutine strrfs(UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
STRRFS
subroutine stbrfs(UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
STBRFS
subroutine strtrs(UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, INFO)
STRTRS
subroutine stbcon(NORM, UPLO, DIAG, N, KD, AB, LDAB, RCOND, WORK, IWORK, INFO)
STBCON
subroutine strti2(UPLO, DIAG, N, A, LDA, INFO)
STRTI2 computes the inverse of a triangular matrix (unblocked algorithm).
subroutine strcon(NORM, UPLO, DIAG, N, A, LDA, RCOND, WORK, IWORK, INFO)
STRCON
subroutine stbtrs(UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, INFO)
STBTRS
subroutine stprfs(UPLO, TRANS, DIAG, N, NRHS, AP, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO)
STPRFS
subroutine stpcon(NORM, UPLO, DIAG, N, AP, RCOND, WORK, IWORK, INFO)
STPCON
subroutine serrtr(PATH, NUNIT)
SERRTR