-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmath_api.cpp
More file actions
333 lines (250 loc) · 9.88 KB
/
Copy pathmath_api.cpp
File metadata and controls
333 lines (250 loc) · 9.88 KB
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
#include "math_api.h"
#include <jni.h>
#include <cmath>
#include <vcruntime_string.h>
#include <cuda/std/cmath>
#define __CUDA_INTERNAL_COMPILATION__
#include <crt/math_functions.h>
#include <crt/math_functions.hpp>
#undef __CUDA_INTERNAL_COMPILATION__
//DEPRECATED FUNCTION
int max(int a, int b) {
return (a > b) ? a : b;
}
//DEPRECATED FUNCTION
int min(int a, int b) {
return (a < b) ? a : b;
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_acos(JNIEnv* env, jclass cls, jdouble x) {
return acos(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_acosh(JNIEnv* env, jclass cls, jdouble x){
return acosh(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_asin(JNIEnv* env, jclass cls, jdouble x) {
return asin(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_asinh(JNIEnv* env, jclass cls, jdouble x) {
return asinh(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_atan(JNIEnv* env, jclass cls, jdouble x) {
return atan(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_atan2(JNIEnv* env, jclass cls, jdouble y, jdouble x) {
return atan2(y, x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_atanh(JNIEnv* env, jclass cls, jdouble x) {
return atanh(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_cbrt(JNIEnv* env, jclass cls, jdouble x) {
return cbrt(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_ceil(JNIEnv* env, jclass cls, jdouble x) {
return ceil(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_copysign(JNIEnv* env, jclass cls, jdouble x, jdouble y) {
return copysign(x, y);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_cos(JNIEnv* env, jclass cls, jdouble x) {
return cos(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_cosh(JNIEnv* env, jclass cls, jdouble x) {
return cosh(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_cospi(JNIEnv* env, jclass cls, jdouble x) {
return cospi(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_erf(JNIEnv* env, jclass cls, jdouble x) {
return erf(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_erfc(JNIEnv* env, jclass cls, jdouble x) {
return erfc(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_erfcinv(JNIEnv* env, jclass cls, jdouble x) {
return erfcinv(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_erfcx(JNIEnv* env, jclass cls, jdouble x) {
return erfcx(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_erfinv(JNIEnv* env, jclass cls, jdouble x) {
return erfinv(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_exp(JNIEnv* env, jclass cls, jdouble x) {
return exp(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_exp10(JNIEnv* env, jclass cls, jdouble x) {
return exp10(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_exp2(JNIEnv* env, jclass cls, jdouble x) {
return exp2(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_expm1(JNIEnv* env, jclass cls, jdouble x) {
return expm1(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_fabs(JNIEnv* env, jclass cls, jdouble x) {
return fabs(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_fdim(JNIEnv* env, jclass cls, jdouble x, jdouble y) {
return fdim(x, y);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_floor(JNIEnv* env, jclass cls, jdouble x) {
return floor(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_fma(JNIEnv* env, jclass cls, jdouble x, jdouble y, jdouble z) {
return fma(x, y, z);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_fmax(JNIEnv* env, jclass cls, jdouble x, jdouble y) {
return fmax(x, y);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_fmin(JNIEnv* env, jclass cls, jdouble x, jdouble y) {
return fmin(x, y);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_fmod(JNIEnv* env, jclass cls, jdouble x, jdouble y) {
return fmod(x, y);
}
//double frexp(double x, int* nptr)
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_hypot(JNIEnv* env, jclass cls, jdouble x, jdouble y) {
return hypot(x, y);
}
JNIEXPORT jint JNICALL Java_kuda_mathapi_MathAPI_ilogb(JNIEnv* env, jclass cls, jdouble x) {
return ilogb(x);
}
//__RETURN_TYPE isfinite(double a)
//__RETURN_TYPE isinf(double a)
//__RETURN_TYPE isnan(double a)
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_j0(JNIEnv* env, jclass cls, jdouble x) {
return _j0(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_j1(JNIEnv* env, jclass cls, jdouble x) {
return _j1(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_jn(JNIEnv* env, jclass cls, jint n, jdouble x) {
return _jn(n, x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_ldexp(JNIEnv* env, jclass cls, jdouble x, jint exp) {
return ldexp(x, exp);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_lgamma(JNIEnv* env, jclass cls, jdouble x) {
return lgamma(x);
}
JNIEXPORT jlong JNICALL Java_kuda_mathapi_MathAPI_llrint(JNIEnv* env, jclass cls, jdouble x) {
return llrint(x);
}
JNIEXPORT jlong JNICALL Java_kuda_mathapi_MathAPI_llround(JNIEnv* env, jclass cls, jdouble x) {
return llround(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_log(JNIEnv* env, jclass cls, jdouble x) {
return log(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_log10(JNIEnv* env, jclass cls, jdouble x) {
return log10(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_log1p(JNIEnv* env, jclass cls, jdouble x) {
return log1p(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_log2(JNIEnv* env, jclass cls, jdouble x) {
return log2(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_logb(JNIEnv* env, jclass cls, jdouble x) {
return logb(x);
}
JNIEXPORT jlong JNICALL Java_kuda_mathapi_MathAPI_lrint(JNIEnv* env, jclass cls, jdouble x) {
return lrint(x);
}
JNIEXPORT jlong JNICALL Java_kuda_mathapi_MathAPI_lround(JNIEnv* env, jclass cls, jdouble x) {
return lround(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_max1(JNIEnv* env, jclass cls, jdouble a, jfloat b) {
return max((const double)a, (const float)b);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_max2(JNIEnv* env, jclass cls, jfloat a, jdouble b) {
return max((const float)a, (const double)b);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_max(JNIEnv* env, jclass cls, jdouble a, jdouble b) {
return max((const double)a, (const double)b);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_min1(JNIEnv* env, jclass cls, jdouble a, jfloat b) {
return min((const double)a, (const float)b);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_min2(JNIEnv* env, jclass cls, jfloat a, jdouble b) {
return min((const float)a, (const double)b);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_min(JNIEnv* env, jclass cls, jdouble a, jdouble b) {
return min((const double)a, (const double)b);
}
//double modf(double x, double* iptr)
//double nan(const char* tagp)
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_nearbyint(JNIEnv* env, jclass cls, jdouble x) {
return nearbyint(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_nextafter(JNIEnv* env, jclass cls, jdouble x, jdouble y) {
return nextafter(x, y);
}
//double norm(int dim, const double* p)
//double norm3d(double a, double b, double c)
//double norm4d(double a, double b, double c, double d)
//double normcdf(double x)
//double normcdfinv(double x)
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_pow(JNIEnv* env, jclass cls, jdouble x, jdouble y) {
return pow(x, y);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_rcbrt(JNIEnv* env, jclass cls, jdouble x) {
return rcbrt(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_remainder(JNIEnv* env, jclass cls, jdouble x, jdouble y) {
return remainder(x, y);
}
//double remquo(double x, double y, int* quo)
//double rhypot(double x, double y)
//double rint(double x)
//double rnorm(int dim, const double* p)
//double rnorm3d(double a, double b, double c)
//double rnorm4d(double a, double b, double c, double d)
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_round(JNIEnv* env, jclass cls, jdouble x) {
return round(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_rsqrt(JNIEnv* env, jclass cls, jdouble x) {
return rsqrt(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_scalbln(JNIEnv* env, jclass cls, jdouble x, jlong n) {
return scalbln(x, n);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_scalbn(JNIEnv* env, jclass cls, jdouble x, jint n) {
return scalbn(x, n);
}
//__RETURN_TYPE signbit(double a)
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_sin(JNIEnv* env, jclass cls, jdouble x) {
return sin(x);
}
//void sincos(double x, double* sptr, double* cptr)
//void sincospi(double x, double* sptr, double* cptr)
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_sinh(JNIEnv* env, jclass cls, jdouble x) {
return sinh(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_sinpi(JNIEnv* env, jclass cls, jdouble x) {
return sinpi(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_sqrt(JNIEnv* env, jclass cls, jdouble x) {
return sqrt(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_tan(JNIEnv* env, jclass cls, jdouble x) {
return tan(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_tanh(JNIEnv* env, jclass cls, jdouble x) {
return tanh(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_tgamma(JNIEnv* env, jclass cls, jdouble x) {
return tgamma(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_trunc(JNIEnv* env, jclass cls, jdouble x) {
return trunc(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_y0(JNIEnv* env, jclass cls, jdouble x) {
return _y0(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_y1(JNIEnv* env, jclass cls, jdouble x) {
return _y1(x);
}
JNIEXPORT jdouble JNICALL Java_kuda_mathapi_MathAPI_yn(JNIEnv* env, jclass cls, jint n, jdouble x) {
return _yn(n, x);
}