74 DOUBLE PRECISION RCOND, SCALE
78 DOUBLE PRECISION A( , 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 dtrtri(
'/',
'N', 0, a, 1, info )
119 CALL chkxer(
'DTRTRI', infot, nout, lerr, ok )
121 CALL dtrtri(
'U',
'/', 0, a, 1, info )
122 CALL chkxer(
'DTRTRI', infot, nout, lerr, ok )
124 CALL dtrtri(
'U',
'N', -1, a, 1, info )
125 CALL chkxer(
'DTRTRI', infot, nout, lerr, ok )
127 CALL dtrtri(
'U',
'N', 2, a, 1, info )
128 CALL chkxer(
'DTRTRI', infot, nout, lerr, ok )
134 CALL dtrti2(
'/',
'N', 0, a, 1, info )
135 CALL chkxer(
'DTRTI2', infot, nout, lerr, ok )
137 CALL dtrti2(
'U',
'/', 0, a, 1, info )
138 CALL chkxer(
'DTRTI2', infot, nout, lerr, ok )
140 CALL dtrti2(
'U',
'N', -1, a, 1, info )
141 CALL chkxer(
'DTRTI2', infot, nout, lerr, ok )
143 CALL dtrti2(
'U',
'N', 2, a, 1, info )
144 CALL chkxer(
'DTRTI2', infot, nout, lerr, ok )
150 CALL dtrtrs(
'/',
'N',
'N', 0, 0, a, 1, x, 1, info )
151 CALL chkxer(
'DTRTRS', infot, nout, lerr, ok )
153 CALL dtrtrs(
'U',
'/',
'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',
'N', -1, 0, a, 1, x, 1, info )
160 CALL chkxer(
'DTRTRS', infot, nout, lerr, ok )
162 CALL dtrtrs(
'U',
'N',
'N', 0, -1, a, 1, x, 1, info )
163 CALL chkxer(
'DTRTRS', infot, nout, lerr, ok )
165 CALL dtrtrs(
'U',
'N',
'N', 2, 1, a, 1, x, 2, info )
166 CALL chkxer(
'DTRTRS', infot, nout, lerr, ok )
168 CALL dtrtrs(
'U',
'N',
'N', 2, 1, a, 2, x, 1, info )
169 CALL chkxer(
'DTRTRS', infot, nout, lerr, ok )
175 CALL dtrrfs(
'/',
'N',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
177 CALL chkxer(
'DTRRFS', infot, nout, lerr, ok )
179 CALL dtrrfs(
'U',
'/',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
183 CALL DTRRFS( 'u
', 'n
', '/
', 0, 0, A, 1, B, 1, X, 1, R1, R2, W,
185 CALL CHKXER( 'dtrrfs', INFOT, NOUT, LERR, OK )
187 CALL DTRRFS( 'u
', 'n
', 'n
', -1, 0, A, 1, B, 1, X, 1, R1, R2, W,
189 CALL CHKXER( 'dtrrfs', INFOT, NOUT, LERR, OK )
191 CALL DTRRFS( 'u
', 'n
', 'n
', 0, -1, A, 1, B, 1, X, 1, R1, R2, W,
193 CALL CHKXER( 'dtrrfs', INFOT, NOUT, LERR, OK )
195 CALL DTRRFS( 'u
', 'n
', 'n
', 2, 1, A, 1, B, 2, X, 2, R1, R2, W,
197 CALL CHKXER( 'dtrrfs', INFOT, NOUT, LERR, OK )
199 CALL DTRRFS( 'u
', 'n
', 'n
', 2, 1, A, 2, B, 1, X, 2, R1, R2, W,
201 CALL CHKXER( 'dtrrfs', INFOT, NOUT, LERR, OK )
203 CALL DTRRFS( 'u
', 'n
', 'n
', 2, 1, A, 2, B, 2, X, 1, R1, R2, W,
205 CALL CHKXER( 'dtrrfs', INFOT, NOUT, LERR, OK )
211 CALL DTRCON( '/
', 'u
', 'n
', 0, A, 1, RCOND, W, IW, INFO )
212 CALL CHKXER( 'dtrcon', INFOT, NOUT, LERR, OK )
214 CALL DTRCON( '1
', '/
', 'n
', 0, A, 1, RCOND, W, IW, INFO )
215 CALL CHKXER( 'dtrcon', INFOT, NOUT, LERR, OK )
217 CALL DTRCON( '1
', 'u
', '/
', 0, A, 1, RCOND, W, IW, INFO )
218 CALL CHKXER( 'dtrcon', INFOT, NOUT, LERR, OK )
220 CALL DTRCON( '1
', 'u
', 'n
', -1, A, 1, RCOND, W, IW, INFO )
221 CALL CHKXER( 'dtrcon', INFOT, NOUT, LERR, OK )
223 CALL DTRCON( '1
', 'u
', 'n
', 2, A, 1, RCOND, W, IW, INFO )
224 CALL CHKXER( 'dtrcon', INFOT, NOUT, LERR, OK )
230 CALL DLATRS( '/
', 'n
', 'n
', 'n
', 0, A, 1, X, SCALE, W, INFO )
231 CALL CHKXER( 'dlatrs', INFOT, NOUT, LERR, OK )
233 CALL DLATRS( 'u
', '/
', '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
', 'n
', -1, A, 1, X, SCALE, W, INFO )
243 CALL CHKXER( 'dlatrs', INFOT, NOUT, LERR, OK )
245 CALL DLATRS( 'u
', 'n
', 'n
', 'n
', 2, A, 1, X, SCALE, W, INFO )
246 CALL CHKXER( 'dlatrs', INFOT, NOUT, LERR, OK )
248 ELSE IF( LSAMEN( 2, C2, 'tp
' ) ) THEN
256 CALL DTPTRI( '/
', 'n
', 0, A, INFO )
257 CALL CHKXER( 'dtptri', INFOT, NOUT, LERR, OK )
259 CALL DTPTRI( 'u
', '/
', 0, A, INFO )
260 CALL CHKXER( 'dtptri', INFOT, NOUT, LERR, OK )
262 CALL DTPTRI( 'u
', 'n
', -1, A, INFO )
263 CALL CHKXER( 'dtptri', INFOT, NOUT, LERR, OK )
269 CALL DTPTRS( '/
', 'n
', 'n
', 0, 0, A, X, 1, INFO )
270 CALL CHKXER( 'dtptrs', INFOT, NOUT, LERR, OK )
272 CALL DTPTRS( 'u
', '/
', '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
', 'n
', -1, 0, A, X, 1, INFO )
279 CALL CHKXER( 'dtptrs', INFOT, NOUT, LERR, OK )
281 CALL DTPTRS( 'u
', 'n
', 'n
', 0, -1, A, X, 1, INFO )
282 CALL CHKXER( 'dtptrs', INFOT, NOUT, LERR, OK )
284 CALL DTPTRS( 'u
', 'n
', 'n
', 2, 1, A, X, 1, INFO )
285 CALL CHKXER( 'dtptrs', INFOT, NOUT, LERR, OK )
291 CALL DTPRFS( '/',
'N',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
293 CALL chkxer(
'DTPRFS', infot, nout, lerr, ok )
295 CALL dtprfs(
'U',
'/',
'N', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
297 CALL chkxer(
'DTPRFS', infot, nout, lerr, ok )
299 CALL dtprfs(
'U',
'N',
'/', 0, 0, a, b, 1, x, 1, r1, r2, w, iw,
301 CALL chkxer(
'DTPRFS', infot, nout, lerr, ok )
303 CALL dtprfs(
'U',
'N',
'N', -1, 0, a, b, 1, x, 1, r1, r2, w,
305 CALL chkxer(
'DTPRFS', infot, nout, lerr, ok )
307 CALL dtprfs(
'U',
'N',
'N', 0, -1, a, b, 1, x, 1, r1, r2, w,
309 CALL chkxer(
'DTPRFS', infot, nout, lerr, ok )
311 CALL dtprfs(
'U',
'N',
'N', 2, 1, a, b, 1, x, 2, r1, r2, w, iw,
313 CALL chkxer(
'DTPRFS', infot, nout, lerr, ok )
315 CALL dtprfs(
'U',
'N',
'N', 2, 1, a, b, 2, x, 1, r1, r2, w, iw,
317 CALL chkxer(
'DTPRFS', infot, nout, lerr, ok )
323 CALL dtpcon(
'/',
'U',
'N', 0, a, rcond, w, iw, info )
324 CALL chkxer(
'DTPCON', infot, nout, lerr, ok )
326 CALL dtpcon(
'1',
'/',
'N', 0, a, rcond, w, iw, info )
327 CALL chkxer(
'DTPCON', infot, nout, lerr, ok )
329 CALL dtpcon( '1
', 'u
', '/
', 0, A, RCOND, W, IW, INFO )
330 CALL CHKXER( 'dtpcon', INFOT, NOUT, LERR, OK )
332 CALL DTPCON( '1
', 'u
', 'n
', -1, A, RCOND, W, IW, INFO )
333 CALL CHKXER( 'dtpcon', INFOT, NOUT, LERR, OK )
339 CALL DLATPS( '/
', 'n
', 'n
', 'n
', 0, A, X, SCALE, W, INFO )
340 CALL CHKXER( 'dlatps', INFOT, NOUT, LERR, OK )
342 CALL DLATPS( 'u
', '/
', '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',
'N', -1, a, x, scale, w, info )
352 CALL chkxer(
'DLATPS', infot, nout, lerr, ok )
354 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
362 CALL dtbtrs(
'/',
'N',
'N', 0, 0, 0, a, 1, x, 1, info )
363 CALL chkxer(
'DTBTRS', infot, nout, lerr, ok )
365 CALL dtbtrs(
'U',
'/',
'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',
'N', -1, 0, 0, a, 1, x, 1, info )
372 CALL chkxer(
'DTBTRS', infot, nout, lerr, ok )
374 CALL dtbtrs(
'U',
'N',
'N', 0, -1, 0, a, 1, x, 1, info )
375 CALL chkxer(
'DTBTRS', infot, nout, lerr, ok )
377 CALL dtbtrs(
'U',
'N',
'N', 0, 0, -1, a, 1, x, 1, info )
378 CALL chkxer(
'DTBTRS', infot, nout, lerr, ok )
380 CALL dtbtrs(
'U',
'N',
'N', 2, 1, 1, a, 1, x, 2, info )
381 CALL chkxer(
'DTBTRS', infot, nout, lerr, ok )
383 CALL dtbtrs(
'U',
'N',
'N', 2, 0, 1, a, 1, x, 1, info )
384 CALL chkxer(
'DTBTRS', infot, nout, lerr, ok )
390 CALL dtbrfs(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
392 CALL chkxer(
'DTBRFS', infot, nout, lerr, ok )
394 CALL dtbrfs(
'U',
'/',
'N', 0, 0, 0, a, 1, b, 1, x, 1, r1, r2,
396 CALL chkxer(
'DTBRFS', infot, nout, lerr, ok )
398 CALL dtbrfs( 'u
', 'n
', '/
', 0, 0, 0, A, 1, B, 1, X, 1, R1, R2,
400 CALL CHKXER( 'dtbrfs', INFOT, NOUT, LERR, OK )
402 CALL DTBRFS( 'u
', 'n
', 'n
', -1, 0, 0, A, 1, B, 1, X, 1, R1, R2,
404 CALL CHKXER( 'dtbrfs', INFOT, NOUT, LERR, OK )
406 CALL DTBRFS( 'u
', 'n
', 'n
', 0, -1, 0, A, 1, B, 1, X, 1, R1, R2,
408 CALL CHKXER( 'dtbrfs', INFOT, NOUT, LERR, OK )
410 CALL DTBRFS( 'u
', 'n
', 'n
', 0, 0, -1, A, 1, B, 1, X, 1, R1, R2,
412 CALL CHKXER( 'dtbrfs', INFOT, NOUT, LERR, OK )
414 CALL DTBRFS( 'u
', 'n
', 'n
', 2, 1, 1, A, 1, B, 2, X, 2, R1, R2,
416 CALL CHKXER( 'dtbrfs', INFOT, NOUT, LERR, OK )
418 CALL DTBRFS( 'u
', 'n
', 'n
', 2, 1, 1, A, 2, B, 1, X, 2, R1, R2,
420 CALL CHKXER( 'dtbrfs', INFOT, NOUT, LERR, OK )
422 CALL DTBRFS( 'u
', 'n
', 'n
', 2, 1, 1, A, 2, B, 2, X, 1, R1, R2,
424 CALL CHKXER( 'dtbrfs', INFOT, NOUT, LERR, OK )
430 CALL DTBCON( '/
', 'u
', 'n
', 0, 0, A, 1, RCOND, W, IW, INFO )
431 CALL CHKXER( 'dtbcon', INFOT, NOUT, LERR, OK )
433 CALL DTBCON( '1
', '/
', 'n
', 0, 0, A, 1, RCOND, W, IW, INFO )
434 CALL CHKXER( 'dtbcon', INFOT, NOUT, LERR, OK )
436 CALL DTBCON( '1
', 'u
', '/
', 0, 0, A, 1, RCOND, W, IW, INFO )
437 CALL CHKXER( 'dtbcon', INFOT, NOUT, LERR, OK )
439 CALL DTBCON( '1
', 'u
', 'n
', -1, 0, A, 1, RCOND, W, IW, INFO )
440 CALL CHKXER( 'dtbcon', INFOT, NOUT, LERR, OK )
442 CALL DTBCON( '1
', 'u
', 'n
', 0, -1, A, 1, RCOND, W, IW, INFO )
443 CALL CHKXER( 'dtbcon', INFOT, NOUT, LERR, OK )
445 CALL DTBCON( '1
', 'u
', 'n
', 2, 1, A, 1, RCOND, W, IW, INFO )
446 CALL CHKXER( 'dtbcon', INFOT, NOUT, LERR, OK )
452 CALL DLATBS( '/
', 'n
', 'n
', 'n
', 0, 0, A, 1, X, SCALE, W,
454 CALL CHKXER( 'dlatbs', INFOT, NOUT, LERR, OK )
456 CALL DLATBS( 'u
', '/
', 'n
', 'n
', 0, 0, A, 1, X, SCALE, W,
458 CALL CHKXER( 'dlatbs', INFOT, NOUT, LERR, OK )
460 CALL DLATBS( 'u
', 'n
', '/
', 'n
', 0, 0, A, 1, X, SCALE, W,
462 CALL CHKXER( 'dlatbs', INFOT, NOUT, LERR, OK )
464 CALL DLATBS( 'u
', 'n
', 'n
', '/
', 0, 0, A, 1, X, SCALE, W,
466 CALL CHKXER( 'dlatbs', INFOT, NOUT, LERR, OK )
468 CALL DLATBS( 'u
', 'n
', 'n
', 'n
', -1, 0, A, 1, X, SCALE, W,
470 CALL CHKXER( 'dlatbs', INFOT, NOUT, LERR, OK )
472 CALL DLATBS( 'u
', 'n
', 'n
', 'n
', 1, -1, A, 1, X, SCALE, W,
474 CALL CHKXER( 'dlatbs', INFOT, NOUT, LERR, OK )
476 CALL DLATBS( 'u
', 'n
', 'n
', 'n
', 2, 1, A, 1, X, SCALE, W,
478 CALL CHKXER( 'dlatbs', INFOT, NOUT, LERR, OK )
483 CALL ALAESM( PATH, OK, NOUT )