69 parameter( nmax = 4, lw = 3*nmax )
74 REAL ANRM, CCOND, RCOND
77 INTEGER IP( NMAX ), IW( NMAX )
78 REAL 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. / real( i+j )
113 af( i, j ) = 1. / real( i+j )
125 IF( lsamen( 2, c2,
'GE' ) )
THEN
134 CALL sgetrf( -1, 0, a, 1, ip, info )
135 CALL chkxer(
'SGETRF', infot, nout, lerr, ok )
137 CALL sgetrf( 0, -1, a, 1, ip, info )
138 CALL chkxer(
'SGETRF', infot, nout, lerr, ok )
140 CALL sgetrf( 2, 1, a, 1, ip, info )
141 CALL chkxer(
'SGETRF', infot, nout, lerr, ok )
147 CALL sgetf2( -1, 0, a, 1, ip, info )
148 CALL chkxer(
'SGETF2', infot, nout, lerr, ok )
150 CALL sgetf2( 0, -1, a, 1, ip, info )
151 CALL chkxer(
'SGETF2', infot, nout, lerr, ok )
153 CALL sgetf2( 2, 1, a, 1, ip, info )
154 CALL chkxer(
'SGETF2', infot, nout, lerr, ok )
160 CALL sgetri( -1, a, 1, ip, w, lw, info )
161 CALL chkxer(
'SGETRI', infot, nout, lerr, ok )
163 CALL sgetri( 2, a, 1, ip, w, lw, info )
164 CALL chkxer(
'SGETRI', infot, nout, lerr, ok )
170 CALL sgetrs(
'/', 0, 0, a, 1, ip, b, 1, info )
171 CALL chkxer(
'SGETRS', infot, nout, lerr, ok )
173 CALL sgetrs(
'N', -1, 0, a, 1, ip, b, 1, info )
174 CALL chkxer(
'SGETRS', infot, nout, lerr, ok )
176 CALL sgetrs(
'N', 0, -1, a, 1, ip, b, 1, info )
177 CALL chkxer(
'SGETRS', infot, nout, lerr, ok )
179 CALL sgetrs(
'N', 2, 1, a, 1, ip, b, 2, info )
180 CALL chkxer(
'SGETRS', infot, nout, lerr, ok )
182 CALL sgetrs(
'N', 2, 1, a, 2, ip, b, 1, info )
183 CALL chkxer(
'SGETRS', infot, nout, lerr, ok )
189 CALL sgerfs(
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
191 CALL chkxer(
'SGERFS', infot, nout, lerr, ok )
193 CALL sgerfs(
'N', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
195 CALL chkxer(
'SGERFS', infot, nout, lerr, ok )
197 CALL sgerfs(
'N', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
201 CALL SGERFS( 'n
', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W,
203 CALL CHKXER( 'sgerfs', INFOT, NOUT, LERR, OK )
205 CALL SGERFS( 'n
', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W,
207 CALL CHKXER( 'sgerfs', INFOT, NOUT, LERR, OK )
209 CALL SGERFS( 'n
', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W,
211 CALL CHKXER( 'sgerfs', INFOT, NOUT, LERR, OK )
213 CALL SGERFS( 'n
', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W,
215 CALL CHKXER( 'sgerfs', INFOT, NOUT, LERR, OK )
221 CALL SGECON( '/
', 0, A, 1, ANRM, RCOND, W, IW, INFO )
222 CALL CHKXER( 'sgecon', INFOT, NOUT, LERR, OK )
224 CALL SGECON( '1
', -1, A, 1, ANRM, RCOND, W, IW, INFO )
225 CALL CHKXER( 'sgecon', INFOT, NOUT, LERR, OK )
227 CALL SGECON( '1
', 2, A, 1, ANRM, RCOND, W, IW, INFO )
228 CALL CHKXER( 'sgecon', INFOT, NOUT, LERR, OK )
234 CALL SGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
235 CALL CHKXER( 'sgeequ', INFOT, NOUT, LERR, OK )
237 CALL SGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
238 CALL CHKXER( 'sgeequ', INFOT, NOUT, LERR, OK )
240 CALL SGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
241 CALL CHKXER( 'sgeequ', INFOT, NOUT, LERR, OK )
243 ELSE IF( LSAMEN( 2, C2, 'gb
' ) ) THEN
252 CALL SGBTRF( -1, 0, 0, 0, A, 1, IP, INFO )
253 CALL CHKXER( 'sgbtrf', INFOT, NOUT, LERR, OK )
255 CALL SGBTRF( 0, -1, 0, 0, A, 1, IP, INFO )
256 CALL CHKXER( 'sgbtrf', INFOT, NOUT, LERR, OK )
258 CALL SGBTRF( 1, 1, -1, 0, A, 1, IP, INFO )
259 CALL CHKXER( 'sgbtrf', INFOT, NOUT, LERR, OK )
261 CALL SGBTRF( 1, 1, 0, -1, A, 1, IP, INFO )
262 CALL CHKXER( 'sgbtrf', INFOT, NOUT, LERR, OK )
264 CALL SGBTRF( 2, 2, 1, 1, A, 3, IP, INFO )
265 CALL CHKXER( 'sgbtrf', INFOT, NOUT, LERR, OK )
271 CALL SGBTF2( -1, 0, 0, 0, A, 1, IP, INFO )
272 CALL CHKXER( 'sgbtf2', INFOT, NOUT, LERR, OK )
274 CALL SGBTF2( 0, -1, 0, 0, A, 1, IP, INFO )
275 CALL CHKXER( 'sgbtf2', INFOT, NOUT, LERR, OK )
277 CALL SGBTF2( 1, 1, -1, 0, A, 1, IP, INFO )
278 CALL CHKXER( 'sgbtf2', INFOT, NOUT, LERR, OK )
280 CALL SGBTF2( 1, 1, 0, -1, A, 1, IP, INFO )
281 CALL CHKXER( 'sgbtf2', INFOT, NOUT, LERR, OK )
283 CALL SGBTF2( 2, 2, 1, 1, A, 3, IP, INFO )
284 CALL CHKXER( 'sgbtf2', INFOT, NOUT, LERR, OK )
290 CALL SGBTRS( '/
', 0, 0, 0, 1, A, 1, IP, B, 1, INFO )
291 CALL CHKXER( 'sgbtrs', INFOT, NOUT, LERR, OK )
293 CALL SGBTRS( 'n
', -1, 0, 0, 1, A, 1, IP, B, 1, INFO )
294 CALL CHKXER( 'sgbtrs', INFOT, NOUT, LERR, OK )
296 CALL SGBTRS( 'n
', 1, -1, 0, 1, A, 1, IP, B, 1, INFO )
297 CALL CHKXER( 'sgbtrs', INFOT, NOUT, LERR, OK )
299 CALL SGBTRS( 'n
', 1, 0, -1, 1, A, 1, IP, B, 1, INFO )
300 CALL CHKXER( 'sgbtrs', INFOT, NOUT, LERR, OK )
302 CALL SGBTRS( 'n
', 1, 0, 0, -1, A, 1, IP, B, 1, INFO )
303 CALL CHKXER( 'sgbtrs', INFOT, NOUT, LERR, OK )
305 CALL SGBTRS( 'n
', 2, 1, 1, 1, A, 3, IP, B, 2, INFO )
306 CALL CHKXER( 'sgbtrs', INFOT, NOUT, LERR, OK )
308 CALL SGBTRS( 'n
', 2, 0, 0, 1, A, 1, IP, B, 1, INFO )
309 CALL CHKXER( 'sgbtrs', INFOT, NOUT, LERR, OK )
315 CALL SGBRFS( '/
', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
317 CALL CHKXER( 'sgbrfs', INFOT, NOUT, LERR, OK )
319 CALL SGBRFS( 'n
', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
321 CALL CHKXER( 'sgbrfs', INFOT, NOUT, LERR, OK )
323 CALL SGBRFS( 'n
', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
325 CALL CHKXER( 'sgbrfs', INFOT, NOUT, LERR, OK )
327 CALL SGBRFS( 'n
', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
329 CALL CHKXER( 'sgbrfs', INFOT, NOUT, LERR, OK )
331 CALL SGBRFS( 'n
', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1,
333 CALL CHKXER( 'sgbrfs', INFOT, NOUT, LERR, OK )
335 CALL SGBRFS( 'n
', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1,
337 CALL CHKXER( 'sgbrfs', INFOT, NOUT, LERR, OK )
339 CALL SGBRFS( 'n
', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1,
341 CALL CHKXER( 'sgbrfs', INFOT, NOUT, LERR, OK )
343 CALL SGBRFS( 'n
', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1,
345 CALL CHKXER( 'sgbrfs', INFOT, NOUT, LERR, OK )
347 CALL SGBRFS( 'n
', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1,
349 CALL CHKXER( 'sgbrfs', INFOT, NOUT, LERR, OK )
355 CALL SGBCON( '/
', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, IW, INFO )
356 CALL CHKXER( 'sgbcon', INFOT, NOUT, LERR, OK )
358 CALL SGBCON( '1', -1, 0, 0, a, 1, ip, anrm, rcond, w, iw,
360 CALL chkxer(
'SGBCON', infot, nout, lerr, ok )
362 CALL sgbcon(
'1', 1, -1, 0, a, 1, ip, anrm, rcond, w, iw,
364 CALL chkxer(
'SGBCON', infot, nout, lerr, ok )
366 CALL sgbcon(
'1', 1, 0, -1, a, 1, ip, anrm, rcond, w, iw,
368 CALL chkxer(
'SGBCON', infot, nout, lerr, ok )
370 CALL sgbcon(
'1', 2, 1, 1, a, 3, ip, anrm, rcond, w, iw, info )
371 CALL chkxer(
'SGBCON', infot, nout, lerr, ok )
377 CALL sgbequ( -1, 0, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
379 CALL chkxer(
'SGBEQU', infot, nout, lerr, ok )
381 CALL sgbequ( 0, -1, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
383 CALL chkxer(
'SGBEQU', infot, nout, lerr, ok )
385 CALL sgbequ( 1, 1, -1, 0, a, 1, r1, r2, rcond, ccond, anrm,
387 CALL chkxer(
'SGBEQU', infot, nout, lerr, ok )
389 CALL sgbequ( 1, 1, 0, -1, a, 1, r1, r2, rcond, ccond, anrm,
391 CALL chkxer(
'SGBEQU', infot, nout, lerr, ok )
393 CALL sgbequ( 2, 2, 1, 1, a, 2, r1, r2, rcond, ccond, anrm,
395 CALL chkxer(
'SGBEQU', infot, nout, lerr, ok )
400 CALL alaesm( path, ok, nout )