72 parameter( nmax = 4, lw = 3*nmax )
77 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
78 DOUBLE PRECISION ANRM, CCOND, RCOND, BERR
81 INTEGER IP( NMAX ), IW( NMAX )
82 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
83 $ C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
84 $ W( LW ), X( NMAX ), ERR_BNDS_N( NMAX, 3 ),
85 $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 )
103 COMMON / infoc / infot, nout, ok, lerr
104 COMMON / srnamc / srnamt
112 WRITE( nout, fmt = * )
119 a( i, j ) = 1.d0 / dble( i+j )
120 af( i, j ) = 1.d0 / dble( i+j )
134 IF( lsamen( 2, c2,
'GE' ) )
THEN
143 CALL dgetrf( -1, 0, a, 1, ip, info )
144 CALL chkxer(
'DGETRF', infot, nout, lerr, ok )
146 CALL dgetrf( 0, -1, a, 1, ip, info )
147 CALL chkxer(
'DGETRF', infot, nout, lerr, ok )
149 CALL dgetrf( 2, 1, a, 1, ip, info )
150 CALL chkxer(
'DGETRF', infot, nout, lerr, ok )
156 CALL dgetf2( -1, 0, a, 1, ip, info )
157 CALL chkxer(
'DGETF2', infot, nout, lerr, ok )
159 CALL dgetf2( 0, -1, a, 1, ip, info )
160 CALL chkxer(
'DGETF2', infot, nout, lerr, ok )
162 CALL dgetf2( 2, 1, a, 1, ip, info )
163 CALL chkxer(
'DGETF2', infot, nout, lerr, ok )
169 CALL dgetri( -1, a, 1, ip, w, lw, info )
170 CALL chkxer(
'DGETRI', infot, nout, lerr, ok )
172 CALL dgetri( 2, a, 1, ip, w, lw, info )
173 CALL chkxer(
'DGETRI', infot, nout, lerr, ok )
179 CALL dgetrs(
'/', 0, 0, a, 1, ip, b, 1, info )
180 CALL chkxer(
'DGETRS', infot, nout, lerr, ok )
182 CALL dgetrs(
'N', -1, 0, a, 1, ip, b, 1, info )
183 CALL chkxer(
'DGETRS', infot, nout, lerr, ok )
185 CALL dgetrs(
'N', 0, -1, a, 1, ip, b, 1, info )
186 CALL chkxer(
'DGETRS', infot, nout, lerr, ok )
188 CALL dgetrs(
'N', 2, 1, a, 1, ip, b, 2, info )
189 CALL chkxer(
'DGETRS', infot, nout, lerr, ok )
191 CALL dgetrs(
'N', 2, 1, a, 2, ip, b, 1, info )
192 CALL chkxer(
'DGETRS', infot, nout, lerr, ok )
198 CALL dgerfs(
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
200 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
202 CALL dgerfs(
'N', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
204 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
206 CALL dgerfs(
'N', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
208 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
210 CALL dgerfs(
'N', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
212 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
214 CALL dgerfs(
'N', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
216 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
218 CALL dgerfs(
'N', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
220 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
222 CALL dgerfs(
'N', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
224 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
232 CALL dgerfsx(
'/', eq, 0, 0, a, 1, af, 1, ip, r, c, b, 1, x,
233 $ 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
234 $ nparams, params, w, iw, info )
235 CALL chkxer(
'DGERFSX', infot, nout, lerr, ok )
238 CALL dgerfsx(
'N', eq, 2, 1, a, 1, af, 2, ip, r, c, b, 2, x,
239 $ 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
240 $ nparams, params, w, iw, info )
241 CALL chkxer(
'DGERFSX', infot, nout, lerr, ok )
244 CALL dgerfsx(
'N', eq, -1, 0, a, 1, af, 1, ip, r, c, b, 1, x,
245 $ 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
246 $ nparams, params, w, iw, info )
247 CALL chkxer(
'DGERFSX', infot, nout, lerr, ok )
249 CALL dgerfsx(
'N', eq, 0, -1, a, 1, af, 1, ip, r, c, b, 1, x,
250 $ 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
251 $ nparams, params, w, iw, info )
252 CALL chkxer(
'DGERFSX', infot, nout, lerr, ok )
254 CALL dgerfsx(
'N', eq, 2, 1, a, 1, af, 2, ip, r, c, b, 2, x,
255 $ 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
256 $ nparams, params, w, iw, info )
257 CALL chkxer(
'DGERFSX', infot, nout, lerr, ok )
259 CALL dgerfsx(
'N', eq, 2, 1, a, 2, af, 1, ip, r, c, b, 2, x,
260 $ 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
261 $ nparams, params, w, iw, info )
262 CALL chkxer(
'DGERFSX', infot, nout, lerr, ok )
265 CALL dgerfsx(
'N', eq, 2, 1, a, 2, af, 2, ip, r, c, b, 1, x,
266 $ 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
267 $ nparams, params, w, iw, info )
268 CALL chkxer(
'DGERFSX', infot, nout, lerr, ok )
270 CALL dgerfsx(
'N', eq, 2, 1, a, 2, af, 2, ip, r, c, b, 2, x,
271 $ 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
272 $ nparams, params, w, iw, info )
273 CALL chkxer(
'DGERFSX', infot, nout, lerr, ok )
279 CALL dgecon(
'/', 0, a, 1, anrm, rcond, w, iw, info )
280 CALL chkxer(
'DGECON', infot, nout, lerr, ok )
282 CALL dgecon(
'1', -1, a, 1, anrm, rcond, w, iw, info )
283 CALL chkxer(
'DGECON', infot, nout, lerr, ok )
285 CALL dgecon(
'1', 2, a, 1, anrm, rcond, w, iw, info )
286 CALL chkxer(
'DGECON', infot, nout, lerr, ok )
292 CALL dgeequ( -1, 0, a, 1, r1, r2, rcond, ccond, anrm, info )
293 CALL chkxer(
'DGEEQU', infot, nout, lerr, ok )
295 CALL dgeequ( 0, -1, a, 1, r1, r2, rcond, ccond, anrm, info )
296 CALL chkxer(
'DGEEQU', infot, nout, lerr, ok )
298 CALL dgeequ( 2, 2, a, 1, r1, r2, rcond, ccond, anrm, info )
299 CALL chkxer(
'DGEEQU', infot, nout, lerr, ok )
305 CALL dgeequb( -1, 0, a, 1, r1, r2, rcond, ccond, anrm, info )
306 CALL chkxer(
'DGEEQUB', infot, nout, lerr, ok )
308 CALL dgeequb( 0, -1, a, 1, r1, r2, rcond, ccond, anrm, info )
309 CALL chkxer(
'DGEEQUB', infot, nout, lerr, ok )
311 CALL dgeequb( 2, 2, a, 1, r1, r2, rcond, ccond, anrm, info )
312 CALL chkxer(
'DGEEQUB', infot, nout, lerr, ok )
314 ELSE IF( lsamen( 2, c2,
'GB' ) )
THEN
323 CALL dgbtrf( -1, 0, 0, 0, a, 1, ip, info )
324 CALL chkxer(
'DGBTRF', infot, nout, lerr, ok )
326 CALL dgbtrf( 0, -1, 0, 0, a, 1, ip, info )
327 CALL chkxer(
'DGBTRF', infot, nout, lerr, ok )
329 CALL dgbtrf( 1, 1, -1, 0, a, 1, ip, info )
330 CALL chkxer(
'DGBTRF', infot, nout, lerr, ok )
332 CALL dgbtrf( 1, 1, 0, -1, a, 1, ip, info )
333 CALL chkxer(
'DGBTRF', infot, nout, lerr, ok )
335 CALL dgbtrf( 2, 2, 1, 1, a, 3, ip, info )
336 CALL chkxer(
'DGBTRF', infot, nout, lerr, ok )
342 CALL dgbtf2( -1, 0, 0, 0, a, 1, ip, info )
343 CALL chkxer(
'DGBTF2', infot, nout, lerr, ok )
345 CALL dgbtf2( 0, -1, 0, 0, a, 1, ip, info )
346 CALL chkxer(
'DGBTF2', infot, nout, lerr, ok )
348 CALL dgbtf2( 1, 1, -1, 0, a, 1, ip, info )
349 CALL chkxer(
'DGBTF2', infot, nout, lerr, ok )
351 CALL dgbtf2( 1, 1, 0, -1, a, 1, ip, info )
352 CALL chkxer(
'DGBTF2', infot, nout, lerr, ok )
354 CALL dgbtf2( 2, 2, 1, 1, a, 3, ip, info )
355 CALL chkxer(
'DGBTF2', infot, nout, lerr, ok )
361 CALL dgbtrs(
'/', 0, 0, 0, 1, a, 1, ip, b, 1, info )
362 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
364 CALL dgbtrs(
'N', -1, 0, 0, 1, a, 1, ip, b, 1, info )
365 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
367 CALL dgbtrs(
'N', 1, -1, 0, 1, a, 1, ip, b, 1, info )
368 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
370 CALL dgbtrs(
'N', 1, 0, -1, 1, a, 1, ip, b, 1, info )
371 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
373 CALL dgbtrs(
'N', 1, 0, 0, -1, a, 1, ip, b, 1, info )
374 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
376 CALL dgbtrs(
'N', 2, 1, 1, 1, a, 3, ip, b, 2, info )
377 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
379 CALL dgbtrs(
'N', 2, 0, 0, 1, a, 1, ip, b, 1, info )
380 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
386 CALL dgbrfs(
'/', 0, 0, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
388 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
390 CALL dgbrfs(
'N', -1, 0, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
392 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
394 CALL dgbrfs(
'N', 1, -1, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
396 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
398 CALL dgbrfs(
'N', 1, 0, -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
400 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
402 CALL dgbrfs(
'N', 1, 0, 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1,
404 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
406 CALL dgbrfs(
'N', 2, 1, 1, 1, a, 2, af, 4, ip, b, 2, x, 2, r1,
408 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
410 CALL dgbrfs(
'N', 2, 1, 1, 1, a, 3, af, 3, ip, b, 2, x, 2, r1,
412 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
414 CALL dgbrfs(
'N', 2, 0, 0, 1, a, 1, af, 1, ip, b, 1, x, 2, r1,
416 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
418 CALL dgbrfs(
'N', 2, 0, 0, 1, a, 1, af, 1, ip, b, 2, x, 1, r1,
420 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
428 CALL dgbrfsx(
'/', eq, 0, 0, 0, 0, a, 1, af, 1, ip, r, c, b, 1,
429 $ x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
430 $ nparams, params, w, iw, info )
431 CALL chkxer(
'DGBRFSX', infot, nout, lerr, ok )
434 CALL dgbrfsx(
'N', eq, 2, 1, 1, 1, a, 1, af, 2, ip, r, c, b, 2,
435 $ x, 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
436 $ nparams, params, w, iw, info )
437 CALL chkxer(
'DGBRFSX', infot, nout, lerr, ok )
440 CALL dgbrfsx(
'N', eq, -1, 1, 1, 0, a, 1, af, 1, ip, r, c, b,
441 $ 1, x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
442 $ nparams, params, w, iw, info )
443 CALL chkxer(
'DGBRFSX', infot, nout, lerr, ok )
446 CALL dgbrfsx(
'N', eq, 2, -1, 1, 1, a, 3, af, 4, ip, r, c, b,
447 $ 1, x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
448 $ nparams, params, w, iw, info )
449 CALL chkxer(
'DGBRFSX', infot, nout, lerr, ok )
452 CALL dgbrfsx(
'N', eq, 2, 1, -1, 1, a, 3, af, 4, ip, r, c, b,
453 $ 1, x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
454 $ nparams, params, w, iw, info )
455 CALL chkxer(
'DGBRFSX', infot, nout, lerr, ok )
457 CALL dgbrfsx(
'N', eq, 0, 0, 0, -1, a, 1, af, 1, ip, r, c, b,
458 $ 1, x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
459 $ nparams, params, w, iw, info )
460 CALL chkxer(
'DGBRFSX', infot, nout, lerr, ok )
462 CALL dgbrfsx(
'N', eq, 2, 1, 1, 1, a, 1, af, 2, ip, r, c, b,
463 $ 2, x, 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
464 $ nparams, params, w, iw, info )
465 CALL chkxer(
'DGBRFSX', infot, nout, lerr, ok )
467 CALL dgbrfsx(
'N', eq, 2, 1, 1, 1, a, 3, af, 3, ip, r, c, b, 2,
468 $ x, 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
469 $ nparams, params, w, iw, info )
470 CALL chkxer(
'DGBRFSX', infot, nout, lerr, ok )
473 CALL dgbrfsx(
'N', eq, 2, 1, 1, 1, a, 3, af, 5, ip, r, c, b,
474 $ 1, x, 2, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
475 $ nparams, params, w, iw, info )
476 CALL chkxer(
'DGBRFSX', infot, nout, lerr, ok )
478 CALL dgbrfsx(
'N', eq, 2, 1, 1, 1, a, 3, af, 5, ip, r, c, b, 2,
479 $ x, 1, rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c,
480 $ nparams, params, w, iw, info )
481 CALL chkxer(
'DGBRFSX', infot, nout, lerr, ok )
487 CALL dgbcon(
'/', 0, 0, 0, a, 1, ip, anrm, rcond, w, iw, info )
488 CALL chkxer(
'DGBCON', infot, nout, lerr, ok )
490 CALL dgbcon(
'1', -1, 0, 0, a, 1, ip, anrm, rcond, w, iw,
492 CALL chkxer(
'DGBCON', infot, nout, lerr, ok )
494 CALL dgbcon(
'1', 1, -1, 0, a, 1, ip, anrm, rcond, w, iw,
496 CALL chkxer(
'DGBCON', infot, nout, lerr, ok )
498 CALL dgbcon(
'1', 1, 0, -1, a, 1, ip, anrm, rcond, w, iw,
500 CALL chkxer(
'DGBCON', infot, nout, lerr, ok )
502 CALL dgbcon(
'1', 2, 1, 1, a, 3, ip, anrm, rcond, w, iw, info )
503 CALL chkxer(
'DGBCON', infot, nout, lerr, ok )
509 CALL dgbequ( -1, 0, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
511 CALL chkxer(
'DGBEQU', infot, nout, lerr, ok )
513 CALL dgbequ( 0, -1, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
515 CALL chkxer(
'DGBEQU', infot, nout, lerr, ok )
517 CALL dgbequ( 1, 1, -1, 0, a, 1, r1, r2, rcond, ccond, anrm,
519 CALL chkxer(
'DGBEQU', infot, nout, lerr, ok )
521 CALL dgbequ( 1, 1, 0, -1, a, 1, r1, r2, rcond, ccond, anrm,
523 CALL chkxer(
'DGBEQU', infot, nout, lerr, ok )
525 CALL dgbequ( 2, 2, 1, 1, a, 2, r1, r2, rcond, ccond, anrm,
527 CALL chkxer(
'DGBEQU', infot, nout, lerr, ok )
533 CALL dgbequb( -1, 0, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
535 CALL chkxer(
'DGBEQUB', infot, nout, lerr, ok )
537 CALL dgbequb( 0, -1, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
539 CALL chkxer(
'DGBEQUB', infot, nout, lerr, ok )
541 CALL dgbequb( 1, 1, -1, 0, a, 1, r1, r2, rcond, ccond, anrm,
543 CALL chkxer(
'DGBEQUB', infot, nout, lerr, ok )
545 CALL dgbequb( 1, 1, 0, -1, a, 1, r1, r2, rcond, ccond, anrm,
547 CALL chkxer(
'DGBEQUB', infot, nout, lerr, ok )
549 CALL dgbequb( 2, 2, 1, 1, a, 2, r1, r2, rcond, ccond, anrm,
551 CALL chkxer(
'DGBEQUB', infot, nout, lerr, ok )
556 CALL alaesm( path, ok, nout )