LAPACK  3.10.0
LAPACK: Linear Algebra PACKage

◆ derrgg()

subroutine derrgg ( character*3  PATH,
integer  NUNIT 
)

DERRGG

Purpose:
 DERRGG tests the error exits for DGGES, DGGESX, DGGEV,  DGGEVX,
 DGGGLM, DGGHRD, DGGLSE, DGGQRF, DGGRQF, DGGSVD3,
 DGGSVP3, DHGEQZ, DORCSD, DTGEVC, DTGEXC, DTGSEN, DTGSJA, DTGSNA,
 DGGES3, DGGEV3, and DTGSYL.
Parameters
[in]PATH
          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.
[in]NUNIT
          NUNIT is INTEGER
          The unit number for output.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

Definition at line 56 of file derrgg.f.

57 *
58 * -- LAPACK test routine --
59 * -- LAPACK is a software package provided by Univ. of Tennessee, --
60 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
61 *
62 * .. Scalar Arguments ..
63  CHARACTER*3 PATH
64  INTEGER NUNIT
65 * ..
66 *
67 * =====================================================================
68 *
69 * .. Parameters ..
70  INTEGER NMAX, LW
71  parameter( nmax = 3, lw = 6*nmax )
72  DOUBLE PRECISION ONE, ZERO
73  parameter( one = 1.0d+0, zero = 0.0d+0 )
74 * ..
75 * .. Local Scalars ..
76  CHARACTER*2 C2
77  INTEGER DUMMYK, DUMMYL, I, IFST, ILO, IHI, ILST, INFO,
78  $ J, M, NCYCLE, NT, SDIM, LWORK
79  DOUBLE PRECISION ANRM, BNRM, DIF, SCALE, TOLA, TOLB
80 * ..
81 * .. Local Arrays ..
82  LOGICAL BW( NMAX ), SEL( NMAX )
83  INTEGER IW( NMAX ), IDUM(NMAX)
84  DOUBLE PRECISION A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
85  $ Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
86  $ R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
87  $ TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ),
88  $ W( LW ), Z( NMAX, NMAX )
89 * ..
90 * .. External Functions ..
91  LOGICAL DLCTES, DLCTSX, LSAMEN
92  EXTERNAL dlctes, dlctsx, lsamen
93 * ..
94 * .. External Subroutines ..
95  EXTERNAL chkxer, dgges, dggesx, dggev, dggevx, dggglm,
100 * ..
101 * .. Scalars in Common ..
102  LOGICAL LERR, OK
103  CHARACTER*32 SRNAMT
104  INTEGER INFOT, NOUT
105 * ..
106 * .. Common blocks ..
107  COMMON / infoc / infot, nout, ok, lerr
108  COMMON / srnamc / srnamt
109 * ..
110 * .. Executable Statements ..
111 *
112  nout = nunit
113  WRITE( nout, fmt = * )
114  c2 = path( 2: 3 )
115 *
116 * Set the variables to innocuous values.
117 *
118  DO 20 j = 1, nmax
119  sel( j ) = .true.
120  DO 10 i = 1, nmax
121  a( i, j ) = zero
122  b( i, j ) = zero
123  10 CONTINUE
124  20 CONTINUE
125  DO 30 i = 1, nmax
126  a( i, i ) = one
127  b( i, i ) = one
128  30 CONTINUE
129  ok = .true.
130  tola = 1.0d0
131  tolb = 1.0d0
132  ifst = 1
133  ilst = 1
134  nt = 0
135  lwork = 1
136 *
137 * Call XLAENV to set the parameters used in CLAQZ0
138 *
139  CALL xlaenv( 12, 10 )
140  CALL xlaenv( 13, 12 )
141  CALL xlaenv( 14, 13 )
142  CALL xlaenv( 15, 2 )
143  CALL xlaenv( 17, 10 )
144 *
145 * Test error exits for the GG path.
146 *
147  IF( lsamen( 2, c2, 'GG' ) ) THEN
148 *
149 * DGGHRD
150 *
151  srnamt = 'DGGHRD'
152  infot = 1
153  CALL dgghrd( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
154  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
155  infot = 2
156  CALL dgghrd( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
157  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
158  infot = 3
159  CALL dgghrd( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
160  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
161  infot = 4
162  CALL dgghrd( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
163  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
164  infot = 5
165  CALL dgghrd( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
166  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
167  infot = 7
168  CALL dgghrd( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
169  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
170  infot = 9
171  CALL dgghrd( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
172  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
173  infot = 11
174  CALL dgghrd( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
175  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
176  infot = 13
177  CALL dgghrd( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
178  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
179  nt = nt + 9
180 *
181 * DGGHD3
182 *
183  srnamt = 'DGGHD3'
184  infot = 1
185  CALL dgghd3( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
186  $ info )
187  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
188  infot = 2
189  CALL dgghd3( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
190  $ info )
191  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
192  infot = 3
193  CALL dgghd3( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
194  $ info )
195  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
196  infot = 4
197  CALL dgghd3( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
198  $ info )
199  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
200  infot = 5
201  CALL dgghd3( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
202  $ info )
203  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
204  infot = 7
205  CALL dgghd3( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
206  $ info )
207  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
208  infot = 9
209  CALL dgghd3( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
210  $ info )
211  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
212  infot = 11
213  CALL dgghd3( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
214  $ info )
215  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
216  infot = 13
217  CALL dgghd3( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
218  $ info )
219  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
220  nt = nt + 9
221 *
222 * DHGEQZ
223 *
224  srnamt = 'DHGEQZ'
225  infot = 1
226  CALL dhgeqz( '/', 'N', 'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
227  $ 1, z, 1, w, lw, info )
228  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
229  infot = 2
230  CALL dhgeqz( 'E', '/', 'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
231  $ 1, z, 1, w, lw, info )
232  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
233  infot = 3
234  CALL dhgeqz( 'E', 'N', '/', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
235  $ 1, z, 1, w, lw, info )
236  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
237  infot = 4
238  CALL dhgeqz( 'E', 'N', 'N', -1, 0, 0, a, 1, b, 1, r1, r2, r3,
239  $ q, 1, z, 1, w, lw, info )
240  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
241  infot = 5
242  CALL dhgeqz( 'E', 'N', 'N', 0, 0, 0, a, 1, b, 1, r1, r2, r3, q,
243  $ 1, z, 1, w, lw, info )
244  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
245  infot = 6
246  CALL dhgeqz( 'E', 'N', 'N', 0, 1, 1, a, 1, b, 1, r1, r2, r3, q,
247  $ 1, z, 1, w, lw, info )
248  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
249  infot = 8
250  CALL dhgeqz( 'E', 'N', 'N', 2, 1, 1, a, 1, b, 2, r1, r2, r3, q,
251  $ 1, z, 1, w, lw, info )
252  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
253  infot = 10
254  CALL dhgeqz( 'E', 'N', 'N', 2, 1, 1, a, 2, b, 1, r1, r2, r3, q,
255  $ 1, z, 1, w, lw, info )
256  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
257  infot = 15
258  CALL dhgeqz( 'E', 'V', 'N', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
259  $ 1, z, 1, w, lw, info )
260  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
261  infot = 17
262  CALL dhgeqz( 'E', 'N', 'V', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
263  $ 1, z, 1, w, lw, info )
264  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
265  nt = nt + 10
266 *
267 * DTGEVC
268 *
269  srnamt = 'DTGEVC'
270  infot = 1
271  CALL dtgevc( '/', 'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
272  $ info )
273  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
274  infot = 2
275  CALL dtgevc( 'R', '/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
276  $ info )
277  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
278  infot = 4
279  CALL dtgevc( 'R', 'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
280  $ w, info )
281  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
282  infot = 6
283  CALL dtgevc( 'R', 'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
284  $ info )
285  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
286  infot = 8
287  CALL dtgevc( 'R', 'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
288  $ info )
289  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
290  infot = 10
291  CALL dtgevc( 'L', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
292  $ info )
293  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
294  infot = 12
295  CALL dtgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
296  $ info )
297  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
298  infot = 13
299  CALL dtgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
300  $ info )
301  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
302  nt = nt + 8
303 *
304 * Test error exits for the GSV path.
305 *
306  ELSE IF( lsamen( 3, path, 'GSV' ) ) THEN
307 *
308 * DGGSVD3
309 *
310  srnamt = 'DGGSVD3'
311  infot = 1
312  CALL dggsvd3( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
313  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
314  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
315  infot = 2
316  CALL dggsvd3( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
317  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
318  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
319  infot = 3
320  CALL dggsvd3( 'N', 'N', '/', 0, 0, 0, dummyk, dummyl, a, 1, b,
321  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
322  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
323  infot = 4
324  CALL dggsvd3( 'N', 'N', 'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
325  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
326  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
327  infot = 5
328  CALL dggsvd3( 'N', 'N', 'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
329  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
330  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
331  infot = 6
332  CALL dggsvd3( 'N', 'N', 'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
333  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
334  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
335  infot = 10
336  CALL dggsvd3( 'N', 'N', 'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
337  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
338  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
339  infot = 12
340  CALL dggsvd3( 'N', 'N', 'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
341  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
342  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
343  infot = 16
344  CALL dggsvd3( 'U', 'N', 'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
345  $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
346  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
347  infot = 18
348  CALL dggsvd3( 'N', 'V', 'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
349  $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
350  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
351  infot = 20
352  CALL dggsvd3( 'N', 'N', 'Q', 1, 2, 1, dummyk, dummyl, a, 1, b,
353  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
354  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
355  nt = nt + 11
356 *
357 * DGGSVP3
358 *
359  srnamt = 'DGGSVP3'
360  infot = 1
361  CALL dggsvp3( '/', 'N', 'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
362  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
363  $ lwork, info )
364  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
365  infot = 2
366  CALL dggsvp3( 'N', '/', 'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
367  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
368  $ lwork, info )
369  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
370  infot = 3
371  CALL dggsvp3( 'N', 'N', '/', 0, 0, 0, a, 1, b, 1, tola, tolb,
372  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
373  $ lwork, info )
374  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
375  infot = 4
376  CALL dggsvp3( 'N', 'N', 'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
377  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
378  $ lwork, info )
379  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
380  infot = 5
381  CALL dggsvp3( 'N', 'N', 'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
382  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
383  $ lwork, info )
384  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
385  infot = 6
386  CALL dggsvp3( 'N', 'N', 'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
387  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
388  $ lwork, info )
389  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
390  infot = 8
391  CALL dggsvp3( 'N', 'N', 'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
392  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
393  $ lwork, info )
394  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
395  infot = 10
396  CALL dggsvp3( 'N', 'N', 'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
397  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
398  $ lwork, info )
399  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
400  infot = 16
401  CALL dggsvp3( 'U', 'N', 'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
402  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
403  $ lwork, info )
404  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
405  infot = 18
406  CALL dggsvp3( 'N', 'V', 'N', 1, 2, 1, a, 1, b, 2, tola, tolb,
407  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
408  $ lwork, info )
409  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
410  infot = 20
411  CALL dggsvp3( 'N', 'N', 'Q', 1, 1, 2, a, 1, b, 1, tola, tolb,
412  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
413  $ lwork, info )
414  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
415  nt = nt + 11
416 *
417 * DTGSJA
418 *
419  srnamt = 'DTGSJA'
420  infot = 1
421  CALL dtgsja( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
422  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
423  $ ncycle, info )
424  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
425  infot = 2
426  CALL dtgsja( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
427  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
428  $ ncycle, info )
429  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
430  infot = 3
431  CALL dtgsja( 'N', 'N', '/', 0, 0, 0, dummyk, dummyl, a, 1, b,
432  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
433  $ ncycle, info )
434  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
435  infot = 4
436  CALL dtgsja( 'N', 'N', 'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
437  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
438  $ ncycle, info )
439  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
440  infot = 5
441  CALL dtgsja( 'N', 'N', 'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
442  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
443  $ ncycle, info )
444  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
445  infot = 6
446  CALL dtgsja( 'N', 'N', 'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
447  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
448  $ ncycle, info )
449  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
450  infot = 10
451  CALL dtgsja( 'N', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
452  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
453  $ ncycle, info )
454  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
455  infot = 12
456  CALL dtgsja( 'N', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
457  $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
458  $ ncycle, info )
459  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
460  infot = 18
461  CALL dtgsja( 'U', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
462  $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
463  $ ncycle, info )
464  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
465  infot = 20
466  CALL dtgsja( 'N', 'V', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
467  $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
468  $ ncycle, info )
469  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
470  infot = 22
471  CALL dtgsja( 'N', 'N', 'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
472  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
473  $ ncycle, info )
474  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
475  nt = nt + 11
476 *
477 * Test error exits for the GLM path.
478 *
479  ELSE IF( lsamen( 3, path, 'GLM' ) ) THEN
480 *
481 * DGGGLM
482 *
483  srnamt = 'DGGGLM'
484  infot = 1
485  CALL dggglm( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
486  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
487  infot = 2
488  CALL dggglm( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
489  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
490  infot = 2
491  CALL dggglm( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
492  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
493  infot = 3
494  CALL dggglm( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
495  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
496  infot = 3
497  CALL dggglm( 1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
498  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
499  infot = 5
500  CALL dggglm( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
501  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
502  infot = 7
503  CALL dggglm( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
504  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
505  infot = 12
506  CALL dggglm( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
507  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
508  nt = nt + 8
509 *
510 * Test error exits for the LSE path.
511 *
512  ELSE IF( lsamen( 3, path, 'LSE' ) ) THEN
513 *
514 * DGGLSE
515 *
516  srnamt = 'DGGLSE'
517  infot = 1
518  CALL dgglse( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
519  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
520  infot = 2
521  CALL dgglse( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
522  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
523  infot = 3
524  CALL dgglse( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
525  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
526  infot = 3
527  CALL dgglse( 0, 0, 1, a, 1, b, 1, r1, r2, r3, w, lw, info )
528  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
529  infot = 3
530  CALL dgglse( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
531  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
532  infot = 5
533  CALL dgglse( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
534  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
535  infot = 7
536  CALL dgglse( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
537  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
538  infot = 12
539  CALL dgglse( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
540  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
541  nt = nt + 8
542 *
543 * Test error exits for the CSD path.
544 *
545  ELSE IF( lsamen( 3, path, 'CSD' ) ) THEN
546 *
547 * DORCSD
548 *
549  srnamt = 'DORCSD'
550  infot = 7
551  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
552  $ -1, 0, 0, a, 1, a,
553  $ 1, a, 1, a, 1, a,
554  $ a, 1, a, 1, a, 1, a,
555  $ 1, w, lw, iw, info )
556  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
557  infot = 8
558  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
559  $ 1, -1, 0, a, 1, a,
560  $ 1, a, 1, a, 1, a,
561  $ a, 1, a, 1, a, 1, a,
562  $ 1, w, lw, iw, info )
563  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
564  infot = 9
565  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
566  $ 1, 1, -1, a, 1, a,
567  $ 1, a, 1, a, 1, a,
568  $ a, 1, a, 1, a, 1, a,
569  $ 1, w, lw, iw, info )
570  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
571  infot = 11
572  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
573  $ 1, 1, 1, a, -1, a,
574  $ 1, a, 1, a, 1, a,
575  $ a, 1, a, 1, a, 1, a,
576  $ 1, w, lw, iw, info )
577  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
578  infot = 20
579  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
580  $ 1, 1, 1, a, 1, a,
581  $ 1, a, 1, a, 1, a,
582  $ a, -1, a, 1, a, 1, a,
583  $ 1, w, lw, iw, info )
584  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
585  infot = 22
586  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
587  $ 1, 1, 1, a, 1, a,
588  $ 1, a, 1, a, 1, a,
589  $ a, 1, a, -1, a, 1, a,
590  $ 1, w, lw, iw, info )
591  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
592  infot = 24
593  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
594  $ 1, 1, 1, a, 1, a,
595  $ 1, a, 1, a, 1, a,
596  $ a, 1, a, 1, a, -1, a,
597  $ 1, w, lw, iw, info )
598  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
599  infot = 26
600  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
601  $ 1, 1, 1, a, 1, a,
602  $ 1, a, 1, a, 1, a,
603  $ a, 1, a, 1, a, 1, a,
604  $ -1, w, lw, iw, info )
605  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
606  nt = nt + 8
607 *
608 * Test error exits for the GQR path.
609 *
610  ELSE IF( lsamen( 3, path, 'GQR' ) ) THEN
611 *
612 * DGGQRF
613 *
614  srnamt = 'DGGQRF'
615  infot = 1
616  CALL dggqrf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
617  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
618  infot = 2
619  CALL dggqrf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
620  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
621  infot = 3
622  CALL dggqrf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
623  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
624  infot = 5
625  CALL dggqrf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
626  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
627  infot = 8
628  CALL dggqrf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
629  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
630  infot = 11
631  CALL dggqrf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
632  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
633  nt = nt + 6
634 *
635 * DGGRQF
636 *
637  srnamt = 'DGGRQF'
638  infot = 1
639  CALL dggrqf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
640  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
641  infot = 2
642  CALL dggrqf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
643  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
644  infot = 3
645  CALL dggrqf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
646  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
647  infot = 5
648  CALL dggrqf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
649  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
650  infot = 8
651  CALL dggrqf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
652  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
653  infot = 11
654  CALL dggrqf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
655  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
656  nt = nt + 6
657 *
658 * Test error exits for the DGS, DGV, DGX, and DXV paths.
659 *
660  ELSE IF( lsamen( 3, path, 'DGS' ) .OR.
661  $ lsamen( 3, path, 'DGV' ) .OR.
662  $ lsamen( 3, path, 'DGX' ) .OR. lsamen( 3, path, 'DXV' ) )
663  $ THEN
664 *
665 * DGGES
666 *
667  srnamt = 'DGGES '
668  infot = 1
669  CALL dgges( '/', 'N', 'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
670  $ r3, q, 1, u, 1, w, 1, bw, info )
671  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
672  infot = 2
673  CALL dgges( 'N', '/', 'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
674  $ r3, q, 1, u, 1, w, 1, bw, info )
675  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
676  infot = 3
677  CALL dgges( 'N', 'V', '/', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
678  $ r3, q, 1, u, 1, w, 1, bw, info )
679  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
680  infot = 5
681  CALL dgges( 'N', 'V', 'S', dlctes, -1, a, 1, b, 1, sdim, r1,
682  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
683  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
684  infot = 7
685  CALL dgges( 'N', 'V', 'S', dlctes, 1, a, 0, b, 1, sdim, r1, r2,
686  $ r3, q, 1, u, 1, w, 1, bw, info )
687  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
688  infot = 9
689  CALL dgges( 'N', 'V', 'S', dlctes, 1, a, 1, b, 0, sdim, r1, r2,
690  $ r3, q, 1, u, 1, w, 1, bw, info )
691  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
692  infot = 15
693  CALL dgges( 'N', 'V', 'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
694  $ r3, q, 0, u, 1, w, 1, bw, info )
695  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
696  infot = 15
697  CALL dgges( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
698  $ r3, q, 1, u, 2, w, 1, bw, info )
699  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
700  infot = 17
701  CALL dgges( 'N', 'V', 'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
702  $ r3, q, 1, u, 0, w, 1, bw, info )
703  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
704  infot = 17
705  CALL dgges( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
706  $ r3, q, 2, u, 1, w, 1, bw, info )
707  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
708  infot = 19
709  CALL dgges( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
710  $ r3, q, 2, u, 2, w, 1, bw, info )
711  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
712  nt = nt + 11
713 *
714 * DGGES3
715 *
716  srnamt = 'DGGES3 '
717  infot = 1
718  CALL dgges3( '/', 'N', 'S', dlctes, 1, a, 1, b, 1, sdim, r1,
719  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
720  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
721  infot = 2
722  CALL dgges3( 'N', '/', 'S', dlctes, 1, a, 1, b, 1, sdim, r1,
723  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
724  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
725  infot = 3
726  CALL dgges3( 'N', 'V', '/', dlctes, 1, a, 1, b, 1, sdim, r1,
727  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
728  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
729  infot = 5
730  CALL dgges3( 'N', 'V', 'S', dlctes, -1, a, 1, b, 1, sdim, r1,
731  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
732  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
733  infot = 7
734  CALL dgges3( 'N', 'V', 'S', dlctes, 1, a, 0, b, 1, sdim, r1,
735  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
736  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
737  infot = 9
738  CALL dgges3( 'N', 'V', 'S', dlctes, 1, a, 1, b, 0, sdim, r1,
739  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
740  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
741  infot = 15
742  CALL dgges3( 'N', 'V', 'S', dlctes, 1, a, 1, b, 1, sdim, r1,
743  $ r2, r3, q, 0, u, 1, w, 1, bw, info )
744  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
745  infot = 15
746  CALL dgges3( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1,
747  $ r2, r3, q, 1, u, 2, w, 1, bw, info )
748  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
749  infot = 17
750  CALL dgges3( 'N', 'V', 'S', dlctes, 1, a, 1, b, 1, sdim, r1,
751  $ r2, r3, q, 1, u, 0, w, 1, bw, info )
752  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
753  infot = 17
754  CALL dgges3( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1,
755  $ r2, r3, q, 2, u, 1, w, 1, bw, info )
756  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
757  infot = 19
758  CALL dgges3( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1,
759  $ r2, r3, q, 2, u, 2, w, 1, bw, info )
760  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
761  nt = nt + 11
762 *
763 * DGGESX
764 *
765  srnamt = 'DGGESX'
766  infot = 1
767  CALL dggesx( '/', 'N', 'S', dlctsx, 'N', 1, a, 1, b, 1, sdim,
768  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
769  $ info )
770  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
771  infot = 2
772  CALL dggesx( 'N', '/', 'S', dlctsx, 'N', 1, a, 1, b, 1, sdim,
773  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
774  $ info )
775  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
776  infot = 3
777  CALL dggesx( 'V', 'V', '/', dlctsx, 'N', 1, a, 1, b, 1, sdim,
778  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
779  $ info )
780  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
781  infot = 5
782  CALL dggesx( 'V', 'V', 'S', dlctsx, '/', 1, a, 1, b, 1, sdim,
783  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
784  $ info )
785  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
786  infot = 6
787  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', -1, a, 1, b, 1, sdim,
788  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
789  $ info )
790  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
791  infot = 8
792  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 1, a, 0, b, 1, sdim,
793  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
794  $ info )
795  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
796  infot = 10
797  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 1, a, 1, b, 0, sdim,
798  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
799  $ info )
800  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
801  infot = 16
802  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 1, a, 1, b, 1, sdim,
803  $ r1, r2, r3, q, 0, u, 1, rce, rcv, w, 1, iw, 1, bw,
804  $ info )
805  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
806  infot = 16
807  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 2, a, 2, b, 2, sdim,
808  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
809  $ info )
810  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
811  infot = 18
812  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 1, a, 1, b, 1, sdim,
813  $ r1, r2, r3, q, 1, u, 0, rce, rcv, w, 1, iw, 1, bw,
814  $ info )
815  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
816  infot = 18
817  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 2, a, 2, b, 2, sdim,
818  $ r1, r2, r3, q, 2, u, 1, rce, rcv, w, 1, iw, 1, bw,
819  $ info )
820  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
821  infot = 22
822  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 2, a, 2, b, 2, sdim,
823  $ r1, r2, r3, q, 2, u, 2, rce, rcv, w, 1, iw, 1, bw,
824  $ info )
825  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
826  infot = 24
827  CALL dggesx( 'V', 'V', 'S', dlctsx, 'V', 1, a, 1, b, 1, sdim,
828  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 32, iw, 0,
829  $ bw, info )
830  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
831  nt = nt + 13
832 *
833 * DGGEV
834 *
835  srnamt = 'DGGEV '
836  infot = 1
837  CALL dggev( '/', 'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
838  $ 1, info )
839  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
840  infot = 2
841  CALL dggev( 'N', '/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
842  $ 1, info )
843  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
844  infot = 3
845  CALL dggev( 'V', 'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
846  $ w, 1, info )
847  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
848  infot = 5
849  CALL dggev( 'V', 'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1, w,
850  $ 1, info )
851  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
852  infot = 7
853  CALL dggev( 'V', 'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1, w,
854  $ 1, info )
855  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
856  infot = 12
857  CALL dggev( 'N', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1, w,
858  $ 1, info )
859  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
860  infot = 12
861  CALL dggev( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2, w,
862  $ 1, info )
863  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
864  infot = 14
865  CALL dggev( 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0, w,
866  $ 1, info )
867  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
868  infot = 14
869  CALL dggev( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1, w,
870  $ 1, info )
871  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
872  infot = 16
873  CALL dggev( 'V', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
874  $ 1, info )
875  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
876  nt = nt + 10
877 *
878 * DGGEV3
879 *
880  CALL xlaenv( 12, 20 )
881  CALL xlaenv( 13, 4 )
882  CALL xlaenv( 14, 13 )
883  CALL xlaenv( 15, 2 )
884  CALL xlaenv( 17, 10 )
885  srnamt = 'DGGEV3 '
886  infot = 1
887  CALL dggev3( '/', 'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
888  $ w, 1, info )
889  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
890  infot = 2
891  CALL dggev3( 'N', '/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
892  $ w, 1, info )
893  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
894  infot = 3
895  CALL dggev3( 'V', 'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
896  $ w, 1, info )
897  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
898  infot = 5
899  CALL dggev3( 'V', 'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1,
900  $ w, 1, info )
901  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
902  infot = 7
903  CALL dggev3( 'V', 'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1,
904  $ w, 1, info )
905  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
906  infot = 12
907  CALL dggev3( 'N', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1,
908  $ w, 1, info )
909  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
910  infot = 12
911  CALL dggev3( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2,
912  $ w, 1, info )
913  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
914  infot = 14
915  CALL dggev3( 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0,
916  $ w, 1, info )
917  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
918  infot = 14
919  CALL dggev3( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1,
920  $ w, 1, info )
921  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
922  infot = 16
923  CALL dggev3( 'V', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
924  $ w, 1, info )
925  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
926  nt = nt + 10
927 *
928 * DGGEVX
929 *
930  srnamt = 'DGGEVX'
931  infot = 1
932  CALL dggevx( '/', 'N', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
933  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
934  $ w, 1, iw, bw, info )
935  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
936  infot = 2
937  CALL dggevx( 'N', '/', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
938  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
939  $ w, 1, iw, bw, info )
940  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
941  infot = 3
942  CALL dggevx( 'N', 'N', '/', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
943  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
944  $ w, 1, iw, bw, info )
945  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
946  infot = 4
947  CALL dggevx( 'N', 'N', 'N', '/', 1, a, 1, b, 1, r1, r2, r3, q,
948  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
949  $ w, 1, iw, bw, info )
950  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
951  infot = 5
952  CALL dggevx( 'N', 'N', 'N', 'N', -1, a, 1, b, 1, r1, r2, r3, q,
953  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
954  $ w, 1, iw, bw, info )
955  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
956  infot = 7
957  CALL dggevx( 'N', 'N', 'N', 'N', 1, a, 0, b, 1, r1, r2, r3, q,
958  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
959  $ w, 1, iw, bw, info )
960  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
961  infot = 9
962  CALL dggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 0, r1, r2, r3, q,
963  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
964  $ w, 1, iw, bw, info )
965  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
966  infot = 14
967  CALL dggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
968  $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
969  $ w, 1, iw, bw, info )
970  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
971  infot = 14
972  CALL dggevx( 'N', 'V', 'N', 'N', 2, a, 2, b, 2, r1, r2, r3, q,
973  $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
974  $ w, 1, iw, bw, info )
975  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
976  infot = 16
977  CALL dggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
978  $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
979  $ w, 1, iw, bw, info )
980  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
981  infot = 16
982  CALL dggevx( 'N', 'N', 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q,
983  $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
984  $ w, 1, iw, bw, info )
985  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
986  infot = 26
987  CALL dggevx( 'N', 'N', 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q,
988  $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
989  $ w, 1, iw, bw, info )
990  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
991  nt = nt + 12
992 *
993 * DTGEXC
994 *
995  srnamt = 'DTGEXC'
996  infot = 3
997  CALL dtgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
998  $ ilst, w, 1, info )
999  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1000  infot = 5
1001  CALL dtgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1002  $ ilst, w, 1, info )
1003  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1004  infot = 7
1005  CALL dtgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1006  $ ilst, w, 1, info )
1007  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1008  infot = 9
1009  CALL dtgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1010  $ ilst, w, 1, info )
1011  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1012  infot = 9
1013  CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1014  $ ilst, w, 1, info )
1015  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1016  infot = 11
1017  CALL dtgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1018  $ ilst, w, 1, info )
1019  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1020  infot = 11
1021  CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1022  $ ilst, w, 1, info )
1023  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1024  infot = 15
1025  CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 1, ifst,
1026  $ ilst, w, 0, info )
1027  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1028  nt = nt + 8
1029 *
1030 * DTGSEN
1031 *
1032  srnamt = 'DTGSEN'
1033  infot = 1
1034  CALL dtgsen( -1, .true., .true., sel, 1, a, 1, b, 1, r1, r2,
1035  $ r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1036  $ info )
1037  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1038  infot = 5
1039  CALL dtgsen( 1, .true., .true., sel, -1, a, 1, b, 1, r1, r2,
1040  $ r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1041  $ info )
1042  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1043  infot = 7
1044  CALL dtgsen( 1, .true., .true., sel, 1, a, 0, b, 1, r1, r2, r3,
1045  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1046  $ info )
1047  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1048  infot = 9
1049  CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 0, r1, r2, r3,
1050  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1051  $ info )
1052  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1053  infot = 14
1054  CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1055  $ q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1056  $ info )
1057  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1058  infot = 16
1059  CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1060  $ q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
1061  $ info )
1062  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1063  infot = 22
1064  CALL dtgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1065  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1066  $ info )
1067  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1068  infot = 22
1069  CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1070  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1071  $ info )
1072  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1073  infot = 22
1074  CALL dtgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1075  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1076  $ info )
1077  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1078  infot = 24
1079  CALL dtgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1080  $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
1081  $ info )
1082  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1083  infot = 24
1084  CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1085  $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
1086  $ info )
1087  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1088  infot = 24
1089  CALL dtgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1090  $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 1,
1091  $ info )
1092  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1093  nt = nt + 12
1094 *
1095 * DTGSNA
1096 *
1097  srnamt = 'DTGSNA'
1098  infot = 1
1099  CALL dtgsna( '/', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1100  $ 1, m, w, 1, iw, info )
1101  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1102  infot = 2
1103  CALL dtgsna( 'B', '/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1104  $ 1, m, w, 1, iw, info )
1105  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1106  infot = 4
1107  CALL dtgsna( 'B', 'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1108  $ 1, m, w, 1, iw, info )
1109  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1110  infot = 6
1111  CALL dtgsna( 'B', 'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1112  $ 1, m, w, 1, iw, info )
1113  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1114  infot = 8
1115  CALL dtgsna( 'B', 'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1116  $ 1, m, w, 1, iw, info )
1117  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1118  infot = 10
1119  CALL dtgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1120  $ 1, m, w, 1, iw, info )
1121  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1122  infot = 12
1123  CALL dtgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1124  $ 1, m, w, 1, iw, info )
1125  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1126  infot = 15
1127  CALL dtgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1128  $ 0, m, w, 1, iw, info )
1129  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1130  infot = 18
1131  CALL dtgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1132  $ 1, m, w, 0, iw, info )
1133  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1134  nt = nt + 9
1135 *
1136 * DTGSYL
1137 *
1138  srnamt = 'DTGSYL'
1139  infot = 1
1140  CALL dtgsyl( '/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1141  $ scale, dif, w, 1, iw, info )
1142  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1143  infot = 2
1144  CALL dtgsyl( 'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1145  $ scale, dif, w, 1, iw, info )
1146  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1147  infot = 3
1148  CALL dtgsyl( 'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1149  $ scale, dif, w, 1, iw, info )
1150  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1151  infot = 4
1152  CALL dtgsyl( 'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1153  $ scale, dif, w, 1, iw, info )
1154  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1155  infot = 6
1156  CALL dtgsyl( 'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1157  $ scale, dif, w, 1, iw, info )
1158  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1159  infot = 8
1160  CALL dtgsyl( 'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1161  $ scale, dif, w, 1, iw, info )
1162  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1163  infot = 10
1164  CALL dtgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1165  $ scale, dif, w, 1, iw, info )
1166  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1167  infot = 12
1168  CALL dtgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1169  $ scale, dif, w, 1, iw, info )
1170  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1171  infot = 14
1172  CALL dtgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1173  $ scale, dif, w, 1, iw, info )
1174  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1175  infot = 16
1176  CALL dtgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1177  $ scale, dif, w, 1, iw, info )
1178  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1179  infot = 20
1180  CALL dtgsyl( 'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1181  $ scale, dif, w, 1, iw, info )
1182  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1183  infot = 20
1184  CALL dtgsyl( 'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1185  $ scale, dif, w, 1, iw, info )
1186  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1187  nt = nt + 12
1188  END IF
1189 *
1190 * Print a summary line.
1191 *
1192  IF( ok ) THEN
1193  WRITE( nout, fmt = 9999 )path, nt
1194  ELSE
1195  WRITE( nout, fmt = 9998 )path
1196  END IF
1197 *
1198  9999 FORMAT( 1x, a3, ' routines passed the tests of the error exits (',
1199  $ i3, ' tests done)' )
1200  9998 FORMAT( ' *** ', a3, ' routines failed the tests of the error ',
1201  $ 'exits ***' )
1202 *
1203  RETURN
1204 *
1205 * End of DERRGG
1206 *
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
logical function lsamen(N, CA, CB)
LSAMEN
Definition: lsamen.f:74
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
Definition: xlaenv.f:81
logical function dlctsx(AR, AI, BETA)
DLCTSX
Definition: dlctsx.f:65
logical function dlctes(ZR, ZI, D)
DLCTES
Definition: dlctes.f:68
subroutine dhgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHAR, ALPHAI, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
DHGEQZ
Definition: dhgeqz.f:304
subroutine dtgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, WORK, LWORK, INFO)
DTGEXC
Definition: dtgexc.f:220
subroutine dtgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, INFO)
DTGEVC
Definition: dtgevc.f:295
subroutine dggev3(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO)
DGGEV3 computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices (...
Definition: dggev3.f:226
subroutine dgges3(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, BWORK, INFO)
DGGES3 computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
Definition: dgges3.f:282
subroutine dggev(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO)
DGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
Definition: dggev.f:226
subroutine dggevx(BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, ILO, IHI, LSCALE, RSCALE, ABNRM, BBNRM, RCONDE, RCONDV, WORK, LWORK, IWORK, BWORK, INFO)
DGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
Definition: dggevx.f:391
subroutine dgges(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, BWORK, INFO)
DGGES computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE m...
Definition: dgges.f:284
subroutine dggesx(JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, LDA, B, LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, RCONDE, RCONDV, WORK, LWORK, IWORK, LIWORK, BWORK, INFO)
DGGESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
Definition: dggesx.f:365
subroutine dggsvd3(JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, LWORK, IWORK, INFO)
DGGSVD3 computes the singular value decomposition (SVD) for OTHER matrices
Definition: dggsvd3.f:349
subroutine dgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
DGGHRD
Definition: dgghrd.f:207
subroutine dggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
DGGRQF
Definition: dggrqf.f:214
recursive subroutine dorcsd(JOBU1, JOBU2, JOBV1T, JOBV2T, TRANS, SIGNS, M, P, Q, X11, LDX11, X12, LDX12, X21, LDX21, X22, LDX22, THETA, U1, LDU1, U2, LDU2, V1T, LDV1T, V2T, LDV2T, WORK, LWORK, IWORK, INFO)
DORCSD
Definition: dorcsd.f:300
subroutine dtgsna(JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO)
DTGSNA
Definition: dtgsna.f:381
subroutine dtgsja(JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, NCYCLE, INFO)
DTGSJA
Definition: dtgsja.f:378
subroutine dggsvp3(JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, TAU, WORK, LWORK, INFO)
DGGSVP3
Definition: dggsvp3.f:272
subroutine dgghd3(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
DGGHD3
Definition: dgghd3.f:230
subroutine dtgsen(IJOB, WANTQ, WANTZ, SELECT, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, Q, LDQ, Z, LDZ, M, PL, PR, DIF, WORK, LWORK, IWORK, LIWORK, INFO)
DTGSEN
Definition: dtgsen.f:451
subroutine dggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
DGGQRF
Definition: dggqrf.f:215
subroutine dggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
DGGGLM
Definition: dggglm.f:185
subroutine dgglse(M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO)
DGGLSE solves overdetermined or underdetermined systems for OTHER matrices
Definition: dgglse.f:180
subroutine dtgsyl(TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO)
DTGSYL
Definition: dtgsyl.f:299
Here is the call graph for this function:
Here is the caller graph for this function: