74 DOUBLE PRECISION ANRM, RCOND
78 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
79 $ R1( NMAX ), R2( NMAX ), W( 3*NMAX ), X( NMAX )
97 COMMON / infoc / infot, nout, ok, lerr
98 COMMON / srnamc / srnamt
106 WRITE( nout, fmt = * )
113 a( i, j ) = 1.d0 / dble( i+j )
114 af( i, j ) = 1.d0 / dble( i+j )
125 IF( lsamen( 2, c2,
'PO' ) )
THEN
134 CALL dpotrf(
'/', 0, a, 1, info )
135 CALL chkxer(
'DPOTRF', infot, nout, lerr, ok )
137 CALL dpotrf( 'u
', -1, A, 1, INFO )
138 CALL CHKXER( 'dpotrf', INFOT, NOUT, LERR, OK )
140 CALL DPOTRF( 'u
', 2, A, 1, INFO )
141 CALL CHKXER( 'dpotrf', INFOT, NOUT, LERR, OK )
147 CALL DPOTF2( '/
', 0, A, 1, INFO )
148 CALL CHKXER( 'dpotf2', INFOT, NOUT, LERR, OK )
150 CALL DPOTF2( 'u
', -1, A, 1, INFO )
151 CALL CHKXER( 'dpotf2', INFOT, NOUT, LERR, OK )
153 CALL DPOTF2( 'u
', 2, A, 1, INFO )
154 CALL CHKXER( 'dpotf2', INFOT, NOUT, LERR, OK )
160 CALL DPOTRI( '/
', 0, A, 1, INFO )
161 CALL CHKXER( 'dpotri', INFOT, NOUT, LERR, OK )
163 CALL DPOTRI( 'u
', -1, A, 1, INFO )
164 CALL CHKXER( 'dpotri', INFOT, NOUT, LERR, OK )
166 CALL DPOTRI( 'u
', 2, A, 1, INFO )
167 CALL CHKXER( 'dpotri', INFOT, NOUT, LERR, OK )
173 CALL dpotrs(
'/', 0, 0, a, 1, b, 1, info )
174 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
176 CALL dpotrs(
'U', -1, 0, a, 1, b, 1, info )
177 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
179 CALL dpotrs(
'U', 0, -1, a, 1, b, 1, info )
180 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
182 CALL dpotrs(
'U', 2, 1, a, 1, b, 2, info )
183 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
185 CALL dpotrs(
'U', 2, 1, a, 2, b, 1, info )
186 CALL chkxer(
'DPOTRS', infot, nout, lerr, ok )
192 CALL dporfs(
'/', 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, iw,
194 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
196 CALL dporfs(
'U', -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
198 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
200 CALL dporfs(
'U', 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
202 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
204 CALL dporfs(
'U', 2, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w, iw,
206 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
208 CALL dporfs(
'U', 2, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w, iw,
210 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
212 CALL dporfs(
'U', 2, 1, a, 2, af, 2, b, 1, x, 2, r1, r2, w, iw,
214 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
216 CALL dporfs(
'U', 2, 1, a, 2, af, 2, b, 2, x, 1, r1, r2, w, iw,
218 CALL chkxer(
'DPORFS', infot, nout, lerr, ok )
224 CALL dpocon(
'/', 0, a, 1, anrm, rcond, w, iw, info )
225 CALL chkxer(
'DPOCON', infot, nout, lerr, ok )
227 CALL dpocon(
'U', -1, a, 1, anrm, rcond, w, iw, info )
228 CALL chkxer(
'DPOCON', infot, nout, lerr, ok )
230 CALL dpocon(
'U', 2, a, 1, anrm, rcond, w, iw, info )
231 CALL chkxer(
'DPOCON', infot, nout, lerr, ok )
237 CALL dpoequ( -1, a, 1, r1, rcond, anrm, info )
238 CALL chkxer(
'DPOEQU', infot, nout, lerr, ok )
240 CALL dpoequ( 2, a, 1, r1, rcond, anrm, info )
241 CALL chkxer(
'DPOEQU', infot, nout, lerr, ok )
243 ELSE IF( lsamen( 2, c2,
'PP' ) )
THEN
252 CALL dpptrf(
'/', 0, a, info )
253 CALL chkxer(
'DPPTRF', infot, nout, lerr, ok )
255 CALL dpptrf(
'U', -1, a, info )
256 CALL chkxer(
'DPPTRF', infot, nout, lerr, ok )
262 CALL dpptri(
'/', 0, a, info )
263 CALL chkxer(
'DPPTRI', infot, nout, lerr, ok )
265 CALL dpptri(
'U', -1, a, info )
266 CALL chkxer(
'DPPTRI', infot, nout, lerr, ok )
272 CALL dpptrs(
'/', 0, 0, a, b, 1, info )
273 CALL chkxer(
'DPPTRS', infot, nout, lerr, ok )
275 CALL dpptrs(
'U', -1, 0, a, b, 1, info )
276 CALL chkxer(
'DPPTRS', infot, nout, lerr, ok )
278 CALL dpptrs( 'u
', 0, -1, A, B, 1, INFO )
279 CALL CHKXER( 'dpptrs', INFOT, NOUT, LERR, OK )
281 CALL DPPTRS( 'u
', 2, 1, A, B, 1, INFO )
282 CALL CHKXER( 'dpptrs', INFOT, NOUT, LERR, OK )
288 CALL DPPRFS( '/
', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
290 CALL CHKXER( 'dpprfs', INFOT, NOUT, LERR, OK )
292 CALL DPPRFS( 'u
', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, IW,
294 CALL CHKXER( 'dpprfs', INFOT, NOUT, LERR, OK )
296 CALL DPPRFS( 'u
', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, IW,
298 CALL CHKXER( 'dpprfs', INFOT, NOUT, LERR, OK )
300 CALL DPPRFS( 'u
', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, IW,
302 CALL CHKXER( 'dpprfs', INFOT, NOUT, LERR, OK )
304 CALL DPPRFS( 'u
', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, IW,
306 CALL CHKXER( 'dpprfs', INFOT, NOUT, LERR, OK )
312 CALL DPPCON( '/
', 0, A, ANRM, RCOND, W, IW, INFO )
313 CALL CHKXER( 'dppcon', INFOT, NOUT, LERR, OK )
315 CALL DPPCON( 'u
', -1, A, ANRM, RCOND, W, IW, INFO )
316 CALL CHKXER( 'dppcon', infot, nout, lerr, ok )
322 CALL dppequ(
'/', 0, a, r1, rcond, anrm, info )
323 CALL chkxer(
'DPPEQU', infot, nout, lerr, ok )
325 CALL dppequ(
'U', -1, a, r1, rcond, anrm, info )
326 CALL chkxer(
'DPPEQU', infot, nout, lerr, ok )
328 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
337 CALL dpbtrf(
'/', 0, 0, a, 1, info )
338 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
340 CALL dpbtrf(
'U', -1, 0, a, 1, info )
341 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
343 CALL dpbtrf(
'U', 1, -1, a, 1, info )
344 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
346 CALL dpbtrf(
'U', 2, 1, a, 1, info )
347 CALL chkxer(
'DPBTRF', infot, nout, lerr, ok )
353 CALL dpbtf2(
'/', 0, 0, a, 1, info )
354 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
356 CALL dpbtf2(
'U', -1, 0, a, 1, info )
357 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
359 CALL dpbtf2(
'U', 1, -1, a, 1, info )
360 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
362 CALL dpbtf2(
'U', 2, 1, a, 1, info )
363 CALL chkxer(
'DPBTF2', infot, nout, lerr, ok )
369 CALL dpbtrs(
'/', 0, 0, 0, a, 1, b, 1, info )
370 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
372 CALL dpbtrs(
'U', -1, 0, 0, a, 1, b, 1, info )
373 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
375 CALL dpbtrs(
'U', 1, -1, 0, a, 1, b, 1, info )
376 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
378 CALL dpbtrs(
'U', 0, 0, -1, a, 1, b, 1, info )
379 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
381 CALL dpbtrs(
'U', 2, 1, 1, a, 1, b, 1, info )
382 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
384 CALL dpbtrs(
'U', 2, 0, 1, a, 1, b, 1, info )
385 CALL chkxer(
'DPBTRS', infot, nout, lerr, ok )
391 CALL dpbrfs(
'/', 0, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w
393 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
395 CALL dpbrfs(
'U', -1, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
397 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
399 CALL dpbrfs(
'U', 1, -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
401 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
403 CALL dpbrfs(
'U', 0, 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
405 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
407 CALL dpbrfs(
'U', 2, 1, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w,
409 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
411 CALL dpbrfs(
'U', 2, 1, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w,
413 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
415 CALL dpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 1, x, 2, r1, r2, w,
417 CALL chkxer(
'DPBRFS', infot, nout, lerr, ok )
419 CALL dpbrfs( 'u
', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
421 CALL CHKXER( 'dpbrfs', INFOT, NOUT, LERR, OK )
427 CALL DPBCON( '/
', 0, 0, A, 1, ANRM, RCOND, W, IW, INFO )
428 CALL CHKXER( 'dpbcon', INFOT, NOUT, LERR, OK )
430 CALL DPBCON( 'u
', -1, 0, A, 1, ANRM, RCOND, W, IW, INFO )
431 CALL CHKXER( 'dpbcon', INFOT, NOUT, LERR, OK )
433 CALL DPBCON( 'u
', 1, -1, A, 1, ANRM, RCOND, W, IW, INFO )
434 CALL CHKXER( 'dpbcon', INFOT, NOUT, LERR, OK )
436 CALL DPBCON( 'u
', 2, 1, A, 1, ANRM, RCOND, W, IW, INFO )
437 CALL CHKXER( 'dpbcon', INFOT, NOUT, LERR, OK )
443 CALL DPBEQU( '/
', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
444 CALL CHKXER( 'dpbequ', INFOT, NOUT, LERR, OK )
446 CALL DPBEQU( 'u
', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
447 CALL CHKXER( 'dpbequ', INFOT, NOUT, LERR, OK )
449 CALL DPBEQU( 'u
', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
450 CALL CHKXER( 'dpbequ', INFOT, NOUT, LERR, OK )
452 CALL DPBEQU( 'u
', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
453 CALL CHKXER( 'dpbequ', INFOT, NOUT, LERR, OK )
458 CALL ALAESM( PATH, OK, NOUT )