LAPACK 3.11.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches
derrgg.f
Go to the documentation of this file.
1*> \brief \b DERRGG
2*
3* =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6* http://www.netlib.org/lapack/explore-html/
7*
8* Definition:
9* ===========
10*
11* SUBROUTINE DERRGG( PATH, NUNIT )
12*
13* .. Scalar Arguments ..
14* CHARACTER*3 PATH
15* INTEGER NUNIT
16* ..
17*
18*
19*> \par Purpose:
20* =============
21*>
22*> \verbatim
23*>
24*> DERRGG tests the error exits for DGGES, DGGESX, DGGEV, DGGEVX,
25*> DGGGLM, DGGHRD, DGGLSE, DGGQRF, DGGRQF, DGGSVD3,
26*> DGGSVP3, DHGEQZ, DORCSD, DTGEVC, DTGEXC, DTGSEN, DTGSJA, DTGSNA,
27*> DGGES3, DGGEV3, and DTGSYL.
28*> \endverbatim
29*
30* Arguments:
31* ==========
32*
33*> \param[in] PATH
34*> \verbatim
35*> PATH is CHARACTER*3
36*> The LAPACK path name for the routines to be tested.
37*> \endverbatim
38*>
39*> \param[in] NUNIT
40*> \verbatim
41*> NUNIT is INTEGER
42*> The unit number for output.
43*> \endverbatim
44*
45* Authors:
46* ========
47*
48*> \author Univ. of Tennessee
49*> \author Univ. of California Berkeley
50*> \author Univ. of Colorado Denver
51*> \author NAG Ltd.
52*
53*> \ingroup double_eig
54*
55* =====================================================================
56 SUBROUTINE derrgg( PATH, NUNIT )
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*
1207 END
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3224
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
Definition: xlaenv.f:81
subroutine derrgg(PATH, NUNIT)
DERRGG
Definition: derrgg.f:57
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