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