-
Notifications
You must be signed in to change notification settings - Fork 174
/
carp_float.h
136 lines (108 loc) · 2.01 KB
/
carp_float.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
const float CARP_FLT_MAX = FLT_MAX;
float Float__PLUS_(float x, float y) {
return x + y;
}
float Float__MINUS_(float x, float y) {
return x - y;
}
float Float__MUL_(float x, float y) {
return x * y;
}
float Float__DIV_(float x, float y) {
return x / y;
}
bool Float__LT_(float x, float y) {
return x < y;
}
bool Float__GT_(float x, float y) {
return x > y;
}
bool Float__EQ_(float x, float y) {
return x == y;
}
float Float_neg(float x) {
return -x;
}
float Float_copy(const float* x) {
return *x;
}
int Float_to_MINUS_int(float x) {
return (int)x;
}
float Float_from_MINUS_int(int x) {
return (float)x;
}
int Float_to_MINUS_bytes(float x) {
int y;
memcpy(&y, &x, sizeof(float));
return y;
}
float Float_abs(float x) {
return fabsf(x);
}
float Float_acos(float x) {
return acosf(x);
}
float Float_asin(float x) {
return asinf(x);
}
float Float_atan(float x) {
return atanf(x);
}
float Float_atan2(float y, float x) {
return atan2f(y, x);
}
float Float_cos(float x) {
return cosf(x);
}
float Float_cosh(float x) {
return coshf(x);
}
float Float_sin(float x) {
return sinf(x);
}
float Float_sinh(float x) {
return sinhf(x);
}
float Float_tan(float x) {
return tanf(x);
}
float Float_tanh(float x) {
return tanhf(x);
}
float Float_exp(float x) {
return expf(x);
}
float Float_frexp(float x, int* exponent) {
return frexpf(x, exponent);
}
float Float_ldexp(float x, int exponent) {
return ldexpf(x, exponent);
}
float Float_log(float x) {
return logf(x);
}
float Float_log10(float x) {
return log10f(x);
}
float Float_modf(float x, float* integer) {
return modff(x, integer);
}
float Float_pow(float x, float y) {
return powf(x, y);
}
float Float_sqrt(float x) {
return sqrtf(x);
}
float Float_ceil(float x) {
return ceilf(x);
}
float Float_floor(float x) {
return floorf(x);
}
float Float_mod(float x, float y) {
return fmodf(x, y);
}
int Float_round(float x) {
return roundf(x);
}