master
 1// Each of the following math functions can be implemented with a single
 2// wasm instruction, so use that implementation rather than the portable
 3// one in libm.
 4
 5#include <math.h>
 6
 7float fabsf(float x) {
 8    return __builtin_fabsf(x);
 9}
10
11double fabs(double x) {
12    return __builtin_fabs(x);
13}
14
15float sqrtf(float x) {
16    return __builtin_sqrtf(x);
17}
18
19double sqrt(double x) {
20    return __builtin_sqrt(x);
21}
22
23float copysignf(float x, float y) {
24    return __builtin_copysignf(x, y);
25}
26
27double copysign(double x, double y) {
28    return __builtin_copysign(x, y);
29}
30
31float ceilf(float x) {
32    return __builtin_ceilf(x);
33}
34
35double ceil(double x) {
36    return __builtin_ceil(x);
37}
38
39float floorf(float x) {
40    return __builtin_floorf(x);
41}
42
43double floor(double x) {
44    return __builtin_floor(x);
45}
46
47float truncf(float x) {
48    return __builtin_truncf(x);
49}
50
51double trunc(double x) {
52    return __builtin_trunc(x);
53}
54
55float nearbyintf(float x) {
56    return __builtin_nearbyintf(x);
57}
58
59double nearbyint(double x) {
60    return __builtin_nearbyint(x);
61}
62
63float rintf(float x) {
64    return __builtin_rintf(x);
65}
66
67double rint(double x) {
68    return __builtin_rint(x);
69}