74 DOUBLE PRECISION ANRM, CCOND, RCOND
78 DOUBLE PRECISION R( NMAX ), R1( NMAX ), R2( NMAX )
79 COMPLEX*16 A( , NMAX ), AF( NMAX, NMAX ), B( NMAX ),
80 $ W( 2*NMAX ), X( NMAX )
97 COMMON / infoc / infot, nout, ok, lerr
98 COMMON / srnamc / srnamt
101 INTRINSIC dble, dcmplx
106 WRITE( nout, fmt = * )
113 a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
114 $ -1.d0 / dble( i+j ) )
115 af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
116 $ -1.d0 / dble( i+j ) )
130 IF( lsamen( 2, c2,
'GE' ) )
THEN
136 CALL zgetrf( -1, 0, a, 1, ip, info )
137 CALL chkxer(
'ZGETRF', infot, nout, lerr, ok )
139 CALL zgetrf( 0, -1, a, 1, ip, info )
140 CALL chkxer(
'ZGETRF', infot, nout, lerr, ok )
142 CALL zgetrf( 2, 1, a, 1, ip, info )
143 CALL chkxer(
'ZGETRF', infot, nout, lerr, ok )
149 CALL zgetf2( -1, 0, a, 1, ip, info )
150 CALL chkxer(
'ZGETF2', infot, nout, lerr, ok )
152 CALL zgetf2( 0, -1, a, 1, ip, info )
153 CALL chkxer(
'ZGETF2', infot, nout, lerr, ok )
155 CALL zgetf2( 2, 1, a, 1, ip, info )
156 CALL chkxer(
'ZGETF2', infot, nout, lerr, ok )
162 CALL zgetri( -1, a, 1, ip, w, 1, info )
163 CALL chkxer(
'ZGETRI', infot, nout, lerr, ok )
165 CALL zgetri( 2, a, 1, ip, w, 2, info )
166 CALL chkxer(
'ZGETRI', infot, nout, lerr, ok )
168 CALL zgetri( 2, a, 2, ip, w, 1, info )
169 CALL chkxer(
'ZGETRI', infot, nout, lerr, ok )
175 CALL zgetrs(
'/', 0, 0, a, 1, ip, b, 1, info )
178 CALL ZGETRS( 'n
', -1, 0, A, 1, IP, B, 1, INFO )
179 CALL CHKXER( 'zgetrs', INFOT, NOUT, LERR, OK )
181 CALL ZGETRS( 'n
', 0, -1, A, 1, IP, B, 1, INFO )
182 CALL CHKXER( 'zgetrs', INFOT, NOUT, LERR, OK )
184 CALL ZGETRS( 'n
', 2, 1, A, 1, IP, B, 2, INFO )
185 CALL CHKXER( 'zgetrs', INFOT, NOUT, LERR, OK )
187 CALL ZGETRS( 'n', 2, 1, a, 2, ip, b, 1, info )
188 CALL chkxer(
'ZGETRS', infot, nout, lerr, ok )
194 CALL zgerfs(
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
196 CALL chkxer(
'ZGERFS', infot, nout, lerr, ok )
198 CALL zgerfs(
'N', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
200 CALL chkxer(
'ZGERFS', infot, nout, lerr, ok )
202 CALL zgerfs(
'N', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
204 CALL chkxer(
'ZGERFS', infot, nout, lerr, ok )
206 CALL zgerfs(
'N', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
208 CALL chkxer(
'ZGERFS', infot, nout, lerr, ok )
210 CALL zgerfs(
'N', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
212 CALL chkxer(
'ZGERFS', infot, nout, lerr, ok )
214 CALL zgerfs(
'N', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
216 CALL chkxer(
'ZGERFS', infot, nout, lerr, ok )
218 CALL zgerfs(
'N', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
220 CALL chkxer(
'ZGERFS', infot, nout, lerr, ok )
226 CALL zgecon(
'/', 0, a, 1, anrm, rcond, w, r, info )
227 CALL chkxer(
'ZGECON', infot, nout, lerr, ok )
229 CALL zgecon(
'1', -1, a, 1, anrm, rcond, w, r, info )
230 CALL chkxer(
'ZGECON', infot, nout, lerr, ok )
232 CALL zgecon(
'1', 2, a, 1, anrm, rcond, w, r, info )
233 CALL chkxer(
'ZGECON', infot, nout, lerr, ok )
239 CALL ZGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
240 CALL CHKXER( 'zgeequ', INFOT, NOUT, LERR, OK )
242 CALL ZGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
243 CALL CHKXER( 'zgeequ', INFOT, NOUT, LERR, OK )
245 CALL ZGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
246 CALL CHKXER( 'zgeequ', INFOT, NOUT, LERR, OK )
251 ELSE IF( LSAMEN( 2, C2, 'gb
' ) ) THEN
257 CALL ZGBTRF( -1, 0, 0, 0, A, 1, IP, INFO )
258 CALL CHKXER( 'zgbtrf', INFOT, NOUT, LERR, OK )
260 CALL ZGBTRF( 0, -1, 0, 0, A, 1, IP, INFO )
261 CALL CHKXER( 'zgbtrf', INFOT, NOUT, LERR, OK )
263 CALL ZGBTRF( 1, 1, -1, 0, A, 1, IP, INFO )
264 CALL CHKXER( 'zgbtrf', INFOT, NOUT, LERR, OK )
266 CALL ZGBTRF( 1, 1, 0, -1, A, 1, IP, INFO )
267 CALL CHKXER( 'zgbtrf', INFOT, NOUT, LERR, OK )
269 CALL ZGBTRF( 2, 2, 1, 1, A, 3, IP, INFO )
270 CALL CHKXER( 'zgbtrf', INFOT, NOUT, LERR, OK )
276 CALL ZGBTF2( -1, 0, 0, 0, A, 1, IP, INFO )
277 CALL CHKXER( 'zgbtf2', INFOT, NOUT, LERR, OK )
279 CALL ZGBTF2( 0, -1, 0, 0, A, 1, IP, INFO )
280 CALL CHKXER( 'zgbtf2', INFOT, NOUT, LERR, OK )
282 CALL ZGBTF2( 1, 1, -1, 0, A, 1, IP, INFO )
283 CALL CHKXER( 'zgbtf2', INFOT, NOUT, LERR, OK )
285 CALL ZGBTF2( 1, 1, 0, -1, A, 1, IP, INFO )
286 CALL CHKXER( 'zgbtf2', INFOT, NOUT, LERR, OK )
288 CALL ZGBTF2( 2, 2, 1, 1, A, 3, IP, INFO )
289 CALL CHKXER( 'zgbtf2', INFOT, NOUT, LERR, OK )
295 CALL ZGBTRS( '/
', 0, 0, 0, 1, A, 1, IP, B, 1, INFO )
296 CALL CHKXER( 'zgbtrs', INFOT, NOUT, LERR, OK )
298 CALL ZGBTRS( 'n
', -1, 0, 0, 1, A, 1, IP, B, 1, INFO )
299 CALL CHKXER( 'zgbtrs', INFOT, NOUT, LERR, OK )
301 CALL ZGBTRS( 'n
', 1, -1, 0, 1, A, 1, IP, B, 1, INFO )
302 CALL CHKXER( 'zgbtrs', INFOT, NOUT, LERR, OK )
304 CALL ZGBTRS( 'n
', 1, 0, -1, 1, A, 1, IP, B, 1, INFO )
305 CALL CHKXER( 'zgbtrs', INFOT, NOUT, LERR, OK )
307 CALL ZGBTRS( 'n
', 1, 0, 0, -1, A, 1, IP, B, 1, INFO )
308 CALL CHKXER( 'zgbtrs', INFOT, NOUT, LERR, OK )
310 CALL ZGBTRS( 'n
', 2, 1, 1, 1, A, 3, IP, B, 2, INFO )
311 CALL CHKXER( 'zgbtrs', INFOT, NOUT, LERR, OK )
313 CALL ZGBTRS( 'n
', 2, 0, 0, 1, A, 1, IP, B, 1, INFO )
314 CALL CHKXER( 'zgbtrs', INFOT, NOUT, LERR, OK )
320 CALL ZGBRFS( '/
', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
322 CALL CHKXER( 'zgbrfs', INFOT, NOUT, LERR, OK )
324 CALL ZGBRFS( 'n
', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
326 CALL CHKXER( 'zgbrfs', INFOT, NOUT, LERR, OK )
328 CALL ZGBRFS( 'n
', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
330 CALL CHKXER( 'zgbrfs', INFOT, NOUT, LERR, OK )
332 CALL ZGBRFS( 'n
', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
334 CALL CHKXER( 'zgbrfs', INFOT, NOUT, LERR, OK )
336 CALL ZGBRFS( 'n
', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1,
338 CALL CHKXER( 'zgbrfs', INFOT, NOUT, LERR, OK )
340 CALL ZGBRFS( 'n
', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1,
342 CALL CHKXER( 'zgbrfs', INFOT, NOUT, LERR, OK )
344 CALL ZGBRFS( 'n
', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1,
346 CALL CHKXER( 'zgbrfs', INFOT, NOUT, LERR, OK )
348 CALL ZGBRFS( 'n
', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1,
350 CALL CHKXER( 'zgbrfs', infot, nout, lerr, ok )
352 CALL zgbrfs(
'N', 2, 0, 0, 1, a, 1, af, 1, ip, b, 2, x, 1, r1,
354 CALL chkxer(
'ZGBRFS', infot, nout, lerr, ok )
360 CALL zgbcon(
'/', 0, 0, 0, a, 1, ip, anrm, rcond, w, r, info )
361 CALL chkxer(
'ZGBCON', infot, nout, lerr, ok )
363 CALL zgbcon(
'1', -1, 0, 0, a, 1, ip, anrm, rcond, w, r, info )
364 CALL chkxer(
'ZGBCON', infot, nout, lerr, ok )
366 CALL zgbcon(
'1', 1, -1, 0, a, 1, ip, anrm, rcond, w, r, info )
367 CALL chkxer(
'ZGBCON', infot, nout, lerr, ok )
369 CALL zgbcon(
'1', 1, 0, -1, a, 1, ip, anrm, rcond, w, r, info )
370 CALL chkxer(
'ZGBCON', infot, nout, lerr, ok )
372 CALL zgbcon(
'1', 2, 1, 1, a, 3, ip, anrm, rcond, w, r, info )
373 CALL chkxer(
'ZGBCON', infot, nout, lerr, ok )
379 CALL zgbequ( -1, 0, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
381 CALL chkxer(
'ZGBEQU', infot, nout, lerr, ok )
383 CALL zgbequ( 0, -1, 0, 0, a, 1, r1, r2, rcond, ccond, anrm,
385 CALL chkxer(
'ZGBEQU', infot, nout, lerr, ok )
387 CALL zgbequ( 1, 1, -1, 0, a, 1, r1, r2, rcond, ccond, anrm,
389 CALL chkxer(
'ZGBEQU', infot, nout, lerr, ok )
391 CALL zgbequ( 1, 1, 0, -1, a, 1, r1, r2, rcond, ccond, anrm,
393 CALL chkxer(
'ZGBEQU', infot, nout, lerr, ok )
395 CALL zgbequ( 2, 2, 1, 1, a, 2, r1, r2, rcond, ccond, anrm,
397 CALL chkxer(
'ZGBEQU', infot, nout, lerr, ok )
402 CALL alaesm( path, ok, nout )