OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
zchktr.f
Go to the documentation of this file.
1*> \brief \b ZCHKTR
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 ZCHKTR( 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* DOUBLE PRECISION THRESH
19* ..
20* .. Array Arguments ..
21* LOGICAL DOTYPE( * )
22* INTEGER NBVAL( * ), NSVAL( * ), NVAL( * )
23* DOUBLE PRECISION RWORK( * )
24* COMPLEX*16 A( * ), AINV( * ), B( * ), WORK( * ), X( * ),
25* $ XACT( * )
26* ..
27*
28*
29*> \par Purpose:
30* =============
31*>
32*> \verbatim
33*>
34*> ZCHKTR tests ZTRTRI, -TRS, -RFS, and -CON, and ZLATRS
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 DOUBLE PRECISION
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*16 array, dimension (NMAX*NMAX)
108*> \endverbatim
109*>
110*> \param[out] AINV
111*> \verbatim
112*> AINV is COMPLEX*16 array, dimension (NMAX*NMAX)
113*> \endverbatim
114*>
115*> \param[out] B
116*> \verbatim
117*> B is COMPLEX*16 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*16 array, dimension (NMAX*NSMAX)
124*> \endverbatim
125*>
126*> \param[out] XACT
127*> \verbatim
128*> XACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
129*> \endverbatim
130*>
131*> \param[out] WORK
132*> \verbatim
133*> WORK is COMPLEX*16 array, dimension
134*> (NMAX*max(3,NSMAX))
135*> \endverbatim
136*>
137*> \param[out] RWORK
138*> \verbatim
139*> RWORK is DOUBLE PRECISION 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 complex16_lin
158*
159* =====================================================================
160 SUBROUTINE zchktr( 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 DOUBLE PRECISION THRESH
172* ..
173* .. Array Arguments ..
174 LOGICAL DOTYPE( * )
175 INTEGER NBVAL( * ), NSVAL( * ), NVAL( * )
176 DOUBLE PRECISION RWORK( * )
177 COMPLEX*16 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 DOUBLE PRECISION ONE, ZERO
191 parameter( one = 1.0d0, zero = 0.0d0 )
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 DOUBLE PRECISION 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 DOUBLE PRECISION RESULT( NTESTS )
205* ..
206* .. External Functions ..
207 LOGICAL LSAME
208 DOUBLE PRECISION ZLANTR
209 EXTERNAL lsame, zlantr
210* ..
211* .. External Subroutines ..
212 EXTERNAL alaerh, alahd, alasum, xlaenv, zcopy, zerrtr,
215 $ ztrtri, ztrtrs
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 ) = 'Zomplex 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 zerrtr( 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 IF( .NOT.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 ZLATTR to generate a triangular test matrix.
274*
275 srnamt = 'ZLATTR'
276 CALL zlattr( 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 zlacpy( uplo, n, n, a, lda, ainv, lda )
298 srnamt = 'ZTRTRI'
299 CALL ztrtri( uplo, diag, n, ainv, lda, info )
300*
301* Check error code from ZTRTRI.
302*
303 IF( info.NE.0 )
304 $ CALL alaerh( path, 'ZTRTRI', 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 = zlantr( 'I', uplo, diag, n, n, a, lda, rwork )
311 ainvnm = zlantr( '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 ZTRT01( 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 = 'zlarhs'
362 CALL ZLARHS( PATH, XTYPE, UPLO, TRANS, N, N, 0,
363 $ IDIAG, NRHS, A, LDA, XACT, LDA, B,
364 $ LDA, ISEED, INFO )
365 XTYPE = 'c'
366 CALL ZLACPY( 'full', N, NRHS, B, LDA, X, LDA )
367*
368 SRNAMT = 'ztrtrs'
369 CALL ZTRTRS( UPLO, TRANS, DIAG, N, NRHS, A, LDA,
370 $ X, LDA, INFO )
371*
372* Check error code from ZTRTRS.
373*
374.NE. IF( INFO0 )
375 $ CALL ALAERH( PATH, 'ztrtrs', 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 ZTRT02( 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 ZGET04( 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 = 'ztrrfs'
400 CALL ZTRRFS( 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 ZTRRFS.
406*
407.NE. IF( INFO0 )
408 $ CALL ALAERH( PATH, 'ztrrfs', INFO, 0,
409 $ UPLO // TRANS // DIAG, N, N, -1,
410 $ -1, NRHS, IMAT, NFAIL, NERRS,
411 $ NOUT )
412*
413 CALL ZGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC,
414 $ RESULT( 4 ) )
415 CALL ZTRT05( 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 = 'ztrcon'
447 CALL ZTRCON( NORM, UPLO, DIAG, N, A, LDA, RCOND,
448 $ WORK, RWORK, INFO )
449*
450* Check error code from ZTRCON.
451*
452.NE. IF( INFO0 )
453 $ CALL ALAERH( PATH, 'ztrcon', INFO, 0,
454 $ NORM // UPLO // DIAG, N, N, -1, -1,
455 $ -1, IMAT, NFAIL, NERRS, NOUT )
456*
457 CALL ZTRT06( 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 ZLATRS.
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 ZLATTR to generate a triangular test matrix.
496*
497 SRNAMT = 'zlattr'
498 CALL ZLATTR( 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 = 'zlatrs'
505 CALL ZCOPY( N, X, 1, B, 1 )
506 CALL ZLATRS( UPLO, TRANS, DIAG, 'n', N, A, LDA, B,
507 $ SCALE, RWORK, INFO )
508*
509* Check error code from ZLATRS.
510*
511.NE. IF( INFO0 )
512 $ CALL ALAERH( PATH, 'zlatrs', INFO, 0,
513 $ UPLO // TRANS // DIAG // 'n', N, N,
514 $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT )
515*
516 CALL ZTRT03( 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 ZCOPY( N, X, 1, B( N+1 ), 1 )
524 CALL ZLATRS( UPLO, TRANS, DIAG, 'y', N, A, LDA,
525 $ B( N+1 ), SCALE, RWORK, INFO )
526*
527* Check error code from ZLATRS.
528*
529.NE. IF( INFO0 )
530 $ CALL ALAERH( PATH, 'zlatrs', INFO, 0,
531 $ UPLO // TRANS // DIAG // 'y', N, N,
532 $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT )
533*
534 CALL ZTRT03( 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 )'zlatrs', 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 )'zlatrs', 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 ZCHKTR
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 zlacpy(uplo, m, n, a, lda, b, ldb)
ZLACPY copies all or part of one two-dimensional array to another.
Definition zlacpy.f:103
subroutine zlatrs(uplo, trans, diag, normin, n, a, lda, x, scale, cnorm, info)
ZLATRS solves a triangular system of equations with the scale factor set to prevent overflow.
Definition zlatrs.f:239
subroutine ztrcon(norm, uplo, diag, n, a, lda, rcond, work, rwork, info)
ZTRCON
Definition ztrcon.f:137
subroutine ztrtri(uplo, diag, n, a, lda, info)
ZTRTRI
Definition ztrtri.f:109
subroutine ztrrfs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, rwork, info)
ZTRRFS
Definition ztrrfs.f:182
subroutine ztrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)
ZTRTRS
Definition ztrtrs.f:140
subroutine zcopy(n, zx, incx, zy, incy)
ZCOPY
Definition zcopy.f:81
subroutine zlarhs(path, xtype, uplo, trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, iseed, info)
ZLARHS
Definition zlarhs.f:208
subroutine ztrt06(rcond, rcondc, uplo, diag, n, a, lda, rwork, rat)
ZTRT06
Definition ztrt06.f:122
subroutine zchktr(dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, ainv, b, x, xact, work, rwork, nout)
ZCHKTR
Definition zchktr.f:163
subroutine ztrt02(uplo, trans, diag, n, nrhs, a, lda, x, ldx, b, ldb, work, rwork, resid)
ZTRT02
Definition ztrt02.f:155
subroutine zget04(n, nrhs, x, ldx, xact, ldxact, rcond, resid)
ZGET04
Definition zget04.f:102
subroutine zerrtr(path, nunit)
ZERRTR
Definition zerrtr.f:54
subroutine ztrt03(uplo, trans, diag, n, nrhs, a, lda, scale, cnorm, tscal, x, ldx, b, ldb, work, resid)
ZTRT03
Definition ztrt03.f:171
subroutine zlattr(imat, uplo, trans, diag, iseed, n, a, lda, b, work, rwork, info)
ZLATTR
Definition zlattr.f:138
subroutine ztrt05(uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts)
ZTRT05
Definition ztrt05.f:182
subroutine ztrt01(uplo, diag, n, a, lda, ainv, ldainv, rcond, rwork, resid)
ZTRT01
Definition ztrt01.f:125
#define max(a, b)
Definition macros.h:21