File Coverage

func_codes.h
Criterion Covered Total %
statement 182 248 73.3
branch 76 126 60.3
condition n/a
subroutine n/a
pod n/a
total 258 374 68.9


line stmt bran cond sub pod time code
1             #define PERL_constant_NOTFOUND 1
2             #define PERL_constant_NOTDEF 2
3             #define PERL_constant_ISIV 3
4             #define PERL_constant_ISNO 4
5             #define PERL_constant_ISNV 5
6             #define PERL_constant_ISPV 6
7             #define PERL_constant_ISPVN 7
8             #define PERL_constant_ISSV 8
9             #define PERL_constant_ISUNDEF 9
10             #define PERL_constant_ISUV 10
11             #define PERL_constant_ISYES 11
12              
13             #ifndef NVTYPE
14             typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */
15             #endif
16             #ifndef aTHX_
17             #define aTHX_ /* 5.6 or later define this for threading support. */
18             #endif
19             #ifndef pTHX_
20             #define pTHX_ /* 5.6 or later define this for threading support. */
21             #endif
22             static int
23 1764           func_ord_by_type_1 (pTHX_ const char *name, IV *iv_return) {
24             /* When generated this function returned values for the list of names given
25             here. However, subsequent manual editing may have added or removed some.
26             G L p */
27             /* Offset 0 gives the best switch position. */
28 1764           switch (name[0]) {
29             case 'G':
30             {
31 1483           *iv_return = 18;
32 1483           return PERL_constant_ISIV;
33             }
34             break;
35             case 'L':
36             {
37 180           *iv_return = 11;
38 180           return PERL_constant_ISIV;
39             }
40             break;
41             case 'p':
42             {
43 41           *iv_return = 0;
44 41           return PERL_constant_ISIV;
45             }
46             break;
47             }
48 60           return PERL_constant_NOTFOUND;
49             }
50             static int
51 3220           func_ord_by_type_2 (pTHX_ const char *name, IV *iv_return) {
52             /* When generated this function returned values for the list of names given
53             here. However, subsequent manual editing may have added or removed some.
54             GG GL Gp LG lG ls vS */
55             /* Offset 1 gives the best switch position. */
56 3220           switch (name[1]) {
57             case 'G':
58 2120 100         if (name[0] == 'G') {
59 1700           *iv_return = 2;
60 1700           return PERL_constant_ISIV;
61             }
62 420 100         if (name[0] == 'L') {
63 20           *iv_return = 24;
64 20           return PERL_constant_ISIV;
65             }
66 400 100         if (name[0] == 'l') {
67 140           *iv_return = 10;
68 140           return PERL_constant_ISIV;
69             }
70 260           break;
71             case 'L':
72 220 100         if (name[0] == 'G') {
73 140           *iv_return = 23;
74 140           return PERL_constant_ISIV;
75             }
76 80           break;
77             case 'S':
78 0 0         if (name[0] == 'v') {
79 0           *iv_return = 85;
80 0           return PERL_constant_ISIV;
81             }
82 0           break;
83             case 'p':
84 780 100         if (name[0] == 'G') {
85 720           *iv_return = 1;
86 720           return PERL_constant_ISIV;
87             }
88 60           break;
89             case 's':
90 20 50         if (name[0] == 'l') {
91 20           *iv_return = 16;
92 20           return PERL_constant_ISIV;
93             }
94 0           break;
95             }
96 480           return PERL_constant_NOTFOUND;
97             }
98             static int
99 1903           func_ord_by_type_3 (pTHX_ const char *name, IV *iv_return) {
100             /* When generated this function returned values for the list of names given
101             here. However, subsequent manual editing may have added or removed some.
102             GDn GGG GGL GGp GVE GVI GnG GnP lGG vLL vLs */
103             /* Offset 2 gives the best switch position. */
104 1903           switch (name[2]) {
105             case 'E':
106 20 50         if (name[0] == 'G' && name[1] == 'V') {
    50          
107 20           *iv_return = 22;
108 20           return PERL_constant_ISIV;
109             }
110 0           break;
111             case 'G':
112 860 100         if (name[0] == 'G' && name[1] == 'G') {
    100          
113 560           *iv_return = 3;
114 560           return PERL_constant_ISIV;
115             }
116 300 100         if (name[0] == 'G' && name[1] == 'n') {
    100          
117 20           *iv_return = 26;
118 20           return PERL_constant_ISIV;
119             }
120 280 100         if (name[0] == 'l' && name[1] == 'G') {
    50          
121 80           *iv_return = 20;
122 80           return PERL_constant_ISIV;
123             }
124 200           break;
125             case 'I':
126 0 0         if (name[0] == 'G' && name[1] == 'V') {
    0          
127 0           *iv_return = 22;
128 0           return PERL_constant_ISIV;
129             }
130 0           break;
131             case 'L':
132 100 100         if (name[0] == 'G' && name[1] == 'G') {
    50          
133 40           *iv_return = 32;
134 40           return PERL_constant_ISIV;
135             }
136 60 50         if (name[0] == 'v' && name[1] == 'L') {
    50          
137 60           *iv_return = 19;
138 60           return PERL_constant_ISIV;
139             }
140 0           break;
141             case 'P':
142 20 50         if (name[0] == 'G' && name[1] == 'n') {
    50          
143 20           *iv_return = 12;
144 20           return PERL_constant_ISIV;
145             }
146 0           break;
147             case 'n':
148 283 100         if (name[0] == 'G' && name[1] == 'D') {
    50          
149 223           *iv_return = 14;
150 223           return PERL_constant_ISIV;
151             }
152 60           break;
153             case 'p':
154 400 50         if (name[0] == 'G' && name[1] == 'G') {
    100          
155 380           *iv_return = 29;
156 380           return PERL_constant_ISIV;
157             }
158 20           break;
159             case 's':
160 0 0         if (name[0] == 'v' && name[1] == 'L') {
    0          
161 0           *iv_return = 57;
162 0           return PERL_constant_ISIV;
163             }
164 0           break;
165             }
166 500           return PERL_constant_NOTFOUND;
167             }
168             static int
169 821           func_ord_by_type_4 (pTHX_ const char *name, IV *iv_return) {
170             /* When generated this function returned values for the list of names given
171             here. However, subsequent manual editing may have added or removed some.
172             GGGG lGGG vGVE vGVI vLGG vLLL */
173             /* Offset 3 gives the best switch position. */
174 821           switch (name[3]) {
175             case 'E':
176 0 0         if (memEQ(name, "vGV", 3)) {
177             /* E */
178 0           *iv_return = 84;
179 0           return PERL_constant_ISIV;
180             }
181 0           break;
182             case 'G':
183 440 100         if (memEQ(name, "GGG", 3)) {
184             /* G */
185 80           *iv_return = 4;
186 80           return PERL_constant_ISIV;
187             }
188 360 100         if (memEQ(name, "lGG", 3)) {
189             /* G */
190 40           *iv_return = 30;
191 40           return PERL_constant_ISIV;
192             }
193 320 100         if (memEQ(name, "vLG", 3)) {
194             /* G */
195 140           *iv_return = 35;
196 140           return PERL_constant_ISIV;
197             }
198 180           break;
199             case 'I':
200 21 50         if (memEQ(name, "vGV", 3)) {
201             /* I */
202 21           *iv_return = 84;
203 21           return PERL_constant_ISIV;
204             }
205 0           break;
206             case 'L':
207 20 50         if (memEQ(name, "vLL", 3)) {
208             /* L */
209 0           *iv_return = 34;
210 0           return PERL_constant_ISIV;
211             }
212 20           break;
213             }
214 540           return PERL_constant_NOTFOUND;
215             }
216             static int
217 360           func_ord_by_type_5 (pTHX_ const char *name, IV *iv_return) {
218             /* When generated this function returned values for the list of names given
219             here. However, subsequent manual editing may have added or removed some.
220             GDVDE GDVDI "V=GEp" "V=GIp" */
221             /* Offset 3 gives the best switch position. */
222 360           switch (name[3]) {
223             case 'D':
224 140 50         if (memEQ(name, "GDVDE", 5)) {
225             /* ^ */
226 0           *iv_return = 28;
227 0           return PERL_constant_ISIV;
228             }
229 140 100         if (memEQ(name, "GDVDI", 5)) {
230             /* ^ */
231 60           *iv_return = 28;
232 60           return PERL_constant_ISIV;
233             }
234 80           break;
235             case 'E':
236 20 50         if (memEQ(name, "V=GEp", 5)) {
237             /* ^ */
238 20           *iv_return = 27;
239 20           return PERL_constant_ISIV;
240             }
241 0           break;
242             case 'I':
243 0 0         if (memEQ(name, "V=GIp", 5)) {
244             /* ^ */
245 0           *iv_return = 27;
246 0           return PERL_constant_ISIV;
247             }
248 0           break;
249             }
250 280           return PERL_constant_NOTFOUND;
251             }
252             static int
253 600           func_ord_by_type_6 (pTHX_ const char *name, IV *iv_return) {
254             /* When generated this function returned values for the list of names given
255             here. However, subsequent manual editing may have added or removed some.
256             "V=GGEp" "V=GGIp" vLGGGG "vV=GGE" "vV=GGI" */
257             /* Offset 5 gives the best switch position. */
258 600           switch (name[5]) {
259             case 'E':
260 0 0         if (memEQ(name, "vV=GG", 5)) {
261             /* E */
262 0           *iv_return = 83;
263 0           return PERL_constant_ISIV;
264             }
265 0           break;
266             case 'G':
267 80 100         if (memEQ(name, "vLGGG", 5)) {
268             /* G */
269 20           *iv_return = 59;
270 20           return PERL_constant_ISIV;
271             }
272 60           break;
273             case 'I':
274 40 50         if (memEQ(name, "vV=GG", 5)) {
275             /* I */
276 40           *iv_return = 83;
277 40           return PERL_constant_ISIV;
278             }
279 0           break;
280             case 'p':
281 60 100         if (memEQ(name, "V=GGE", 5)) {
282             /* p */
283 40           *iv_return = 37;
284 40           return PERL_constant_ISIV;
285             }
286 20 50         if (memEQ(name, "V=GGI", 5)) {
287             /* p */
288 0           *iv_return = 37;
289 0           return PERL_constant_ISIV;
290             }
291 20           break;
292             }
293 500           return PERL_constant_NOTFOUND;
294             }
295             static int
296 843           func_ord_by_type_7 (pTHX_ const char *name, IV *iv_return) {
297             /* When generated this function returned values for the list of names given
298             here. However, subsequent manual editing may have added or removed some.
299             "GDGDGD&" "GGD0,L," "LGD0,L," "V=GGEDG" "V=GGIDG" "vV=GGGE" "vV=GGGI" */
300             /* Offset 6 gives the best switch position. */
301 843           switch (name[6]) {
302             case '&':
303 20 50         if (memEQ(name, "GDGDGD", 6)) {
304             /* & */
305 20           *iv_return = 31;
306 20           return PERL_constant_ISIV;
307             }
308 0           break;
309             case ',':
310 522 100         if (memEQ(name, "GGD0,L", 6)) {
311             /* , */
312 321           *iv_return = 25;
313 321           return PERL_constant_ISIV;
314             }
315 201 100         if (memEQ(name, "LGD0,L", 6)) {
316             /* , */
317 20           *iv_return = 45;
318 20           return PERL_constant_ISIV;
319             }
320 181           break;
321             case 'E':
322 0 0         if (memEQ(name, "vV=GGG", 6)) {
323             /* E */
324 0           *iv_return = 86;
325 0           return PERL_constant_ISIV;
326             }
327 0           break;
328             case 'G':
329 81 100         if (memEQ(name, "V=GGED", 6)) {
330             /* G */
331 61           *iv_return = 47;
332 61           return PERL_constant_ISIV;
333             }
334 20 50         if (memEQ(name, "V=GGID", 6)) {
335             /* G */
336 0           *iv_return = 47;
337 0           return PERL_constant_ISIV;
338             }
339 20           break;
340             case 'I':
341 40 100         if (memEQ(name, "vV=GGG", 6)) {
342             /* I */
343 20           *iv_return = 86;
344 20           return PERL_constant_ISIV;
345             }
346 20           break;
347             }
348 401           return PERL_constant_NOTFOUND;
349             }
350             static int
351 580           func_ord_by_type_8 (pTHX_ const char *name, IV *iv_return) {
352             /* When generated this function returned values for the list of names given
353             here. However, subsequent manual editing may have added or removed some.
354             "GD0,L,DG" GGDVDVDE GGDVDVDI */
355             /* Offset 7 gives the best switch position. */
356 580           switch (name[7]) {
357             case 'E':
358 0 0         if (memEQ(name, "GGDVDVD", 7)) {
359             /* E */
360 0           *iv_return = 49;
361 0           return PERL_constant_ISIV;
362             }
363 0           break;
364             case 'G':
365 60 50         if (memEQ(name, "GD0,L,D", 7)) {
366             /* G */
367 60           *iv_return = 13;
368 60           return PERL_constant_ISIV;
369             }
370 0           break;
371             case 'I':
372 20 50         if (memEQ(name, "GGDVDVD", 7)) {
373             /* I */
374 20           *iv_return = 49;
375 20           return PERL_constant_ISIV;
376             }
377 0           break;
378             }
379 500           return PERL_constant_NOTFOUND;
380             }
381             static int
382 60           func_ord_by_type_17 (pTHX_ const char *name, IV *iv_return) {
383             /* When generated this function returned values for the list of names given
384             here. However, subsequent manual editing may have added or removed some.
385             "GD0,G,D0,G,D0,L,p" "LV=GGEpD0,L,D0,L," "LV=GGIpD0,L,D0,L," */
386             /* Offset 5 gives the best switch position. */
387 60           switch (name[5]) {
388             case ',':
389 20 50         if (memEQ(name, "GD0,G,D0,G,D0,L,p", 17)) {
390             /* ^ */
391 0           *iv_return = 62;
392 0           return PERL_constant_ISIV;
393             }
394 20           break;
395             case 'E':
396 0 0         if (memEQ(name, "LV=GGEpD0,L,D0,L,", 17)) {
397             /* ^ */
398 0           *iv_return = 73;
399 0           return PERL_constant_ISIV;
400             }
401 0           break;
402             case 'I':
403 20 50         if (memEQ(name, "LV=GGIpD0,L,D0,L,", 17)) {
404             /* ^ */
405 20           *iv_return = 73;
406 20           return PERL_constant_ISIV;
407             }
408 0           break;
409             }
410 40           return PERL_constant_NOTFOUND;
411             }
412             static int
413 10852           func_ord_by_type (pTHX_ const char *name, STRLEN len, IV *iv_return) {
414             /* Initially switch on the length of the name. */
415             /* When generated this function returned values for the list of names given
416             in this section of perl code. Rather than manually editing these functions
417             to add or remove constants, which would result in this comment and section
418             of code becoming inaccurate, we recommend that you edit this section of
419             code, and use it to regenerate a new set of constant functions which you
420             then use to replace the originals.
421              
422             Regenerate these constant functions by feeding this entire source file to
423             perl -x
424              
425             #!i:/emx.add/BIN/perl.exe -w
426             use ExtUtils::Constant qw (constant_types C_constant XS_constant);
427              
428             my $types = {map {($_, 1)} qw(IV)};
429             my @names = (qw(),
430             {name=>"G", type=>"IV", macro=>"1", value=>"18"},
431             {name=>"GD0,G,D0,G,D0,L,p", type=>"IV", macro=>"1", value=>"62"},
432             {name=>"GD0,L,D0,G,", type=>"IV", macro=>"1", value=>"13"},
433             {name=>"GD0,L,DG", type=>"IV", macro=>"1", value=>"13"},
434             {name=>"GD0,L,DGp", type=>"IV", macro=>"1", value=>"96"},
435             {name=>"GDGDGD&", type=>"IV", macro=>"1", value=>"31"},
436             {name=>"GDGDGD0,L,p", type=>"IV", macro=>"1", value=>"62"},
437             {name=>"GDVDE", type=>"IV", macro=>"1", value=>"28"},
438             {name=>"GDVDI", type=>"IV", macro=>"1", value=>"28"},
439             {name=>"GDn", type=>"IV", macro=>"1", value=>"14"},
440             {name=>"GG", type=>"IV", macro=>"1", value=>"2"},
441             {name=>"GGD0,L,", type=>"IV", macro=>"1", value=>"25"},
442             {name=>"GGDVDVDE", type=>"IV", macro=>"1", value=>"49"},
443             {name=>"GGDVDVDI", type=>"IV", macro=>"1", value=>"49"},
444             {name=>"GGG", type=>"IV", macro=>"1", value=>"3"},
445             {name=>"GGGD0,L,p", type=>"IV", macro=>"1", value=>"33"},
446             {name=>"GGGG", type=>"IV", macro=>"1", value=>"4"},
447             {name=>"GGL", type=>"IV", macro=>"1", value=>"32"},
448             {name=>"GGp", type=>"IV", macro=>"1", value=>"29"},
449             {name=>"GL", type=>"IV", macro=>"1", value=>"23"},
450             {name=>"GVE", type=>"IV", macro=>"1", value=>"22"},
451             {name=>"GVI", type=>"IV", macro=>"1", value=>"22"},
452             {name=>"GnG", type=>"IV", macro=>"1", value=>"26"},
453             {name=>"GnP", type=>"IV", macro=>"1", value=>"12"},
454             {name=>"Gp", type=>"IV", macro=>"1", value=>"1"},
455             {name=>"L", type=>"IV", macro=>"1", value=>"11"},
456             {name=>"LG", type=>"IV", macro=>"1", value=>"24"},
457             {name=>"LGD0,L,", type=>"IV", macro=>"1", value=>"45"},
458             {name=>"LV=GGEpD0,L,D0,L,", type=>"IV", macro=>"1", value=>"73"},
459             {name=>"LV=GGIpD0,L,D0,L,", type=>"IV", macro=>"1", value=>"73"},
460             {name=>"V=GEp", type=>"IV", macro=>"1", value=>"27"},
461             {name=>"V=GGEDG", type=>"IV", macro=>"1", value=>"47"},
462             {name=>"V=GGEp", type=>"IV", macro=>"1", value=>"37"},
463             {name=>"V=GGIDG", type=>"IV", macro=>"1", value=>"47"},
464             {name=>"V=GGIp", type=>"IV", macro=>"1", value=>"37"},
465             {name=>"V=GIp", type=>"IV", macro=>"1", value=>"27"},
466             {name=>"lG", type=>"IV", macro=>"1", value=>"10"},
467             {name=>"lGG", type=>"IV", macro=>"1", value=>"20"},
468             {name=>"lGGG", type=>"IV", macro=>"1", value=>"30"},
469             {name=>"ls", type=>"IV", macro=>"1", value=>"16"},
470             {name=>"p", type=>"IV", macro=>"1", value=>"0"},
471             {name=>"vGVE", type=>"IV", macro=>"1", value=>"84"},
472             {name=>"vGVI", type=>"IV", macro=>"1", value=>"84"},
473             {name=>"vLGG", type=>"IV", macro=>"1", value=>"35"},
474             {name=>"vLGGGG", type=>"IV", macro=>"1", value=>"59"},
475             {name=>"vLL", type=>"IV", macro=>"1", value=>"19"},
476             {name=>"vLLL", type=>"IV", macro=>"1", value=>"34"},
477             {name=>"vLs", type=>"IV", macro=>"1", value=>"57"},
478             {name=>"vS", type=>"IV", macro=>"1", value=>"85"},
479             {name=>"vV=GED0,L,", type=>"IV", macro=>"1", value=>"87"},
480             {name=>"vV=GGE", type=>"IV", macro=>"1", value=>"83"},
481             {name=>"vV=GGGE", type=>"IV", macro=>"1", value=>"86"},
482             {name=>"vV=GGGI", type=>"IV", macro=>"1", value=>"86"},
483             {name=>"vV=GGI", type=>"IV", macro=>"1", value=>"83"},
484             {name=>"vV=GID0,L,", type=>"IV", macro=>"1", value=>"87"});
485              
486             print constant_types(); # macro defs
487             foreach (C_constant ("Math::Pari::func_type", 'func_ord_by_type', 'IV', $types, undef, 3, @names) ) {
488             print $_, "\n"; # C constant subs
489             }
490             print "#### XS Section:\n";
491             print XS_constant ("Math::Pari::func_type", $types);
492             __END__