LAPACK  3.8.0
LAPACK: Linear Algebra PACKage
dchkaa.f
Go to the documentation of this file.
1 *> \brief \b DCHKAA
2 *
3 * =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
7 *
8 * Definition:
9 * ===========
10 *
11 * PROGRAM DCHKAA
12 *
13 *
14 *> \par Purpose:
15 * =============
16 *>
17 *> \verbatim
18 *>
19 *> DCHKAA is the main test program for the DOUBLE PRECISION LAPACK
20 *> linear equation routines
21 *>
22 *> The program must be driven by a short data file. The first 15 records
23 *> (not including the first comment line) specify problem dimensions
24 *> and program options using list-directed input. The remaining lines
25 *> specify the LAPACK test paths and the number of matrix types to use
26 *> in testing. An annotated example of a data file can be obtained by
27 *> deleting the first 3 characters from the following 40 lines:
28 *> Data file for testing DOUBLE PRECISION LAPACK linear eqn. routines
29 *> 7 Number of values of M
30 *> 0 1 2 3 5 10 16 Values of M (row dimension)
31 *> 7 Number of values of N
32 *> 0 1 2 3 5 10 16 Values of N (column dimension)
33 *> 1 Number of values of NRHS
34 *> 2 Values of NRHS (number of right hand sides)
35 *> 5 Number of values of NB
36 *> 1 3 3 3 20 Values of NB (the blocksize)
37 *> 1 0 5 9 1 Values of NX (crossover point)
38 *> 3 Number of values of RANK
39 *> 30 50 90 Values of rank (as a % of N)
40 *> 20.0 Threshold value of test ratio
41 *> T Put T to test the LAPACK routines
42 *> T Put T to test the driver routines
43 *> T Put T to test the error exits
44 *> DGE 11 List types on next line if 0 < NTYPES < 11
45 *> DGB 8 List types on next line if 0 < NTYPES < 8
46 *> DGT 12 List types on next line if 0 < NTYPES < 12
47 *> DPO 9 List types on next line if 0 < NTYPES < 9
48 *> DPS 9 List types on next line if 0 < NTYPES < 9
49 *> DPP 9 List types on next line if 0 < NTYPES < 9
50 *> DPB 8 List types on next line if 0 < NTYPES < 8
51 *> DPT 12 List types on next line if 0 < NTYPES < 12
52 *> DSY 10 List types on next line if 0 < NTYPES < 10
53 *> DSR 10 List types on next line if 0 < NTYPES < 10
54 *> DSK 10 List types on next line if 0 < NTYPES < 10
55 *> DSA 10 List types on next line if 0 < NTYPES < 10
56 *> DS2 10 List types on next line if 0 < NTYPES < 10
57 *> DSP 10 List types on next line if 0 < NTYPES < 10
58 *> DTR 18 List types on next line if 0 < NTYPES < 18
59 *> DTP 18 List types on next line if 0 < NTYPES < 18
60 *> DTB 17 List types on next line if 0 < NTYPES < 17
61 *> DQR 8 List types on next line if 0 < NTYPES < 8
62 *> DRQ 8 List types on next line if 0 < NTYPES < 8
63 *> DLQ 8 List types on next line if 0 < NTYPES < 8
64 *> DQL 8 List types on next line if 0 < NTYPES < 8
65 *> DQP 6 List types on next line if 0 < NTYPES < 6
66 *> DTZ 3 List types on next line if 0 < NTYPES < 3
67 *> DLS 6 List types on next line if 0 < NTYPES < 6
68 *> DEQ
69 *> DQT
70 *> DQX
71 *> \endverbatim
72 *
73 * Parameters:
74 * ==========
75 *
76 *> \verbatim
77 *> NMAX INTEGER
78 *> The maximum allowable value for M and N.
79 *>
80 *> MAXIN INTEGER
81 *> The number of different values that can be used for each of
82 *> M, N, NRHS, NB, NX and RANK
83 *>
84 *> MAXRHS INTEGER
85 *> The maximum number of right hand sides
86 *>
87 *> MATMAX INTEGER
88 *> The maximum number of matrix types to use for testing
89 *>
90 *> NIN INTEGER
91 *> The unit number for input
92 *>
93 *> NOUT INTEGER
94 *> The unit number for output
95 *> \endverbatim
96 *
97 * Authors:
98 * ========
99 *
100 *> \author Univ. of Tennessee
101 *> \author Univ. of California Berkeley
102 *> \author Univ. of Colorado Denver
103 *> \author NAG Ltd.
104 *
105 *> \date April 2012
106 *
107 *> \ingroup double_lin
108 *
109 * =====================================================================
110  PROGRAM dchkaa
111 *
112 * -- LAPACK test routine (version 3.8.0) --
113 * -- LAPACK is a software package provided by Univ. of Tennessee, --
114 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
115 * April 2012
116 *
117 * =====================================================================
118 *
119 * .. Parameters ..
120  INTEGER NMAX
121  parameter( nmax = 132 )
122  INTEGER MAXIN
123  parameter( maxin = 12 )
124  INTEGER MAXRHS
125  parameter( maxrhs = 16 )
126  INTEGER MATMAX
127  parameter( matmax = 30 )
128  INTEGER NIN, NOUT
129  parameter( nin = 5, nout = 6 )
130  INTEGER KDMAX
131  parameter( kdmax = nmax+( nmax+1 ) / 4 )
132 * ..
133 * .. Local Scalars ..
134  LOGICAL FATAL, TSTCHK, TSTDRV, TSTERR
135  CHARACTER C1
136  CHARACTER*2 C2
137  CHARACTER*3 PATH
138  CHARACTER*10 INTSTR
139  CHARACTER*72 ALINE
140  INTEGER I, IC, J, K, LA, LAFAC, LDA, NB, NM, NMATS, NN,
141  $ nnb, nnb2, nns, nrhs, ntypes, nrank,
142  $ vers_major, vers_minor, vers_patch
143  DOUBLE PRECISION EPS, S1, S2, THREQ, THRESH
144 * ..
145 * .. Local Arrays ..
146  LOGICAL DOTYPE( matmax )
147  INTEGER IWORK( 25*nmax ), MVAL( maxin ),
148  $ nbval( maxin ), nbval2( maxin ),
149  $ nsval( maxin ), nval( maxin ), nxval( maxin ),
150  $ rankval( maxin ), piv( nmax )
151  DOUBLE PRECISION A( ( kdmax+1 )*nmax, 7 ), B( nmax*maxrhs, 4 ),
152  $ e( nmax ), rwork( 5*nmax+2*maxrhs ),
153  $ s( 2*nmax ), work( nmax, 3*nmax+maxrhs+30 )
154 * ..
155 * .. External Functions ..
156  LOGICAL LSAME, LSAMEN
157  DOUBLE PRECISION DLAMCH, DSECND
158  EXTERNAL lsame, lsamen, dlamch, dsecnd
159 * ..
160 * .. External Subroutines ..
161  EXTERNAL alareq, dchkeq, dchkgb, dchkge, dchkgt, dchklq,
170 
171 * ..
172 * .. Scalars in Common ..
173  LOGICAL LERR, OK
174  CHARACTER*32 SRNAMT
175  INTEGER INFOT, NUNIT
176 * ..
177 * .. Arrays in Common ..
178  INTEGER IPARMS( 100 )
179 * ..
180 * .. Common blocks ..
181  COMMON / infoc / infot, nunit, ok, lerr
182  COMMON / srnamc / srnamt
183  COMMON / claenv / iparms
184 * ..
185 * .. Data statements ..
186  DATA threq / 2.0d0 / , intstr / '0123456789' /
187 * ..
188 * .. Executable Statements ..
189 *
190  s1 = dsecnd( )
191  lda = nmax
192  fatal = .false.
193 *
194 * Read a dummy line.
195 *
196  READ( nin, fmt = * )
197 *
198 * Report values of parameters.
199 *
200  CALL ilaver( vers_major, vers_minor, vers_patch )
201  WRITE( nout, fmt = 9994 ) vers_major, vers_minor, vers_patch
202 *
203 * Read the values of M
204 *
205  READ( nin, fmt = * )nm
206  IF( nm.LT.1 ) THEN
207  WRITE( nout, fmt = 9996 )' NM ', nm, 1
208  nm = 0
209  fatal = .true.
210  ELSE IF( nm.GT.maxin ) THEN
211  WRITE( nout, fmt = 9995 )' NM ', nm, maxin
212  nm = 0
213  fatal = .true.
214  END IF
215  READ( nin, fmt = * )( mval( i ), i = 1, nm )
216  DO 10 i = 1, nm
217  IF( mval( i ).LT.0 ) THEN
218  WRITE( nout, fmt = 9996 )' M ', mval( i ), 0
219  fatal = .true.
220  ELSE IF( mval( i ).GT.nmax ) THEN
221  WRITE( nout, fmt = 9995 )' M ', mval( i ), nmax
222  fatal = .true.
223  END IF
224  10 CONTINUE
225  IF( nm.GT.0 )
226  $ WRITE( nout, fmt = 9993 )'M ', ( mval( i ), i = 1, nm )
227 *
228 * Read the values of N
229 *
230  READ( nin, fmt = * )nn
231  IF( nn.LT.1 ) THEN
232  WRITE( nout, fmt = 9996 )' NN ', nn, 1
233  nn = 0
234  fatal = .true.
235  ELSE IF( nn.GT.maxin ) THEN
236  WRITE( nout, fmt = 9995 )' NN ', nn, maxin
237  nn = 0
238  fatal = .true.
239  END IF
240  READ( nin, fmt = * )( nval( i ), i = 1, nn )
241  DO 20 i = 1, nn
242  IF( nval( i ).LT.0 ) THEN
243  WRITE( nout, fmt = 9996 )' N ', nval( i ), 0
244  fatal = .true.
245  ELSE IF( nval( i ).GT.nmax ) THEN
246  WRITE( nout, fmt = 9995 )' N ', nval( i ), nmax
247  fatal = .true.
248  END IF
249  20 CONTINUE
250  IF( nn.GT.0 )
251  $ WRITE( nout, fmt = 9993 )'N ', ( nval( i ), i = 1, nn )
252 *
253 * Read the values of NRHS
254 *
255  READ( nin, fmt = * )nns
256  IF( nns.LT.1 ) THEN
257  WRITE( nout, fmt = 9996 )' NNS', nns, 1
258  nns = 0
259  fatal = .true.
260  ELSE IF( nns.GT.maxin ) THEN
261  WRITE( nout, fmt = 9995 )' NNS', nns, maxin
262  nns = 0
263  fatal = .true.
264  END IF
265  READ( nin, fmt = * )( nsval( i ), i = 1, nns )
266  DO 30 i = 1, nns
267  IF( nsval( i ).LT.0 ) THEN
268  WRITE( nout, fmt = 9996 )'NRHS', nsval( i ), 0
269  fatal = .true.
270  ELSE IF( nsval( i ).GT.maxrhs ) THEN
271  WRITE( nout, fmt = 9995 )'NRHS', nsval( i ), maxrhs
272  fatal = .true.
273  END IF
274  30 CONTINUE
275  IF( nns.GT.0 )
276  $ WRITE( nout, fmt = 9993 )'NRHS', ( nsval( i ), i = 1, nns )
277 *
278 * Read the values of NB
279 *
280  READ( nin, fmt = * )nnb
281  IF( nnb.LT.1 ) THEN
282  WRITE( nout, fmt = 9996 )'NNB ', nnb, 1
283  nnb = 0
284  fatal = .true.
285  ELSE IF( nnb.GT.maxin ) THEN
286  WRITE( nout, fmt = 9995 )'NNB ', nnb, maxin
287  nnb = 0
288  fatal = .true.
289  END IF
290  READ( nin, fmt = * )( nbval( i ), i = 1, nnb )
291  DO 40 i = 1, nnb
292  IF( nbval( i ).LT.0 ) THEN
293  WRITE( nout, fmt = 9996 )' NB ', nbval( i ), 0
294  fatal = .true.
295  END IF
296  40 CONTINUE
297  IF( nnb.GT.0 )
298  $ WRITE( nout, fmt = 9993 )'NB ', ( nbval( i ), i = 1, nnb )
299 *
300 * Set NBVAL2 to be the set of unique values of NB
301 *
302  nnb2 = 0
303  DO 60 i = 1, nnb
304  nb = nbval( i )
305  DO 50 j = 1, nnb2
306  IF( nb.EQ.nbval2( j ) )
307  $ GO TO 60
308  50 CONTINUE
309  nnb2 = nnb2 + 1
310  nbval2( nnb2 ) = nb
311  60 CONTINUE
312 *
313 * Read the values of NX
314 *
315  READ( nin, fmt = * )( nxval( i ), i = 1, nnb )
316  DO 70 i = 1, nnb
317  IF( nxval( i ).LT.0 ) THEN
318  WRITE( nout, fmt = 9996 )' NX ', nxval( i ), 0
319  fatal = .true.
320  END IF
321  70 CONTINUE
322  IF( nnb.GT.0 )
323  $ WRITE( nout, fmt = 9993 )'NX ', ( nxval( i ), i = 1, nnb )
324 *
325 * Read the values of RANKVAL
326 *
327  READ( nin, fmt = * )nrank
328  IF( nn.LT.1 ) THEN
329  WRITE( nout, fmt = 9996 )' NRANK ', nrank, 1
330  nrank = 0
331  fatal = .true.
332  ELSE IF( nn.GT.maxin ) THEN
333  WRITE( nout, fmt = 9995 )' NRANK ', nrank, maxin
334  nrank = 0
335  fatal = .true.
336  END IF
337  READ( nin, fmt = * )( rankval( i ), i = 1, nrank )
338  DO i = 1, nrank
339  IF( rankval( i ).LT.0 ) THEN
340  WRITE( nout, fmt = 9996 )' RANK ', rankval( i ), 0
341  fatal = .true.
342  ELSE IF( rankval( i ).GT.100 ) THEN
343  WRITE( nout, fmt = 9995 )' RANK ', rankval( i ), 100
344  fatal = .true.
345  END IF
346  END DO
347  IF( nrank.GT.0 )
348  $ WRITE( nout, fmt = 9993 )'RANK % OF N',
349  $ ( rankval( i ), i = 1, nrank )
350 *
351 * Read the threshold value for the test ratios.
352 *
353  READ( nin, fmt = * )thresh
354  WRITE( nout, fmt = 9992 )thresh
355 *
356 * Read the flag that indicates whether to test the LAPACK routines.
357 *
358  READ( nin, fmt = * )tstchk
359 *
360 * Read the flag that indicates whether to test the driver routines.
361 *
362  READ( nin, fmt = * )tstdrv
363 *
364 * Read the flag that indicates whether to test the error exits.
365 *
366  READ( nin, fmt = * )tsterr
367 *
368  IF( fatal ) THEN
369  WRITE( nout, fmt = 9999 )
370  stop
371  END IF
372 *
373 * Calculate and print the machine dependent constants.
374 *
375  eps = dlamch( 'Underflow threshold' )
376  WRITE( nout, fmt = 9991 )'underflow', eps
377  eps = dlamch( 'Overflow threshold' )
378  WRITE( nout, fmt = 9991 )'overflow ', eps
379  eps = dlamch( 'Epsilon' )
380  WRITE( nout, fmt = 9991 )'precision', eps
381  WRITE( nout, fmt = * )
382 *
383  80 CONTINUE
384 *
385 * Read a test path and the number of matrix types to use.
386 *
387  READ( nin, fmt = '(A72)', end = 140 )aline
388  path = aline( 1: 3 )
389  nmats = matmax
390  i = 3
391  90 CONTINUE
392  i = i + 1
393  IF( i.GT.72 ) THEN
394  nmats = matmax
395  GO TO 130
396  END IF
397  IF( aline( i: i ).EQ.' ' )
398  $ GO TO 90
399  nmats = 0
400  100 CONTINUE
401  c1 = aline( i: i )
402  DO 110 k = 1, 10
403  IF( c1.EQ.intstr( k: k ) ) THEN
404  ic = k - 1
405  GO TO 120
406  END IF
407  110 CONTINUE
408  GO TO 130
409  120 CONTINUE
410  nmats = nmats*10 + ic
411  i = i + 1
412  IF( i.GT.72 )
413  $ GO TO 130
414  GO TO 100
415  130 CONTINUE
416  c1 = path( 1: 1 )
417  c2 = path( 2: 3 )
418  nrhs = nsval( 1 )
419 *
420 * Check first character for correct precision.
421 *
422  IF( .NOT.lsame( c1, 'Double precision' ) ) THEN
423  WRITE( nout, fmt = 9990 )path
424 *
425  ELSE IF( nmats.LE.0 ) THEN
426 *
427 * Check for a positive number of tests requested.
428 *
429  WRITE( nout, fmt = 9989 )path
430 *
431  ELSE IF( lsamen( 2, c2, 'GE' ) ) THEN
432 *
433 * GE: general matrices
434 *
435  ntypes = 11
436  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
437 *
438  IF( tstchk ) THEN
439  CALL dchkge( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
440  $ nsval, thresh, tsterr, lda, a( 1, 1 ),
441  $ a( 1, 2 ), a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
442  $ b( 1, 3 ), work, rwork, iwork, nout )
443  ELSE
444  WRITE( nout, fmt = 9989 )path
445  END IF
446 *
447  IF( tstdrv ) THEN
448  CALL ddrvge( dotype, nn, nval, nrhs, thresh, tsterr, lda,
449  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
450  $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
451  $ rwork, iwork, nout )
452  ELSE
453  WRITE( nout, fmt = 9988 )path
454  END IF
455 *
456  ELSE IF( lsamen( 2, c2, 'GB' ) ) THEN
457 *
458 * GB: general banded matrices
459 *
460  la = ( 2*kdmax+1 )*nmax
461  lafac = ( 3*kdmax+1 )*nmax
462  ntypes = 8
463  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
464 *
465  IF( tstchk ) THEN
466  CALL dchkgb( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
467  $ nsval, thresh, tsterr, a( 1, 1 ), la,
468  $ a( 1, 3 ), lafac, b( 1, 1 ), b( 1, 2 ),
469  $ b( 1, 3 ), work, rwork, iwork, nout )
470  ELSE
471  WRITE( nout, fmt = 9989 )path
472  END IF
473 *
474  IF( tstdrv ) THEN
475  CALL ddrvgb( dotype, nn, nval, nrhs, thresh, tsterr,
476  $ a( 1, 1 ), la, a( 1, 3 ), lafac, a( 1, 6 ),
477  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s,
478  $ work, rwork, iwork, nout )
479  ELSE
480  WRITE( nout, fmt = 9988 )path
481  END IF
482 *
483  ELSE IF( lsamen( 2, c2, 'GT' ) ) THEN
484 *
485 * GT: general tridiagonal matrices
486 *
487  ntypes = 12
488  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
489 *
490  IF( tstchk ) THEN
491  CALL dchkgt( dotype, nn, nval, nns, nsval, thresh, tsterr,
492  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
493  $ b( 1, 3 ), work, rwork, iwork, nout )
494  ELSE
495  WRITE( nout, fmt = 9989 )path
496  END IF
497 *
498  IF( tstdrv ) THEN
499  CALL ddrvgt( dotype, nn, nval, nrhs, thresh, tsterr,
500  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
501  $ b( 1, 3 ), work, rwork, iwork, nout )
502  ELSE
503  WRITE( nout, fmt = 9988 )path
504  END IF
505 *
506  ELSE IF( lsamen( 2, c2, 'PO' ) ) THEN
507 *
508 * PO: positive definite matrices
509 *
510  ntypes = 9
511  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
512 *
513  IF( tstchk ) THEN
514  CALL dchkpo( dotype, nn, nval, nnb2, nbval2, nns, nsval,
515  $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
516  $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
517  $ work, rwork, iwork, nout )
518  ELSE
519  WRITE( nout, fmt = 9989 )path
520  END IF
521 *
522  IF( tstdrv ) THEN
523  CALL ddrvpo( dotype, nn, nval, nrhs, thresh, tsterr, lda,
524  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
525  $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
526  $ rwork, iwork, nout )
527  ELSE
528  WRITE( nout, fmt = 9988 )path
529  END IF
530 *
531  ELSE IF( lsamen( 2, c2, 'PS' ) ) THEN
532 *
533 * PS: positive semi-definite matrices
534 *
535  ntypes = 9
536 *
537  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
538 *
539  IF( tstchk ) THEN
540  CALL dchkps( dotype, nn, nval, nnb2, nbval2, nrank,
541  $ rankval, thresh, tsterr, lda, a( 1, 1 ),
542  $ a( 1, 2 ), a( 1, 3 ), piv, work, rwork,
543  $ nout )
544  ELSE
545  WRITE( nout, fmt = 9989 )path
546  END IF
547 *
548  ELSE IF( lsamen( 2, c2, 'PP' ) ) THEN
549 *
550 * PP: positive definite packed matrices
551 *
552  ntypes = 9
553  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
554 *
555  IF( tstchk ) THEN
556  CALL dchkpp( dotype, nn, nval, nns, nsval, thresh, tsterr,
557  $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
558  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
559  $ iwork, nout )
560  ELSE
561  WRITE( nout, fmt = 9989 )path
562  END IF
563 *
564  IF( tstdrv ) THEN
565  CALL ddrvpp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
566  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
567  $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
568  $ rwork, iwork, nout )
569  ELSE
570  WRITE( nout, fmt = 9988 )path
571  END IF
572 *
573  ELSE IF( lsamen( 2, c2, 'PB' ) ) THEN
574 *
575 * PB: positive definite banded matrices
576 *
577  ntypes = 8
578  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
579 *
580  IF( tstchk ) THEN
581  CALL dchkpb( dotype, nn, nval, nnb2, nbval2, nns, nsval,
582  $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
583  $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
584  $ work, rwork, iwork, nout )
585  ELSE
586  WRITE( nout, fmt = 9989 )path
587  END IF
588 *
589  IF( tstdrv ) THEN
590  CALL ddrvpb( dotype, nn, nval, nrhs, thresh, tsterr, lda,
591  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
592  $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
593  $ rwork, iwork, nout )
594  ELSE
595  WRITE( nout, fmt = 9988 )path
596  END IF
597 *
598  ELSE IF( lsamen( 2, c2, 'PT' ) ) THEN
599 *
600 * PT: positive definite tridiagonal matrices
601 *
602  ntypes = 12
603  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
604 *
605  IF( tstchk ) THEN
606  CALL dchkpt( dotype, nn, nval, nns, nsval, thresh, tsterr,
607  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
608  $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
609  ELSE
610  WRITE( nout, fmt = 9989 )path
611  END IF
612 *
613  IF( tstdrv ) THEN
614  CALL ddrvpt( dotype, nn, nval, nrhs, thresh, tsterr,
615  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
616  $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
617  ELSE
618  WRITE( nout, fmt = 9988 )path
619  END IF
620 *
621  ELSE IF( lsamen( 2, c2, 'SY' ) ) THEN
622 *
623 * SY: symmetric indefinite matrices,
624 * with partial (Bunch-Kaufman) pivoting algorithm
625 *
626  ntypes = 10
627  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
628 *
629  IF( tstchk ) THEN
630  CALL dchksy( dotype, nn, nval, nnb2, nbval2, nns, nsval,
631  $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
632  $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
633  $ work, rwork, iwork, nout )
634  ELSE
635  WRITE( nout, fmt = 9989 )path
636  END IF
637 *
638  IF( tstdrv ) THEN
639  CALL ddrvsy( dotype, nn, nval, nrhs, thresh, tsterr, lda,
640  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
641  $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
642  $ nout )
643  ELSE
644  WRITE( nout, fmt = 9988 )path
645  END IF
646 *
647  ELSE IF( lsamen( 2, c2, 'SR' ) ) THEN
648 *
649 * SR: symmetric indefinite matrices,
650 * with bounded Bunch-Kaufman (rook) pivoting algorithm
651 *
652  ntypes = 10
653  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
654 *
655  IF( tstchk ) THEN
656  CALL dchksy_rook(dotype, nn, nval, nnb2, nbval2, nns, nsval,
657  $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
658  $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
659  $ work, rwork, iwork, nout )
660  ELSE
661  WRITE( nout, fmt = 9989 )path
662  END IF
663 *
664  IF( tstdrv ) THEN
665  CALL ddrvsy_rook( dotype, nn, nval, nrhs, thresh, tsterr,
666  $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
667  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
668  $ work, rwork, iwork, nout )
669  ELSE
670  WRITE( nout, fmt = 9988 )path
671  END IF
672 *
673  ELSE IF( lsamen( 2, c2, 'SK' ) ) THEN
674 *
675 * SK: symmetric indefinite matrices,
676 * with bounded Bunch-Kaufman (rook) pivoting algorithm,
677 * differnet matrix storage format than SR path version.
678 *
679  ntypes = 10
680  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
681 *
682  IF( tstchk ) THEN
683  CALL dchksy_rk( dotype, nn, nval, nnb2, nbval2, nns, nsval,
684  $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
685  $ e, a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
686  $ b( 1, 3 ), work, rwork, iwork, nout )
687  ELSE
688  WRITE( nout, fmt = 9989 )path
689  END IF
690 *
691  IF( tstdrv ) THEN
692  CALL ddrvsy_rk( dotype, nn, nval, nrhs, thresh, tsterr,
693  $ lda, a( 1, 1 ), a( 1, 2 ), e, a( 1, 3 ),
694  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
695  $ work, rwork, iwork, nout )
696  ELSE
697  WRITE( nout, fmt = 9988 )path
698  END IF
699 *
700  ELSE IF( lsamen( 2, c2, 'SA' ) ) THEN
701 *
702 * SA: symmetric indefinite matrices,
703 * with partial (Aasen's) pivoting algorithm
704 *
705  ntypes = 10
706  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
707 *
708  IF( tstchk ) THEN
709  CALL dchksy_aa( dotype, nn, nval, nnb2, nbval2, nns,
710  $ nsval, thresh, tsterr, lda,
711  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
712  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
713  $ work, rwork, iwork, nout )
714  ELSE
715  WRITE( nout, fmt = 9989 )path
716  END IF
717 *
718  IF( tstdrv ) THEN
719  CALL ddrvsy_aa( dotype, nn, nval, nrhs, thresh, tsterr,
720  $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
721  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
722  $ work, rwork, iwork, nout )
723  ELSE
724  WRITE( nout, fmt = 9988 )path
725  END IF
726 *
727 *
728  ELSE IF( lsamen( 2, c2, 'S2' ) ) THEN
729 *
730 * SA: symmetric indefinite matrices,
731 * with partial (Aasen's) pivoting algorithm
732 *
733  ntypes = 10
734  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
735 *
736  IF( tstchk ) THEN
737  CALL dchksy_aa_2stage( dotype, nn, nval, nnb2, nbval2,
738  $ nns, nsval, thresh, tsterr, lda,
739  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
740  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
741  $ work, rwork, iwork, nout )
742  ELSE
743  WRITE( nout, fmt = 9989 )path
744  END IF
745 *
746  IF( tstdrv ) THEN
747  CALL ddrvsy_aa_2stage(
748  $ dotype, nn, nval, nrhs, thresh, tsterr,
749  $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
750  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
751  $ work, rwork, iwork, nout )
752  ELSE
753  WRITE( nout, fmt = 9988 )path
754  END IF
755 *
756 *
757  ELSE IF( lsamen( 2, c2, 'SP' ) ) THEN
758 *
759 * SP: symmetric indefinite packed matrices,
760 * with partial (Bunch-Kaufman) pivoting algorithm
761 *
762  ntypes = 10
763  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
764 *
765  IF( tstchk ) THEN
766  CALL dchksp( dotype, nn, nval, nns, nsval, thresh, tsterr,
767  $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
768  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
769  $ iwork, nout )
770  ELSE
771  WRITE( nout, fmt = 9989 )path
772  END IF
773 *
774  IF( tstdrv ) THEN
775  CALL ddrvsp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
776  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
777  $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
778  $ nout )
779  ELSE
780  WRITE( nout, fmt = 9988 )path
781  END IF
782 *
783  ELSE IF( lsamen( 2, c2, 'TR' ) ) THEN
784 *
785 * TR: triangular matrices
786 *
787  ntypes = 18
788  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
789 *
790  IF( tstchk ) THEN
791  CALL dchktr( dotype, nn, nval, nnb2, nbval2, nns, nsval,
792  $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
793  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
794  $ iwork, nout )
795  ELSE
796  WRITE( nout, fmt = 9989 )path
797  END IF
798 *
799  ELSE IF( lsamen( 2, c2, 'TP' ) ) THEN
800 *
801 * TP: triangular packed matrices
802 *
803  ntypes = 18
804  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
805 *
806  IF( tstchk ) THEN
807  CALL dchktp( dotype, nn, nval, nns, nsval, thresh, tsterr,
808  $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
809  $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
810  $ nout )
811  ELSE
812  WRITE( nout, fmt = 9989 )path
813  END IF
814 *
815  ELSE IF( lsamen( 2, c2, 'TB' ) ) THEN
816 *
817 * TB: triangular banded matrices
818 *
819  ntypes = 17
820  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
821 *
822  IF( tstchk ) THEN
823  CALL dchktb( dotype, nn, nval, nns, nsval, thresh, tsterr,
824  $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
825  $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
826  $ nout )
827  ELSE
828  WRITE( nout, fmt = 9989 )path
829  END IF
830 *
831  ELSE IF( lsamen( 2, c2, 'QR' ) ) THEN
832 *
833 * QR: QR factorization
834 *
835  ntypes = 8
836  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
837 *
838  IF( tstchk ) THEN
839  CALL dchkqr( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
840  $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
841  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
842  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
843  $ work, rwork, iwork, nout )
844  ELSE
845  WRITE( nout, fmt = 9989 )path
846  END IF
847 *
848  ELSE IF( lsamen( 2, c2, 'LQ' ) ) THEN
849 *
850 * LQ: LQ factorization
851 *
852  ntypes = 8
853  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
854 *
855  IF( tstchk ) THEN
856  CALL dchklq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
857  $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
858  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
859  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
860  $ work, rwork, nout )
861  ELSE
862  WRITE( nout, fmt = 9989 )path
863  END IF
864 *
865  ELSE IF( lsamen( 2, c2, 'QL' ) ) THEN
866 *
867 * QL: QL factorization
868 *
869  ntypes = 8
870  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
871 *
872  IF( tstchk ) THEN
873  CALL dchkql( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
874  $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
875  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
876  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
877  $ work, rwork, nout )
878  ELSE
879  WRITE( nout, fmt = 9989 )path
880  END IF
881 *
882  ELSE IF( lsamen( 2, c2, 'RQ' ) ) THEN
883 *
884 * RQ: RQ factorization
885 *
886  ntypes = 8
887  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
888 *
889  IF( tstchk ) THEN
890  CALL dchkrq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
891  $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
892  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
893  $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
894  $ work, rwork, iwork, nout )
895  ELSE
896  WRITE( nout, fmt = 9989 )path
897  END IF
898 *
899  ELSE IF( lsamen( 2, c2, 'QP' ) ) THEN
900 *
901 * QP: QR factorization with pivoting
902 *
903  ntypes = 6
904  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
905 *
906  IF( tstchk ) THEN
907  CALL dchkq3( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
908  $ thresh, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
909  $ b( 1, 3 ), work, iwork, nout )
910  ELSE
911  WRITE( nout, fmt = 9989 )path
912  END IF
913 *
914  ELSE IF( lsamen( 2, c2, 'TZ' ) ) THEN
915 *
916 * TZ: Trapezoidal matrix
917 *
918  ntypes = 3
919  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
920 *
921  IF( tstchk ) THEN
922  CALL dchktz( dotype, nm, mval, nn, nval, thresh, tsterr,
923  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
924  $ b( 1, 3 ), work, nout )
925  ELSE
926  WRITE( nout, fmt = 9989 )path
927  END IF
928 *
929  ELSE IF( lsamen( 2, c2, 'LS' ) ) THEN
930 *
931 * LS: Least squares drivers
932 *
933  ntypes = 6
934  CALL alareq( path, nmats, dotype, ntypes, nin, nout )
935 *
936  IF( tstdrv ) THEN
937  CALL ddrvls( dotype, nm, mval, nn, nval, nns, nsval, nnb,
938  $ nbval, nxval, thresh, tsterr, a( 1, 1 ),
939  $ a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
940  $ rwork, rwork( nmax+1 ), nout )
941  ELSE
942  WRITE( nout, fmt = 9988 )path
943  END IF
944 *
945  ELSE IF( lsamen( 2, c2, 'EQ' ) ) THEN
946 *
947 * EQ: Equilibration routines for general and positive definite
948 * matrices (THREQ should be between 2 and 10)
949 *
950  IF( tstchk ) THEN
951  CALL dchkeq( threq, nout )
952  ELSE
953  WRITE( nout, fmt = 9989 )path
954  END IF
955 *
956  ELSE IF( lsamen( 2, c2, 'QT' ) ) THEN
957 *
958 * QT: QRT routines for general matrices
959 *
960  IF( tstchk ) THEN
961  CALL dchkqrt( thresh, tsterr, nm, mval, nn, nval, nnb,
962  $ nbval, nout )
963  ELSE
964  WRITE( nout, fmt = 9989 )path
965  END IF
966 *
967  ELSE IF( lsamen( 2, c2, 'QX' ) ) THEN
968 *
969 * QX: QRT routines for triangular-pentagonal matrices
970 *
971  IF( tstchk ) THEN
972  CALL dchkqrtp( thresh, tsterr, nm, mval, nn, nval, nnb,
973  $ nbval, nout )
974  ELSE
975  WRITE( nout, fmt = 9989 )path
976  END IF
977 *
978  ELSE IF( lsamen( 2, c2, 'TQ' ) ) THEN
979 *
980 * TQ: LQT routines for general matrices
981 *
982  IF( tstchk ) THEN
983  CALL dchklqt( thresh, tsterr, nm, mval, nn, nval, nnb,
984  $ nbval, nout )
985  ELSE
986  WRITE( nout, fmt = 9989 )path
987  END IF
988 *
989  ELSE IF( lsamen( 2, c2, 'XQ' ) ) THEN
990 *
991 * XQ: LQT routines for triangular-pentagonal matrices
992 *
993  IF( tstchk ) THEN
994  CALL dchklqtp( thresh, tsterr, nm, mval, nn, nval, nnb,
995  $ nbval, nout )
996  ELSE
997  WRITE( nout, fmt = 9989 )path
998  END IF
999 *
1000  ELSE IF( lsamen( 2, c2, 'TS' ) ) THEN
1001 *
1002 * TS: QR routines for tall-skinny matrices
1003 *
1004  IF( tstchk ) THEN
1005  CALL dchktsqr( thresh, tsterr, nm, mval, nn, nval, nnb,
1006  $ nbval, nout )
1007  ELSE
1008  WRITE( nout, fmt = 9989 )path
1009  END IF
1010 *
1011  ELSE
1012 *
1013  WRITE( nout, fmt = 9990 )path
1014  END IF
1015 *
1016 * Go back to get another input line.
1017 *
1018  GO TO 80
1019 *
1020 * Branch to this line when the last record is read.
1021 *
1022  140 CONTINUE
1023  CLOSE ( nin )
1024  s2 = dsecnd( )
1025  WRITE( nout, fmt = 9998 )
1026  WRITE( nout, fmt = 9997 )s2 - s1
1027 *
1028  9999 FORMAT( / ' Execution not attempted due to input errors' )
1029  9998 FORMAT( / ' End of tests' )
1030  9997 FORMAT( ' Total time used = ', f12.2, ' seconds', / )
1031  9996 FORMAT( ' Invalid input value: ', a4, '=', i6, '; must be >=',
1032  $ i6 )
1033  9995 FORMAT( ' Invalid input value: ', a4, '=', i6, '; must be <=',
1034  $ i6 )
1035  9994 FORMAT( ' Tests of the DOUBLE PRECISION LAPACK routines ',
1036  $ / ' LAPACK VERSION ', i1, '.', i1, '.', i1,
1037  $ / / ' The following parameter values will be used:' )
1038  9993 FORMAT( 4x, a4, ': ', 10i6, / 11x, 10i6 )
1039  9992 FORMAT( / ' Routines pass computational tests if test ratio is ',
1040  $ 'less than', f8.2, / )
1041  9991 FORMAT( ' Relative machine ', a, ' is taken to be', d16.6 )
1042  9990 FORMAT( / 1x, a3, ': Unrecognized path name' )
1043  9989 FORMAT( / 1x, a3, ' routines were not tested' )
1044  9988 FORMAT( / 1x, a3, ' driver routines were not tested' )
1045 *
1046 * End of DCHKAA
1047 *
1048  END
subroutine dchkqrtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKQRTP
Definition: dchkqrtp.f:104
subroutine dchksy_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY_AA
Definition: dchksy_aa.f:174
subroutine ddrvsp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSP
Definition: ddrvsp.f:158
subroutine ddrvsy_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY_ROOK
Definition: ddrvsy_rook.f:154
subroutine dchktr(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKTR
Definition: dchktr.f:169
subroutine ddrvsy(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY
Definition: ddrvsy.f:154
subroutine dchkqr(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, NOUT)
DCHKQR
Definition: dchkqr.f:203
subroutine dchksy_rook(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY_ROOK
Definition: dchksy_rook.f:173
subroutine dchktz(DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, NOUT)
DCHKTZ
Definition: dchktz.f:134
subroutine dchklqt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKLQT
Definition: dchklqt.f:104
subroutine dchkpb(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKPB
Definition: dchkpb.f:174
subroutine dchkrq(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, NOUT)
DCHKRQ
Definition: dchkrq.f:203
program dchkaa
DCHKAA
Definition: dchkaa.f:110
subroutine dchksp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSP
Definition: dchksp.f:165
subroutine ddrvpb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVPB
Definition: ddrvpb.f:166
subroutine dchkq3(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, IWORK, NOUT)
DCHKQ3
Definition: dchkq3.f:155
subroutine dchkge(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKGE
Definition: dchkge.f:187
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
Definition: alareq.f:92
subroutine dchkps(DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
DCHKPS
Definition: dchkps.f:156
subroutine dchktb(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKTB
Definition: dchktb.f:157
subroutine ddrvsy_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY_RK
Definition: ddrvsy_rk.f:158
subroutine dchklq(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
DCHKLQ
Definition: dchklq.f:198
subroutine ddrvpt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
DDRVPT
Definition: ddrvpt.f:142
subroutine dchkpo(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKPO
Definition: dchkpo.f:174
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
Definition: ilaver.f:50
subroutine dchkqrt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKQRT
Definition: dchkqrt.f:104
subroutine dchksy(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY
Definition: dchksy.f:172
subroutine dchkql(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
DCHKQL
Definition: dchkql.f:198
subroutine dchkgt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKGT
Definition: dchkgt.f:148
subroutine ddrvsy_aa_2stage(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY_AA_2STAGE
subroutine dchksy_rk(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY_RK
Definition: dchksy_rk.f:178
subroutine dchktp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AP, AINVP, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKTP
Definition: dchktp.f:159
subroutine ddrvls(DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, NOUT)
DDRVLS
Definition: ddrvls.f:194
subroutine dchkpp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKPP
Definition: dchkpp.f:165
subroutine dchktsqr(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKQRT
Definition: dchktsqr.f:104
subroutine ddrvpp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVPP
Definition: ddrvpp.f:169
subroutine ddrvge(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVGE
Definition: ddrvge.f:166
subroutine dchkgb(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, A, LA, AFAC, LAFAC, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKGB
Definition: dchkgb.f:193
subroutine dchkpt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
DCHKPT
Definition: dchkpt.f:148
subroutine ddrvgt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVGT
Definition: ddrvgt.f:141
subroutine dchkeq(THRESH, NOUT)
DCHKEQ
Definition: dchkeq.f:56
subroutine dchksy_aa_2stage(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY_AA_2STAGE
subroutine ddrvsy_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY_AA
Definition: ddrvsy_aa.f:156
subroutine ddrvpo(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVPO
Definition: ddrvpo.f:166
subroutine dchklqtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKLQTP
Definition: dchklqtp.f:104
subroutine ddrvgb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVGB
Definition: ddrvgb.f:174