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