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