LAPACK  3.9.0
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.
Date
June 2016

Definition at line 72 of file zerred.f.

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