LAPACK  3.10.0
LAPACK: Linear Algebra PACKage

◆ serrvx()

subroutine serrvx ( character*3  PATH,
integer  NUNIT 
)

SERRVX

SERRVXX

Purpose:
 SERRVX tests the error exits for the REAL driver routines
 for solving linear systems of equations.
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 54 of file serrvx.f.

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 EQ
73  CHARACTER*2 C2
74  INTEGER I, INFO, J
75  REAL RCOND
76 * ..
77 * .. Local Arrays ..
78  INTEGER IP( NMAX ), IW( NMAX )
79  REAL A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
80  $ C( NMAX ), E( NMAX ), R( NMAX ), R1( NMAX ),
81  $ R2( NMAX ), W( 2*NMAX ), X( NMAX )
82 * ..
83 * .. External Functions ..
84  LOGICAL LSAMEN
85  EXTERNAL lsamen
86 * ..
87 * .. External Subroutines ..
88  EXTERNAL chkxer, sgbsv, sgbsvx, sgesv, sgesvx, sgtsv,
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 real
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 ) = 1. / real( i+j )
117  af( i, j ) = 1. / real( i+j )
118  10 CONTINUE
119  b( j ) = 0.e+0
120  e( j ) = 0.e+0
121  r1( j ) = 0.e+0
122  r2( j ) = 0.e+0
123  w( j ) = 0.e+0
124  x( j ) = 0.e+0
125  c( j ) = 0.e+0
126  r( j ) = 0.e+0
127  ip( j ) = j
128  20 CONTINUE
129  eq = ' '
130  ok = .true.
131 *
132  IF( lsamen( 2, c2, 'GE' ) ) THEN
133 *
134 * SGESV
135 *
136  srnamt = 'SGESV '
137  infot = 1
138  CALL sgesv( -1, 0, a, 1, ip, b, 1, info )
139  CALL chkxer( 'SGESV ', infot, nout, lerr, ok )
140  infot = 2
141  CALL sgesv( 0, -1, a, 1, ip, b, 1, info )
142  CALL chkxer( 'SGESV ', infot, nout, lerr, ok )
143  infot = 4
144  CALL sgesv( 2, 1, a, 1, ip, b, 2, info )
145  CALL chkxer( 'SGESV ', infot, nout, lerr, ok )
146  infot = 7
147  CALL sgesv( 2, 1, a, 2, ip, b, 1, info )
148  CALL chkxer( 'SGESV ', infot, nout, lerr, ok )
149 *
150 * SGESVX
151 *
152  srnamt = 'SGESVX'
153  infot = 1
154  CALL sgesvx( '/', 'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
155  $ x, 1, rcond, r1, r2, w, iw, info )
156  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
157  infot = 2
158  CALL sgesvx( 'N', '/', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
159  $ x, 1, rcond, r1, r2, w, iw, info )
160  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
161  infot = 3
162  CALL sgesvx( 'N', 'N', -1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
163  $ x, 1, rcond, r1, r2, w, iw, info )
164  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
165  infot = 4
166  CALL sgesvx( 'N', 'N', 0, -1, a, 1, af, 1, ip, eq, r, c, b, 1,
167  $ x, 1, rcond, r1, r2, w, iw, info )
168  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
169  infot = 6
170  CALL sgesvx( 'N', 'N', 2, 1, a, 1, af, 2, ip, eq, r, c, b, 2,
171  $ x, 2, rcond, r1, r2, w, iw, info )
172  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
173  infot = 8
174  CALL sgesvx( 'N', 'N', 2, 1, a, 2, af, 1, ip, eq, r, c, b, 2,
175  $ x, 2, rcond, r1, r2, w, iw, info )
176  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
177  infot = 10
178  eq = '/'
179  CALL sgesvx( 'F', 'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
180  $ x, 1, rcond, r1, r2, w, iw, info )
181  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
182  infot = 11
183  eq = 'R'
184  CALL sgesvx( 'F', 'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
185  $ x, 1, rcond, r1, r2, w, iw, info )
186  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
187  infot = 12
188  eq = 'C'
189  CALL sgesvx( 'F', 'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
190  $ x, 1, rcond, r1, r2, w, iw, info )
191  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
192  infot = 14
193  CALL sgesvx( 'N', 'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 1,
194  $ x, 2, rcond, r1, r2, w, iw, info )
195  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
196  infot = 16
197  CALL sgesvx( 'N', 'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 2,
198  $ x, 1, rcond, r1, r2, w, iw, info )
199  CALL chkxer( 'SGESVX', infot, nout, lerr, ok )
200 *
201  ELSE IF( lsamen( 2, c2, 'GB' ) ) THEN
202 *
203 * SGBSV
204 *
205  srnamt = 'SGBSV '
206  infot = 1
207  CALL sgbsv( -1, 0, 0, 0, a, 1, ip, b, 1, info )
208  CALL chkxer( 'SGBSV ', infot, nout, lerr, ok )
209  infot = 2
210  CALL sgbsv( 1, -1, 0, 0, a, 1, ip, b, 1, info )
211  CALL chkxer( 'SGBSV ', infot, nout, lerr, ok )
212  infot = 3
213  CALL sgbsv( 1, 0, -1, 0, a, 1, ip, b, 1, info )
214  CALL chkxer( 'SGBSV ', infot, nout, lerr, ok )
215  infot = 4
216  CALL sgbsv( 0, 0, 0, -1, a, 1, ip, b, 1, info )
217  CALL chkxer( 'SGBSV ', infot, nout, lerr, ok )
218  infot = 6
219  CALL sgbsv( 1, 1, 1, 0, a, 3, ip, b, 1, info )
220  CALL chkxer( 'SGBSV ', infot, nout, lerr, ok )
221  infot = 9
222  CALL sgbsv( 2, 0, 0, 0, a, 1, ip, b, 1, info )
223  CALL chkxer( 'SGBSV ', infot, nout, lerr, ok )
224 *
225 * SGBSVX
226 *
227  srnamt = 'SGBSVX'
228  infot = 1
229  CALL sgbsvx( '/', 'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
230  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
231  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
232  infot = 2
233  CALL sgbsvx( 'N', '/', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
234  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
235  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
236  infot = 3
237  CALL sgbsvx( 'N', 'N', -1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
238  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
239  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
240  infot = 4
241  CALL sgbsvx( 'N', 'N', 1, -1, 0, 0, a, 1, af, 1, ip, eq, r, c,
242  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
243  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
244  infot = 5
245  CALL sgbsvx( 'N', 'N', 1, 0, -1, 0, a, 1, af, 1, ip, eq, r, c,
246  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
247  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
248  infot = 6
249  CALL sgbsvx( 'N', 'N', 0, 0, 0, -1, a, 1, af, 1, ip, eq, r, c,
250  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
251  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
252  infot = 8
253  CALL sgbsvx( 'N', 'N', 1, 1, 1, 0, a, 2, af, 4, ip, eq, r, c,
254  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
255  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
256  infot = 10
257  CALL sgbsvx( 'N', 'N', 1, 1, 1, 0, a, 3, af, 3, ip, eq, r, c,
258  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
259  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
260  infot = 12
261  eq = '/'
262  CALL sgbsvx( 'F', 'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
263  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
264  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
265  infot = 13
266  eq = 'R'
267  CALL sgbsvx( 'F', 'N', 1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
268  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
269  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
270  infot = 14
271  eq = 'C'
272  CALL sgbsvx( 'F', 'N', 1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
273  $ b, 1, x, 1, rcond, r1, r2, w, iw, info )
274  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
275  infot = 16
276  CALL sgbsvx( 'N', 'N', 2, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
277  $ b, 1, x, 2, rcond, r1, r2, w, iw, info )
278  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
279  infot = 18
280  CALL sgbsvx( 'N', 'N', 2, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
281  $ b, 2, x, 1, rcond, r1, r2, w, iw, info )
282  CALL chkxer( 'SGBSVX', infot, nout, lerr, ok )
283 *
284  ELSE IF( lsamen( 2, c2, 'GT' ) ) THEN
285 *
286 * SGTSV
287 *
288  srnamt = 'SGTSV '
289  infot = 1
290  CALL sgtsv( -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
291  $ info )
292  CALL chkxer( 'SGTSV ', infot, nout, lerr, ok )
293  infot = 2
294  CALL sgtsv( 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
295  $ info )
296  CALL chkxer( 'SGTSV ', infot, nout, lerr, ok )
297  infot = 7
298  CALL sgtsv( 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1, info )
299  CALL chkxer( 'SGTSV ', infot, nout, lerr, ok )
300 *
301 * SGTSVX
302 *
303  srnamt = 'SGTSVX'
304  infot = 1
305  CALL sgtsvx( '/', 'N', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
306  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
307  $ ip, b, 1, x, 1, rcond, r1, r2, w, iw, info )
308  CALL chkxer( 'SGTSVX', infot, nout, lerr, ok )
309  infot = 2
310  CALL sgtsvx( 'N', '/', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
311  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
312  $ ip, b, 1, x, 1, rcond, r1, r2, w, iw, info )
313  CALL chkxer( 'SGTSVX', infot, nout, lerr, ok )
314  infot = 3
315  CALL sgtsvx( 'N', 'N', -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
316  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
317  $ ip, b, 1, x, 1, rcond, r1, r2, w, iw, info )
318  CALL chkxer( 'SGTSVX', infot, nout, lerr, ok )
319  infot = 4
320  CALL sgtsvx( 'N', 'N', 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
321  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
322  $ ip, b, 1, x, 1, rcond, r1, r2, w, iw, info )
323  CALL chkxer( 'SGTSVX', infot, nout, lerr, ok )
324  infot = 14
325  CALL sgtsvx( 'N', 'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
326  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
327  $ ip, b, 1, x, 2, rcond, r1, r2, w, iw, info )
328  CALL chkxer( 'SGTSVX', infot, nout, lerr, ok )
329  infot = 16
330  CALL sgtsvx( 'N', 'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
331  $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
332  $ ip, b, 2, x, 1, rcond, r1, r2, w, iw, info )
333  CALL chkxer( 'SGTSVX', infot, nout, lerr, ok )
334 *
335  ELSE IF( lsamen( 2, c2, 'PO' ) ) THEN
336 *
337 * SPOSV
338 *
339  srnamt = 'SPOSV '
340  infot = 1
341  CALL sposv( '/', 0, 0, a, 1, b, 1, info )
342  CALL chkxer( 'SPOSV ', infot, nout, lerr, ok )
343  infot = 2
344  CALL sposv( 'U', -1, 0, a, 1, b, 1, info )
345  CALL chkxer( 'SPOSV ', infot, nout, lerr, ok )
346  infot = 3
347  CALL sposv( 'U', 0, -1, a, 1, b, 1, info )
348  CALL chkxer( 'SPOSV ', infot, nout, lerr, ok )
349  infot = 5
350  CALL sposv( 'U', 2, 0, a, 1, b, 2, info )
351  CALL chkxer( 'SPOSV ', infot, nout, lerr, ok )
352  infot = 7
353  CALL sposv( 'U', 2, 0, a, 2, b, 1, info )
354  CALL chkxer( 'SPOSV ', infot, nout, lerr, ok )
355 *
356 * SPOSVX
357 *
358  srnamt = 'SPOSVX'
359  infot = 1
360  CALL sposvx( '/', 'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
361  $ rcond, r1, r2, w, iw, info )
362  CALL chkxer( 'SPOSVX', infot, nout, lerr, ok )
363  infot = 2
364  CALL sposvx( 'N', '/', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
365  $ rcond, r1, r2, w, iw, info )
366  CALL chkxer( 'SPOSVX', infot, nout, lerr, ok )
367  infot = 3
368  CALL sposvx( 'N', 'U', -1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
369  $ rcond, r1, r2, w, iw, info )
370  CALL chkxer( 'SPOSVX', infot, nout, lerr, ok )
371  infot = 4
372  CALL sposvx( 'N', 'U', 0, -1, a, 1, af, 1, eq, c, b, 1, x, 1,
373  $ rcond, r1, r2, w, iw, info )
374  CALL chkxer( 'SPOSVX', infot, nout, lerr, ok )
375  infot = 6
376  CALL sposvx( 'N', 'U', 2, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
377  $ rcond, r1, r2, w, iw, info )
378  CALL chkxer( 'SPOSVX', infot, nout, lerr, ok )
379  infot = 8
380  CALL sposvx( 'N', 'U', 2, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
381  $ rcond, r1, r2, w, iw, info )
382  CALL chkxer( 'SPOSVX', infot, nout, lerr, ok )
383  infot = 9
384  eq = '/'
385  CALL sposvx( 'F', 'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
386  $ rcond, r1, r2, w, iw, info )
387  CALL chkxer( 'SPOSVX', infot, nout, lerr, ok )
388  infot = 10
389  eq = 'Y'
390  CALL sposvx( 'F', 'U', 1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
391  $ rcond, r1, r2, w, iw, info )
392  CALL chkxer( 'SPOSVX', infot, nout, lerr, ok )
393  infot = 12
394  CALL sposvx( 'N', 'U', 2, 0, a, 2, af, 2, eq, c, b, 1, x, 2,
395  $ rcond, r1, r2, w, iw, info )
396  CALL chkxer( 'SPOSVX', infot, nout, lerr, ok )
397  infot = 14
398  CALL sposvx( 'N', 'U', 2, 0, a, 2, af, 2, eq, c, b, 2, x, 1,
399  $ rcond, r1, r2, w, iw, info )
400  CALL chkxer( 'SPOSVX', infot, nout, lerr, ok )
401 *
402  ELSE IF( lsamen( 2, c2, 'PP' ) ) THEN
403 *
404 * SPPSV
405 *
406  srnamt = 'SPPSV '
407  infot = 1
408  CALL sppsv( '/', 0, 0, a, b, 1, info )
409  CALL chkxer( 'SPPSV ', infot, nout, lerr, ok )
410  infot = 2
411  CALL sppsv( 'U', -1, 0, a, b, 1, info )
412  CALL chkxer( 'SPPSV ', infot, nout, lerr, ok )
413  infot = 3
414  CALL sppsv( 'U', 0, -1, a, b, 1, info )
415  CALL chkxer( 'SPPSV ', infot, nout, lerr, ok )
416  infot = 6
417  CALL sppsv( 'U', 2, 0, a, b, 1, info )
418  CALL chkxer( 'SPPSV ', infot, nout, lerr, ok )
419 *
420 * SPPSVX
421 *
422  srnamt = 'SPPSVX'
423  infot = 1
424  CALL sppsvx( '/', 'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
425  $ r1, r2, w, iw, info )
426  CALL chkxer( 'SPPSVX', infot, nout, lerr, ok )
427  infot = 2
428  CALL sppsvx( 'N', '/', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
429  $ r1, r2, w, iw, info )
430  CALL chkxer( 'SPPSVX', infot, nout, lerr, ok )
431  infot = 3
432  CALL sppsvx( 'N', 'U', -1, 0, a, af, eq, c, b, 1, x, 1, rcond,
433  $ r1, r2, w, iw, info )
434  CALL chkxer( 'SPPSVX', infot, nout, lerr, ok )
435  infot = 4
436  CALL sppsvx( 'N', 'U', 0, -1, a, af, eq, c, b, 1, x, 1, rcond,
437  $ r1, r2, w, iw, info )
438  CALL chkxer( 'SPPSVX', infot, nout, lerr, ok )
439  infot = 7
440  eq = '/'
441  CALL sppsvx( 'F', 'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
442  $ r1, r2, w, iw, info )
443  CALL chkxer( 'SPPSVX', infot, nout, lerr, ok )
444  infot = 8
445  eq = 'Y'
446  CALL sppsvx( 'F', 'U', 1, 0, a, af, eq, c, b, 1, x, 1, rcond,
447  $ r1, r2, w, iw, info )
448  CALL chkxer( 'SPPSVX', infot, nout, lerr, ok )
449  infot = 10
450  CALL sppsvx( 'N', 'U', 2, 0, a, af, eq, c, b, 1, x, 2, rcond,
451  $ r1, r2, w, iw, info )
452  CALL chkxer( 'SPPSVX', infot, nout, lerr, ok )
453  infot = 12
454  CALL sppsvx( 'N', 'U', 2, 0, a, af, eq, c, b, 2, x, 1, rcond,
455  $ r1, r2, w, iw, info )
456  CALL chkxer( 'SPPSVX', infot, nout, lerr, ok )
457 *
458  ELSE IF( lsamen( 2, c2, 'PB' ) ) THEN
459 *
460 * SPBSV
461 *
462  srnamt = 'SPBSV '
463  infot = 1
464  CALL spbsv( '/', 0, 0, 0, a, 1, b, 1, info )
465  CALL chkxer( 'SPBSV ', infot, nout, lerr, ok )
466  infot = 2
467  CALL spbsv( 'U', -1, 0, 0, a, 1, b, 1, info )
468  CALL chkxer( 'SPBSV ', infot, nout, lerr, ok )
469  infot = 3
470  CALL spbsv( 'U', 1, -1, 0, a, 1, b, 1, info )
471  CALL chkxer( 'SPBSV ', infot, nout, lerr, ok )
472  infot = 4
473  CALL spbsv( 'U', 0, 0, -1, a, 1, b, 1, info )
474  CALL chkxer( 'SPBSV ', infot, nout, lerr, ok )
475  infot = 6
476  CALL spbsv( 'U', 1, 1, 0, a, 1, b, 2, info )
477  CALL chkxer( 'SPBSV ', infot, nout, lerr, ok )
478  infot = 8
479  CALL spbsv( 'U', 2, 0, 0, a, 1, b, 1, info )
480  CALL chkxer( 'SPBSV ', infot, nout, lerr, ok )
481 *
482 * SPBSVX
483 *
484  srnamt = 'SPBSVX'
485  infot = 1
486  CALL spbsvx( '/', 'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
487  $ rcond, r1, r2, w, iw, info )
488  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
489  infot = 2
490  CALL spbsvx( 'N', '/', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
491  $ rcond, r1, r2, w, iw, info )
492  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
493  infot = 3
494  CALL spbsvx( 'N', 'U', -1, 0, 0, a, 1, af, 1, eq, c, b, 1, x,
495  $ 1, rcond, r1, r2, w, iw, info )
496  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
497  infot = 4
498  CALL spbsvx( 'N', 'U', 1, -1, 0, a, 1, af, 1, eq, c, b, 1, x,
499  $ 1, rcond, r1, r2, w, iw, info )
500  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
501  infot = 5
502  CALL spbsvx( 'N', 'U', 0, 0, -1, a, 1, af, 1, eq, c, b, 1, x,
503  $ 1, rcond, r1, r2, w, iw, info )
504  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
505  infot = 7
506  CALL spbsvx( 'N', 'U', 1, 1, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
507  $ rcond, r1, r2, w, iw, info )
508  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
509  infot = 9
510  CALL spbsvx( 'N', 'U', 1, 1, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
511  $ rcond, r1, r2, w, iw, info )
512  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
513  infot = 10
514  eq = '/'
515  CALL spbsvx( 'F', 'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
516  $ rcond, r1, r2, w, iw, info )
517  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
518  infot = 11
519  eq = 'Y'
520  CALL spbsvx( 'F', 'U', 1, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
521  $ rcond, r1, r2, w, iw, info )
522  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
523  infot = 13
524  CALL spbsvx( 'N', 'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 2,
525  $ rcond, r1, r2, w, iw, info )
526  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
527  infot = 15
528  CALL spbsvx( 'N', 'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 2, x, 1,
529  $ rcond, r1, r2, w, iw, info )
530  CALL chkxer( 'SPBSVX', infot, nout, lerr, ok )
531 *
532  ELSE IF( lsamen( 2, c2, 'PT' ) ) THEN
533 *
534 * SPTSV
535 *
536  srnamt = 'SPTSV '
537  infot = 1
538  CALL sptsv( -1, 0, a( 1, 1 ), a( 1, 2 ), b, 1, info )
539  CALL chkxer( 'SPTSV ', infot, nout, lerr, ok )
540  infot = 2
541  CALL sptsv( 0, -1, a( 1, 1 ), a( 1, 2 ), b, 1, info )
542  CALL chkxer( 'SPTSV ', infot, nout, lerr, ok )
543  infot = 6
544  CALL sptsv( 2, 0, a( 1, 1 ), a( 1, 2 ), b, 1, info )
545  CALL chkxer( 'SPTSV ', infot, nout, lerr, ok )
546 *
547 * SPTSVX
548 *
549  srnamt = 'SPTSVX'
550  infot = 1
551  CALL sptsvx( '/', 0, 0, a( 1, 1 ), a( 1, 2 ), af( 1, 1 ),
552  $ af( 1, 2 ), b, 1, x, 1, rcond, r1, r2, w, info )
553  CALL chkxer( 'SPTSVX', infot, nout, lerr, ok )
554  infot = 2
555  CALL sptsvx( 'N', -1, 0, a( 1, 1 ), a( 1, 2 ), af( 1, 1 ),
556  $ af( 1, 2 ), b, 1, x, 1, rcond, r1, r2, w, info )
557  CALL chkxer( 'SPTSVX', infot, nout, lerr, ok )
558  infot = 3
559  CALL sptsvx( 'N', 0, -1, a( 1, 1 ), a( 1, 2 ), af( 1, 1 ),
560  $ af( 1, 2 ), b, 1, x, 1, rcond, r1, r2, w, info )
561  CALL chkxer( 'SPTSVX', infot, nout, lerr, ok )
562  infot = 9
563  CALL sptsvx( 'N', 2, 0, a( 1, 1 ), a( 1, 2 ), af( 1, 1 ),
564  $ af( 1, 2 ), b, 1, x, 2, rcond, r1, r2, w, info )
565  CALL chkxer( 'SPTSVX', infot, nout, lerr, ok )
566  infot = 11
567  CALL sptsvx( 'N', 2, 0, a( 1, 1 ), a( 1, 2 ), af( 1, 1 ),
568  $ af( 1, 2 ), b, 2, x, 1, rcond, r1, r2, w, info )
569  CALL chkxer( 'SPTSVX', infot, nout, lerr, ok )
570 *
571  ELSE IF( lsamen( 2, c2, 'SY' ) ) THEN
572 *
573 * SSYSV
574 *
575  srnamt = 'SSYSV '
576  infot = 1
577  CALL ssysv( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
578  CALL chkxer( 'SSYSV ', infot, nout, lerr, ok )
579  infot = 2
580  CALL ssysv( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
581  CALL chkxer( 'SSYSV ', infot, nout, lerr, ok )
582  infot = 3
583  CALL ssysv( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
584  CALL chkxer( 'SSYSV ', infot, nout, lerr, ok )
585  infot = 8
586  CALL ssysv( 'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
587  CALL chkxer( 'SSYSV ', infot, nout, lerr, ok )
588  infot = 10
589  CALL ssysv( 'U', 0, 0, a, 1, ip, b, 1, w, 0, info )
590  CALL chkxer( 'SSYSV ', infot, nout, lerr, ok )
591  infot = 10
592  CALL ssysv( 'U', 0, 0, a, 1, ip, b, 1, w, -2, info )
593  CALL chkxer( 'SSYSV ', infot, nout, lerr, ok )
594 *
595 * SSYSVX
596 *
597  srnamt = 'SSYSVX'
598  infot = 1
599  CALL ssysvx( '/', 'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
600  $ rcond, r1, r2, w, 1, iw, info )
601  CALL chkxer( 'SSYSVX', infot, nout, lerr, ok )
602  infot = 2
603  CALL ssysvx( 'N', '/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
604  $ rcond, r1, r2, w, 1, iw, info )
605  CALL chkxer( 'SSYSVX', infot, nout, lerr, ok )
606  infot = 3
607  CALL ssysvx( 'N', 'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
608  $ rcond, r1, r2, w, 1, iw, info )
609  CALL chkxer( 'SSYSVX', infot, nout, lerr, ok )
610  infot = 4
611  CALL ssysvx( 'N', 'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
612  $ rcond, r1, r2, w, 1, iw, info )
613  CALL chkxer( 'SSYSVX', infot, nout, lerr, ok )
614  infot = 6
615  CALL ssysvx( 'N', 'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
616  $ rcond, r1, r2, w, 4, iw, info )
617  CALL chkxer( 'SSYSVX', infot, nout, lerr, ok )
618  infot = 8
619  CALL ssysvx( 'N', 'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
620  $ rcond, r1, r2, w, 4, iw, info )
621  CALL chkxer( 'SSYSVX', infot, nout, lerr, ok )
622  infot = 11
623  CALL ssysvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
624  $ rcond, r1, r2, w, 4, iw, info )
625  CALL chkxer( 'SSYSVX', infot, nout, lerr, ok )
626  infot = 13
627  CALL ssysvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
628  $ rcond, r1, r2, w, 4, iw, info )
629  CALL chkxer( 'SSYSVX', infot, nout, lerr, ok )
630  infot = 18
631  CALL ssysvx( 'N', 'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
632  $ rcond, r1, r2, w, 3, iw, info )
633  CALL chkxer( 'SSYSVX', infot, nout, lerr, ok )
634 *
635 *
636  ELSE IF( lsamen( 2, c2, 'SR' ) ) THEN
637 *
638 * SSYSV_ROOK
639 *
640  srnamt = 'SSYSV_ROOK'
641  infot = 1
642  CALL ssysv_rook( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
643  CALL chkxer( 'SSYSV_ROOK', infot, nout, lerr, ok )
644  infot = 2
645  CALL ssysv_rook( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
646  CALL chkxer( 'SSYSV_ROOK', infot, nout, lerr, ok )
647  infot = 3
648  CALL ssysv_rook( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
649  CALL chkxer( 'SSYSV_ROOK', infot, nout, lerr, ok )
650  infot = 8
651  CALL ssysv_rook( 'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
652  CALL chkxer( 'SSYSV_ROOK', infot, nout, lerr, ok )
653  infot = 10
654  CALL ssysv_rook( 'U', 0, 0, a, 1, ip, b, 1, w, 0, info )
655  CALL chkxer( 'SSYSV_ROOK', infot, nout, lerr, ok )
656  infot = 10
657  CALL ssysv_rook( 'U', 0, 0, a, 1, ip, b, 1, w, -2, info )
658  CALL chkxer( 'SSYSV_ROOK', infot, nout, lerr, ok )
659 *
660  ELSE IF( lsamen( 2, c2, 'SK' ) ) THEN
661 *
662 * SSYSV_RK
663 *
664 * Test error exits of the driver that uses factorization
665 * of a symmetric indefinite matrix with rook
666 * (bounded Bunch-Kaufman) pivoting with the new storage
667 * format for factors L ( or U) and D.
668 *
669 * L (or U) is stored in A, diagonal of D is stored on the
670 * diagonal of A, subdiagonal of D is stored in a separate array E.
671 *
672  srnamt = 'SSYSV_RK'
673  infot = 1
674  CALL ssysv_rk( '/', 0, 0, a, 1, e, ip, b, 1, w, 1, info )
675  CALL chkxer( 'SSYSV_RK', infot, nout, lerr, ok )
676  infot = 2
677  CALL ssysv_rk( 'U', -1, 0, a, 1, e, ip, b, 1, w, 1, info )
678  CALL chkxer( 'SSYSV_RK', infot, nout, lerr, ok )
679  infot = 3
680  CALL ssysv_rk( 'U', 0, -1, a, 1, e, ip, b, 1, w, 1, info )
681  CALL chkxer( 'SSYSV_RK', infot, nout, lerr, ok )
682  infot = 5
683  CALL ssysv_rk( 'U', 2, 0, a, 1, e, ip, b, 2, w, 1, info )
684  CALL chkxer( 'SSYSV_RK', infot, nout, lerr, ok )
685  infot = 9
686  CALL ssysv_rk( 'U', 2, 0, a, 2, e, ip, b, 1, w, 1, info )
687  CALL chkxer( 'SSYSV_RK', infot, nout, lerr, ok )
688  infot = 11
689  CALL ssysv_rk( 'U', 0, 0, a, 1, e, ip, b, 1, w, 0, info )
690  CALL chkxer( 'SSYSV_RK', infot, nout, lerr, ok )
691  infot = 11
692  CALL ssysv_rk( 'U', 0, 0, a, 1, e, ip, b, 1, w, -2, info )
693  CALL chkxer( 'SSYSV_RK', infot, nout, lerr, ok )
694 *
695  ELSE IF( lsamen( 2, c2, 'SA' ) ) THEN
696 *
697 * SSYSV_AA
698 *
699  srnamt = 'SSYSV_AA'
700  infot = 1
701  CALL ssysv_aa( '/', 0, 0, a, 1, ip, b, 1, w, 1, info )
702  CALL chkxer( 'SSYSV_AA', infot, nout, lerr, ok )
703  infot = 2
704  CALL ssysv_aa( 'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
705  CALL chkxer( 'SSYSV_AA', infot, nout, lerr, ok )
706  infot = 3
707  CALL ssysv_aa( 'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
708  CALL chkxer( 'SSYSV_AA', infot, nout, lerr, ok )
709  infot = 8
710  CALL ssysv_aa( 'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
711  CALL chkxer( 'SSYSV_AA', infot, nout, lerr, ok )
712 *
713  ELSE IF( lsamen( 2, c2, 'S2' ) ) THEN
714 *
715 * DSYSV_AASEN_2STAGE
716 *
717  srnamt = 'SSYSV_AA_2STAGE'
718  infot = 1
719  CALL ssysv_aa_2stage( '/', 0, 0, a, 1, a, 1, ip, ip, b, 1,
720  $ w, 1, info )
721  CALL chkxer( 'SSYSV_AA_2STAGE', infot, nout, lerr, ok )
722  infot = 2
723  CALL ssysv_aa_2stage( 'U', -1, 0, a, 1, a, 1, ip, ip, b, 1,
724  $ w, 1, info )
725  CALL chkxer( 'SSYSV_AA_2STAGE', infot, nout, lerr, ok )
726  infot = 3
727  CALL ssysv_aa_2stage( 'U', 0, -1, a, 1, a, 1, ip, ip, b, 1,
728  $ w, 1, info )
729  CALL chkxer( 'SSYSV_AA_2STAGE', infot, nout, lerr, ok )
730  infot = 5
731  CALL ssysv_aa_2stage( 'U', 2, 1, a, 1, a, 1, ip, ip, b, 1,
732  $ w, 1, info )
733  CALL chkxer( 'SSYSV_AA_2STAGE', infot, nout, lerr, ok )
734  infot = 11
735  CALL ssysv_aa_2stage( 'U', 2, 1, a, 2, a, 8, ip, ip, b, 1,
736  $ w, 1, info )
737  CALL chkxer( 'SSYSV_AA_2STAGE', infot, nout, lerr, ok )
738  infot = 7
739  CALL ssysv_aa_2stage( 'U', 2, 1, a, 2, a, 1, ip, ip, b, 2,
740  $ w, 1, info )
741  CALL chkxer( 'SSYSV_AA_2STAGE', infot, nout, lerr, ok )
742 *
743  ELSE IF( lsamen( 2, c2, 'SP' ) ) THEN
744 *
745 * SSPSV
746 *
747  srnamt = 'SSPSV '
748  infot = 1
749  CALL sspsv( '/', 0, 0, a, ip, b, 1, info )
750  CALL chkxer( 'SSPSV ', infot, nout, lerr, ok )
751  infot = 2
752  CALL sspsv( 'U', -1, 0, a, ip, b, 1, info )
753  CALL chkxer( 'SSPSV ', infot, nout, lerr, ok )
754  infot = 3
755  CALL sspsv( 'U', 0, -1, a, ip, b, 1, info )
756  CALL chkxer( 'SSPSV ', infot, nout, lerr, ok )
757  infot = 7
758  CALL sspsv( 'U', 2, 0, a, ip, b, 1, info )
759  CALL chkxer( 'SSPSV ', infot, nout, lerr, ok )
760 *
761 * SSPSVX
762 *
763  srnamt = 'SSPSVX'
764  infot = 1
765  CALL sspsvx( '/', 'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
766  $ r2, w, iw, info )
767  CALL chkxer( 'SSPSVX', infot, nout, lerr, ok )
768  infot = 2
769  CALL sspsvx( 'N', '/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
770  $ r2, w, iw, info )
771  CALL chkxer( 'SSPSVX', infot, nout, lerr, ok )
772  infot = 3
773  CALL sspsvx( 'N', 'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
774  $ r2, w, iw, info )
775  CALL chkxer( 'SSPSVX', infot, nout, lerr, ok )
776  infot = 4
777  CALL sspsvx( 'N', 'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
778  $ r2, w, iw, info )
779  CALL chkxer( 'SSPSVX', infot, nout, lerr, ok )
780  infot = 9
781  CALL sspsvx( 'N', 'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
782  $ r2, w, iw, info )
783  CALL chkxer( 'SSPSVX', infot, nout, lerr, ok )
784  infot = 11
785  CALL sspsvx( 'N', 'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
786  $ r2, w, iw, info )
787  CALL chkxer( 'SSPSVX', infot, nout, lerr, ok )
788  END IF
789 *
790 * Print a summary line.
791 *
792  IF( ok ) THEN
793  WRITE( nout, fmt = 9999 )path
794  ELSE
795  WRITE( nout, fmt = 9998 )path
796  END IF
797 *
798  9999 FORMAT( 1x, a3, ' drivers passed the tests of the error exits' )
799  9998 FORMAT( ' *** ', a3, ' drivers failed the tests of the error ',
800  $ 'exits ***' )
801 *
802  RETURN
803 *
804 * End of SERRVX
805 *
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
logical function lsamen(N, CA, CB)
LSAMEN
Definition: lsamen.f:74
subroutine sgbsv(N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, INFO)
SGBSV computes the solution to system of linear equations A * X = B for GB matrices (simple driver)
Definition: sgbsv.f:162
subroutine sgbsvx(FACT, TRANS, N, KL, KU, NRHS, AB, LDAB, AFB, LDAFB, IPIV, EQUED, R, C, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, IWORK, INFO)
SGBSVX computes the solution to system of linear equations A * X = B for GB matrices
Definition: sgbsvx.f:368
subroutine sgesvx(FACT, TRANS, N, NRHS, A, LDA, AF, LDAF, IPIV, EQUED, R, C, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, IWORK, INFO)
SGESVX computes the solution to system of linear equations A * X = B for GE matrices
Definition: sgesvx.f:349
subroutine sgesv(N, NRHS, A, LDA, IPIV, B, LDB, INFO)
SGESV computes the solution to system of linear equations A * X = B for GE matrices (simple driver)
Definition: sgesv.f:122
subroutine sgtsvx(FACT, TRANS, N, NRHS, DL, D, DU, DLF, DF, DUF, DU2, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, IWORK, INFO)
SGTSVX computes the solution to system of linear equations A * X = B for GT matrices
Definition: sgtsvx.f:293
subroutine sgtsv(N, NRHS, DL, D, DU, B, LDB, INFO)
SGTSV computes the solution to system of linear equations A * X = B for GT matrices
Definition: sgtsv.f:127
subroutine spbsvx(FACT, UPLO, N, KD, NRHS, AB, LDAB, AFB, LDAFB, EQUED, S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, IWORK, INFO)
SPBSVX computes the solution to system of linear equations A * X = B for OTHER matrices
Definition: spbsvx.f:343
subroutine sspsvx(FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, IWORK, INFO)
SSPSVX computes the solution to system of linear equations A * X = B for OTHER matrices
Definition: sspsvx.f:276
subroutine sppsvx(FACT, UPLO, N, NRHS, AP, AFP, EQUED, S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, IWORK, INFO)
SPPSVX computes the solution to system of linear equations A * X = B for OTHER matrices
Definition: sppsvx.f:311
subroutine sspsv(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
SSPSV computes the solution to system of linear equations A * X = B for OTHER matrices
Definition: sspsv.f:162
subroutine spbsv(UPLO, N, KD, NRHS, AB, LDAB, B, LDB, INFO)
SPBSV computes the solution to system of linear equations A * X = B for OTHER matrices
Definition: spbsv.f:164
subroutine sppsv(UPLO, N, NRHS, AP, B, LDB, INFO)
SPPSV computes the solution to system of linear equations A * X = B for OTHER matrices
Definition: sppsv.f:144
subroutine sposvx(FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, EQUED, S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, IWORK, INFO)
SPOSVX computes the solution to system of linear equations A * X = B for PO matrices
Definition: sposvx.f:307
subroutine sposv(UPLO, N, NRHS, A, LDA, B, LDB, INFO)
SPOSV computes the solution to system of linear equations A * X = B for PO matrices
Definition: sposv.f:130
subroutine sptsv(N, NRHS, D, E, B, LDB, INFO)
SPTSV computes the solution to system of linear equations A * X = B for PT matrices
Definition: sptsv.f:114
subroutine sptsvx(FACT, N, NRHS, D, E, DF, EF, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, INFO)
SPTSVX computes the solution to system of linear equations A * X = B for PT matrices
Definition: sptsvx.f:228
subroutine ssysv_rook(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
SSYSV_ROOK computes the solution to system of linear equations A * X = B for SY matrices
Definition: ssysv_rook.f:204
subroutine ssysv_aa_2stage(UPLO, N, NRHS, A, LDA, TB, LTB, IPIV, IPIV2, B, LDB, WORK, LWORK, INFO)
SSYSV_AA_2STAGE computes the solution to system of linear equations A * X = B for SY matrices
subroutine ssysvx(FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, LWORK, IWORK, INFO)
SSYSVX computes the solution to system of linear equations A * X = B for SY matrices
Definition: ssysvx.f:284
subroutine ssysv(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
SSYSV computes the solution to system of linear equations A * X = B for SY matrices
Definition: ssysv.f:171
subroutine ssysv_aa(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
SSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices
Definition: ssysv_aa.f:162
subroutine ssysv_rk(UPLO, N, NRHS, A, LDA, E, IPIV, B, LDB, WORK, LWORK, INFO)
SSYSV_RK computes the solution to system of linear equations A * X = B for SY matrices
Definition: ssysv_rk.f:228
Here is the call graph for this function:
Here is the caller graph for this function: