vinyl-cache/vmod/vmod_math.c
0
1
/* this code is auto-generated. Do not edit */
2
#include "config.h"
3
4
#include <float.h>
5
#include <math.h>
6
7
#include "vdef.h"
8
#include "vas.h"
9
#include "vrt.h"
10
#include "vcc_math_if.h"
11
12
// macros in math.h code are generic-ish across float/double/long double
13
//lint --e{506} Constant value Boolean
14
//lint --e{736} Loss of precision
15
16
VCL_REAL
17 126
vmod_constant(VRT_CTX, VCL_ENUM name)
18
{
19 126
    (void)ctx;
20
21 126
    if (name == VENUM(DBL_MANT_DIG)) return (DBL_MANT_DIG);
22
23 126
    if (name == VENUM(DBL_DIG)) return (DBL_DIG);
24
25 126
    if (name == VENUM(DBL_MIN_EXP)) return (DBL_MIN_EXP);
26
27 126
    if (name == VENUM(DBL_MIN_10_EXP)) return (DBL_MIN_10_EXP);
28
29 126
    if (name == VENUM(DBL_MAX_EXP)) return (DBL_MAX_EXP);
30
31 126
    if (name == VENUM(DBL_MAX_10_EXP)) return (DBL_MAX_10_EXP);
32
33 126
    if (name == VENUM(DBL_MAX)) return (DBL_MAX);
34
35 126
    if (name == VENUM(DBL_EPSILON)) return (DBL_EPSILON);
36
37 126
    if (name == VENUM(DBL_MIN)) return (DBL_MIN);
38
39 126
    if (name == VENUM(HUGE_VAL)) return (HUGE_VAL);
40
41 126
    if (name == VENUM(M_E)) return (M_E);
42
43 126
    if (name == VENUM(M_LOG2E)) return (M_LOG2E);
44
45 126
    if (name == VENUM(M_LOG10E)) return (M_LOG10E);
46
47 126
    if (name == VENUM(M_LN2)) return (M_LN2);
48
49 126
    if (name == VENUM(M_LN10)) return (M_LN10);
50
51 126
    if (name == VENUM(M_PI)) return (M_PI);
52
53 0
    if (name == VENUM(M_PI_2)) return (M_PI_2);
54
55 0
    if (name == VENUM(M_PI_4)) return (M_PI_4);
56
57 0
    if (name == VENUM(M_1_PI)) return (M_1_PI);
58
59 0
    if (name == VENUM(M_2_PI)) return (M_2_PI);
60
61 0
    if (name == VENUM(M_2_SQRTPI)) return (M_2_SQRTPI);
62
63 0
    if (name == VENUM(M_SQRT2)) return (M_SQRT2);
64
65 0
    if (name == VENUM(M_SQRT1_2)) return (M_SQRT1_2);
66
67 0
    WRONG("constant enum");
68 126
}
69
70
VCL_INT
71 21
vmod_fpclass(VRT_CTX, VCL_ENUM name)
72
{
73 21
    (void)ctx;
74
75 21
    if (name == VENUM(FP_INFINITE)) return (FP_INFINITE);
76
77 21
    if (name == VENUM(FP_NAN)) return (FP_NAN);
78
79 21
    if (name == VENUM(FP_NORMAL)) return (FP_NORMAL);
80
81 21
    if (name == VENUM(FP_SUBNORMAL)) return (FP_SUBNORMAL);
82
83 21
    if (name == VENUM(FP_ZERO)) return (FP_ZERO);
84
85 0
    WRONG("fpclass enum");
86 21
}
87
88
VCL_INT
89 42
vmod_fpclassify(VRT_CTX, VCL_REAL  x)
90
{
91 42
        (void)ctx;
92 42
        return (fpclassify(x));
93
}
94
95
VCL_INT
96 21
vmod_isfinite(VRT_CTX, VCL_REAL  x)
97
{
98 21
        (void)ctx;
99 21
        return (isfinite(x));
100
}
101
102
VCL_INT
103 21
vmod_isgreater(VRT_CTX, VCL_REAL  x, VCL_REAL  y)
104
{
105 21
        (void)ctx;
106 21
        return (isgreater(x, y));
107
}
108
109
VCL_INT
110 21
vmod_isgreaterequal(VRT_CTX, VCL_REAL  x, VCL_REAL  y)
111
{
112 21
        (void)ctx;
113 21
        return (isgreaterequal(x, y));
114
}
115
116
VCL_INT
117 21
vmod_isinf(VRT_CTX, VCL_REAL  x)
118
{
119 21
        (void)ctx;
120 21
        return (isinf(x));
121
}
122
123
VCL_INT
124 21
vmod_isless(VRT_CTX, VCL_REAL  x, VCL_REAL  y)
125
{
126 21
        (void)ctx;
127 21
        return (isless(x, y));
128
}
129
130
VCL_INT
131 21
vmod_islessequal(VRT_CTX, VCL_REAL  x, VCL_REAL  y)
132
{
133 21
        (void)ctx;
134 21
        return (islessequal(x, y));
135
}
136
137
VCL_INT
138 21
vmod_islessgreater(VRT_CTX, VCL_REAL  x, VCL_REAL  y)
139
{
140 21
        (void)ctx;
141 21
        return (islessgreater(x, y));
142
}
143
144
VCL_INT
145 21
vmod_isnan(VRT_CTX, VCL_REAL  x)
146
{
147 21
        (void)ctx;
148 21
        return (isnan(x));
149
}
150
151
VCL_INT
152 21
vmod_isnormal(VRT_CTX, VCL_REAL  x)
153
{
154 21
        (void)ctx;
155 21
        return (isnormal(x));
156
}
157
158
VCL_INT
159 21
vmod_isunordered(VRT_CTX, VCL_REAL  x, VCL_REAL  y)
160
{
161 21
        (void)ctx;
162 21
        return (isunordered(x, y));
163
}
164
165
VCL_INT
166 21
vmod_signbit(VRT_CTX, VCL_REAL  x)
167
{
168 21
        (void)ctx;
169 21
        return (signbit(x));
170
}
171
172
VCL_REAL
173 21
vmod_acos(VRT_CTX, VCL_REAL x)
174
{
175 21
        (void)ctx;
176 21
        return (acos(x));
177
}
178
179
VCL_REAL
180 21
vmod_acosh(VRT_CTX, VCL_REAL x)
181
{
182 21
        (void)ctx;
183 21
        return (acosh(x));
184
}
185
186
VCL_REAL
187 21
vmod_asin(VRT_CTX, VCL_REAL x)
188
{
189 21
        (void)ctx;
190 21
        return (asin(x));
191
}
192
193
VCL_REAL
194 21
vmod_asinh(VRT_CTX, VCL_REAL x)
195
{
196 21
        (void)ctx;
197 21
        return (asinh(x));
198
}
199
200
VCL_REAL
201 21
vmod_atan(VRT_CTX, VCL_REAL x)
202
{
203 21
        (void)ctx;
204 21
        return (atan(x));
205
}
206
207
VCL_REAL
208 21
vmod_atan2(VRT_CTX, VCL_REAL y, VCL_REAL x)
209
{
210 21
        (void)ctx;
211 21
        return (atan2(y, x));
212
}
213
214
VCL_REAL
215 21
vmod_atanh(VRT_CTX, VCL_REAL x)
216
{
217 21
        (void)ctx;
218 21
        return (atanh(x));
219
}
220
221
VCL_REAL
222 21
vmod_cbrt(VRT_CTX, VCL_REAL x)
223
{
224 21
        (void)ctx;
225 21
        return (cbrt(x));
226
}
227
228
VCL_REAL
229 21
vmod_ceil(VRT_CTX, VCL_REAL x)
230
{
231 21
        (void)ctx;
232 21
        return (ceil(x));
233
}
234
235
VCL_REAL
236 21
vmod_copysign(VRT_CTX, VCL_REAL x, VCL_REAL y)
237
{
238 21
        (void)ctx;
239 21
        return (copysign(x, y));
240
}
241
242
VCL_REAL
243 21
vmod_cos(VRT_CTX, VCL_REAL x)
244
{
245 21
        (void)ctx;
246 21
        return (cos(x));
247
}
248
249
VCL_REAL
250 21
vmod_cosh(VRT_CTX, VCL_REAL x)
251
{
252 21
        (void)ctx;
253 21
        return (cosh(x));
254
}
255
256
VCL_REAL
257 21
vmod_erf(VRT_CTX, VCL_REAL x)
258
{
259 21
        (void)ctx;
260 21
        return (erf(x));
261
}
262
263
VCL_REAL
264 21
vmod_erfc(VRT_CTX, VCL_REAL x)
265
{
266 21
        (void)ctx;
267 21
        return (erfc(x));
268
}
269
270
VCL_REAL
271 21
vmod_exp(VRT_CTX, VCL_REAL x)
272
{
273 21
        (void)ctx;
274 21
        return (exp(x));
275
}
276
277
VCL_REAL
278 21
vmod_exp2(VRT_CTX, VCL_REAL x)
279
{
280 21
        (void)ctx;
281 21
        return (exp2(x));
282
}
283
284
VCL_REAL
285 21
vmod_expm1(VRT_CTX, VCL_REAL x)
286
{
287 21
        (void)ctx;
288 21
        return (expm1(x));
289
}
290
291
VCL_REAL
292 21
vmod_fabs(VRT_CTX, VCL_REAL x)
293
{
294 21
        (void)ctx;
295 21
        return (fabs(x));
296
}
297
298
VCL_REAL
299 21
vmod_fdim(VRT_CTX, VCL_REAL x, VCL_REAL y)
300
{
301 21
        (void)ctx;
302 21
        return (fdim(x, y));
303
}
304
305
VCL_REAL
306 21
vmod_floor(VRT_CTX, VCL_REAL x)
307
{
308 21
        (void)ctx;
309 21
        return (floor(x));
310
}
311
312
VCL_REAL
313 21
vmod_fma(VRT_CTX, VCL_REAL x, VCL_REAL y, VCL_REAL z)
314
{
315 21
        (void)ctx;
316 21
        return (fma(x, y, z));
317
}
318
319
VCL_REAL
320 21
vmod_fmax(VRT_CTX, VCL_REAL x, VCL_REAL y)
321
{
322 21
        (void)ctx;
323 21
        return (fmax(x, y));
324
}
325
326
VCL_REAL
327 21
vmod_fmin(VRT_CTX, VCL_REAL x, VCL_REAL y)
328
{
329 21
        (void)ctx;
330 21
        return (fmin(x, y));
331
}
332
333
VCL_REAL
334 21
vmod_fmod(VRT_CTX, VCL_REAL x, VCL_REAL y)
335
{
336 21
        (void)ctx;
337 21
        return (fmod(x, y));
338
}
339
340
VCL_REAL
341 21
vmod_hypot(VRT_CTX, VCL_REAL x, VCL_REAL y)
342
{
343 21
        (void)ctx;
344 21
        return (hypot(x, y));
345
}
346
347
VCL_INT
348 21
vmod_ilogb(VRT_CTX, VCL_REAL x)
349
{
350 21
        (void)ctx;
351 21
        return (ilogb(x));
352
}
353
354
VCL_REAL
355 21
vmod_j0(VRT_CTX, VCL_REAL x)
356
{
357 21
        (void)ctx;
358 21
        return (j0(x));
359
}
360
361
VCL_REAL
362 21
vmod_j1(VRT_CTX, VCL_REAL x)
363
{
364 21
        (void)ctx;
365 21
        return (j1(x));
366
}
367
368
VCL_REAL
369 21
vmod_jn(VRT_CTX, VCL_INT x, VCL_REAL y)
370
{
371 21
        (void)ctx;
372 21
        return (jn(x, y));
373
}
374
375
VCL_REAL
376 21
vmod_ldexp(VRT_CTX, VCL_REAL x, VCL_INT e)
377
{
378 21
        (void)ctx;
379 21
        return (ldexp(x, e));
380
}
381
382
VCL_REAL
383 21
vmod_lgamma(VRT_CTX, VCL_REAL x)
384
{
385 21
        (void)ctx;
386 21
        return (lgamma(x));
387
}
388
389
VCL_REAL
390 21
vmod_log(VRT_CTX, VCL_REAL x)
391
{
392 21
        (void)ctx;
393 21
        return (log(x));
394
}
395
396
VCL_REAL
397 21
vmod_log10(VRT_CTX, VCL_REAL x)
398
{
399 21
        (void)ctx;
400 21
        return (log10(x));
401
}
402
403
VCL_REAL
404 21
vmod_log1p(VRT_CTX, VCL_REAL x)
405
{
406 21
        (void)ctx;
407 21
        return (log1p(x));
408
}
409
410
VCL_REAL
411 21
vmod_log2(VRT_CTX, VCL_REAL x)
412
{
413 21
        (void)ctx;
414 21
        return (log2(x));
415
}
416
417
VCL_REAL
418 21
vmod_logb(VRT_CTX, VCL_REAL x)
419
{
420 21
        (void)ctx;
421 21
        return (logb(x));
422
}
423
424
VCL_INT
425 21
vmod_lrint(VRT_CTX, VCL_REAL x)
426
{
427 21
        (void)ctx;
428 21
        return (lrint(x));
429
}
430
431
VCL_INT
432 21
vmod_lround(VRT_CTX, VCL_REAL x)
433
{
434 21
        (void)ctx;
435 21
        return (lround(x));
436
}
437
438
VCL_REAL
439 21
vmod_nan(VRT_CTX, VCL_STRING tag)
440
{
441 21
        (void)ctx;
442 21
        return (nan(tag));
443
}
444
445
VCL_REAL
446 21
vmod_nearbyint(VRT_CTX, VCL_REAL x)
447
{
448 21
        (void)ctx;
449 21
        return (nearbyint(x));
450
}
451
452
VCL_REAL
453 21
vmod_nextafter(VRT_CTX, VCL_REAL x, VCL_REAL y)
454
{
455 21
        (void)ctx;
456 21
        return (nextafter(x, y));
457
}
458
459
VCL_REAL
460 21
vmod_pow(VRT_CTX, VCL_REAL x, VCL_REAL y)
461
{
462 21
        (void)ctx;
463 21
        return (pow(x, y));
464
}
465
466
VCL_REAL
467 21
vmod_remainder(VRT_CTX, VCL_REAL x, VCL_REAL y)
468
{
469 21
        (void)ctx;
470 21
        return (remainder(x, y));
471
}
472
473
VCL_REAL
474 21
vmod_rint(VRT_CTX, VCL_REAL x)
475
{
476 21
        (void)ctx;
477 21
        return (rint(x));
478
}
479
480
VCL_REAL
481 21
vmod_round(VRT_CTX, VCL_REAL x)
482
{
483 21
        (void)ctx;
484 21
        return (round(x));
485
}
486
487
VCL_REAL
488 21
vmod_scalbln(VRT_CTX, VCL_REAL x, VCL_INT e)
489
{
490 21
        (void)ctx;
491 21
        return (scalbln(x, e));
492
}
493
494
VCL_REAL
495 21
vmod_scalbn(VRT_CTX, VCL_REAL x, VCL_INT y)
496
{
497 21
        (void)ctx;
498 21
        return (scalbn(x, y));
499
}
500
501
VCL_REAL
502 126
vmod_sin(VRT_CTX, VCL_REAL x)
503
{
504 126
        (void)ctx;
505 126
        return (sin(x));
506
}
507
508
VCL_REAL
509 21
vmod_sinh(VRT_CTX, VCL_REAL x)
510
{
511 21
        (void)ctx;
512 21
        return (sinh(x));
513
}
514
515
VCL_REAL
516 21
vmod_sqrt(VRT_CTX, VCL_REAL x)
517
{
518 21
        (void)ctx;
519 21
        return (sqrt(x));
520
}
521
522
VCL_REAL
523 21
vmod_tan(VRT_CTX, VCL_REAL x)
524
{
525 21
        (void)ctx;
526 21
        return (tan(x));
527
}
528
529
VCL_REAL
530 21
vmod_tanh(VRT_CTX, VCL_REAL x)
531
{
532 21
        (void)ctx;
533 21
        return (tanh(x));
534
}
535
536
VCL_REAL
537 21
vmod_tgamma(VRT_CTX, VCL_REAL x)
538
{
539 21
        (void)ctx;
540 21
        return (tgamma(x));
541
}
542
543
VCL_REAL
544 21
vmod_trunc(VRT_CTX, VCL_REAL x)
545
{
546 21
        (void)ctx;
547 21
        return (trunc(x));
548
}
549
550
VCL_REAL
551 21
vmod_y0(VRT_CTX, VCL_REAL x)
552
{
553 21
        (void)ctx;
554 21
        return (y0(x));
555
}
556
557
VCL_REAL
558 21
vmod_y1(VRT_CTX, VCL_REAL x)
559
{
560 21
        (void)ctx;
561 21
        return (y1(x));
562
}
563
564
VCL_REAL
565 21
vmod_yn(VRT_CTX, VCL_INT n, VCL_REAL x)
566
{
567 21
        (void)ctx;
568 21
        return (yn(n, x));
569
}
570
571
VCL_BOOL
572 21
vmod_code_coverage(VRT_CTX, VCL_REAL x)
573
{
574 21
        double a = 0.;
575 21
        a += vmod_fpclassify(ctx, x/113.);
576 21
        a += vmod_isfinite(ctx, x/113.);
577 21
        a += vmod_isgreater(ctx, x/113., x/355.);
578 21
        a += vmod_isgreaterequal(ctx, x/113., x/355.);
579 21
        a += vmod_isinf(ctx, x/113.);
580 21
        a += vmod_isless(ctx, x/113., x/355.);
581 21
        a += vmod_islessequal(ctx, x/113., x/355.);
582 21
        a += vmod_islessgreater(ctx, x/113., x/355.);
583 21
        a += vmod_isnan(ctx, x/113.);
584 21
        a += vmod_isnormal(ctx, x/113.);
585 21
        a += vmod_isunordered(ctx, x/113., x/355.);
586 21
        a += vmod_signbit(ctx, x/113.);
587 21
        a += vmod_acos(ctx, x/113.);
588 21
        a += vmod_acosh(ctx, x/113.);
589 21
        a += vmod_asin(ctx, x/113.);
590 21
        a += vmod_asinh(ctx, x/113.);
591 21
        a += vmod_atan(ctx, x/113.);
592 21
        a += vmod_atan2(ctx, x/113., x/113.);
593 21
        a += vmod_atanh(ctx, x/113.);
594 21
        a += vmod_cbrt(ctx, x/113.);
595 21
        a += vmod_ceil(ctx, x/113.);
596 21
        a += vmod_copysign(ctx, x/113., x/113.);
597 21
        a += vmod_cos(ctx, x/113.);
598 21
        a += vmod_cosh(ctx, x/113.);
599 21
        a += vmod_erf(ctx, x/113.);
600 21
        a += vmod_erfc(ctx, x/113.);
601 21
        a += vmod_exp(ctx, x/113.);
602 21
        a += vmod_exp2(ctx, x/113.);
603 21
        a += vmod_expm1(ctx, x/113.);
604 21
        a += vmod_fabs(ctx, x/113.);
605 21
        a += vmod_fdim(ctx, x/113., x/113.);
606 21
        a += vmod_floor(ctx, x/113.);
607 21
        a += vmod_fma(ctx, x/113., x/113., x/113.);
608 21
        a += vmod_fmax(ctx, x/113., x/113.);
609 21
        a += vmod_fmin(ctx, x/113., x/113.);
610 21
        a += vmod_fmod(ctx, x/113., x/113.);
611 21
        a += vmod_hypot(ctx, x/113., x/113.);
612 21
        a += vmod_ilogb(ctx, x/113.);
613 21
        a += vmod_j0(ctx, x/113.);
614 21
        a += vmod_j1(ctx, x/113.);
615 21
        a += vmod_jn(ctx, 12, x/113.);
616 21
        a += vmod_ldexp(ctx, x/113., 12);
617 21
        a += vmod_lgamma(ctx, x/113.);
618 21
        a += vmod_log(ctx, x/113.);
619 21
        a += vmod_log10(ctx, x/113.);
620 21
        a += vmod_log1p(ctx, x/113.);
621 21
        a += vmod_log2(ctx, x/113.);
622 21
        a += vmod_logb(ctx, x/113.);
623 21
        a += vmod_lrint(ctx, x/113.);
624 21
        a += vmod_lround(ctx, x/113.);
625 21
        a += vmod_nan(ctx, "0x3141");
626 21
        a += vmod_nearbyint(ctx, x/113.);
627 21
        a += vmod_nextafter(ctx, x/113., x/113.);
628 21
        a += vmod_pow(ctx, x/113., x/113.);
629 21
        a += vmod_remainder(ctx, x/113., x/113.);
630 21
        a += vmod_rint(ctx, x/113.);
631 21
        a += vmod_round(ctx, x/113.);
632 21
        a += vmod_scalbln(ctx, x/113., 24L);
633 21
        a += vmod_scalbn(ctx, x/113., 12);
634 21
        a += vmod_sin(ctx, x/113.);
635 21
        a += vmod_sinh(ctx, x/113.);
636 21
        a += vmod_sqrt(ctx, x/113.);
637 21
        a += vmod_tan(ctx, x/113.);
638 21
        a += vmod_tanh(ctx, x/113.);
639 21
        a += vmod_tgamma(ctx, x/113.);
640 21
        a += vmod_trunc(ctx, x/113.);
641 21
        a += vmod_y0(ctx, x/113.);
642 21
        a += vmod_y1(ctx, x/113.);
643 21
        a += vmod_yn(ctx, 12, x/113.);
644 21
        return (isnan(a));
645
}