LAPACK  3.9.1
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,
99  $ dggsvd3, dggsvp3
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 * Test error exits for the GG path.
138 *
139  IF( lsamen( 2, c2, 'GG' ) ) THEN
140 *
141 * DGGHRD
142 *
143  srnamt = 'DGGHRD'
144  infot = 1
145  CALL dgghrd( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
146  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
147  infot = 2
148  CALL dgghrd( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
149  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
150  infot = 3
151  CALL dgghrd( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
152  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
153  infot = 4
154  CALL dgghrd( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
155  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
156  infot = 5
157  CALL dgghrd( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
158  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
159  infot = 7
160  CALL dgghrd( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
161  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
162  infot = 9
163  CALL dgghrd( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
164  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
165  infot = 11
166  CALL dgghrd( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
167  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
168  infot = 13
169  CALL dgghrd( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
170  CALL chkxer( 'DGGHRD', infot, nout, lerr, ok )
171  nt = nt + 9
172 *
173 * DGGHD3
174 *
175  srnamt = 'DGGHD3'
176  infot = 1
177  CALL dgghd3( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
178  $ info )
179  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
180  infot = 2
181  CALL dgghd3( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
182  $ info )
183  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
184  infot = 3
185  CALL dgghd3( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
186  $ info )
187  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
188  infot = 4
189  CALL dgghd3( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
190  $ info )
191  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
192  infot = 5
193  CALL dgghd3( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
194  $ info )
195  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
196  infot = 7
197  CALL dgghd3( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
198  $ info )
199  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
200  infot = 9
201  CALL dgghd3( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
202  $ info )
203  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
204  infot = 11
205  CALL dgghd3( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
206  $ info )
207  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
208  infot = 13
209  CALL dgghd3( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
210  $ info )
211  CALL chkxer( 'DGGHD3', infot, nout, lerr, ok )
212  nt = nt + 9
213 *
214 * DHGEQZ
215 *
216  srnamt = 'DHGEQZ'
217  infot = 1
218  CALL dhgeqz( '/', 'N', 'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
219  $ 1, z, 1, w, lw, info )
220  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
221  infot = 2
222  CALL dhgeqz( 'E', '/', 'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
223  $ 1, z, 1, w, lw, info )
224  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
225  infot = 3
226  CALL dhgeqz( 'E', '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 = 4
230  CALL dhgeqz( 'E', 'N', 'N', -1, 0, 0, a, 1, b, 1, r1, r2, r3,
231  $ q, 1, z, 1, w, lw, info )
232  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
233  infot = 5
234  CALL dhgeqz( 'E', 'N', 'N', 0, 0, 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 = 6
238  CALL dhgeqz( 'E', 'N', 'N', 0, 1, 1, a, 1, b, 1, r1, r2, r3, q,
239  $ 1, z, 1, w, lw, info )
240  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
241  infot = 8
242  CALL dhgeqz( 'E', 'N', 'N', 2, 1, 1, a, 1, b, 2, r1, r2, r3, q,
243  $ 1, z, 1, w, lw, info )
244  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
245  infot = 10
246  CALL dhgeqz( 'E', 'N', 'N', 2, 1, 1, a, 2, b, 1, r1, r2, r3, q,
247  $ 1, z, 1, w, lw, info )
248  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
249  infot = 15
250  CALL dhgeqz( 'E', 'V', 'N', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
251  $ 1, z, 1, w, lw, info )
252  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
253  infot = 17
254  CALL dhgeqz( 'E', 'N', 'V', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
255  $ 1, z, 1, w, lw, info )
256  CALL chkxer( 'DHGEQZ', infot, nout, lerr, ok )
257  nt = nt + 10
258 *
259 * DTGEVC
260 *
261  srnamt = 'DTGEVC'
262  infot = 1
263  CALL dtgevc( '/', 'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
264  $ info )
265  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
266  infot = 2
267  CALL dtgevc( 'R', '/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
268  $ info )
269  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
270  infot = 4
271  CALL dtgevc( 'R', 'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
272  $ w, info )
273  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
274  infot = 6
275  CALL dtgevc( 'R', 'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
276  $ info )
277  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
278  infot = 8
279  CALL dtgevc( 'R', 'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
280  $ info )
281  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
282  infot = 10
283  CALL dtgevc( 'L', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
284  $ info )
285  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
286  infot = 12
287  CALL dtgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
288  $ info )
289  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
290  infot = 13
291  CALL dtgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
292  $ info )
293  CALL chkxer( 'DTGEVC', infot, nout, lerr, ok )
294  nt = nt + 8
295 *
296 * Test error exits for the GSV path.
297 *
298  ELSE IF( lsamen( 3, path, 'GSV' ) ) THEN
299 *
300 * DGGSVD3
301 *
302  srnamt = 'DGGSVD3'
303  infot = 1
304  CALL dggsvd3( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
305  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
306  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
307  infot = 2
308  CALL dggsvd3( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
309  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
310  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
311  infot = 3
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 = 4
316  CALL dggsvd3( 'N', 'N', 'N', -1, 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 = 5
320  CALL dggsvd3( 'N', 'N', 'N', 0, -1, 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 = 6
324  CALL dggsvd3( 'N', 'N', 'N', 0, 0, -1, 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 = 10
328  CALL dggsvd3( 'N', 'N', 'N', 2, 1, 1, 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 = 12
332  CALL dggsvd3( 'N', 'N', 'N', 1, 1, 2, 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 = 16
336  CALL dggsvd3( 'U', 'N', 'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
337  $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
338  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
339  infot = 18
340  CALL dggsvd3( 'N', 'V', 'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
341  $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
342  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
343  infot = 20
344  CALL dggsvd3( 'N', 'N', 'Q', 1, 2, 1, dummyk, dummyl, a, 1, b,
345  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
346  CALL chkxer( 'DGGSVD3', infot, nout, lerr, ok )
347  nt = nt + 11
348 *
349 * DGGSVP3
350 *
351  srnamt = 'DGGSVP3'
352  infot = 1
353  CALL dggsvp3( '/', 'N', 'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
354  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
355  $ lwork, info )
356  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
357  infot = 2
358  CALL dggsvp3( 'N', '/', 'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
359  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
360  $ lwork, info )
361  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
362  infot = 3
363  CALL dggsvp3( 'N', 'N', '/', 0, 0, 0, a, 1, b, 1, tola, tolb,
364  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
365  $ lwork, info )
366  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
367  infot = 4
368  CALL dggsvp3( 'N', 'N', 'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
369  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
370  $ lwork, info )
371  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
372  infot = 5
373  CALL dggsvp3( 'N', 'N', 'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
374  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
375  $ lwork, info )
376  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
377  infot = 6
378  CALL dggsvp3( 'N', 'N', 'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
379  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
380  $ lwork, info )
381  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
382  infot = 8
383  CALL dggsvp3( 'N', 'N', 'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
384  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
385  $ lwork, info )
386  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
387  infot = 10
388  CALL dggsvp3( 'N', 'N', 'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
389  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
390  $ lwork, info )
391  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
392  infot = 16
393  CALL dggsvp3( 'U', 'N', 'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
394  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
395  $ lwork, info )
396  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
397  infot = 18
398  CALL dggsvp3( 'N', 'V', 'N', 1, 2, 1, a, 1, b, 2, tola, tolb,
399  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
400  $ lwork, info )
401  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
402  infot = 20
403  CALL dggsvp3( 'N', 'N', 'Q', 1, 1, 2, a, 1, b, 1, tola, tolb,
404  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
405  $ lwork, info )
406  CALL chkxer( 'DGGSVP3', infot, nout, lerr, ok )
407  nt = nt + 11
408 *
409 * DTGSJA
410 *
411  srnamt = 'DTGSJA'
412  infot = 1
413  CALL dtgsja( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
414  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
415  $ ncycle, info )
416  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
417  infot = 2
418  CALL dtgsja( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
419  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
420  $ ncycle, info )
421  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
422  infot = 3
423  CALL dtgsja( 'N', 'N', '/', 0, 0, 0, dummyk, dummyl, a, 1, b,
424  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
425  $ ncycle, info )
426  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
427  infot = 4
428  CALL dtgsja( 'N', 'N', 'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
429  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
430  $ ncycle, info )
431  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
432  infot = 5
433  CALL dtgsja( 'N', 'N', 'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
434  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
435  $ ncycle, info )
436  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
437  infot = 6
438  CALL dtgsja( 'N', 'N', 'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
439  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
440  $ ncycle, info )
441  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
442  infot = 10
443  CALL dtgsja( 'N', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
444  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
445  $ ncycle, info )
446  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
447  infot = 12
448  CALL dtgsja( 'N', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
449  $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
450  $ ncycle, info )
451  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
452  infot = 18
453  CALL dtgsja( 'U', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
454  $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
455  $ ncycle, info )
456  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
457  infot = 20
458  CALL dtgsja( 'N', 'V', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
459  $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
460  $ ncycle, info )
461  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
462  infot = 22
463  CALL dtgsja( 'N', 'N', 'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
464  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
465  $ ncycle, info )
466  CALL chkxer( 'DTGSJA', infot, nout, lerr, ok )
467  nt = nt + 11
468 *
469 * Test error exits for the GLM path.
470 *
471  ELSE IF( lsamen( 3, path, 'GLM' ) ) THEN
472 *
473 * DGGGLM
474 *
475  srnamt = 'DGGGLM'
476  infot = 1
477  CALL dggglm( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
478  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
479  infot = 2
480  CALL dggglm( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
481  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
482  infot = 2
483  CALL dggglm( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
484  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
485  infot = 3
486  CALL dggglm( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
487  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
488  infot = 3
489  CALL dggglm( 1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
490  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
491  infot = 5
492  CALL dggglm( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
493  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
494  infot = 7
495  CALL dggglm( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
496  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
497  infot = 12
498  CALL dggglm( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
499  CALL chkxer( 'DGGGLM', infot, nout, lerr, ok )
500  nt = nt + 8
501 *
502 * Test error exits for the LSE path.
503 *
504  ELSE IF( lsamen( 3, path, 'LSE' ) ) THEN
505 *
506 * DGGLSE
507 *
508  srnamt = 'DGGLSE'
509  infot = 1
510  CALL dgglse( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
511  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
512  infot = 2
513  CALL dgglse( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
514  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
515  infot = 3
516  CALL dgglse( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
517  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
518  infot = 3
519  CALL dgglse( 0, 0, 1, a, 1, b, 1, r1, r2, r3, w, lw, info )
520  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
521  infot = 3
522  CALL dgglse( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
523  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
524  infot = 5
525  CALL dgglse( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
526  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
527  infot = 7
528  CALL dgglse( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
529  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
530  infot = 12
531  CALL dgglse( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
532  CALL chkxer( 'DGGLSE', infot, nout, lerr, ok )
533  nt = nt + 8
534 *
535 * Test error exits for the CSD path.
536 *
537  ELSE IF( lsamen( 3, path, 'CSD' ) ) THEN
538 *
539 * DORCSD
540 *
541  srnamt = 'DORCSD'
542  infot = 7
543  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
544  $ -1, 0, 0, a, 1, a,
545  $ 1, a, 1, a, 1, a,
546  $ a, 1, a, 1, a, 1, a,
547  $ 1, w, lw, iw, info )
548  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
549  infot = 8
550  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
551  $ 1, -1, 0, a, 1, a,
552  $ 1, a, 1, a, 1, a,
553  $ a, 1, a, 1, a, 1, a,
554  $ 1, w, lw, iw, info )
555  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
556  infot = 9
557  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
558  $ 1, 1, -1, a, 1, a,
559  $ 1, a, 1, a, 1, a,
560  $ a, 1, a, 1, a, 1, a,
561  $ 1, w, lw, iw, info )
562  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
563  infot = 11
564  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
565  $ 1, 1, 1, a, -1, a,
566  $ 1, a, 1, a, 1, a,
567  $ a, 1, a, 1, a, 1, a,
568  $ 1, w, lw, iw, info )
569  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
570  infot = 20
571  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
572  $ 1, 1, 1, a, 1, a,
573  $ 1, a, 1, a, 1, a,
574  $ a, -1, a, 1, a, 1, a,
575  $ 1, w, lw, iw, info )
576  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
577  infot = 22
578  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
579  $ 1, 1, 1, a, 1, a,
580  $ 1, a, 1, a, 1, a,
581  $ a, 1, a, -1, a, 1, a,
582  $ 1, w, lw, iw, info )
583  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
584  infot = 24
585  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
586  $ 1, 1, 1, a, 1, a,
587  $ 1, a, 1, a, 1, a,
588  $ a, 1, a, 1, a, -1, a,
589  $ 1, w, lw, iw, info )
590  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
591  infot = 26
592  CALL dorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
593  $ 1, 1, 1, a, 1, a,
594  $ 1, a, 1, a, 1, a,
595  $ a, 1, a, 1, a, 1, a,
596  $ -1, w, lw, iw, info )
597  CALL chkxer( 'DORCSD', infot, nout, lerr, ok )
598  nt = nt + 8
599 *
600 * Test error exits for the GQR path.
601 *
602  ELSE IF( lsamen( 3, path, 'GQR' ) ) THEN
603 *
604 * DGGQRF
605 *
606  srnamt = 'DGGQRF'
607  infot = 1
608  CALL dggqrf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
609  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
610  infot = 2
611  CALL dggqrf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
612  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
613  infot = 3
614  CALL dggqrf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
615  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
616  infot = 5
617  CALL dggqrf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
618  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
619  infot = 8
620  CALL dggqrf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
621  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
622  infot = 11
623  CALL dggqrf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
624  CALL chkxer( 'DGGQRF', infot, nout, lerr, ok )
625  nt = nt + 6
626 *
627 * DGGRQF
628 *
629  srnamt = 'DGGRQF'
630  infot = 1
631  CALL dggrqf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
632  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
633  infot = 2
634  CALL dggrqf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
635  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
636  infot = 3
637  CALL dggrqf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
638  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
639  infot = 5
640  CALL dggrqf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
641  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
642  infot = 8
643  CALL dggrqf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
644  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
645  infot = 11
646  CALL dggrqf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
647  CALL chkxer( 'DGGRQF', infot, nout, lerr, ok )
648  nt = nt + 6
649 *
650 * Test error exits for the DGS, DGV, DGX, and DXV paths.
651 *
652  ELSE IF( lsamen( 3, path, 'DGS' ) .OR.
653  $ lsamen( 3, path, 'DGV' ) .OR.
654  $ lsamen( 3, path, 'DGX' ) .OR. lsamen( 3, path, 'DXV' ) )
655  $ THEN
656 *
657 * DGGES
658 *
659  srnamt = 'DGGES '
660  infot = 1
661  CALL dgges( '/', 'N', 'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
662  $ r3, q, 1, u, 1, w, 1, bw, info )
663  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
664  infot = 2
665  CALL dgges( 'N', '/', 'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
666  $ r3, q, 1, u, 1, w, 1, bw, info )
667  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
668  infot = 3
669  CALL dgges( 'N', 'V', '/', 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 = 5
673  CALL dgges( 'N', 'V', 'S', dlctes, -1, a, 1, b, 1, sdim, r1,
674  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
675  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
676  infot = 7
677  CALL dgges( 'N', 'V', 'S', dlctes, 1, a, 0, 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 = 9
681  CALL dgges( 'N', 'V', 'S', dlctes, 1, a, 1, b, 0, sdim, r1, r2,
682  $ r3, q, 1, u, 1, w, 1, bw, info )
683  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
684  infot = 15
685  CALL dgges( 'N', 'V', 'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
686  $ r3, q, 0, u, 1, w, 1, bw, info )
687  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
688  infot = 15
689  CALL dgges( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
690  $ r3, q, 1, u, 2, w, 1, bw, info )
691  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
692  infot = 17
693  CALL dgges( 'N', 'V', 'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
694  $ r3, q, 1, u, 0, w, 1, bw, info )
695  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
696  infot = 17
697  CALL dgges( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
698  $ r3, q, 2, u, 1, w, 1, bw, info )
699  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
700  infot = 19
701  CALL dgges( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
702  $ r3, q, 2, u, 2, w, 1, bw, info )
703  CALL chkxer( 'DGGES ', infot, nout, lerr, ok )
704  nt = nt + 11
705 *
706 * DGGES3
707 *
708  srnamt = 'DGGES3 '
709  infot = 1
710  CALL dgges3( '/', 'N', 'S', dlctes, 1, a, 1, b, 1, sdim, r1,
711  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
712  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
713  infot = 2
714  CALL dgges3( 'N', '/', 'S', dlctes, 1, a, 1, b, 1, sdim, r1,
715  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
716  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
717  infot = 3
718  CALL dgges3( 'N', 'V', '/', 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 = 5
722  CALL dgges3( 'N', 'V', '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 = 7
726  CALL dgges3( 'N', 'V', 'S', dlctes, 1, a, 0, 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 = 9
730  CALL dgges3( 'N', 'V', 'S', dlctes, 1, a, 1, b, 0, sdim, r1,
731  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
732  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
733  infot = 15
734  CALL dgges3( 'N', 'V', 'S', dlctes, 1, a, 1, b, 1, sdim, r1,
735  $ r2, r3, q, 0, u, 1, w, 1, bw, info )
736  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
737  infot = 15
738  CALL dgges3( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1,
739  $ r2, r3, q, 1, u, 2, w, 1, bw, info )
740  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
741  infot = 17
742  CALL dgges3( 'N', 'V', 'S', dlctes, 1, a, 1, b, 1, sdim, r1,
743  $ r2, r3, q, 1, u, 0, w, 1, bw, info )
744  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
745  infot = 17
746  CALL dgges3( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1,
747  $ r2, r3, q, 2, u, 1, w, 1, bw, info )
748  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
749  infot = 19
750  CALL dgges3( 'V', 'V', 'S', dlctes, 2, a, 2, b, 2, sdim, r1,
751  $ r2, r3, q, 2, u, 2, w, 1, bw, info )
752  CALL chkxer( 'DGGES3 ', infot, nout, lerr, ok )
753  nt = nt + 11
754 *
755 * DGGESX
756 *
757  srnamt = 'DGGESX'
758  infot = 1
759  CALL dggesx( '/', 'N', 'S', dlctsx, 'N', 1, a, 1, b, 1, sdim,
760  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
761  $ info )
762  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
763  infot = 2
764  CALL dggesx( 'N', '/', 'S', dlctsx, 'N', 1, a, 1, b, 1, sdim,
765  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
766  $ info )
767  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
768  infot = 3
769  CALL dggesx( 'V', 'V', '/', dlctsx, 'N', 1, a, 1, b, 1, sdim,
770  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
771  $ info )
772  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
773  infot = 5
774  CALL dggesx( 'V', 'V', 'S', dlctsx, '/', 1, a, 1, b, 1, sdim,
775  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
776  $ info )
777  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
778  infot = 6
779  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', -1, a, 1, b, 1, sdim,
780  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
781  $ info )
782  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
783  infot = 8
784  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 1, a, 0, b, 1, sdim,
785  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
786  $ info )
787  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
788  infot = 10
789  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 1, a, 1, b, 0, sdim,
790  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
791  $ info )
792  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
793  infot = 16
794  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 1, a, 1, b, 1, sdim,
795  $ r1, r2, r3, q, 0, u, 1, rce, rcv, w, 1, iw, 1, bw,
796  $ info )
797  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
798  infot = 16
799  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 2, a, 2, b, 2, sdim,
800  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
801  $ info )
802  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
803  infot = 18
804  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 1, a, 1, b, 1, sdim,
805  $ r1, r2, r3, q, 1, u, 0, rce, rcv, w, 1, iw, 1, bw,
806  $ info )
807  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
808  infot = 18
809  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 2, a, 2, b, 2, sdim,
810  $ r1, r2, r3, q, 2, u, 1, rce, rcv, w, 1, iw, 1, bw,
811  $ info )
812  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
813  infot = 22
814  CALL dggesx( 'V', 'V', 'S', dlctsx, 'B', 2, a, 2, b, 2, sdim,
815  $ r1, r2, r3, q, 2, u, 2, rce, rcv, w, 1, iw, 1, bw,
816  $ info )
817  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
818  infot = 24
819  CALL dggesx( 'V', 'V', 'S', dlctsx, 'V', 1, a, 1, b, 1, sdim,
820  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 32, iw, 0,
821  $ bw, info )
822  CALL chkxer( 'DGGESX', infot, nout, lerr, ok )
823  nt = nt + 13
824 *
825 * DGGEV
826 *
827  srnamt = 'DGGEV '
828  infot = 1
829  CALL dggev( '/', 'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
830  $ 1, info )
831  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
832  infot = 2
833  CALL dggev( 'N', '/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
834  $ 1, info )
835  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
836  infot = 3
837  CALL dggev( 'V', 'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
838  $ w, 1, info )
839  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
840  infot = 5
841  CALL dggev( 'V', 'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1, w,
842  $ 1, info )
843  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
844  infot = 7
845  CALL dggev( 'V', 'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1, w,
846  $ 1, info )
847  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
848  infot = 12
849  CALL dggev( 'N', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1, w,
850  $ 1, info )
851  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
852  infot = 12
853  CALL dggev( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2, w,
854  $ 1, info )
855  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
856  infot = 14
857  CALL dggev( 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0, w,
858  $ 1, info )
859  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
860  infot = 14
861  CALL dggev( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1, w,
862  $ 1, info )
863  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
864  infot = 16
865  CALL dggev( 'V', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
866  $ 1, info )
867  CALL chkxer( 'DGGEV ', infot, nout, lerr, ok )
868  nt = nt + 10
869 *
870 * DGGEV3
871 *
872  srnamt = 'DGGEV3 '
873  infot = 1
874  CALL dggev3( '/', 'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
875  $ w, 1, info )
876  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
877  infot = 2
878  CALL dggev3( 'N', '/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
879  $ w, 1, info )
880  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
881  infot = 3
882  CALL dggev3( 'V', 'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
883  $ w, 1, info )
884  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
885  infot = 5
886  CALL dggev3( 'V', 'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1,
887  $ w, 1, info )
888  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
889  infot = 7
890  CALL dggev3( 'V', 'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1,
891  $ w, 1, info )
892  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
893  infot = 12
894  CALL dggev3( 'N', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1,
895  $ w, 1, info )
896  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
897  infot = 12
898  CALL dggev3( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2,
899  $ w, 1, info )
900  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
901  infot = 14
902  CALL dggev3( 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0,
903  $ w, 1, info )
904  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
905  infot = 14
906  CALL dggev3( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1,
907  $ w, 1, info )
908  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
909  infot = 16
910  CALL dggev3( 'V', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
911  $ w, 1, info )
912  CALL chkxer( 'DGGEV3 ', infot, nout, lerr, ok )
913  nt = nt + 10
914 *
915 * DGGEVX
916 *
917  srnamt = 'DGGEVX'
918  infot = 1
919  CALL dggevx( '/', 'N', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
920  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
921  $ w, 1, iw, bw, info )
922  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
923  infot = 2
924  CALL dggevx( 'N', '/', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
925  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
926  $ w, 1, iw, bw, info )
927  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
928  infot = 3
929  CALL dggevx( 'N', 'N', '/', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
930  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
931  $ w, 1, iw, bw, info )
932  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
933  infot = 4
934  CALL dggevx( 'N', 'N', 'N', '/', 1, a, 1, b, 1, r1, r2, r3, q,
935  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
936  $ w, 1, iw, bw, info )
937  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
938  infot = 5
939  CALL dggevx( 'N', 'N', 'N', 'N', -1, a, 1, b, 1, r1, r2, r3, q,
940  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
941  $ w, 1, iw, bw, info )
942  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
943  infot = 7
944  CALL dggevx( 'N', 'N', 'N', 'N', 1, a, 0, b, 1, r1, r2, r3, q,
945  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
946  $ w, 1, iw, bw, info )
947  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
948  infot = 9
949  CALL dggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 0, r1, r2, r3, q,
950  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
951  $ w, 1, iw, bw, info )
952  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
953  infot = 14
954  CALL dggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
955  $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
956  $ w, 1, iw, bw, info )
957  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
958  infot = 14
959  CALL dggevx( 'N', 'V', 'N', 'N', 2, a, 2, b, 2, r1, r2, r3, q,
960  $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
961  $ w, 1, iw, bw, info )
962  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
963  infot = 16
964  CALL dggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
965  $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
966  $ w, 1, iw, bw, info )
967  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
968  infot = 16
969  CALL dggevx( 'N', 'N', 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q,
970  $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
971  $ w, 1, iw, bw, info )
972  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
973  infot = 26
974  CALL dggevx( 'N', 'N', 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q,
975  $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
976  $ w, 1, iw, bw, info )
977  CALL chkxer( 'DGGEVX', infot, nout, lerr, ok )
978  nt = nt + 12
979 *
980 * DTGEXC
981 *
982  srnamt = 'DTGEXC'
983  infot = 3
984  CALL dtgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
985  $ ilst, w, 1, info )
986  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
987  infot = 5
988  CALL dtgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
989  $ ilst, w, 1, info )
990  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
991  infot = 7
992  CALL dtgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
993  $ ilst, w, 1, info )
994  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
995  infot = 9
996  CALL dtgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
997  $ ilst, w, 1, info )
998  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
999  infot = 9
1000  CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1001  $ ilst, w, 1, info )
1002  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1003  infot = 11
1004  CALL dtgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1005  $ ilst, w, 1, info )
1006  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1007  infot = 11
1008  CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1009  $ ilst, w, 1, info )
1010  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1011  infot = 15
1012  CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 1, ifst,
1013  $ ilst, w, 0, info )
1014  CALL chkxer( 'DTGEXC', infot, nout, lerr, ok )
1015  nt = nt + 8
1016 *
1017 * DTGSEN
1018 *
1019  srnamt = 'DTGSEN'
1020  infot = 1
1021  CALL dtgsen( -1, .true., .true., sel, 1, a, 1, b, 1, r1, r2,
1022  $ r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1023  $ info )
1024  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1025  infot = 5
1026  CALL dtgsen( 1, .true., .true., sel, -1, a, 1, b, 1, r1, r2,
1027  $ r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1028  $ info )
1029  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1030  infot = 7
1031  CALL dtgsen( 1, .true., .true., sel, 1, a, 0, b, 1, r1, r2, r3,
1032  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1033  $ info )
1034  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1035  infot = 9
1036  CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 0, r1, r2, r3,
1037  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1038  $ info )
1039  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1040  infot = 14
1041  CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1042  $ q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1043  $ info )
1044  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1045  infot = 16
1046  CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1047  $ q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
1048  $ info )
1049  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1050  infot = 22
1051  CALL dtgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1052  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1053  $ info )
1054  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1055  infot = 22
1056  CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1057  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1058  $ info )
1059  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1060  infot = 22
1061  CALL dtgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1062  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1063  $ info )
1064  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1065  infot = 24
1066  CALL dtgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1067  $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
1068  $ info )
1069  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1070  infot = 24
1071  CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1072  $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
1073  $ info )
1074  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1075  infot = 24
1076  CALL dtgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1077  $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 1,
1078  $ info )
1079  CALL chkxer( 'DTGSEN', infot, nout, lerr, ok )
1080  nt = nt + 12
1081 *
1082 * DTGSNA
1083 *
1084  srnamt = 'DTGSNA'
1085  infot = 1
1086  CALL dtgsna( '/', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1087  $ 1, m, w, 1, iw, info )
1088  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1089  infot = 2
1090  CALL dtgsna( 'B', '/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1091  $ 1, m, w, 1, iw, info )
1092  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1093  infot = 4
1094  CALL dtgsna( 'B', 'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1095  $ 1, m, w, 1, iw, info )
1096  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1097  infot = 6
1098  CALL dtgsna( 'B', 'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1099  $ 1, m, w, 1, iw, info )
1100  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1101  infot = 8
1102  CALL dtgsna( 'B', 'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1103  $ 1, m, w, 1, iw, info )
1104  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1105  infot = 10
1106  CALL dtgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1107  $ 1, m, w, 1, iw, info )
1108  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1109  infot = 12
1110  CALL dtgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1111  $ 1, m, w, 1, iw, info )
1112  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1113  infot = 15
1114  CALL dtgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1115  $ 0, m, w, 1, iw, info )
1116  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1117  infot = 18
1118  CALL dtgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1119  $ 1, m, w, 0, iw, info )
1120  CALL chkxer( 'DTGSNA', infot, nout, lerr, ok )
1121  nt = nt + 9
1122 *
1123 * DTGSYL
1124 *
1125  srnamt = 'DTGSYL'
1126  infot = 1
1127  CALL dtgsyl( '/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1128  $ scale, dif, w, 1, iw, info )
1129  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1130  infot = 2
1131  CALL dtgsyl( 'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1132  $ scale, dif, w, 1, iw, info )
1133  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1134  infot = 3
1135  CALL dtgsyl( 'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1136  $ scale, dif, w, 1, iw, info )
1137  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1138  infot = 4
1139  CALL dtgsyl( 'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1140  $ scale, dif, w, 1, iw, info )
1141  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1142  infot = 6
1143  CALL dtgsyl( 'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1144  $ scale, dif, w, 1, iw, info )
1145  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1146  infot = 8
1147  CALL dtgsyl( 'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1148  $ scale, dif, w, 1, iw, info )
1149  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1150  infot = 10
1151  CALL dtgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1152  $ scale, dif, w, 1, iw, info )
1153  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1154  infot = 12
1155  CALL dtgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1156  $ scale, dif, w, 1, iw, info )
1157  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1158  infot = 14
1159  CALL dtgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1160  $ scale, dif, w, 1, iw, info )
1161  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1162  infot = 16
1163  CALL dtgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1164  $ scale, dif, w, 1, iw, info )
1165  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1166  infot = 20
1167  CALL dtgsyl( 'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1168  $ scale, dif, w, 1, iw, info )
1169  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1170  infot = 20
1171  CALL dtgsyl( 'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1172  $ scale, dif, w, 1, iw, info )
1173  CALL chkxer( 'DTGSYL', infot, nout, lerr, ok )
1174  nt = nt + 12
1175  END IF
1176 *
1177 * Print a summary line.
1178 *
1179  IF( ok ) THEN
1180  WRITE( nout, fmt = 9999 )path, nt
1181  ELSE
1182  WRITE( nout, fmt = 9998 )path
1183  END IF
1184 *
1185  9999 FORMAT( 1x, a3, ' routines passed the tests of the error exits (',
1186  $ i3, ' tests done)' )
1187  9998 FORMAT( ' *** ', a3, ' routines failed the tests of the error ',
1188  $ 'exits ***' )
1189 *
1190  RETURN
1191 *
1192 * End of DERRGG
1193 *
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
logical function lsamen(N, CA, CB)
LSAMEN
Definition: lsamen.f:74
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: