LAPACK  3.10.0
LAPACK: Linear Algebra PACKage
zerrsy.f
Go to the documentation of this file.
1 *> \brief \b ZERRSY
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 ZERRSY( 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 *> ZERRSY tests the error exits for the COMPLEX*16 routines
25 *> for symmetric indefinite matrices.
26 *> \endverbatim
27 *
28 * Arguments:
29 * ==========
30 *
31 *> \param[in] PATH
32 *> \verbatim
33 *> PATH is CHARACTER*3
34 *> The LAPACK path name for the routines to be tested.
35 *> \endverbatim
36 *>
37 *> \param[in] NUNIT
38 *> \verbatim
39 *> NUNIT is INTEGER
40 *> The unit number for output.
41 *> \endverbatim
42 *
43 * Authors:
44 * ========
45 *
46 *> \author Univ. of Tennessee
47 *> \author Univ. of California Berkeley
48 *> \author Univ. of Colorado Denver
49 *> \author NAG Ltd.
50 *
51 *> \ingroup complex16_lin
52 *
53 * =====================================================================
54  SUBROUTINE zerrsy( PATH, NUNIT )
55 *
56 * -- LAPACK test routine --
57 * -- LAPACK is a software package provided by Univ. of Tennessee, --
58 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
59 *
60 * .. Scalar Arguments ..
61  CHARACTER*3 PATH
62  INTEGER NUNIT
63 * ..
64 *
65 * =====================================================================
66 *
67 * .. Parameters ..
68  INTEGER NMAX
69  parameter( nmax = 4 )
70 * ..
71 * .. Local Scalars ..
72  CHARACTER*2 C2
73  INTEGER I, INFO, J
74  DOUBLE PRECISION ANRM, RCOND
75 * ..
76 * .. Local Arrays ..
77  INTEGER IP( NMAX )
78  DOUBLE PRECISION R( NMAX ), R1( NMAX ), R2( NMAX )
79  COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
80  $ E( NMAX ), W( 2*NMAX ), X( NMAX )
81 * ..
82 * .. External Functions ..
83  LOGICAL LSAMEN
84  EXTERNAL lsamen
85 * ..
86 * .. External Subroutines ..
87  EXTERNAL alaesm, chkxer, zspcon, zsprfs, zsptrf, zsptri,
93 * ..
94 * .. Scalars in Common ..
95  LOGICAL LERR, OK
96  CHARACTER*32 SRNAMT
97  INTEGER INFOT, NOUT
98 * ..
99 * .. Common blocks ..
100  COMMON / infoc / infot, nout, ok, lerr
101  COMMON / srnamc / srnamt
102 * ..
103 * .. Intrinsic Functions ..
104  INTRINSIC dble, dcmplx
105 * ..
106 * .. Executable Statements ..
107 *
108  nout = nunit
109  WRITE( nout, fmt = * )
110  c2 = path( 2: 3 )
111 *
112 * Set the variables to innocuous values.
113 *
114  DO 20 j = 1, nmax
115  DO 10 i = 1, nmax
116  a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
117  $ -1.d0 / dble( i+j ) )
118  af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
119  $ -1.d0 / dble( i+j ) )
120  10 CONTINUE
121  b( j ) = 0.d0
122  e( j ) = 0.d0
123  r1( j ) = 0.d0
124  r2( j ) = 0.d0
125  w( j ) = 0.d0
126  x( j ) = 0.d0
127  ip( j ) = j
128  20 CONTINUE
129  anrm = 1.0d0
130  ok = .true.
131 *
132  IF( lsamen( 2, c2, 'SY' ) ) THEN
133 *
134 * Test error exits of the routines that use factorization
135 * of a symmetric indefinite matrix with patrial
136 * (Bunch-Kaufman) diagonal pivoting method.
137 *
138 * ZSYTRF
139 *
140  srnamt = 'ZSYTRF'
141  infot = 1
142  CALL zsytrf( '/', 0, a, 1, ip, w, 1, info )
143  CALL chkxer( 'ZSYTRF', infot, nout, lerr, ok )
144  infot = 2
145  CALL zsytrf( 'U', -1, a, 1, ip, w, 1, info )
146  CALL chkxer( 'ZSYTRF', infot, nout, lerr, ok )
147  infot = 4
148  CALL zsytrf( 'U', 2, a, 1, ip, w, 4, info )
149  CALL chkxer( 'ZSYTRF', infot, nout, lerr, ok )
150  infot = 7
151  CALL zsytrf( 'U', 0, a, 1, ip, w, 0, info )
152  CALL chkxer( 'ZSYTRF', infot, nout, lerr, ok )
153  infot = 7
154  CALL zsytrf( 'U', 0, a, 1, ip, w, -2, info )
155  CALL chkxer( 'ZSYTRF', infot, nout, lerr, ok )
156 *
157 * ZSYTF2
158 *
159  srnamt = 'ZSYTF2'
160  infot = 1
161  CALL zsytf2( '/', 0, a, 1, ip, info )
162  CALL chkxer( 'ZSYTF2', infot, nout, lerr, ok )
163  infot = 2
164  CALL zsytf2( 'U', -1, a, 1, ip, info )
165  CALL chkxer( 'ZSYTF2', infot, nout, lerr, ok )
166  infot = 4
167  CALL zsytf2( 'U', 2, a, 1, ip, info )
168  CALL chkxer( 'ZSYTF2', infot, nout, lerr, ok )
169 *
170 * ZSYTRI
171 *
172  srnamt = 'ZSYTRI'
173  infot = 1
174  CALL zsytri( '/', 0, a, 1, ip, w, info )
175  CALL chkxer( 'ZSYTRI', infot, nout, lerr, ok )
176  infot = 2
177  CALL zsytri( 'U', -1, a, 1, ip, w, info )
178  CALL chkxer( 'ZSYTRI', infot, nout, lerr, ok )
179  infot = 4
180  CALL zsytri( 'U', 2, a, 1, ip, w, info )
181  CALL chkxer( 'ZSYTRI', infot, nout, lerr, ok )
182 *
183 * ZSYTRI2
184 *
185  srnamt = 'ZSYTRI2'
186  infot = 1
187  CALL zsytri2( '/', 0, a, 1, ip, w, 1, info )
188  CALL chkxer( 'ZSYTRI2', infot, nout, lerr, ok )
189  infot = 2
190  CALL zsytri2( 'U', -1, a, 1, ip, w, 1, info )
191  CALL chkxer( 'ZSYTRI2', infot, nout, lerr, ok )
192  infot = 4
193  CALL zsytri2( 'U', 2, a, 1, ip, w, 1, info )
194  CALL chkxer( 'ZSYTRI2', infot, nout, lerr, ok )
195 *
196 * ZSYTRI2X
197 *
198  srnamt = 'ZSYTRI2X'
199  infot = 1
200  CALL zsytri2x( '/', 0, a, 1, ip, w, 1, info )
201  CALL chkxer( 'ZSYTRI2X', infot, nout, lerr, ok )
202  infot = 2
203  CALL zsytri2x( 'U', -1, a, 1, ip, w, 1, info )
204  CALL chkxer( 'ZSYTRI2X', infot, nout, lerr, ok )
205  infot = 4
206  CALL zsytri2x( 'U', 2, a, 1, ip, w, 1, info )
207  CALL chkxer( 'ZSYTRI2X', infot, nout, lerr, ok )
208 *
209 * ZSYTRS
210 *
211  srnamt = 'ZSYTRS'
212  infot = 1
213  CALL zsytrs( '/', 0, 0, a, 1, ip, b, 1, info )
214  CALL chkxer( 'ZSYTRS', infot, nout, lerr, ok )
215  infot = 2
216  CALL zsytrs( 'U', -1, 0, a, 1, ip, b, 1, info )
217  CALL chkxer( 'ZSYTRS', infot, nout, lerr, ok )
218  infot = 3
219  CALL zsytrs( 'U', 0, -1, a, 1, ip, b, 1, info )
220  CALL chkxer( 'ZSYTRS', infot, nout, lerr, ok )
221  infot = 5
222  CALL zsytrs( 'U', 2, 1, a, 1, ip, b, 2, info )
223  CALL chkxer( 'ZSYTRS', infot, nout, lerr, ok )
224  infot = 8
225  CALL zsytrs( 'U', 2, 1, a, 2, ip, b, 1, info )
226  CALL chkxer( 'ZSYTRS', infot, nout, lerr, ok )
227 *
228 * ZSYRFS
229 *
230  srnamt = 'ZSYRFS'
231  infot = 1
232  CALL zsyrfs( '/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
233  $ r, info )
234  CALL chkxer( 'ZSYRFS', infot, nout, lerr, ok )
235  infot = 2
236  CALL zsyrfs( 'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
237  $ w, r, info )
238  CALL chkxer( 'ZSYRFS', infot, nout, lerr, ok )
239  infot = 3
240  CALL zsyrfs( 'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
241  $ w, r, info )
242  CALL chkxer( 'ZSYRFS', infot, nout, lerr, ok )
243  infot = 5
244  CALL zsyrfs( 'U', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
245  $ r, info )
246  CALL chkxer( 'ZSYRFS', infot, nout, lerr, ok )
247  infot = 7
248  CALL zsyrfs( 'U', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
249  $ r, info )
250  CALL chkxer( 'ZSYRFS', infot, nout, lerr, ok )
251  infot = 10
252  CALL zsyrfs( 'U', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
253  $ r, info )
254  CALL chkxer( 'ZSYRFS', infot, nout, lerr, ok )
255  infot = 12
256  CALL zsyrfs( 'U', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
257  $ r, info )
258  CALL chkxer( 'ZSYRFS', infot, nout, lerr, ok )
259 *
260 * ZSYCON
261 *
262  srnamt = 'ZSYCON'
263  infot = 1
264  CALL zsycon( '/', 0, a, 1, ip, anrm, rcond, w, info )
265  CALL chkxer( 'ZSYCON', infot, nout, lerr, ok )
266  infot = 2
267  CALL zsycon( 'U', -1, a, 1, ip, anrm, rcond, w, info )
268  CALL chkxer( 'ZSYCON', infot, nout, lerr, ok )
269  infot = 4
270  CALL zsycon( 'U', 2, a, 1, ip, anrm, rcond, w, info )
271  CALL chkxer( 'ZSYCON', infot, nout, lerr, ok )
272  infot = 6
273  CALL zsycon( 'U', 1, a, 1, ip, -anrm, rcond, w, info )
274  CALL chkxer( 'ZSYCON', infot, nout, lerr, ok )
275 *
276  ELSE IF( lsamen( 2, c2, 'SR' ) ) THEN
277 *
278 * Test error exits of the routines that use factorization
279 * of a symmetric indefinite matrix with rook
280 * (bounded Bunch-Kaufman) diagonal pivoting method.
281 *
282 * ZSYTRF_ROOK
283 *
284  srnamt = 'ZSYTRF_ROOK'
285  infot = 1
286  CALL zsytrf_rook( '/', 0, a, 1, ip, w, 1, info )
287  CALL chkxer( 'ZSYTRF_ROOK', infot, nout, lerr, ok )
288  infot = 2
289  CALL zsytrf_rook( 'U', -1, a, 1, ip, w, 1, info )
290  CALL chkxer( 'ZSYTRF_ROOK', infot, nout, lerr, ok )
291  infot = 4
292  CALL zsytrf_rook( 'U', 2, a, 1, ip, w, 4, info )
293  CALL chkxer( 'ZSYTRF_ROOK', infot, nout, lerr, ok )
294  infot = 7
295  CALL zsytrf_rook( 'U', 0, a, 1, ip, w, 0, info )
296  CALL chkxer( 'ZSYTRF_ROOK', infot, nout, lerr, ok )
297  infot = 7
298  CALL zsytrf_rook( 'U', 0, a, 1, ip, w, -2, info )
299  CALL chkxer( 'ZSYTRF_ROOK', infot, nout, lerr, ok )
300 *
301 * ZSYTF2_ROOK
302 *
303  srnamt = 'ZSYTF2_ROOK'
304  infot = 1
305  CALL zsytf2_rook( '/', 0, a, 1, ip, info )
306  CALL chkxer( 'ZSYTF2_ROOK', infot, nout, lerr, ok )
307  infot = 2
308  CALL zsytf2_rook( 'U', -1, a, 1, ip, info )
309  CALL chkxer( 'ZSYTF2_ROOK', infot, nout, lerr, ok )
310  infot = 4
311  CALL zsytf2_rook( 'U', 2, a, 1, ip, info )
312  CALL chkxer( 'ZSYTF2_ROOK', infot, nout, lerr, ok )
313 *
314 * ZSYTRI_ROOK
315 *
316  srnamt = 'ZSYTRI_ROOK'
317  infot = 1
318  CALL zsytri_rook( '/', 0, a, 1, ip, w, info )
319  CALL chkxer( 'ZSYTRI_ROOK', infot, nout, lerr, ok )
320  infot = 2
321  CALL zsytri_rook( 'U', -1, a, 1, ip, w, info )
322  CALL chkxer( 'ZSYTRI_ROOK', infot, nout, lerr, ok )
323  infot = 4
324  CALL zsytri_rook( 'U', 2, a, 1, ip, w, info )
325  CALL chkxer( 'ZSYTRI_ROOK', infot, nout, lerr, ok )
326 *
327 * ZSYTRS_ROOK
328 *
329  srnamt = 'ZSYTRS_ROOK'
330  infot = 1
331  CALL zsytrs_rook( '/', 0, 0, a, 1, ip, b, 1, info )
332  CALL chkxer( 'ZSYTRS_ROOK', infot, nout, lerr, ok )
333  infot = 2
334  CALL zsytrs_rook( 'U', -1, 0, a, 1, ip, b, 1, info )
335  CALL chkxer( 'ZSYTRS_ROOK', infot, nout, lerr, ok )
336  infot = 3
337  CALL zsytrs_rook( 'U', 0, -1, a, 1, ip, b, 1, info )
338  CALL chkxer( 'ZSYTRS_ROOK', infot, nout, lerr, ok )
339  infot = 5
340  CALL zsytrs_rook( 'U', 2, 1, a, 1, ip, b, 2, info )
341  CALL chkxer( 'ZSYTRS_ROOK', infot, nout, lerr, ok )
342  infot = 8
343  CALL zsytrs_rook( 'U', 2, 1, a, 2, ip, b, 1, info )
344  CALL chkxer( 'ZSYTRS_ROOK', infot, nout, lerr, ok )
345 *
346 * ZSYCON_ROOK
347 *
348  srnamt = 'ZSYCON_ROOK'
349  infot = 1
350  CALL zsycon_rook( '/', 0, a, 1, ip, anrm, rcond, w, info )
351  CALL chkxer( 'ZSYCON_ROOK', infot, nout, lerr, ok )
352  infot = 2
353  CALL zsycon_rook( 'U', -1, a, 1, ip, anrm, rcond, w, info )
354  CALL chkxer( 'ZSYCON_ROOK', infot, nout, lerr, ok )
355  infot = 4
356  CALL zsycon_rook( 'U', 2, a, 1, ip, anrm, rcond, w, info )
357  CALL chkxer( 'ZSYCON_ROOK', infot, nout, lerr, ok )
358  infot = 6
359  CALL zsycon_rook( 'U', 1, a, 1, ip, -anrm, rcond, w, info )
360  CALL chkxer( 'ZSYCON_ROOK', infot, nout, lerr, ok )
361 *
362  ELSE IF( lsamen( 2, c2, 'SK' ) ) THEN
363 *
364 * Test error exits of the routines that use factorization
365 * of a symmetric indefinite matrix with rook
366 * (bounded Bunch-Kaufman) pivoting with the new storage
367 * format for factors L ( or U) and D.
368 *
369 * L (or U) is stored in A, diagonal of D is stored on the
370 * diagonal of A, subdiagonal of D is stored in a separate array E.
371 *
372 * ZSYTRF_RK
373 *
374  srnamt = 'ZSYTRF_RK'
375  infot = 1
376  CALL zsytrf_rk( '/', 0, a, 1, e, ip, w, 1, info )
377  CALL chkxer( 'ZSYTRF_RK', infot, nout, lerr, ok )
378  infot = 2
379  CALL zsytrf_rk( 'U', -1, a, 1, e, ip, w, 1, info )
380  CALL chkxer( 'ZSYTRF_RK', infot, nout, lerr, ok )
381  infot = 4
382  CALL zsytrf_rk( 'U', 2, a, 1, e, ip, w, 4, info )
383  CALL chkxer( 'ZSYTRF_RK', infot, nout, lerr, ok )
384  infot = 8
385  CALL zsytrf_rk( 'U', 0, a, 1, e, ip, w, 0, info )
386  CALL chkxer( 'ZSYTRF_RK', infot, nout, lerr, ok )
387  infot = 8
388  CALL zsytrf_rk( 'U', 0, a, 1, e, ip, w, -2, info )
389  CALL chkxer( 'ZSYTRF_RK', infot, nout, lerr, ok )
390 *
391 * ZSYTF2_RK
392 *
393  srnamt = 'ZSYTF2_RK'
394  infot = 1
395  CALL zsytf2_rk( '/', 0, a, 1, e, ip, info )
396  CALL chkxer( 'ZSYTF2_RK', infot, nout, lerr, ok )
397  infot = 2
398  CALL zsytf2_rk( 'U', -1, a, 1, e, ip, info )
399  CALL chkxer( 'ZSYTF2_RK', infot, nout, lerr, ok )
400  infot = 4
401  CALL zsytf2_rk( 'U', 2, a, 1, e, ip, info )
402  CALL chkxer( 'ZSYTF2_RK', infot, nout, lerr, ok )
403 *
404 * ZSYTRI_3
405 *
406  srnamt = 'ZSYTRI_3'
407  infot = 1
408  CALL zsytri_3( '/', 0, a, 1, e, ip, w, 1, info )
409  CALL chkxer( 'ZSYTRI_3', infot, nout, lerr, ok )
410  infot = 2
411  CALL zsytri_3( 'U', -1, a, 1, e, ip, w, 1, info )
412  CALL chkxer( 'ZSYTRI_3', infot, nout, lerr, ok )
413  infot = 4
414  CALL zsytri_3( 'U', 2, a, 1, e, ip, w, 1, info )
415  CALL chkxer( 'ZSYTRI_3', infot, nout, lerr, ok )
416  infot = 8
417  CALL zsytri_3( 'U', 0, a, 1, e, ip, w, 0, info )
418  CALL chkxer( 'ZSYTRI_3', infot, nout, lerr, ok )
419  infot = 8
420  CALL zsytri_3( 'U', 0, a, 1, e, ip, w, -2, info )
421  CALL chkxer( 'ZSYTRI_3', infot, nout, lerr, ok )
422 *
423 * ZSYTRI_3X
424 *
425  srnamt = 'ZSYTRI_3X'
426  infot = 1
427  CALL zsytri_3x( '/', 0, a, 1, e, ip, w, 1, info )
428  CALL chkxer( 'ZSYTRI_3X', infot, nout, lerr, ok )
429  infot = 2
430  CALL zsytri_3x( 'U', -1, a, 1, e, ip, w, 1, info )
431  CALL chkxer( 'ZSYTRI_3X', infot, nout, lerr, ok )
432  infot = 4
433  CALL zsytri_3x( 'U', 2, a, 1, e, ip, w, 1, info )
434  CALL chkxer( 'ZSYTRI_3X', infot, nout, lerr, ok )
435 *
436 * ZSYTRS_3
437 *
438  srnamt = 'ZSYTRS_3'
439  infot = 1
440  CALL zsytrs_3( '/', 0, 0, a, 1, e, ip, b, 1, info )
441  CALL chkxer( 'ZSYTRS_3', infot, nout, lerr, ok )
442  infot = 2
443  CALL zsytrs_3( 'U', -1, 0, a, 1, e, ip, b, 1, info )
444  CALL chkxer( 'ZSYTRS_3', infot, nout, lerr, ok )
445  infot = 3
446  CALL zsytrs_3( 'U', 0, -1, a, 1, e, ip, b, 1, info )
447  CALL chkxer( 'ZSYTRS_3', infot, nout, lerr, ok )
448  infot = 5
449  CALL zsytrs_3( 'U', 2, 1, a, 1, e, ip, b, 2, info )
450  CALL chkxer( 'ZSYTRS_3', infot, nout, lerr, ok )
451  infot = 9
452  CALL zsytrs_3( 'U', 2, 1, a, 2, e, ip, b, 1, info )
453  CALL chkxer( 'ZSYTRS_3', infot, nout, lerr, ok )
454 *
455 * ZSYCON_3
456 *
457  srnamt = 'ZSYCON_3'
458  infot = 1
459  CALL zsycon_3( '/', 0, a, 1, e, ip, anrm, rcond, w, info )
460  CALL chkxer( 'ZSYCON_3', infot, nout, lerr, ok )
461  infot = 2
462  CALL zsycon_3( 'U', -1, a, 1, e, ip, anrm, rcond, w, info )
463  CALL chkxer( 'ZSYCON_3', infot, nout, lerr, ok )
464  infot = 4
465  CALL zsycon_3( 'U', 2, a, 1, e, ip, anrm, rcond, w, info )
466  CALL chkxer( 'ZSYCON_3', infot, nout, lerr, ok )
467  infot = 7
468  CALL zsycon_3( 'U', 1, a, 1, e, ip, -1.0d0, rcond, w, info)
469  CALL chkxer( 'ZSYCON_3', infot, nout, lerr, ok )
470 *
471  ELSE IF( lsamen( 2, c2, 'SP' ) ) THEN
472 *
473 * Test error exits of the routines that use factorization
474 * of a symmetric indefinite packed matrix with patrial
475 * (Bunch-Kaufman) pivoting.
476 *
477 * ZSPTRF
478 *
479  srnamt = 'ZSPTRF'
480  infot = 1
481  CALL zsptrf( '/', 0, a, ip, info )
482  CALL chkxer( 'ZSPTRF', infot, nout, lerr, ok )
483  infot = 2
484  CALL zsptrf( 'U', -1, a, ip, info )
485  CALL chkxer( 'ZSPTRF', infot, nout, lerr, ok )
486 *
487 * ZSPTRI
488 *
489  srnamt = 'ZSPTRI'
490  infot = 1
491  CALL zsptri( '/', 0, a, ip, w, info )
492  CALL chkxer( 'ZSPTRI', infot, nout, lerr, ok )
493  infot = 2
494  CALL zsptri( 'U', -1, a, ip, w, info )
495  CALL chkxer( 'ZSPTRI', infot, nout, lerr, ok )
496 *
497 * ZSPTRS
498 *
499  srnamt = 'ZSPTRS'
500  infot = 1
501  CALL zsptrs( '/', 0, 0, a, ip, b, 1, info )
502  CALL chkxer( 'ZSPTRS', infot, nout, lerr, ok )
503  infot = 2
504  CALL zsptrs( 'U', -1, 0, a, ip, b, 1, info )
505  CALL chkxer( 'ZSPTRS', infot, nout, lerr, ok )
506  infot = 3
507  CALL zsptrs( 'U', 0, -1, a, ip, b, 1, info )
508  CALL chkxer( 'ZSPTRS', infot, nout, lerr, ok )
509  infot = 7
510  CALL zsptrs( 'U', 2, 1, a, ip, b, 1, info )
511  CALL chkxer( 'ZSPTRS', infot, nout, lerr, ok )
512 *
513 * ZSPRFS
514 *
515  srnamt = 'ZSPRFS'
516  infot = 1
517  CALL zsprfs( '/', 0, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
518  $ info )
519  CALL chkxer( 'ZSPRFS', infot, nout, lerr, ok )
520  infot = 2
521  CALL zsprfs( 'U', -1, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
522  $ info )
523  CALL chkxer( 'ZSPRFS', infot, nout, lerr, ok )
524  infot = 3
525  CALL zsprfs( 'U', 0, -1, a, af, ip, b, 1, x, 1, r1, r2, w, r,
526  $ info )
527  CALL chkxer( 'ZSPRFS', infot, nout, lerr, ok )
528  infot = 8
529  CALL zsprfs( 'U', 2, 1, a, af, ip, b, 1, x, 2, r1, r2, w, r,
530  $ info )
531  CALL chkxer( 'ZSPRFS', infot, nout, lerr, ok )
532  infot = 10
533  CALL zsprfs( 'U', 2, 1, a, af, ip, b, 2, x, 1, r1, r2, w, r,
534  $ info )
535  CALL chkxer( 'ZSPRFS', infot, nout, lerr, ok )
536 *
537 * ZSPCON
538 *
539  srnamt = 'ZSPCON'
540  infot = 1
541  CALL zspcon( '/', 0, a, ip, anrm, rcond, w, info )
542  CALL chkxer( 'ZSPCON', infot, nout, lerr, ok )
543  infot = 2
544  CALL zspcon( 'U', -1, a, ip, anrm, rcond, w, info )
545  CALL chkxer( 'ZSPCON', infot, nout, lerr, ok )
546  infot = 5
547  CALL zspcon( 'U', 1, a, ip, -anrm, rcond, w, info )
548  CALL chkxer( 'ZSPCON', infot, nout, lerr, ok )
549 *
550  ELSE IF( lsamen( 2, c2, 'SA' ) ) THEN
551 *
552 * Test error exits of the routines that use factorization
553 * of a symmetric indefinite matrix with Aasen's algorithm.
554 *
555 * ZSYTRF_AA
556 *
557  srnamt = 'ZSYTRF_AA'
558  infot = 1
559  CALL zsytrf_aa( '/', 0, a, 1, ip, w, 1, info )
560  CALL chkxer( 'ZSYTRF_AA', infot, nout, lerr, ok )
561  infot = 2
562  CALL zsytrf_aa( 'U', -1, a, 1, ip, w, 1, info )
563  CALL chkxer( 'ZSYTRF_AA', infot, nout, lerr, ok )
564  infot = 4
565  CALL zsytrf_aa( 'U', 2, a, 1, ip, w, 4, info )
566  CALL chkxer( 'ZSYTRF_AA', infot, nout, lerr, ok )
567  infot = 7
568  CALL zsytrf_aa( 'U', 0, a, 1, ip, w, 0, info )
569  CALL chkxer( 'ZSYTRF_AA', infot, nout, lerr, ok )
570  infot = 7
571  CALL zsytrf_aa( 'U', 0, a, 1, ip, w, -2, info )
572  CALL chkxer( 'ZSYTRF_AA', infot, nout, lerr, ok )
573 *
574 * ZSYTRS_AA
575 *
576  srnamt = 'ZSYTRS_AA'
577  infot = 1
578  CALL zsytrs_aa( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
579  CALL chkxer( 'ZSYTRS_AA', infot, nout, lerr, ok )
580  infot = 2
581  CALL zsytrs_aa( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
582  CALL chkxer( 'ZSYTRS_AA', infot, nout, lerr, ok )
583  infot = 3
584  CALL zsytrs_aa( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
585  CALL chkxer( 'ZSYTRS_AA', infot, nout, lerr, ok )
586  infot = 5
587  CALL zsytrs_aa( 'U', 2, 1, a, 1, ip, b, 2, w, 1, info )
588  CALL chkxer( 'ZSYTRS_AA', infot, nout, lerr, ok )
589  infot = 8
590  CALL zsytrs_aa( 'U', 2, 1, a, 2, ip, b, 1, w, 1, info )
591  CALL chkxer( 'ZSYTRS_AA', infot, nout, lerr, ok )
592 *
593  ELSE IF( lsamen( 2, c2, 'S2' ) ) THEN
594 *
595 * Test error exits of the routines that use factorization
596 * of a symmetric indefinite matrix with Aasen's algorithm.
597 *
598 * ZSYTRF_AA_2STAGE
599 *
600  srnamt = 'ZSYTRF_AA_2STAGE'
601  infot = 1
602  CALL zsytrf_aa_2stage( '/', 0, a, 1, a, 1, ip, ip, w, 1,
603  $ info )
604  CALL chkxer( 'ZSYTRF_AA_2STAGE', infot, nout, lerr, ok )
605  infot = 2
606  CALL zsytrf_aa_2stage( 'U', -1, a, 1, a, 1, ip, ip, w, 1,
607  $ info )
608  CALL chkxer( 'ZSYTRF_AA_2STAGE', infot, nout, lerr, ok )
609  infot = 4
610  CALL zsytrf_aa_2stage( 'U', 2, a, 1, a, 2, ip, ip, w, 1,
611  $ info )
612  CALL chkxer( 'ZSYTRF_AA_2STAGE', infot, nout, lerr, ok )
613  infot = 6
614  CALL zsytrf_aa_2stage( 'U', 2, a, 2, a, 1, ip, ip, w, 1,
615  $ info )
616  CALL chkxer( 'ZSYTRF_AA_2STAGE', infot, nout, lerr, ok )
617  infot = 10
618  CALL zsytrf_aa_2stage( 'U', 2, a, 2, a, 8, ip, ip, w, 0,
619  $ info )
620  CALL chkxer( 'ZSYTRF_AA_2STAGE', infot, nout, lerr, ok )
621 *
622 * CHETRS_AA_2STAGE
623 *
624  srnamt = 'ZSYTRS_AA_2STAGE'
625  infot = 1
626  CALL zsytrs_aa_2stage( '/', 0, 0, a, 1, a, 1, ip, ip,
627  $ b, 1, info )
628  CALL chkxer( 'ZSYTRS_AA_2STAGE', infot, nout, lerr, ok )
629  infot = 2
630  CALL zsytrs_aa_2stage( 'U', -1, 0, a, 1, a, 1, ip, ip,
631  $ b, 1, info )
632  CALL chkxer( 'ZSYTRS_AA_2STAGE', infot, nout, lerr, ok )
633  infot = 3
634  CALL zsytrs_aa_2stage( 'U', 0, -1, a, 1, a, 1, ip, ip,
635  $ b, 1, info )
636  CALL chkxer( 'ZSYTRS_AA_2STAGE', infot, nout, lerr, ok )
637  infot = 5
638  CALL zsytrs_aa_2stage( 'U', 2, 1, a, 1, a, 1, ip, ip,
639  $ b, 1, info )
640  CALL chkxer( 'ZSYTRS_AA_2STAGE', infot, nout, lerr, ok )
641  infot = 7
642  CALL zsytrs_aa_2stage( 'U', 2, 1, a, 2, a, 1, ip, ip,
643  $ b, 1, info )
644  CALL chkxer( 'ZSYTRS_AA_2STAGE', infot, nout, lerr, ok )
645  infot = 11
646  CALL zsytrs_aa_2stage( 'U', 2, 1, a, 2, a, 8, ip, ip,
647  $ b, 1, info )
648  CALL chkxer( 'ZSYTRS_AA_STAGE', infot, nout, lerr, ok )
649 *
650  END IF
651 *
652 * Print a summary line.
653 *
654  CALL alaesm( path, ok, nout )
655 *
656  RETURN
657 *
658 * End of ZERRSY
659 *
660  END
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
subroutine alaesm(PATH, OK, NOUT)
ALAESM
Definition: alaesm.f:63
subroutine zerrsy(PATH, NUNIT)
ZERRSY
Definition: zerrsy.f:55
subroutine zsptri(UPLO, N, AP, IPIV, WORK, INFO)
ZSPTRI
Definition: zsptri.f:109
subroutine zsptrf(UPLO, N, AP, IPIV, INFO)
ZSPTRF
Definition: zsptrf.f:158
subroutine zsprfs(UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
ZSPRFS
Definition: zsprfs.f:180
subroutine zspcon(UPLO, N, AP, IPIV, ANORM, RCOND, WORK, INFO)
ZSPCON
Definition: zspcon.f:118
subroutine zsptrs(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
ZSPTRS
Definition: zsptrs.f:115
subroutine zsytf2(UPLO, N, A, LDA, IPIV, INFO)
ZSYTF2 computes the factorization of a real symmetric indefinite matrix, using the diagonal pivoting ...
Definition: zsytf2.f:191
subroutine zsyrfs(UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
ZSYRFS
Definition: zsyrfs.f:192
subroutine zsytri2(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
ZSYTRI2
Definition: zsytri2.f:127
subroutine zsycon(UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, INFO)
ZSYCON
Definition: zsycon.f:125
subroutine zsycon_rook(UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, INFO)
ZSYCON_ROOK
Definition: zsycon_rook.f:139
subroutine zsytrs_3(UPLO, N, NRHS, A, LDA, E, IPIV, B, LDB, INFO)
ZSYTRS_3
Definition: zsytrs_3.f:165
subroutine zsytrf_aa_2stage(UPLO, N, A, LDA, TB, LTB, IPIV, IPIV2, WORK, LWORK, INFO)
ZSYTRF_AA_2STAGE
subroutine zsytrs_rook(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
ZSYTRS_ROOK
Definition: zsytrs_rook.f:136
subroutine zsytf2_rk(UPLO, N, A, LDA, E, IPIV, INFO)
ZSYTF2_RK computes the factorization of a complex symmetric indefinite matrix using the bounded Bunch...
Definition: zsytf2_rk.f:241
subroutine zsytri_3x(UPLO, N, A, LDA, E, IPIV, WORK, NB, INFO)
ZSYTRI_3X
Definition: zsytri_3x.f:159
subroutine zsytf2_rook(UPLO, N, A, LDA, IPIV, INFO)
ZSYTF2_ROOK computes the factorization of a complex symmetric indefinite matrix using the bounded Bun...
Definition: zsytf2_rook.f:194
subroutine zsytri_3(UPLO, N, A, LDA, E, IPIV, WORK, LWORK, INFO)
ZSYTRI_3
Definition: zsytri_3.f:170
subroutine zsytri2x(UPLO, N, A, LDA, IPIV, WORK, NB, INFO)
ZSYTRI2X
Definition: zsytri2x.f:120
subroutine zsytri_rook(UPLO, N, A, LDA, IPIV, WORK, INFO)
ZSYTRI_ROOK
Definition: zsytri_rook.f:129
subroutine zsytrs_aa(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
ZSYTRS_AA
Definition: zsytrs_aa.f:131
subroutine zsytrf_rk(UPLO, N, A, LDA, E, IPIV, WORK, LWORK, INFO)
ZSYTRF_RK computes the factorization of a complex symmetric indefinite matrix using the bounded Bunch...
Definition: zsytrf_rk.f:259
subroutine zsytrf(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
ZSYTRF
Definition: zsytrf.f:182
subroutine zsytrs_aa_2stage(UPLO, N, NRHS, A, LDA, TB, LTB, IPIV, IPIV2, B, LDB, INFO)
ZSYTRS_AA_2STAGE
subroutine zsycon_3(UPLO, N, A, LDA, E, IPIV, ANORM, RCOND, WORK, INFO)
ZSYCON_3
Definition: zsycon_3.f:166
subroutine zsytrs(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
ZSYTRS
Definition: zsytrs.f:120
subroutine zsytrf_aa(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
ZSYTRF_AA
Definition: zsytrf_aa.f:132
subroutine zsytri(UPLO, N, A, LDA, IPIV, WORK, INFO)
ZSYTRI
Definition: zsytri.f:114
subroutine zsytrf_rook(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
ZSYTRF_ROOK
Definition: zsytrf_rook.f:208