-
Notifications
You must be signed in to change notification settings - Fork 172
/
Copy pathcarp_double.h
145 lines (115 loc) · 2.28 KB
/
carp_double.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
137
138
139
140
141
142
143
144
145
const double CARP_DBL_MAX = DBL_MAX;
double Double__PLUS_(double x, double y) {
return x + y;
}
double Double__MINUS_(double x, double y) {
return x - y;
}
double Double__MUL_(double x, double y) {
return x * y;
}
double Double__DIV_(double x, double y) {
return x / y;
}
bool Double__LT_(double x, double y) {
return x < y;
}
bool Double__GT_(double x, double y) {
return x > y;
}
bool Double__EQ_(double x, double y) {
return x == y;
}
double Double_neg(double x) {
return -x;
}
double Double_copy(const double* x) {
return *x;
}
// Double.toInt : Double -> Int
int Double_to_MINUS_int(double x) {
return (int)x;
}
double Double_from_MINUS_int(int x) {
return (double)x;
}
Long Double_to_MINUS_bytes(double x) {
Long y;
memcpy(&y, &x, sizeof(double));
return y;
}
float Double_to_MINUS_float(double x) {
return (float)x;
}
double Double_from_MINUS_float(float x) {
return (double)x;
}
Long Double_to_MINUS_long(double x) {
return (Long)x;
}
double Double_from_MINUS_long(Long x) {
return (double)x;
}
double Double_abs(double x) {
return x > 0.0 ? x : -x;
}
double Double_acos(double x) {
return acos(x);
}
double Double_asin(double x) {
return asin(x);
}
double Double_atan(double x) {
return atan(x);
}
double Double_atan2(double y, double x) {
return atan2(y, x);
}
double Double_cos(double x) {
return cos(x);
}
double Double_cosh(double x) {
return cosh(x);
}
double Double_sin(double x) {
return sin(x);
}
double Double_sinh(double x) {
return sinh(x);
}
double Double_tanh(double x) {
return tanh(x);
}
double Double_exp(double x) {
return exp(x);
}
double Double_frexp(double x, int* exponent) {
return frexp(x, exponent);
}
double Double_ldexp(double x, int exponent) {
return ldexp(x, exponent);
}
double Double_log(double x) {
return log(x);
}
double Double_log10(double x) {
return log10(x);
}
double Double_modf(double x, double* integer) {
return modf(x, integer);
}
double Double_pow(double x, double y) {
return pow(x, y);
}
double Double_sqrt(double x) {
return sqrt(x);
}
double Double_ceil(double x) {
return ceil(x);
}
double Double_floor(double x) {
return floor(x);
}
double Double_mod(double x, double y) {
return fmod(x, y);
}