LAPACK  3.10.1
LAPACK: Linear Algebra PACKage

◆ zerred()

subroutine zerred ( character*3  PATH,
integer  NUNIT 
)

ZERRED

Purpose:
 ZERRED tests the error exits for the eigenvalue driver routines for
 DOUBLE COMPLEX PRECISION matrices:

 PATH  driver   description
 ----  ------   -----------
 ZEV   ZGEEV    find eigenvalues/eigenvectors for nonsymmetric A
 ZES   ZGEES    find eigenvalues/Schur form for nonsymmetric A
 ZVX   ZGEEVX   ZGEEV + balancing and condition estimation
 ZSX   ZGEESX   ZGEES + balancing and condition estimation
 ZBD   ZGESVD   compute SVD of an M-by-N matrix A
       ZGESDD   compute SVD of an M-by-N matrix A(by divide and
                conquer)
       ZGEJSV   compute SVD of an M-by-N matrix A where M >= N
       ZGESVDX  compute SVD of an M-by-N matrix A(by bisection
                and inverse iteration)
       ZGESVDQ  compute SVD of an M-by-N matrix A(with a 
                QR-Preconditioned )
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 69 of file zerred.f.

70 *
71 * -- LAPACK test routine --
72 * -- LAPACK is a software package provided by Univ. of Tennessee, --
73 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
74 *
75 * .. Scalar Arguments ..
76  CHARACTER*3 PATH
77  INTEGER NUNIT
78 * ..
79 *
80 * =====================================================================
81 *
82 * .. Parameters ..
83  INTEGER NMAX, LW
84  parameter( nmax = 4, lw = 5*nmax )
85  DOUBLE PRECISION ONE, ZERO
86  parameter( one = 1.0d0, zero = 0.0d0 )
87 * ..
88 * .. Local Scalars ..
89  CHARACTER*2 C2
90  INTEGER I, IHI, ILO, INFO, J, NS, NT, SDIM
91  DOUBLE PRECISION ABNRM
92 * ..
93 * .. Local Arrays ..
94  LOGICAL B( NMAX )
95  INTEGER IW( 4*NMAX )
96  DOUBLE PRECISION R1( NMAX ), R2( NMAX ), RW( LW ), S( NMAX )
97  COMPLEX*16 A( NMAX, NMAX ), U( NMAX, NMAX ),
98  $ VL( NMAX, NMAX ), VR( NMAX, NMAX ),
99  $ VT( NMAX, NMAX ), W( 10*NMAX ), X( NMAX )
100 * ..
101 * .. External Subroutines ..
102  EXTERNAL chkxer, zgees, zgeesx, zgeev, zgeevx, zgesvj,
103  $ zgesdd, zgesvd, zgesvdx, zgesvq
104 * ..
105 * .. External Functions ..
106  LOGICAL LSAMEN, ZSLECT
107  EXTERNAL lsamen, zslect
108 * ..
109 * .. Intrinsic Functions ..
110  INTRINSIC len_trim
111 * ..
112 * .. Arrays in Common ..
113  LOGICAL SELVAL( 20 )
114  DOUBLE PRECISION SELWI( 20 ), SELWR( 20 )
115 * ..
116 * .. Scalars in Common ..
117  LOGICAL LERR, OK
118  CHARACTER*32 SRNAMT
119  INTEGER INFOT, NOUT, SELDIM, SELOPT
120 * ..
121 * .. Common blocks ..
122  COMMON / infoc / infot, nout, ok, lerr
123  COMMON / srnamc / srnamt
124  COMMON / sslct / selopt, seldim, selval, selwr, selwi
125 * ..
126 * .. Executable Statements ..
127 *
128  nout = nunit
129  WRITE( nout, fmt = * )
130  c2 = path( 2: 3 )
131 *
132 * Initialize A
133 *
134  DO 20 j = 1, nmax
135  DO 10 i = 1, nmax
136  a( i, j ) = zero
137  10 CONTINUE
138  20 CONTINUE
139  DO 30 i = 1, nmax
140  a( i, i ) = one
141  30 CONTINUE
142  ok = .true.
143  nt = 0
144 *
145  IF( lsamen( 2, c2, 'EV' ) ) THEN
146 *
147 * Test ZGEEV
148 *
149  srnamt = 'ZGEEV '
150  infot = 1
151  CALL zgeev( 'X', 'N', 0, a, 1, x, vl, 1, vr, 1, w, 1, rw,
152  $ info )
153  CALL chkxer( 'ZGEEV ', infot, nout, lerr, ok )
154  infot = 2
155  CALL zgeev( 'N', 'X', 0, a, 1, x, vl, 1, vr, 1, w, 1, rw,
156  $ info )
157  CALL chkxer( 'ZGEEV ', infot, nout, lerr, ok )
158  infot = 3
159  CALL zgeev( 'N', 'N', -1, a, 1, x, vl, 1, vr, 1, w, 1, rw,
160  $ info )
161  CALL chkxer( 'ZGEEV ', infot, nout, lerr, ok )
162  infot = 5
163  CALL zgeev( 'N', 'N', 2, a, 1, x, vl, 1, vr, 1, w, 4, rw,
164  $ info )
165  CALL chkxer( 'ZGEEV ', infot, nout, lerr, ok )
166  infot = 8
167  CALL zgeev( 'V', 'N', 2, a, 2, x, vl, 1, vr, 1, w, 4, rw,
168  $ info )
169  CALL chkxer( 'ZGEEV ', infot, nout, lerr, ok )
170  infot = 10
171  CALL zgeev( 'N', 'V', 2, a, 2, x, vl, 1, vr, 1, w, 4, rw,
172  $ info )
173  CALL chkxer( 'ZGEEV ', infot, nout, lerr, ok )
174  infot = 12
175  CALL zgeev( 'V', 'V', 1, a, 1, x, vl, 1, vr, 1, w, 1, rw,
176  $ info )
177  CALL chkxer( 'ZGEEV ', infot, nout, lerr, ok )
178  nt = nt + 7
179 *
180  ELSE IF( lsamen( 2, c2, 'ES' ) ) THEN
181 *
182 * Test ZGEES
183 *
184  srnamt = 'ZGEES '
185  infot = 1
186  CALL zgees( 'X', 'N', zslect, 0, a, 1, sdim, x, vl, 1, w, 1,
187  $ rw, b, info )
188  CALL chkxer( 'ZGEES ', infot, nout, lerr, ok )
189  infot = 2
190  CALL zgees( 'N', 'X', zslect, 0, a, 1, sdim, x, vl, 1, w, 1,
191  $ rw, b, info )
192  CALL chkxer( 'ZGEES ', infot, nout, lerr, ok )
193  infot = 4
194  CALL zgees( 'N', 'S', zslect, -1, a, 1, sdim, x, vl, 1, w, 1,
195  $ rw, b, info )
196  CALL chkxer( 'ZGEES ', infot, nout, lerr, ok )
197  infot = 6
198  CALL zgees( 'N', 'S', zslect, 2, a, 1, sdim, x, vl, 1, w, 4,
199  $ rw, b, info )
200  CALL chkxer( 'ZGEES ', infot, nout, lerr, ok )
201  infot = 10
202  CALL zgees( 'V', 'S', zslect, 2, a, 2, sdim, x, vl, 1, w, 4,
203  $ rw, b, info )
204  CALL chkxer( 'ZGEES ', infot, nout, lerr, ok )
205  infot = 12
206  CALL zgees( 'N', 'S', zslect, 1, a, 1, sdim, x, vl, 1, w, 1,
207  $ rw, b, info )
208  CALL chkxer( 'ZGEES ', infot, nout, lerr, ok )
209  nt = nt + 6
210 *
211  ELSE IF( lsamen( 2, c2, 'VX' ) ) THEN
212 *
213 * Test ZGEEVX
214 *
215  srnamt = 'ZGEEVX'
216  infot = 1
217  CALL zgeevx( 'X', 'N', 'N', 'N', 0, a, 1, x, vl, 1, vr, 1, ilo,
218  $ ihi, s, abnrm, r1, r2, w, 1, rw, info )
219  CALL chkxer( 'ZGEEVX', infot, nout, lerr, ok )
220  infot = 2
221  CALL zgeevx( 'N', 'X', 'N', 'N', 0, a, 1, x, vl, 1, vr, 1, ilo,
222  $ ihi, s, abnrm, r1, r2, w, 1, rw, info )
223  CALL chkxer( 'ZGEEVX', infot, nout, lerr, ok )
224  infot = 3
225  CALL zgeevx( 'N', 'N', 'X', 'N', 0, a, 1, x, vl, 1, vr, 1, ilo,
226  $ ihi, s, abnrm, r1, r2, w, 1, rw, info )
227  CALL chkxer( 'ZGEEVX', infot, nout, lerr, ok )
228  infot = 4
229  CALL zgeevx( 'N', 'N', 'N', 'X', 0, a, 1, x, vl, 1, vr, 1, ilo,
230  $ ihi, s, abnrm, r1, r2, w, 1, rw, info )
231  CALL chkxer( 'ZGEEVX', infot, nout, lerr, ok )
232  infot = 5
233  CALL zgeevx( 'N', 'N', 'N', 'N', -1, a, 1, x, vl, 1, vr, 1,
234  $ ilo, ihi, s, abnrm, r1, r2, w, 1, rw, info )
235  CALL chkxer( 'ZGEEVX', infot, nout, lerr, ok )
236  infot = 7
237  CALL zgeevx( 'N', 'N', 'N', 'N', 2, a, 1, x, vl, 1, vr, 1, ilo,
238  $ ihi, s, abnrm, r1, r2, w, 4, rw, info )
239  CALL chkxer( 'ZGEEVX', infot, nout, lerr, ok )
240  infot = 10
241  CALL zgeevx( 'N', 'V', 'N', 'N', 2, a, 2, x, vl, 1, vr, 1, ilo,
242  $ ihi, s, abnrm, r1, r2, w, 4, rw, info )
243  CALL chkxer( 'ZGEEVX', infot, nout, lerr, ok )
244  infot = 12
245  CALL zgeevx( 'N', 'N', 'V', 'N', 2, a, 2, x, vl, 1, vr, 1, ilo,
246  $ ihi, s, abnrm, r1, r2, w, 4, rw, info )
247  CALL chkxer( 'ZGEEVX', infot, nout, lerr, ok )
248  infot = 20
249  CALL zgeevx( 'N', 'N', 'N', 'N', 1, a, 1, x, vl, 1, vr, 1, ilo,
250  $ ihi, s, abnrm, r1, r2, w, 1, rw, info )
251  CALL chkxer( 'ZGEEVX', infot, nout, lerr, ok )
252  infot = 20
253  CALL zgeevx( 'N', 'N', 'V', 'V', 1, a, 1, x, vl, 1, vr, 1, ilo,
254  $ ihi, s, abnrm, r1, r2, w, 2, rw, info )
255  CALL chkxer( 'ZGEEVX', infot, nout, lerr, ok )
256  nt = nt + 10
257 *
258  ELSE IF( lsamen( 2, c2, 'SX' ) ) THEN
259 *
260 * Test ZGEESX
261 *
262  srnamt = 'ZGEESX'
263  infot = 1
264  CALL zgeesx( 'X', 'N', zslect, 'N', 0, a, 1, sdim, x, vl, 1,
265  $ r1( 1 ), r2( 1 ), w, 1, rw, b, info )
266  CALL chkxer( 'ZGEESX', infot, nout, lerr, ok )
267  infot = 2
268  CALL zgeesx( 'N', 'X', zslect, 'N', 0, a, 1, sdim, x, vl, 1,
269  $ r1( 1 ), r2( 1 ), w, 1, rw, b, info )
270  CALL chkxer( 'ZGEESX', infot, nout, lerr, ok )
271  infot = 4
272  CALL zgeesx( 'N', 'N', zslect, 'X', 0, a, 1, sdim, x, vl, 1,
273  $ r1( 1 ), r2( 1 ), w, 1, rw, b, info )
274  CALL chkxer( 'ZGEESX', infot, nout, lerr, ok )
275  infot = 5
276  CALL zgeesx( 'N', 'N', zslect, 'N', -1, a, 1, sdim, x, vl, 1,
277  $ r1( 1 ), r2( 1 ), w, 1, rw, b, info )
278  CALL chkxer( 'ZGEESX', infot, nout, lerr, ok )
279  infot = 7
280  CALL zgeesx( 'N', 'N', zslect, 'N', 2, a, 1, sdim, x, vl, 1,
281  $ r1( 1 ), r2( 1 ), w, 4, rw, b, info )
282  CALL chkxer( 'ZGEESX', infot, nout, lerr, ok )
283  infot = 11
284  CALL zgeesx( 'V', 'N', zslect, 'N', 2, a, 2, sdim, x, vl, 1,
285  $ r1( 1 ), r2( 1 ), w, 4, rw, b, info )
286  CALL chkxer( 'ZGEESX', infot, nout, lerr, ok )
287  infot = 15
288  CALL zgeesx( 'N', 'N', zslect, 'N', 1, a, 1, sdim, x, vl, 1,
289  $ r1( 1 ), r2( 1 ), w, 1, rw, b, info )
290  CALL chkxer( 'ZGEESX', infot, nout, lerr, ok )
291  nt = nt + 7
292 *
293  ELSE IF( lsamen( 2, c2, 'BD' ) ) THEN
294 *
295 * Test ZGESVD
296 *
297  srnamt = 'ZGESVD'
298  infot = 1
299  CALL zgesvd( 'X', 'N', 0, 0, a, 1, s, u, 1, vt, 1, w, 1, rw,
300  $ info )
301  CALL chkxer( 'ZGESVD', infot, nout, lerr, ok )
302  infot = 2
303  CALL zgesvd( 'N', 'X', 0, 0, a, 1, s, u, 1, vt, 1, w, 1, rw,
304  $ info )
305  CALL chkxer( 'ZGESVD', infot, nout, lerr, ok )
306  infot = 2
307  CALL zgesvd( 'O', 'O', 0, 0, a, 1, s, u, 1, vt, 1, w, 1, rw,
308  $ info )
309  CALL chkxer( 'ZGESVD', infot, nout, lerr, ok )
310  infot = 3
311  CALL zgesvd( 'N', 'N', -1, 0, a, 1, s, u, 1, vt, 1, w, 1, rw,
312  $ info )
313  CALL chkxer( 'ZGESVD', infot, nout, lerr, ok )
314  infot = 4
315  CALL zgesvd( 'N', 'N', 0, -1, a, 1, s, u, 1, vt, 1, w, 1, rw,
316  $ info )
317  CALL chkxer( 'ZGESVD', infot, nout, lerr, ok )
318  infot = 6
319  CALL zgesvd( 'N', 'N', 2, 1, a, 1, s, u, 1, vt, 1, w, 5, rw,
320  $ info )
321  CALL chkxer( 'ZGESVD', infot, nout, lerr, ok )
322  infot = 9
323  CALL zgesvd( 'A', 'N', 2, 1, a, 2, s, u, 1, vt, 1, w, 5, rw,
324  $ info )
325  CALL chkxer( 'ZGESVD', infot, nout, lerr, ok )
326  infot = 11
327  CALL zgesvd( 'N', 'A', 1, 2, a, 1, s, u, 1, vt, 1, w, 5, rw,
328  $ info )
329  CALL chkxer( 'ZGESVD', infot, nout, lerr, ok )
330  nt = nt + 8
331  IF( ok ) THEN
332  WRITE( nout, fmt = 9999 )srnamt( 1:len_trim( srnamt ) ),
333  $ nt
334  ELSE
335  WRITE( nout, fmt = 9998 )
336  END IF
337 *
338 * Test ZGESDD
339 *
340  srnamt = 'ZGESDD'
341  infot = 1
342  CALL zgesdd( 'X', 0, 0, a, 1, s, u, 1, vt, 1, w, 1, rw, iw,
343  $ info )
344  CALL chkxer( 'ZGESDD', infot, nout, lerr, ok )
345  infot = 2
346  CALL zgesdd( 'N', -1, 0, a, 1, s, u, 1, vt, 1, w, 1, rw, iw,
347  $ info )
348  CALL chkxer( 'ZGESDD', infot, nout, lerr, ok )
349  infot = 3
350  CALL zgesdd( 'N', 0, -1, a, 1, s, u, 1, vt, 1, w, 1, rw, iw,
351  $ info )
352  CALL chkxer( 'ZGESDD', infot, nout, lerr, ok )
353  infot = 5
354  CALL zgesdd( 'N', 2, 1, a, 1, s, u, 1, vt, 1, w, 5, rw, iw,
355  $ info )
356  CALL chkxer( 'ZGESDD', infot, nout, lerr, ok )
357  infot = 8
358  CALL zgesdd( 'A', 2, 1, a, 2, s, u, 1, vt, 1, w, 5, rw, iw,
359  $ info )
360  CALL chkxer( 'ZGESDD', infot, nout, lerr, ok )
361  infot = 10
362  CALL zgesdd( 'A', 1, 2, a, 1, s, u, 1, vt, 1, w, 5, rw, iw,
363  $ info )
364  CALL chkxer( 'ZGESDD', infot, nout, lerr, ok )
365  nt = nt - 2
366  IF( ok ) THEN
367  WRITE( nout, fmt = 9999 )srnamt( 1:len_trim( srnamt ) ),
368  $ nt
369  ELSE
370  WRITE( nout, fmt = 9998 )
371  END IF
372 *
373 * Test ZGEJSV
374 *
375  srnamt = 'ZGEJSV'
376  infot = 1
377  CALL zgejsv( 'X', 'U', 'V', 'R', 'N', 'N',
378  $ 0, 0, a, 1, s, u, 1, vt, 1,
379  $ w, 1, rw, 1, iw, info)
380  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
381  infot = 2
382  CALL zgejsv( 'G', 'X', 'V', 'R', 'N', 'N',
383  $ 0, 0, a, 1, s, u, 1, vt, 1,
384  $ w, 1, rw, 1, iw, info)
385  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
386  infot = 3
387  CALL zgejsv( 'G', 'U', 'X', 'R', 'N', 'N',
388  $ 0, 0, a, 1, s, u, 1, vt, 1,
389  $ w, 1, rw, 1, iw, info)
390  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
391  infot = 4
392  CALL zgejsv( 'G', 'U', 'V', 'X', 'N', 'N',
393  $ 0, 0, a, 1, s, u, 1, vt, 1,
394  $ w, 1, rw, 1, iw, info)
395  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
396  infot = 5
397  CALL zgejsv( 'G', 'U', 'V', 'R', 'X', 'N',
398  $ 0, 0, a, 1, s, u, 1, vt, 1,
399  $ w, 1, rw, 1, iw, info)
400  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
401  infot = 6
402  CALL zgejsv( 'G', 'U', 'V', 'R', 'N', 'X',
403  $ 0, 0, a, 1, s, u, 1, vt, 1,
404  $ w, 1, rw, 1, iw, info)
405  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
406  infot = 7
407  CALL zgejsv( 'G', 'U', 'V', 'R', 'N', 'N',
408  $ -1, 0, a, 1, s, u, 1, vt, 1,
409  $ w, 1, rw, 1, iw, info)
410  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
411  infot = 8
412  CALL zgejsv( 'G', 'U', 'V', 'R', 'N', 'N',
413  $ 0, -1, a, 1, s, u, 1, vt, 1,
414  $ w, 1, rw, 1, iw, info)
415  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
416  infot = 10
417  CALL zgejsv( 'G', 'U', 'V', 'R', 'N', 'N',
418  $ 2, 1, a, 1, s, u, 1, vt, 1,
419  $ w, 1, rw, 1, iw, info)
420  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
421  infot = 13
422  CALL zgejsv( 'G', 'U', 'V', 'R', 'N', 'N',
423  $ 2, 2, a, 2, s, u, 1, vt, 2,
424  $ w, 1, rw, 1, iw, info)
425  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
426  infot = 15
427  CALL zgejsv( 'G', 'U', 'V', 'R', 'N', 'N',
428  $ 2, 2, a, 2, s, u, 2, vt, 1,
429  $ w, 1, rw, 1, iw, info)
430  CALL chkxer( 'ZGEJSV', infot, nout, lerr, ok )
431  nt = 11
432  IF( ok ) THEN
433  WRITE( nout, fmt = 9999 )srnamt( 1:len_trim( srnamt ) ),
434  $ nt
435  ELSE
436  WRITE( nout, fmt = 9998 )
437  END IF
438 *
439 * Test ZGESVDX
440 *
441  srnamt = 'ZGESVDX'
442  infot = 1
443  CALL zgesvdx( 'X', 'N', 'A', 0, 0, a, 1, zero, zero,
444  $ 0, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
445  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
446  infot = 2
447  CALL zgesvdx( 'N', 'X', 'A', 0, 0, a, 1, zero, zero,
448  $ 0, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
449  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
450  infot = 3
451  CALL zgesvdx( 'N', 'N', 'X', 0, 0, a, 1, zero, zero,
452  $ 0, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
453  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
454  infot = 4
455  CALL zgesvdx( 'N', 'N', 'A', -1, 0, a, 1, zero, zero,
456  $ 0, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
457  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
458  infot = 5
459  CALL zgesvdx( 'N', 'N', 'A', 0, -1, a, 1, zero, zero,
460  $ 0, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
461  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
462  infot = 7
463  CALL zgesvdx( 'N', 'N', 'A', 2, 1, a, 1, zero, zero,
464  $ 0, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
465  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
466  infot = 8
467  CALL zgesvdx( 'N', 'N', 'V', 2, 1, a, 2, -one, zero,
468  $ 0, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
469  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
470  infot = 9
471  CALL zgesvdx( 'N', 'N', 'V', 2, 1, a, 2, one, zero,
472  $ 0, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
473  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
474  infot = 10
475  CALL zgesvdx( 'N', 'N', 'I', 2, 2, a, 2, zero, zero,
476  $ 0, 1, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
477  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
478  infot = 11
479  CALL zgesvdx( 'V', 'N', 'I', 2, 2, a, 2, zero, zero,
480  $ 1, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
481  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
482  infot = 15
483  CALL zgesvdx( 'V', 'N', 'A', 2, 2, a, 2, zero, zero,
484  $ 0, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
485  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
486  infot = 17
487  CALL zgesvdx( 'N', 'V', 'A', 2, 2, a, 2, zero, zero,
488  $ 0, 0, ns, s, u, 1, vt, 1, w, 1, rw, iw, info )
489  CALL chkxer( 'ZGESVDX', infot, nout, lerr, ok )
490  nt = 12
491  IF( ok ) THEN
492  WRITE( nout, fmt = 9999 )srnamt( 1:len_trim( srnamt ) ),
493  $ nt
494  ELSE
495  WRITE( nout, fmt = 9998 )
496  END IF
497 *
498 * Test ZGESVDQ
499 *
500  srnamt = 'ZGESVDQ'
501  infot = 1
502  CALL zgesvdq( 'X', 'P', 'T', 'A', 'A', 0, 0, a, 1, s, u,
503  $ 0, vt, 0, ns, iw, 1, w, 1, rw, 1, info )
504  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
505  infot = 2
506  CALL zgesvdq( 'A', 'X', 'T', 'A', 'A', 0, 0, a, 1, s, u,
507  $ 0, vt, 0, ns, iw, 1, w, 1, rw, 1, info )
508  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
509  infot = 3
510  CALL zgesvdq( 'A', 'P', 'X', 'A', 'A', 0, 0, a, 1, s, u,
511  $ 0, vt, 0, ns, iw, 1, w, 1, rw, 1, info )
512  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
513  infot = 4
514  CALL zgesvdq( 'A', 'P', 'T', 'X', 'A', 0, 0, a, 1, s, u,
515  $ 0, vt, 0, ns, iw, 1, w, 1, rw, 1, info )
516  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
517  infot = 5
518  CALL zgesvdq( 'A', 'P', 'T', 'A', 'X', 0, 0, a, 1, s, u,
519  $ 0, vt, 0, ns, iw, 1, w, 1, rw, 1, info )
520  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
521  infot = 6
522  CALL zgesvdq( 'A', 'P', 'T', 'A', 'A', -1, 0, a, 1, s, u,
523  $ 0, vt, 0, ns, iw, 1, w, 1, rw, 1, info )
524  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
525  infot = 7
526  CALL zgesvdq( 'A', 'P', 'T', 'A', 'A', 0, 1, a, 1, s, u,
527  $ 0, vt, 0, ns, iw, 1, w, 1, rw, 1, info )
528  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
529  infot = 9
530  CALL zgesvdq( 'A', 'P', 'T', 'A', 'A', 1, 1, a, 0, s, u,
531  $ 0, vt, 0, ns, iw, 1, w, 1, rw, 1, info )
532  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
533  infot = 12
534  CALL zgesvdq( 'A', 'P', 'T', 'A', 'A', 1, 1, a, 1, s, u,
535  $ -1, vt, 0, ns, iw, 1, w, 1, rw, 1, info )
536  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
537  infot = 14
538  CALL zgesvdq( 'A', 'P', 'T', 'A', 'A', 1, 1, a, 1, s, u,
539  $ 1, vt, -1, ns, iw, 1, w, 1, rw, 1, info )
540  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
541  infot = 17
542  CALL zgesvdq( 'A', 'P', 'T', 'A', 'A', 1, 1, a, 1, s, u,
543  $ 1, vt, 1, ns, iw, -5, w, 1, rw, 1, info )
544  CALL chkxer( 'ZGESVDQ', infot, nout, lerr, ok )
545  nt = 11
546  IF( ok ) THEN
547  WRITE( nout, fmt = 9999 )srnamt( 1:len_trim( srnamt ) ),
548  $ nt
549  ELSE
550  WRITE( nout, fmt = 9998 )
551  END IF
552  END IF
553 *
554 * Print a summary line.
555 *
556  IF( .NOT.lsamen( 2, c2, 'BD' ) ) THEN
557  IF( ok ) THEN
558  WRITE( nout, fmt = 9999 )srnamt( 1:len_trim( srnamt ) ),
559  $ nt
560  ELSE
561  WRITE( nout, fmt = 9998 )
562  END IF
563  END IF
564 *
565  9999 FORMAT( 1x, a, ' passed the tests of the error exits (', i3,
566  $ ' tests done)' )
567  9998 FORMAT( ' *** ', a, ' failed the tests of the error exits ***' )
568  RETURN
569 *
570 * End of ZERRED
571 *
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
logical function lsamen(N, CA, CB)
LSAMEN
Definition: lsamen.f:74
logical function zslect(Z)
ZSLECT
Definition: zslect.f:56
subroutine zgesvj(JOBA, JOBU, JOBV, M, N, A, LDA, SVA, MV, V, LDV, CWORK, LWORK, RWORK, LRWORK, INFO)
ZGESVJ
Definition: zgesvj.f:351
subroutine zgeev(JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO)
ZGEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
Definition: zgeev.f:180
subroutine zgees(JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS, LDVS, WORK, LWORK, RWORK, BWORK, INFO)
ZGEES computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE m...
Definition: zgees.f:197
subroutine zgeesx(JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W, VS, LDVS, RCONDE, RCONDV, WORK, LWORK, RWORK, BWORK, INFO)
ZGEESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
Definition: zgeesx.f:239
subroutine zgeevx(BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL, LDVL, VR, LDVR, ILO, IHI, SCALE, ABNRM, RCONDE, RCONDV, WORK, LWORK, RWORK, INFO)
ZGEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
Definition: zgeevx.f:288
subroutine zgejsv(JOBA, JOBU, JOBV, JOBR, JOBT, JOBP, M, N, A, LDA, SVA, U, LDU, V, LDV, CWORK, LWORK, RWORK, LRWORK, IWORK, INFO)
ZGEJSV
Definition: zgejsv.f:569
subroutine zgesvdx(JOBU, JOBVT, RANGE, M, N, A, LDA, VL, VU, IL, IU, NS, S, U, LDU, VT, LDVT, WORK, LWORK, RWORK, IWORK, INFO)
ZGESVDX computes the singular value decomposition (SVD) for GE matrices
Definition: zgesvdx.f:270
subroutine zgesvdq(JOBA, JOBP, JOBR, JOBU, JOBV, M, N, A, LDA, S, U, LDU, V, LDV, NUMRANK, IWORK, LIWORK, CWORK, LCWORK, RWORK, LRWORK, INFO)
ZGESVDQ computes the singular value decomposition (SVD) with a QR-Preconditioned QR SVD Method for GE...
Definition: zgesvdq.f:413
subroutine zgesdd(JOBZ, M, N, A, LDA, S, U, LDU, VT, LDVT, WORK, LWORK, RWORK, IWORK, INFO)
ZGESDD
Definition: zgesdd.f:227
subroutine zgesvd(JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, LDVT, WORK, LWORK, RWORK, INFO)
ZGESVD computes the singular value decomposition (SVD) for GE matrices
Definition: zgesvd.f:214
Here is the call graph for this function:
Here is the caller graph for this function: