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