File Coverage

func_codes.h
Criterion Covered Total %
statement 223 304 73.3
branch 75 126 59.5
condition n/a
subroutine n/a
pod n/a
total 298 430 69.3


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 1483           case 'G':
30             {
31 1483           *iv_return = 18;
32 1483           return PERL_constant_ISIV;
33             }
34             break;
35 180           case 'L':
36             {
37 180           *iv_return = 11;
38 180           return PERL_constant_ISIV;
39             }
40             break;
41 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 3200           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 3200           switch (name[1]) {
57 2120           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 220           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 0           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 780           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 0           case 's':
90 0 0         if (name[0] == 'l') {
91 0           *iv_return = 16;
92 0           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 20           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 860           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 0           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 100           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 20           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 283           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 400           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 0           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 0           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 440           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 21           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 20           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 140           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 20           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 0           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 0           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 80           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 40           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 60           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 20           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 522           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 0           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 81           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 40           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 0           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 60           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 20           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 20           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 0           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 20           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 10832           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__