69 parameter( nmax = 4, lw = 3*nmax )
74 DOUBLE PRECISION ANRM, CCOND, RCOND
77 INTEGER IP( NMAX ), IW( NMAX )
78 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
79 $ R1( NMAX ), R2( NMAX ), W( LW ), X( NMAX )
96 COMMON / infoc / infot, nout, ok, lerr
97 COMMON / srnamc / srnamt
105 WRITE( nout, fmt = * )
112 a( i, j ) = 1.d0 / dble( i+j )
113 af( i, j ) = 1.d0 / dble( i+j )
125 IF( lsamen( 2, c2,
'GE' ) )
THEN
134 CALL dgetrf( -1, 0, a, 1, ip, info )
135 CALL chkxer(
'DGETRF', infot, nout, lerr, ok )
137 CALL dgetrf( 0, -1, a, 1, ip, info )
138 CALL chkxer(
'DGETRF', infot, nout, lerr, ok )
140 CALL dgetrf( 2, 1, a, 1, ip, info )
141 CALL chkxer(
'DGETRF', infot, nout, lerr, ok )
147 CALL dgetf2( -1, 0, a, 1, ip, info )
148 CALL chkxer(
'DGETF2', infot, nout, lerr, ok )
150 CALL dgetf2( 0, -1, a, 1, ip, info )
151 CALL chkxer(
'DGETF2', infot, nout, lerr, ok )
153 CALL dgetf2( 2, 1, a, 1, ip, info )
154 CALL chkxer(
'DGETF2', infot, nout, lerr, ok )
160 CALL dgetri( -1, a, 1, ip, w, lw, info )
161 CALL chkxer(
'DGETRI', infot, nout, lerr, ok )
163 CALL dgetri( 2, a, 1, ip, w, lw, info )
164 CALL chkxer(
'DGETRI', infot, nout, lerr, ok )
170 CALL dgetrs(
'/', 0, 0, a, 1, ip, b, 1, info )
171 CALL chkxer(
'DGETRS', infot, nout, lerr, ok )
173 CALL dgetrs(
'N', -1, 0, a, 1, ip, b, 1, info )
174 CALL chkxer(
'DGETRS', infot, nout, lerr, ok )
176 CALL dgetrs(
'N', 0, -1, a, 1, ip, b, 1, info )
177 CALL chkxer(
'DGETRS', infot, nout, lerr, ok )
179 CALL dgetrs(
'N', 2, 1, a, 1, ip, b, 2, info )
180 CALL chkxer(
'DGETRS', infot, nout, lerr, ok )
182 CALL dgetrs(
'N', 2, 1, a, 2, ip, b, 1, info )
183 CALL chkxer(
'DGETRS', infot, nout, lerr, ok )
189 CALL dgerfs(
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
191 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
193 CALL dgerfs(
'N', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
195 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
197 CALL dgerfs(
'N', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
199 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
201 CALL dgerfs(
'N', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
203 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
205 CALL dgerfs(
'N', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
207 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
209 CALL dgerfs(
'N', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
211 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
213 CALL dgerfs(
'N', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
215 CALL chkxer(
'DGERFS', infot, nout, lerr, ok )
221 CALL dgecon(
'/', 0, a, 1, anrm, rcond, w, iw, info )
222 CALL chkxer(
'DGECON', infot, nout, lerr, ok )
224 CALL dgecon(
'1', -1, a, 1, anrm, rcond, w, iw, info )
225 CALL chkxer(
'DGECON', infot, nout, lerr, ok )
227 CALL dgecon(
'1', 2, a, 1, anrm, rcond, w, iw, info )
228 CALL chkxer(
'DGECON', infot, nout, lerr, ok )
234 CALL dgeequ( -1, 0, a, 1, r1, r2, rcond, ccond, anrm, info )
235 CALL chkxer(
'DGEEQU', infot, nout, lerr, ok )
237 CALL dgeequ( 0, -1, a, 1, r1, r2, rcond, ccond, anrm, info )
238 CALL chkxer(
'DGEEQU', infot, nout, lerr, ok )
240 CALL dgeequ( 2, 2, a, 1, r1, r2, rcond, ccond, anrm, info )
241 CALL chkxer(
'DGEEQU', infot, nout, lerr, ok )
243 ELSE IF( lsamen( 2, c2,
'GB' ) )
THEN
252 CALL dgbtrf( -1, 0, 0, 0, a, 1, ip, info )
253 CALL chkxer(
'DGBTRF', infot, nout, lerr, ok )
255 CALL dgbtrf( 0, -1, 0, 0, a, 1, ip, info )
256 CALL chkxer(
'DGBTRF', infot, nout, lerr, ok )
258 CALL dgbtrf( 1, 1, -1, 0, a, 1, ip, info )
259 CALL chkxer(
'DGBTRF', infot, nout, lerr, ok )
261 CALL dgbtrf( 1, 1, 0, -1, a, 1, ip, info )
262 CALL chkxer(
'DGBTRF', infot, nout, lerr, ok )
264 CALL dgbtrf( 2, 2, 1, 1, a, 3, ip, info )
265 CALL chkxer(
'DGBTRF', infot, nout, lerr, ok )
271 CALL dgbtf2( -1, 0, 0, 0, a, 1, ip, info )
272 CALL chkxer(
'DGBTF2', infot, nout, lerr, ok )
274 CALL dgbtf2( 0, -1, 0, 0, a, 1, ip, info )
275 CALL chkxer(
'DGBTF2', infot, nout, lerr, ok )
277 CALL dgbtf2( 1, 1, -1, 0, a, 1, ip, info )
278 CALL chkxer(
'DGBTF2', infot, nout, lerr, ok )
280 CALL dgbtf2( 1, 1, 0, -1, a, 1, ip, info )
281 CALL chkxer(
'DGBTF2', infot, nout, lerr, ok )
283 CALL dgbtf2( 2, 2, 1, 1, a, 3, ip, info )
284 CALL chkxer(
'DGBTF2', infot, nout, lerr, ok )
290 CALL dgbtrs(
'/', 0, 0, 0, 1, a, 1, ip, b, 1, info )
291 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
293 CALL dgbtrs(
'N', -1, 0, 0, 1, a, 1, ip, b, 1, info )
294 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
296 CALL dgbtrs(
'N', 1, -1, 0, 1, a, 1, ip, b, 1, info )
297 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
299 CALL dgbtrs(
'N', 1, 0, -1, 1, a, 1, ip, b, 1, info )
300 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
302 CALL dgbtrs(
'N', 1, 0, 0, -1, a, 1, ip, b, 1, info )
303 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
305 CALL dgbtrs(
'N', 2, 1, 1, 1, a, 3, ip, b, 2, info )
306 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
308 CALL dgbtrs(
'N', 2, 0, 0, 1, a, 1, ip, b, 1, info )
309 CALL chkxer(
'DGBTRS', infot, nout, lerr, ok )
315 CALL dgbrfs(
'/', 0, 0, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
317 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
319 CALL dgbrfs(
'N', -1, 0, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
321 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
323 CALL dgbrfs(
'N', 1, -1, 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
325 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
327 CALL dgbrfs(
'N', 1, 0, -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1,
329 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
331 CALL dgbrfs(
'N', 1, 0, 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1,
333 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
335 CALL dgbrfs(
'N', 2, 1, 1, 1, a, 2, af, 4, ip, b, 2, x, 2, r1,
337 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
339 CALL dgbrfs(
'N', 2, 1, 1, 1, a, 3, af, 3, ip, b, 2, x, 2, r1,
341 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
343 CALL dgbrfs(
'N', 2, 0, 0, 1, a, 1, af, 1, ip, b, 1, x, 2, r1,
345 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
347 CALL dgbrfs(
'N', 2, 0, 0, 1, a, 1, af, 1, ip, b, 2, x, 1, r1,
349 CALL chkxer(
'DGBRFS', infot, nout, lerr, ok )
355 CALL dgbcon(
'/', 0, 0, 0, a, 1, ip, anrm, rcond, w, iw, info )
356 CALL chkxer(
'DGBCON', infot, nout, lerr, ok )
358 CALL dgbcon(
'1', -1, 0, 0, a, 1, ip, anrm, rcond, w, iw,
360 CALL chkxer(
'DGBCON', infot, nout, lerr, ok )
362 CALL dgbcon(
'1', 1, -1, 0, a, 1, ip, anrm, rcond, w, iw,
364 CALL chkxer(
'DGBCON', infot, nout, lerr, ok )
366 CALL dgbcon(
'1', 1, 0, -1, a, 1, ip, anrm, rcond, w, iw,
368 CALL chkxer(
'DGBCON', infot, nout, lerr, ok )
370 CALL dgbcon(
'1', 2, 1, 1, a, 3, ip, anrm, rcond, w, iw, info )
371 CALL chkxer(
'DGBCON', infot, nout, lerr, ok )
377 CALL dgbequ( -1, 0, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
379 CALL chkxer(
'DGBEQU', infot, nout, lerr, ok )
381 CALL dgbequ( 0, -1, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
383 CALL chkxer(
'DGBEQU', infot, nout, lerr, ok )
385 CALL dgbequ( 1, 1, -1, 0, a, 1, r1, r2, rcond, ccond, anrm,
387 CALL chkxer(
'DGBEQU', infot, nout, lerr, ok )
389 CALL dgbequ( 1, 1, 0, -1, a, 1, r1, r2, rcond, ccond, anrm,
391 CALL chkxer(
'DGBEQU', infot, nout, lerr, ok )
393 CALL dgbequ( 2, 2, 1, 1, a, 2, r1, r2, rcond, ccond, anrm,
395 CALL chkxer(
'DGBEQU', infot, nout, lerr, ok )
400 CALL alaesm( path, ok, nout )