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}