OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
dchktb.f
Go to the documentation of this file.
1*> \brief \b DCHKTB
2*
3* =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6* http://www.netlib.org/lapack/explore-html/
7*
8* Definition:
9* ===========
10*
11* SUBROUTINE DCHKTB( DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR,
12* NMAX, AB, AINV, B, X, XACT, WORK, RWORK, IWORK,
13* NOUT )
14*
15* .. Scalar Arguments ..
16* LOGICAL TSTERR
17* INTEGER NMAX, NN, NNS, NOUT
18* DOUBLE PRECISION THRESH
19* ..
20* .. Array Arguments ..
21* LOGICAL DOTYPE( * )
22* INTEGER IWORK( * ), NSVAL( * ), NVAL( * )
23* DOUBLE PRECISION AB( * ), AINV( * ), B( * ), RWORK( * ),
24* $ WORK( * ), X( * ), XACT( * )
25* ..
26*
27*
28*> \par Purpose:
29* =============
30*>
31*> \verbatim
32*>
33*> DCHKTB tests DTBTRS, -RFS, and -CON, and DLATBS.
34*> \endverbatim
35*
36* Arguments:
37* ==========
38*
39*> \param[in] DOTYPE
40*> \verbatim
41*> DOTYPE is LOGICAL array, dimension (NTYPES)
42*> The matrix types to be used for testing. Matrices of type j
43*> (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
44*> .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.
45*> \endverbatim
46*>
47*> \param[in] NN
48*> \verbatim
49*> NN is INTEGER
50*> The number of values of N contained in the vector NVAL.
51*> \endverbatim
52*>
53*> \param[in] NVAL
54*> \verbatim
55*> NVAL is INTEGER array, dimension (NN)
56*> The values of the matrix column dimension N.
57*> \endverbatim
58*>
59*> \param[in] NNS
60*> \verbatim
61*> NNS is INTEGER
62*> The number of values of NRHS contained in the vector NSVAL.
63*> \endverbatim
64*>
65*> \param[in] NSVAL
66*> \verbatim
67*> NSVAL is INTEGER array, dimension (NNS)
68*> The values of the number of right hand sides NRHS.
69*> \endverbatim
70*>
71*> \param[in] THRESH
72*> \verbatim
73*> THRESH is DOUBLE PRECISION
74*> The threshold value for the test ratios. A result is
75*> included in the output file if RESULT >= THRESH. To have
76*> every test ratio printed, use THRESH = 0.
77*> \endverbatim
78*>
79*> \param[in] TSTERR
80*> \verbatim
81*> TSTERR is LOGICAL
82*> Flag that indicates whether error exits are to be tested.
83*> \endverbatim
84*>
85*> \param[in] NMAX
86*> \verbatim
87*> NMAX is INTEGER
88*> The leading dimension of the work arrays.
89*> NMAX >= the maximum value of N in NVAL.
90*> \endverbatim
91*>
92*> \param[out] AB
93*> \verbatim
94*> AB is DOUBLE PRECISION array, dimension (NMAX*NMAX)
95*> \endverbatim
96*>
97*> \param[out] AINV
98*> \verbatim
99*> AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
100*> \endverbatim
101*>
102*> \param[out] B
103*> \verbatim
104*> B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
105*> where NSMAX is the largest entry in NSVAL.
106*> \endverbatim
107*>
108*> \param[out] X
109*> \verbatim
110*> X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
111*> \endverbatim
112*>
113*> \param[out] XACT
114*> \verbatim
115*> XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
116*> \endverbatim
117*>
118*> \param[out] WORK
119*> \verbatim
120*> WORK is DOUBLE PRECISION array, dimension
121*> (NMAX*max(3,NSMAX))
122*> \endverbatim
123*>
124*> \param[out] RWORK
125*> \verbatim
126*> RWORK is DOUBLE PRECISION array, dimension
127*> (max(NMAX,2*NSMAX))
128*> \endverbatim
129*>
130*> \param[out] IWORK
131*> \verbatim
132*> IWORK is INTEGER array, dimension (NMAX)
133*> \endverbatim
134*>
135*> \param[in] NOUT
136*> \verbatim
137*> NOUT is INTEGER
138*> The unit number for output.
139*> \endverbatim
140*
141* Authors:
142* ========
143*
144*> \author Univ. of Tennessee
145*> \author Univ. of California Berkeley
146*> \author Univ. of Colorado Denver
147*> \author NAG Ltd.
148*
149*> \ingroup double_lin
150*
151* =====================================================================
152 SUBROUTINE dchktb( DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR,
153 $ NMAX, AB, AINV, B, X, XACT, WORK, RWORK, IWORK,
154 $ NOUT )
155*
156* -- LAPACK test routine --
157* -- LAPACK is a software package provided by Univ. of Tennessee, --
158* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
159*
160* .. Scalar Arguments ..
161 LOGICAL TSTERR
162 INTEGER NMAX, NN, NNS, NOUT
163 DOUBLE PRECISION THRESH
164* ..
165* .. Array Arguments ..
166 LOGICAL DOTYPE( * )
167 INTEGER IWORK( * ), NSVAL( * ), NVAL( * )
168 DOUBLE PRECISION AB( * ), AINV( * ), B( * ), RWORK( * ),
169 $ work( * ), x( * ), xact( * )
170* ..
171*
172* =====================================================================
173*
174* .. Parameters ..
175 INTEGER NTYPE1, NTYPES
176 PARAMETER ( NTYPE1 = 9, ntypes = 17 )
177 INTEGER NTESTS
178 parameter( ntests = 8 )
179 INTEGER NTRAN
180 parameter( ntran = 3 )
181 DOUBLE PRECISION ONE, ZERO
182 parameter( one = 1.0d+0, zero = 0.0d+0 )
183* ..
184* .. Local Scalars ..
185 CHARACTER DIAG, NORM, TRANS, UPLO, XTYPE
186 CHARACTER*3 PATH
187 INTEGER I, IDIAG, IK, IMAT, IN, INFO, IRHS, ITRAN,
188 $ iuplo, j, k, kd, lda, ldab, n, nerrs, nfail,
189 $ nimat, nimat2, nk, nrhs, nrun
190 DOUBLE PRECISION AINVNM, ANORM, RCOND, RCONDC, RCONDI, RCONDO,
191 $ SCALE
192* ..
193* .. Local Arrays ..
194 CHARACTER TRANSS( NTRAN ), UPLOS( 2 )
195 INTEGER ISEED( 4 ), ISEEDY( 4 )
196 DOUBLE PRECISION RESULT( NTESTS )
197* ..
198* .. External Functions ..
199 LOGICAL LSAME
200 DOUBLE PRECISION DLANTB, DLANTR
201 EXTERNAL lsame, dlantb, dlantr
202* ..
203* .. External Subroutines ..
204 EXTERNAL alaerh, alahd, alasum, dcopy, derrtr, dget04,
207 $ dtbtrs
208* ..
209* .. Scalars in Common ..
210 LOGICAL LERR, OK
211 CHARACTER*32 SRNAMT
212 INTEGER INFOT, IOUNIT
213* ..
214* .. Common blocks ..
215 COMMON / infoc / infot, iounit, ok, lerr
216 COMMON / srnamc / srnamt
217* ..
218* .. Intrinsic Functions ..
219 INTRINSIC max, min
220* ..
221* .. Data statements ..
222 DATA iseedy / 1988, 1989, 1990, 1991 /
223 DATA uplos / 'U', 'L' / , transs / 'N', 'T', 'C' /
224* ..
225* .. Executable Statements ..
226*
227* Initialize constants and the random number seed.
228*
229 path( 1: 1 ) = 'Double precision'
230 path( 2: 3 ) = 'TB'
231 nrun = 0
232 nfail = 0
233 nerrs = 0
234 DO 10 i = 1, 4
235 iseed( i ) = iseedy( i )
236 10 CONTINUE
237*
238* Test the error exits
239*
240 IF( tsterr )
241 $ CALL derrtr( path, nout )
242 infot = 0
243*
244 DO 140 in = 1, nn
245*
246* Do for each value of N in NVAL
247*
248 n = nval( in )
249 lda = max( 1, n )
250 xtype = 'N'
251 nimat = ntype1
252 nimat2 = ntypes
253 IF( n.LE.0 ) THEN
254 nimat = 1
255 nimat2 = ntype1 + 1
256 END IF
257*
258 nk = min( n+1, 4 )
259 DO 130 ik = 1, nk
260*
261* Do for KD = 0, N, (3N-1)/4, and (N+1)/4. This order makes
262* it easier to skip redundant values for small values of N.
263*
264 IF( ik.EQ.1 ) THEN
265 kd = 0
266 ELSE IF( ik.EQ.2 ) THEN
267 kd = max( n, 0 )
268 ELSE IF( ik.EQ.3 ) THEN
269 kd = ( 3*n-1 ) / 4
270 ELSE IF( ik.EQ.4 ) THEN
271 kd = ( n+1 ) / 4
272 END IF
273 ldab = kd + 1
274*
275 DO 90 imat = 1, nimat
276*
277* Do the tests only if DOTYPE( IMAT ) is true.
278*
279 IF( .NOT.dotype( imat ) )
280 $ GO TO 90
281*
282 DO 80 iuplo = 1, 2
283*
284* Do first for UPLO = 'U', then for UPLO = 'L'
285*
286 uplo = uplos( iuplo )
287*
288* Call DLATTB to generate a triangular test matrix.
289*
290 srnamt = 'DLATTB'
291 CALL dlattb( imat, uplo, 'No transpose', diag, iseed,
292 $ n, kd, ab, ldab, x, work, info )
293*
294* Set IDIAG = 1 for non-unit matrices, 2 for unit.
295*
296 IF( lsame( diag, 'N' ) ) THEN
297 idiag = 1
298 ELSE
299 idiag = 2
300 END IF
301*
302* Form the inverse of A so we can get a good estimate
303* of RCONDC = 1/(norm(A) * norm(inv(A))).
304*
305 CALL dlaset( 'Full', n, n, zero, one, ainv, lda )
306 IF( lsame( uplo, 'U' ) ) THEN
307 DO 20 j = 1, n
308 CALL dtbsv( uplo, 'No transpose', diag, j, kd,
309 $ ab, ldab, ainv( ( j-1 )*lda+1 ), 1 )
310 20 CONTINUE
311 ELSE
312 DO 30 j = 1, n
313 CALL dtbsv( uplo, 'No transpose', diag, n-j+1,
314 $ kd, ab( ( j-1 )*ldab+1 ), ldab,
315 $ ainv( ( j-1 )*lda+j ), 1 )
316 30 CONTINUE
317 END IF
318*
319* Compute the 1-norm condition number of A.
320*
321 anorm = dlantb( '1', UPLO, DIAG, N, KD, AB, LDAB,
322 $ RWORK )
323 AINVNM = DLANTR( '1', UPLO, DIAG, N, N, AINV, LDA,
324 $ RWORK )
325.LE..OR..LE. IF( ANORMZERO AINVNMZERO ) THEN
326 RCONDO = ONE
327 ELSE
328 RCONDO = ( ONE / ANORM ) / AINVNM
329 END IF
330*
331* Compute the infinity-norm condition number of A.
332*
333 ANORM = DLANTB( 'i', UPLO, DIAG, N, KD, AB, LDAB,
334 $ RWORK )
335 AINVNM = DLANTR( 'i', uplo, diag, n, n, ainv, lda,
336 $ rwork )
337 IF( anorm.LE.zero .OR. ainvnm.LE.zero ) THEN
338 rcondi = one
339 ELSE
340 rcondi = ( one / anorm ) / ainvnm
341 END IF
342*
343 DO 60 irhs = 1, nns
344 nrhs = nsval( irhs )
345 xtype = 'N'
346*
347 DO 50 itran = 1, ntran
348*
349* Do for op(A) = A, A**T, or A**H.
350*
351 trans = transs( itran )
352 IF( itran.EQ.1 ) THEN
353 norm = 'O'
354 rcondc = rcondo
355 ELSE
356 norm = 'I'
357 rcondc = rcondi
358 END IF
359*
360*+ TEST 1
361* Solve and compute residual for op(A)*x = b.
362*
363 srnamt = 'DLARHS'
364 CALL dlarhs( path, xtype, uplo, trans, n, n, kd,
365 $ idiag, nrhs, ab, ldab, xact, lda,
366 $ b, lda, iseed, info )
367 xtype = 'C'
368 CALL dlacpy( 'full', N, NRHS, B, LDA, X, LDA )
369*
370 SRNAMT = 'dtbtrs'
371 CALL DTBTRS( UPLO, TRANS, DIAG, N, KD, NRHS, AB,
372 $ LDAB, X, LDA, INFO )
373*
374* Check error code from DTBTRS.
375*
376.NE. IF( INFO0 )
377 $ CALL ALAERH( PATH, 'dtbtrs', INFO, 0,
378 $ UPLO // TRANS // DIAG, N, N, KD,
379 $ KD, NRHS, IMAT, NFAIL, NERRS,
380 $ NOUT )
381*
382 CALL DTBT02( UPLO, TRANS, DIAG, N, KD, NRHS, AB,
383 $ LDAB, X, LDA, B, LDA, WORK,
384 $ RESULT( 1 ) )
385*
386*+ TEST 2
387* Check solution from generated exact solution.
388*
389 CALL DGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC,
390 $ RESULT( 2 ) )
391*
392*+ TESTS 3, 4, and 5
393* Use iterative refinement to improve the solution
394* and compute error bounds.
395*
396 SRNAMT = 'dtbrfs'
397 CALL DTBRFS( UPLO, TRANS, DIAG, N, KD, NRHS, AB,
398 $ LDAB, B, LDA, X, LDA, RWORK,
399 $ RWORK( NRHS+1 ), WORK, IWORK,
400 $ INFO )
401*
402* Check error code from DTBRFS.
403*
404.NE. IF( INFO0 )
405 $ CALL ALAERH( PATH, 'dtbrfs', INFO, 0,
406 $ UPLO // TRANS // DIAG, N, N, KD,
407 $ KD, NRHS, IMAT, NFAIL, NERRS,
408 $ NOUT )
409*
410 CALL DGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC,
411 $ RESULT( 3 ) )
412 CALL DTBT05( UPLO, TRANS, DIAG, N, KD, NRHS, AB,
413 $ LDAB, B, LDA, X, LDA, XACT, LDA,
414 $ RWORK, RWORK( NRHS+1 ),
415 $ RESULT( 4 ) )
416*
417* Print information about the tests that did not
418* pass the threshold.
419*
420 DO 40 K = 1, 5
421.GE. IF( RESULT( K )THRESH ) THEN
422.EQ..AND..EQ. IF( NFAIL0 NERRS0 )
423 $ CALL ALAHD( NOUT, PATH )
424 WRITE( NOUT, FMT = 9999 )UPLO, TRANS,
425 $ DIAG, N, KD, NRHS, IMAT, K, RESULT( K )
426 NFAIL = NFAIL + 1
427 END IF
428 40 CONTINUE
429 NRUN = NRUN + 5
430 50 CONTINUE
431 60 CONTINUE
432*
433*+ TEST 6
434* Get an estimate of RCOND = 1/CNDNUM.
435*
436 DO 70 ITRAN = 1, 2
437.EQ. IF( ITRAN1 ) THEN
438 NORM = 'o'
439 RCONDC = RCONDO
440 ELSE
441 NORM = 'i'
442 RCONDC = RCONDI
443 END IF
444 SRNAMT = 'dtbcon'
445 CALL DTBCON( NORM, UPLO, DIAG, N, KD, AB, LDAB,
446 $ RCOND, WORK, IWORK, INFO )
447*
448* Check error code from DTBCON.
449*
450.NE. IF( INFO0 )
451 $ CALL ALAERH( PATH, 'dtbcon', INFO, 0,
452 $ NORM // UPLO // DIAG, N, N, KD, KD,
453 $ -1, IMAT, NFAIL, NERRS, NOUT )
454*
455 CALL DTBT06( RCOND, RCONDC, UPLO, DIAG, N, KD, AB,
456 $ LDAB, RWORK, RESULT( 6 ) )
457*
458* Print information about the tests that did not pass
459* the threshold.
460*
461.GE. IF( RESULT( 6 )THRESH ) THEN
462.EQ..AND..EQ. IF( NFAIL0 NERRS0 )
463 $ CALL ALAHD( NOUT, PATH )
464 WRITE( NOUT, FMT = 9998 ) 'dtbcon', NORM, UPLO,
465 $ DIAG, N, KD, IMAT, 6, RESULT( 6 )
466 NFAIL = NFAIL + 1
467 END IF
468 NRUN = NRUN + 1
469 70 CONTINUE
470 80 CONTINUE
471 90 CONTINUE
472*
473* Use pathological test matrices to test DLATBS.
474*
475 DO 120 IMAT = NTYPE1 + 1, NIMAT2
476*
477* Do the tests only if DOTYPE( IMAT ) is true.
478*
479.NOT. IF( DOTYPE( IMAT ) )
480 $ GO TO 120
481*
482 DO 110 IUPLO = 1, 2
483*
484* Do first for UPLO = 'U', then for UPLO = 'L'
485*
486 UPLO = UPLOS( IUPLO )
487 DO 100 ITRAN = 1, NTRAN
488*
489* Do for op(A) = A, A**T, and A**H.
490*
491 TRANS = TRANSS( ITRAN )
492*
493* Call DLATTB to generate a triangular test matrix.
494*
495 SRNAMT = 'dlattb'
496 CALL DLATTB( IMAT, UPLO, TRANS, DIAG, ISEED, N, KD,
497 $ AB, LDAB, X, WORK, INFO )
498*
499*+ TEST 7
500* Solve the system op(A)*x = b
501*
502 SRNAMT = 'dlatbs'
503 CALL DCOPY( N, X, 1, B, 1 )
504 CALL DLATBS( UPLO, TRANS, DIAG, 'n', N, KD, AB,
505 $ LDAB, B, SCALE, RWORK, INFO )
506*
507* Check error code from DLATBS.
508*
509.NE. IF( INFO0 )
510 $ CALL ALAERH( PATH, 'dlatbs', INFO, 0,
511 $ UPLO // TRANS // DIAG // 'n', N, N,
512 $ KD, KD, -1, IMAT, NFAIL, NERRS,
513 $ NOUT )
514*
515 CALL DTBT03( UPLO, TRANS, DIAG, N, KD, 1, AB, LDAB,
516 $ SCALE, RWORK, ONE, B, LDA, X, LDA,
517 $ WORK, RESULT( 7 ) )
518*
519*+ TEST 8
520* Solve op(A)*x = b again with NORMIN = 'Y'.
521*
522 CALL DCOPY( N, X, 1, B, 1 )
523 CALL DLATBS( UPLO, TRANS, DIAG, 'y', N, KD, AB,
524 $ LDAB, B, SCALE, RWORK, INFO )
525*
526* Check error code from DLATBS.
527*
528.NE. IF( INFO0 )
529 $ CALL ALAERH( PATH, 'dlatbs', INFO, 0,
530 $ UPLO // TRANS // DIAG // 'y', N, N,
531 $ KD, KD, -1, IMAT, NFAIL, NERRS,
532 $ NOUT )
533*
534 CALL DTBT03( UPLO, TRANS, DIAG, N, KD, 1, AB, LDAB,
535 $ SCALE, RWORK, ONE, B, LDA, X, LDA,
536 $ WORK, RESULT( 8 ) )
537*
538* Print information about the tests that did not pass
539* the threshold.
540*
541.GE. IF( RESULT( 7 )THRESH ) THEN
542.EQ..AND..EQ. IF( NFAIL0 NERRS0 )
543 $ CALL ALAHD( NOUT, PATH )
544 WRITE( NOUT, FMT = 9997 )'dlatbs', UPLO, TRANS,
545 $ DIAG, 'n', N, KD, IMAT, 7, RESULT( 7 )
546 NFAIL = NFAIL + 1
547 END IF
548.GE. IF( RESULT( 8 )THRESH ) THEN
549.EQ..AND..EQ. IF( NFAIL0 NERRS0 )
550 $ CALL ALAHD( NOUT, PATH )
551 WRITE( NOUT, FMT = 9997 )'dlatbs', UPLO, TRANS,
552 $ DIAG, 'y', N, KD, IMAT, 8, RESULT( 8 )
553 NFAIL = NFAIL + 1
554 END IF
555 NRUN = NRUN + 2
556 100 CONTINUE
557 110 CONTINUE
558 120 CONTINUE
559 130 CONTINUE
560 140 CONTINUE
561*
562* Print a summary of the results.
563*
564 CALL ALASUM( PATH, NOUT, NFAIL, NRUN, NERRS )
565*
566 9999 FORMAT( ' uplo=''', A1, ''', trans=''', A1, ''',
567 $ diag=''', A1, ''', n=', I5, ', kd=', I5, ', nrhs=', I5,
568 $ ', type ', I2, ', test(', I2, ')=', G12.5 )
569 9998 FORMAT( 1X, A, '( ''', A1, ''', ''', A1, ''', ''', A1, ''',',
570 $ I5, ',', I5, ', ... ), type ', I2, ', test(', I2, ')=',
571 $ G12.5 )
572 9997 FORMAT( 1X, A, '( ''', A1, ''', ''', A1, ''', ''', A1, ''', ''',
573 $ A1, ''',', I5, ',', I5, ', ... ), type ', I2, ', test(',
574 $ I1, ')=', G12.5 )
575 RETURN
576*
577* End of DCHKTB
578*
579 END
subroutine dlacpy(uplo, m, n, a, lda, b, ldb)
DLACPY copies all or part of one two-dimensional array to another.
Definition dlacpy.f:103
subroutine dlaset(uplo, m, n, alpha, beta, a, lda)
DLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
Definition dlaset.f:110
subroutine alasum(type, nout, nfail, nrun, nerrs)
ALASUM
Definition alasum.f:73
subroutine alahd(iounit, path)
ALAHD
Definition alahd.f:107
subroutine alaerh(path, subnam, info, infoe, opts, m, n, kl, ku, n5, imat, nfail, nerrs, nout)
ALAERH
Definition alaerh.f:147
subroutine dlatbs(uplo, trans, diag, normin, n, kd, ab, ldab, x, scale, cnorm, info)
DLATBS solves a triangular banded system of equations.
Definition dlatbs.f:242
subroutine dtbtrs(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info)
DTBTRS
Definition dtbtrs.f:146
subroutine dtbcon(norm, uplo, diag, n, kd, ab, ldab, rcond, work, iwork, info)
DTBCON
Definition dtbcon.f:143
subroutine dtbrfs(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, iwork, info)
DTBRFS
Definition dtbrfs.f:188
subroutine dcopy(n, dx, incx, dy, incy)
DCOPY
Definition dcopy.f:82
subroutine dtbsv(uplo, trans, diag, n, k, a, lda, x, incx)
DTBSV
Definition dtbsv.f:189
subroutine dlarhs(path, xtype, uplo, trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, iseed, info)
DLARHS
Definition dlarhs.f:205
subroutine dtbt06(rcond, rcondc, uplo, diag, n, kd, ab, ldab, work, rat)
DTBT06
Definition dtbt06.f:125
subroutine dchktb(dotype, nn, nval, nns, nsval, thresh, tsterr, nmax, ab, ainv, b, x, xact, work, rwork, iwork, nout)
DCHKTB
Definition dchktb.f:155
subroutine dtbt03(uplo, trans, diag, n, kd, nrhs, ab, ldab, scale, cnorm, tscal, x, ldx, b, ldb, work, resid)
DTBT03
Definition dtbt03.f:175
subroutine derrtr(path, nunit)
DERRTR
Definition derrtr.f:55
subroutine dlattb(imat, uplo, trans, diag, iseed, n, kd, ab, ldab, b, work, info)
DLATTB
Definition dlattb.f:135
subroutine dtbt05(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts)
DTBT05
Definition dtbt05.f:189
subroutine dtbt02(uplo, trans, diag, n, kd, nrhs, ab, ldab, x, ldx, b, ldb, work, resid)
DTBT02
Definition dtbt02.f:154
subroutine dget04(n, nrhs, x, ldx, xact, ldxact, rcond, resid)
DGET04
Definition dget04.f:102
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21