• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "cstdlib"
17 #include "napi/native_api.h"
18 #include <cmath>
19 #include <cstdlib>
20 #include <js_native_api.h>
21 #include <node_api.h>
22 
23 #define PI 3.14159265358979
24 #define HALFCIRCLE 180.0
25 #define TRUE 1
26 #define FALSE 0
27 #define ERROR (-1)
28 #define ONE 1
29 #define TWO 2
30 #define STRLENGTH 64
31 #define FAIL (-1)
32 #define SUCCESS 1
33 #define MAGICNUM (-0.5385416161050316)
34 #define MAGICYNFNUM (-0.538542)
35 #define PARAM_FAIL (-1)
36 #define PARAM_0 0
37 #define PARAM_1 1
38 #define PARAM_2 2
39 #define PARAM_3 3
40 #define PARAM_30 3.0
41 #define PARAM_UNNORMAL (-1)
42 #define EPSILON_1 (1e-6)
43 
LLround(napi_env env,napi_callback_info info)44 static napi_value LLround(napi_env env, napi_callback_info info)
45 {
46     size_t argc = PARAM_1;
47     napi_value args[1] = {nullptr};
48     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
49     double value;
50     napi_get_value_double(env, args[0], &value);
51     int roundValue = llround(value);
52     napi_value result = nullptr;
53     napi_create_int32(env, roundValue, &result);
54     return result;
55 }
LLroundf(napi_env env,napi_callback_info info)56 static napi_value LLroundf(napi_env env, napi_callback_info info)
57 {
58     size_t argc = PARAM_1;
59     napi_value args[1] = {nullptr};
60     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
61     double value;
62     napi_get_value_double(env, args[0], &value);
63     int roundValue = llroundf(value);
64     napi_value result = nullptr;
65     napi_create_int32(env, roundValue, &result);
66     return result;
67 }
68 
LLroundl(napi_env env,napi_callback_info info)69 static napi_value LLroundl(napi_env env, napi_callback_info info)
70 {
71     size_t argc = PARAM_1;
72     napi_value args[1] = {nullptr};
73     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
74     double value;
75     napi_get_value_double(env, args[0], &value);
76     int roundValue = llroundl(value);
77     napi_value result = nullptr;
78     napi_create_int32(env, roundValue, &result);
79     return result;
80 }
81 
LLrint(napi_env env,napi_callback_info info)82 static napi_value LLrint(napi_env env, napi_callback_info info)
83 {
84     size_t argc = PARAM_1;
85     napi_value args[1] = {nullptr};
86     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
87     double value;
88     napi_get_value_double(env, args[0], &value);
89     int roundValue = llrint(value);
90     napi_value result = nullptr;
91     napi_create_int32(env, roundValue, &result);
92     return result;
93 }
LLrintf(napi_env env,napi_callback_info info)94 static napi_value LLrintf(napi_env env, napi_callback_info info)
95 {
96     size_t argc = PARAM_1;
97     napi_value args[1] = {nullptr};
98     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
99     double value;
100     napi_get_value_double(env, args[0], &value);
101     int roundValue = llrintf(value);
102     napi_value result = nullptr;
103     napi_create_int32(env, roundValue, &result);
104     return result;
105 }
LRintf(napi_env env,napi_callback_info info)106 static napi_value LRintf(napi_env env, napi_callback_info info)
107 {
108     size_t argc = PARAM_1;
109     napi_value args[1] = {nullptr};
110     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
111     double valueZero;
112     napi_get_value_double(env, args[0], &valueZero);
113     double lrintf_value = lrintf(valueZero);
114     napi_value result = nullptr;
115     napi_create_double(env, lrintf_value, &result);
116 
117     return result;
118 }
LLrintl(napi_env env,napi_callback_info info)119 static napi_value LLrintl(napi_env env, napi_callback_info info)
120 {
121     size_t argc = PARAM_1;
122     napi_value args[1] = {nullptr};
123     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
124     double value;
125     napi_get_value_double(env, args[0], &value);
126     int roundValue = llrintl(value);
127     napi_value result = nullptr;
128     napi_create_int32(env, roundValue, &result);
129     return result;
130 }
131 
Lgamma(napi_env env,napi_callback_info info)132 static napi_value Lgamma(napi_env env, napi_callback_info info)
133 {
134     size_t argc = PARAM_1;
135     napi_value args[1] = {nullptr};
136     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
137     double param, ret;
138     napi_get_value_double(env, args[0], &param);
139     ret = lgamma(param);
140     napi_value result;
141     if (HUGE_VAL == ret) {
142         napi_create_int32(env, PARAM_UNNORMAL, &result);
143     } else {
144         napi_create_double(env, ret, &result);
145     }
146     return result;
147 }
Lgammaf(napi_env env,napi_callback_info info)148 static napi_value Lgammaf(napi_env env, napi_callback_info info)
149 {
150     size_t argc = PARAM_1;
151     napi_value args[1] = {nullptr};
152     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
153     double param, ret;
154     napi_get_value_double(env, args[0], &param);
155     ret = lgammaf(param);
156     napi_value result;
157     if (HUGE_VALF == ret) {
158         napi_create_int32(env, PARAM_UNNORMAL, &result);
159     } else {
160         napi_create_double(env, ret, &result);
161     }
162     return result;
163 }
Lgammal(napi_env env,napi_callback_info info)164 static napi_value Lgammal(napi_env env, napi_callback_info info)
165 {
166     size_t argc = PARAM_1;
167     napi_value args[1] = {nullptr};
168     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
169     double param, ret;
170     napi_get_value_double(env, args[0], &param);
171     ret = lgammal(param);
172     napi_value result;
173     if (HUGE_VALL == ret) {
174         napi_create_int32(env, PARAM_UNNORMAL, &result);
175     } else {
176         napi_create_double(env, ret, &result);
177     }
178     return result;
179 }
180 
181 #define THIRTYONE 31
182 
Lgamma_r(napi_env env,napi_callback_info info)183 static napi_value Lgamma_r(napi_env env, napi_callback_info info)
184 {
185     size_t argc = PARAM_1;
186     napi_value args[1] = {nullptr};
187     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
188     double param, ret;
189     int a;
190     napi_get_value_double(env, args[0], &param);
191     ret = lgamma_r(param, &a);
192     napi_value result;
193     if (HUGE_VAL == ret) {
194         napi_create_int32(env, PARAM_UNNORMAL, &result);
195     } else {
196         napi_create_double(env, ret, &result);
197     }
198     return result;
199 }
Lgammaf_r(napi_env env,napi_callback_info info)200 static napi_value Lgammaf_r(napi_env env, napi_callback_info info)
201 {
202     size_t argc = PARAM_1;
203     napi_value args[1] = {nullptr};
204     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
205     double param, ret;
206     int a;
207     napi_get_value_double(env, args[0], &param);
208     ret = lgammaf_r(param, &a);
209     napi_value result;
210     if (HUGE_VALF == ret) {
211         napi_create_int32(env, PARAM_UNNORMAL, &result);
212     } else {
213         napi_create_double(env, ret, &result);
214     }
215     return result;
216 }
Lgammal_r(napi_env env,napi_callback_info info)217 static napi_value Lgammal_r(napi_env env, napi_callback_info info)
218 {
219     size_t argc = PARAM_1;
220     napi_value args[1] = {nullptr};
221     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
222     double param, ret;
223     int a;
224     napi_get_value_double(env, args[0], &param);
225     ret = lgammal_r(param, &a);
226     napi_value result;
227     if (HUGE_VALL == ret) {
228         napi_create_int32(env, PARAM_UNNORMAL, &result);
229     } else {
230         napi_create_double(env, ret, &result);
231     }
232     return result;
233 }
234 
Ldexp(napi_env env,napi_callback_info info)235 static napi_value Ldexp(napi_env env, napi_callback_info info)
236 {
237     size_t argc = PARAM_2;
238     napi_value args[2] = {nullptr};
239     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
240     int secondParam;
241     double firstParam;
242     napi_get_value_double(env, args[0], &firstParam);
243     napi_get_value_int32(env, args[1], &secondParam);
244     double retj = ldexp(firstParam, secondParam);
245     napi_value result;
246     napi_create_double(env, retj, &result);
247     return result;
248 }
249 
Ldexpl(napi_env env,napi_callback_info info)250 static napi_value Ldexpl(napi_env env, napi_callback_info info)
251 {
252     size_t argc = PARAM_2;
253     napi_value args[2] = {nullptr};
254     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
255     int secondParam;
256     double firstParam;
257     napi_get_value_double(env, args[0], &firstParam);
258     napi_get_value_int32(env, args[1], &secondParam);
259     double retj = ldexpl(firstParam, secondParam);
260     napi_value result;
261     napi_create_double(env, retj, &result);
262     return result;
263 }
264 
Ldexpf(napi_env env,napi_callback_info info)265 static napi_value Ldexpf(napi_env env, napi_callback_info info)
266 {
267     size_t argc = PARAM_2;
268     napi_value args[2] = {nullptr};
269     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
270     int secondParam;
271     double firstParam;
272     napi_get_value_double(env, args[0], &firstParam);
273     napi_get_value_int32(env, args[1], &secondParam);
274     double retj = ldexpf(firstParam, secondParam);
275     napi_value result;
276     napi_create_double(env, retj, &result);
277     return result;
278 }
279 
J0(napi_env env,napi_callback_info info)280 static napi_value J0(napi_env env, napi_callback_info info)
281 {
282     size_t argc = PARAM_1;
283     napi_value args[1] = {nullptr};
284     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
285     double expect;
286     napi_get_value_double(env, args[0], &expect);
287     double retj = j0(expect);
288     napi_value result;
289     napi_create_double(env, retj, &result);
290     return result;
291 }
292 
J0f(napi_env env,napi_callback_info info)293 static napi_value J0f(napi_env env, napi_callback_info info)
294 {
295     size_t argc = PARAM_1;
296     napi_value args[1] = {nullptr};
297     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
298     double expect;
299     napi_get_value_double(env, args[0], &expect);
300     double retj = j0f(expect);
301     napi_value result;
302     napi_create_double(env, retj, &result);
303     return result;
304 }
305 
J1(napi_env env,napi_callback_info info)306 static napi_value J1(napi_env env, napi_callback_info info)
307 {
308     size_t argc = PARAM_1;
309     napi_value args[1] = {nullptr};
310     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
311     double expect;
312     napi_get_value_double(env, args[0], &expect);
313     double retj = j1(expect);
314     napi_value result;
315     napi_create_double(env, retj, &result);
316     return result;
317 }
318 
J1f(napi_env env,napi_callback_info info)319 static napi_value J1f(napi_env env, napi_callback_info info)
320 {
321     size_t argc = PARAM_1;
322     napi_value args[1] = {nullptr};
323     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
324     double expect;
325     napi_get_value_double(env, args[0], &expect);
326     double retj = j1f(expect);
327     napi_value result;
328     napi_create_double(env, retj, &result);
329     return result;
330 }
331 
Jn(napi_env env,napi_callback_info info)332 static napi_value Jn(napi_env env, napi_callback_info info)
333 {
334     size_t argc = PARAM_2;
335     napi_value args[2] = {nullptr};
336     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
337     double expect;
338     int n;
339     napi_get_value_int32(env, args[0], &n);
340     napi_get_value_double(env, args[1], &expect);
341     double retj = jn(n, expect);
342     napi_value result;
343     napi_create_double(env, retj, &result);
344     return result;
345 }
346 
Jnf(napi_env env,napi_callback_info info)347 static napi_value Jnf(napi_env env, napi_callback_info info)
348 {
349     size_t argc = PARAM_2;
350     napi_value args[2] = {nullptr};
351     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
352     double expect;
353     int n;
354     napi_get_value_int32(env, args[0], &n);
355     napi_get_value_double(env, args[1], &expect);
356     double retj = jnf(n, expect);
357     napi_value result;
358     napi_create_double(env, retj, &result);
359     return result;
360 }
361 
ASin(napi_env env,napi_callback_info info)362 static napi_value ASin(napi_env env, napi_callback_info info)
363 {
364     size_t argc = PARAM_1;
365     napi_value args[1] = {nullptr};
366     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
367     double valueZero;
368     napi_get_value_double(env, args[0], &valueZero);
369     napi_value result = nullptr;
370 
371     double resultValue = asin(valueZero);
372     int resultTrue = PARAM_1;
373     if (resultValue <= M_PI && resultValue >= -M_PI) {
374         napi_create_double(env, resultTrue, &result);
375     } else {
376         napi_create_double(env, resultValue, &result);
377     }
378 
379     return result;
380 }
381 
ASinF(napi_env env,napi_callback_info info)382 static napi_value ASinF(napi_env env, napi_callback_info info)
383 {
384     size_t argc = PARAM_1;
385     napi_value args[1] = {nullptr};
386     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
387     double valueZero;
388     napi_get_value_double(env, args[0], &valueZero);
389     napi_value result = nullptr;
390 
391     double resultValue = asinf(valueZero);
392     int resultTrue = PARAM_1;
393     if (resultValue <= M_PI && resultValue >= -M_PI) {
394         napi_create_double(env, resultTrue, &result);
395     } else {
396         napi_create_double(env, resultValue, &result);
397     }
398 
399     return result;
400 }
401 
ASinL(napi_env env,napi_callback_info info)402 static napi_value ASinL(napi_env env, napi_callback_info info)
403 {
404     size_t argc = PARAM_1;
405     napi_value args[1] = {nullptr};
406     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
407     double valueZero;
408     napi_get_value_double(env, args[0], &valueZero);
409     napi_value result = nullptr;
410 
411     double resultValue = asinl(valueZero);
412     int resultTrue = PARAM_1;
413     if (resultValue <= M_PI && resultValue >= -M_PI) {
414         napi_create_double(env, resultTrue, &result);
415     } else {
416         napi_create_double(env, resultValue, &result);
417     }
418 
419     return result;
420 }
421 
ASinH(napi_env env,napi_callback_info info)422 static napi_value ASinH(napi_env env, napi_callback_info info)
423 {
424     size_t argc = PARAM_1;
425     napi_value args[1] = {nullptr};
426     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
427     double valueZero;
428     napi_get_value_double(env, args[0], &valueZero);
429     napi_value result = nullptr;
430 
431     double resultValue = asinh(valueZero);
432     napi_create_double(env, resultValue, &result);
433 
434     return result;
435 }
436 
ASinHF(napi_env env,napi_callback_info info)437 static napi_value ASinHF(napi_env env, napi_callback_info info)
438 {
439     size_t argc = PARAM_1;
440     napi_value args[1] = {nullptr};
441     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
442     double valueZero;
443     napi_get_value_double(env, args[0], &valueZero);
444     napi_value result = nullptr;
445 
446     double resultValue = asinhf(valueZero);
447     napi_create_double(env, resultValue, &result);
448 
449     return result;
450 }
451 
ASinHL(napi_env env,napi_callback_info info)452 static napi_value ASinHL(napi_env env, napi_callback_info info)
453 {
454     size_t argc = PARAM_1;
455     napi_value args[1] = {nullptr};
456     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
457     double valueZero;
458     napi_get_value_double(env, args[0], &valueZero);
459     napi_value result = nullptr;
460 
461     double resultValue = asinhl(valueZero);
462     napi_create_double(env, resultValue, &result);
463 
464     return result;
465 }
466 
ACos(napi_env env,napi_callback_info info)467 static napi_value ACos(napi_env env, napi_callback_info info)
468 {
469     size_t argc = PARAM_1;
470     napi_value args[1] = {nullptr};
471     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
472     double valueZero;
473     napi_get_value_double(env, args[0], &valueZero);
474     napi_value result = nullptr;
475 
476     double resultValue = acos(valueZero);
477     napi_create_double(env, resultValue, &result);
478 
479     return result;
480 }
481 
ACosF(napi_env env,napi_callback_info info)482 static napi_value ACosF(napi_env env, napi_callback_info info)
483 {
484     size_t argc = PARAM_1;
485     napi_value args[1] = {nullptr};
486     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
487     double valueZero;
488     napi_get_value_double(env, args[0], &valueZero);
489     napi_value result = nullptr;
490 
491     double resultValue = acosf(valueZero);
492     napi_create_double(env, resultValue, &result);
493 
494     return result;
495 }
496 
ACosL(napi_env env,napi_callback_info info)497 static napi_value ACosL(napi_env env, napi_callback_info info)
498 {
499     size_t argc = PARAM_1;
500     napi_value args[1] = {nullptr};
501     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
502     double valueZero;
503     napi_get_value_double(env, args[0], &valueZero);
504     napi_value result = nullptr;
505 
506     double resultValue = acosl(valueZero);
507     napi_create_double(env, resultValue, &result);
508 
509     return result;
510 }
511 
ACosH(napi_env env,napi_callback_info info)512 static napi_value ACosH(napi_env env, napi_callback_info info)
513 {
514     size_t argc = PARAM_1;
515     napi_value args[1] = {nullptr};
516     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
517     double valueZero;
518     napi_get_value_double(env, args[0], &valueZero);
519     napi_value result = nullptr;
520 
521     double resultValue = acosh(valueZero);
522     napi_create_double(env, resultValue, &result);
523 
524     return result;
525 }
526 
ACosHL(napi_env env,napi_callback_info info)527 static napi_value ACosHL(napi_env env, napi_callback_info info)
528 {
529     size_t argc = PARAM_1;
530     napi_value args[1] = {nullptr};
531     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
532     double valueZero;
533     napi_get_value_double(env, args[0], &valueZero);
534     napi_value result = nullptr;
535 
536     double resultValue = acoshl(valueZero);
537     napi_create_double(env, resultValue, &result);
538 
539     return result;
540 }
541 
ACosHF(napi_env env,napi_callback_info info)542 static napi_value ACosHF(napi_env env, napi_callback_info info)
543 {
544     size_t argc = PARAM_1;
545     napi_value args[1] = {nullptr};
546     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
547     double valueZero;
548     napi_get_value_double(env, args[0], &valueZero);
549     napi_value result = nullptr;
550 
551     double resultValue = acoshf(valueZero);
552     napi_create_double(env, resultValue, &result);
553 
554     return result;
555 }
556 
ATan(napi_env env,napi_callback_info info)557 static napi_value ATan(napi_env env, napi_callback_info info)
558 {
559     size_t argc = PARAM_1;
560     napi_value args[1] = {nullptr};
561     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
562     double valueZero;
563     napi_get_value_double(env, args[0], &valueZero);
564     napi_value result = nullptr;
565 
566     double resultValue = atan(valueZero);
567     int resultTrue = TRUE;
568     if (valueZero == ERROR || valueZero == TRUE) {
569         if (resultValue <= M_PI_2 && resultValue >= -M_PI_2) {
570             napi_create_double(env, resultTrue, &result);
571         }
572     } else {
573         napi_create_double(env, resultValue, &result);
574     }
575     return result;
576 }
577 
ATanF(napi_env env,napi_callback_info info)578 static napi_value ATanF(napi_env env, napi_callback_info info)
579 {
580     size_t argc = PARAM_1;
581     napi_value args[1] = {nullptr};
582     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
583     double valueZero;
584     napi_get_value_double(env, args[0], &valueZero);
585     napi_value result = nullptr;
586 
587     double resultValue = atanf(valueZero);
588     int resultTrue = TRUE;
589     if (valueZero == ERROR || valueZero == TRUE) {
590         if (resultValue <= M_PI_2 && resultValue >= -M_PI_2) {
591             napi_create_double(env, resultTrue, &result);
592         }
593     } else {
594         napi_create_double(env, resultValue, &result);
595     }
596     return result;
597 }
598 
ATanL(napi_env env,napi_callback_info info)599 static napi_value ATanL(napi_env env, napi_callback_info info)
600 {
601     size_t argc = PARAM_1;
602     napi_value args[1] = {nullptr};
603     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
604     double valueZero;
605     int resultTrue = PARAM_1;
606     napi_get_value_double(env, args[0], &valueZero);
607     napi_value result = nullptr;
608     double resultValue = atanl(valueZero);
609     if (resultValue <= M_PI_2 && resultValue >= -M_PI_2) {
610         napi_create_double(env, resultTrue, &result);
611         if (valueZero == INFINITY || valueZero == -INFINITY) {
612             napi_create_double(env, resultValue, &result);
613         }
614     } else {
615         napi_create_double(env, resultValue, &result);
616     }
617     return result;
618 }
619 
ATan2(napi_env env,napi_callback_info info)620 static napi_value ATan2(napi_env env, napi_callback_info info)
621 {
622     size_t argc = PARAM_2;
623     napi_value args[2] = {nullptr};
624     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
625     double valueZero;
626     double firstParam;
627     napi_get_value_double(env, args[0], &valueZero);
628     napi_get_value_double(env, args[1], &firstParam);
629     napi_value result = nullptr;
630 
631     double resultValue = atan2(valueZero, firstParam);
632     napi_create_double(env, resultValue, &result);
633 
634     return result;
635 }
636 
ATan2F(napi_env env,napi_callback_info info)637 static napi_value ATan2F(napi_env env, napi_callback_info info)
638 {
639     size_t argc = PARAM_2;
640     napi_value args[2] = {nullptr};
641     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
642     double valueZero;
643     double firstParam;
644     napi_get_value_double(env, args[0], &valueZero);
645     napi_get_value_double(env, args[1], &firstParam);
646     napi_value result = nullptr;
647 
648     double resultValue = atan2f(valueZero, firstParam);
649     napi_create_double(env, resultValue, &result);
650 
651     return result;
652 }
653 
ATan2L(napi_env env,napi_callback_info info)654 static napi_value ATan2L(napi_env env, napi_callback_info info)
655 {
656     size_t argc = PARAM_2;
657     napi_value args[2] = {nullptr};
658     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
659     double valueZero;
660     double firstParam;
661     napi_get_value_double(env, args[0], &valueZero);
662     napi_get_value_double(env, args[1], &firstParam);
663     napi_value result = nullptr;
664 
665     double resultValue = atan2l(valueZero, firstParam);
666     napi_create_double(env, resultValue, &result);
667 
668     return result;
669 }
670 
Fmod(napi_env env,napi_callback_info info)671 static napi_value Fmod(napi_env env, napi_callback_info info)
672 {
673     size_t argc = PARAM_2;
674     napi_value args[2] = {nullptr, nullptr};
675     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
676     double firstParam;
677     napi_get_value_double(env, args[0], &firstParam);
678     double secondParam;
679     napi_get_value_double(env, args[1], &secondParam);
680     double getResult = fmod(firstParam, secondParam);
681     napi_value result;
682     napi_create_double(env, getResult, &result);
683     return result;
684 }
685 
FMin(napi_env env,napi_callback_info info)686 static napi_value FMin(napi_env env, napi_callback_info info)
687 {
688     size_t argc = PARAM_2;
689     napi_value args[2] = {nullptr, nullptr};
690     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
691     double firstParam;
692     napi_get_value_double(env, args[0], &firstParam);
693     double secondParam;
694     napi_get_value_double(env, args[1], &secondParam);
695     double getResult = fmin(firstParam, secondParam);
696     napi_value result;
697     napi_create_double(env, getResult, &result);
698     return result;
699 }
700 
FMax(napi_env env,napi_callback_info info)701 static napi_value FMax(napi_env env, napi_callback_info info)
702 {
703     size_t argc = PARAM_2;
704     napi_value args[2] = {nullptr, nullptr};
705     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
706     double firstParam;
707     napi_get_value_double(env, args[0], &firstParam);
708     double secondParam;
709     napi_get_value_double(env, args[1], &secondParam);
710     double getResult = fmax(firstParam, secondParam);
711     napi_value result;
712     napi_create_double(env, getResult, &result);
713     return result;
714 }
715 
Fma(napi_env env,napi_callback_info info)716 static napi_value Fma(napi_env env, napi_callback_info info)
717 {
718     size_t argc = PARAM_3;
719     napi_value args[3] = {nullptr, nullptr, nullptr};
720     int indexSecond = TWO, indexFirst = ONE, indexZero = PARAM_0;
721     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
722     double firstParam;
723     napi_get_value_double(env, args[indexZero], &firstParam);
724     double secondParam;
725     napi_get_value_double(env, args[indexFirst], &secondParam);
726     double thirdParam;
727     napi_get_value_double(env, args[indexSecond], &thirdParam);
728     double getResult = fma(firstParam, secondParam, thirdParam);
729     napi_value result;
730     napi_create_double(env, getResult, &result);
731     return result;
732 }
733 
Floor(napi_env env,napi_callback_info info)734 static napi_value Floor(napi_env env, napi_callback_info info)
735 {
736     size_t argc = PARAM_2;
737     napi_value args[2] = {nullptr, nullptr};
738     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
739     double firstParam;
740     napi_get_value_double(env, args[0], &firstParam);
741     double getResult = floor(firstParam);
742     napi_value result;
743     napi_create_double(env, getResult, &result);
744     return result;
745 }
746 
FDim(napi_env env,napi_callback_info info)747 static napi_value FDim(napi_env env, napi_callback_info info)
748 {
749     size_t argc = PARAM_2;
750     napi_value args[2] = {nullptr, nullptr};
751     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
752     double firstParam;
753     napi_get_value_double(env, args[0], &firstParam);
754     double secondParam;
755     napi_get_value_double(env, args[1], &secondParam);
756     double getResult = fdim(firstParam, secondParam);
757     napi_value result;
758     napi_create_double(env, getResult, &result);
759     return result;
760 }
761 
FAbs(napi_env env,napi_callback_info info)762 static napi_value FAbs(napi_env env, napi_callback_info info)
763 {
764     size_t argc = PARAM_1;
765     napi_value args[1] = {nullptr};
766     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
767     double firstParam;
768     napi_get_value_double(env, args[0], &firstParam);
769     double getResult = fabs(firstParam);
770     napi_value result;
771     napi_create_double(env, getResult, &result);
772     return result;
773 }
774 
Exp(napi_env env,napi_callback_info info)775 static napi_value Exp(napi_env env, napi_callback_info info)
776 {
777     size_t argc = PARAM_1;
778     napi_value args[1] = {nullptr};
779     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
780     double firstParam;
781     napi_get_value_double(env, args[0], &firstParam);
782     double getResult = exp(firstParam);
783     napi_value result;
784     napi_create_double(env, getResult, &result);
785     return result;
786 }
787 
CopySignL(napi_env env,napi_callback_info info)788 static napi_value CopySignL(napi_env env, napi_callback_info info)
789 {
790     size_t argc = PARAM_2;
791     napi_value args[2] = {nullptr, nullptr};
792     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
793     double firstParam;
794     napi_get_value_double(env, args[0], &firstParam);
795     double secondParam;
796     napi_get_value_double(env, args[1], &secondParam);
797     double getResult = copysignl(firstParam, secondParam);
798     napi_value result;
799     napi_create_double(env, getResult, &result);
800     return result;
801 }
802 
CopySignF(napi_env env,napi_callback_info info)803 static napi_value CopySignF(napi_env env, napi_callback_info info)
804 {
805     size_t argc = PARAM_2;
806     napi_value args[2] = {nullptr, nullptr};
807     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
808     double firstParam;
809     napi_get_value_double(env, args[0], &firstParam);
810     double secondParam;
811     napi_get_value_double(env, args[1], &secondParam);
812     double getResult = copysignf(firstParam, secondParam);
813     napi_value result;
814     napi_create_double(env, getResult, &result);
815     return result;
816 }
817 
CopySign(napi_env env,napi_callback_info info)818 static napi_value CopySign(napi_env env, napi_callback_info info)
819 {
820     size_t argc = PARAM_2;
821     napi_value args[2] = {nullptr, nullptr};
822     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
823     double firstParam;
824     napi_get_value_double(env, args[0], &firstParam);
825     double secondParam;
826     napi_get_value_double(env, args[1], &secondParam);
827     double getResult = copysign(firstParam, secondParam);
828     napi_value result;
829     napi_create_double(env, getResult, &result);
830     return result;
831 }
832 
Erf(napi_env env,napi_callback_info info)833 static napi_value Erf(napi_env env, napi_callback_info info)
834 {
835     size_t argc = PARAM_1;
836     napi_value args[1] = {nullptr};
837     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
838     double firstParam;
839     napi_get_value_double(env, args[0], &firstParam);
840     double getResult = erf(firstParam);
841     napi_value result;
842     napi_create_double(env, getResult, &result);
843     return result;
844 }
845 
Cos(napi_env env,napi_callback_info info)846 static napi_value Cos(napi_env env, napi_callback_info info)
847 {
848     size_t argc = PARAM_1;
849     napi_value args[1] = {nullptr};
850     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
851     double firstParam;
852     napi_get_value_double(env, args[0], &firstParam);
853     double getResult = cos(firstParam * PI / HALFCIRCLE);
854     napi_value result = nullptr;
855     napi_create_double(env, getResult, &result);
856     return result;
857 }
858 
Cosh(napi_env env,napi_callback_info info)859 static napi_value Cosh(napi_env env, napi_callback_info info)
860 {
861     size_t argc = PARAM_1;
862     napi_value args[1] = {nullptr};
863     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
864     double firstParam;
865     napi_get_value_double(env, args[0], &firstParam);
866     double getResult = cosh(firstParam * PI / HALFCIRCLE);
867     napi_value result = nullptr;
868     napi_create_double(env, getResult, &result);
869     return result;
870 }
871 
Exp2(napi_env env,napi_callback_info info)872 static napi_value Exp2(napi_env env, napi_callback_info info)
873 {
874     size_t argc = PARAM_1;
875     napi_value args[1] = {nullptr};
876     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
877     double firstParam;
878     napi_get_value_double(env, args[0], &firstParam);
879     double getResult = exp2(firstParam);
880     napi_value result;
881     napi_create_double(env, getResult, &result);
882     return result;
883 }
884 
ExpM1(napi_env env,napi_callback_info info)885 static napi_value ExpM1(napi_env env, napi_callback_info info)
886 {
887     size_t argc = PARAM_1;
888     napi_value args[1] = {nullptr};
889     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
890     double firstParam;
891     napi_get_value_double(env, args[0], &firstParam);
892     double getResult = expm1(firstParam);
893     napi_value result;
894     napi_create_double(env, getResult, &result);
895     return result;
896 }
897 
FmodF(napi_env env,napi_callback_info info)898 static napi_value FmodF(napi_env env, napi_callback_info info)
899 {
900     size_t argc = PARAM_2;
901     napi_value args[2] = {nullptr, nullptr};
902     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
903     double firstParam;
904     napi_get_value_double(env, args[0], &firstParam);
905     double secondParam;
906     napi_get_value_double(env, args[1], &secondParam);
907     double getResult = fmodf(firstParam, secondParam);
908     napi_value result;
909     napi_create_double(env, getResult, &result);
910     return result;
911 }
912 
FmodL(napi_env env,napi_callback_info info)913 static napi_value FmodL(napi_env env, napi_callback_info info)
914 {
915     size_t argc = PARAM_2;
916     napi_value args[2] = {nullptr, nullptr};
917     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
918     double firstParam;
919     napi_get_value_double(env, args[0], &firstParam);
920     double secondParam;
921     napi_get_value_double(env, args[1], &secondParam);
922     double getResult = fmodl(firstParam, secondParam);
923     napi_value result;
924     napi_create_double(env, getResult, &result);
925     return result;
926 }
927 
FMinF(napi_env env,napi_callback_info info)928 static napi_value FMinF(napi_env env, napi_callback_info info)
929 {
930     size_t argc = PARAM_2;
931     napi_value args[2] = {nullptr, nullptr};
932     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
933     double firstParam;
934     napi_get_value_double(env, args[0], &firstParam);
935     double secondParam;
936     napi_get_value_double(env, args[1], &secondParam);
937     double getResult = fminf(firstParam, secondParam);
938     napi_value result;
939     napi_create_double(env, getResult, &result);
940     return result;
941 }
942 
FMinL(napi_env env,napi_callback_info info)943 static napi_value FMinL(napi_env env, napi_callback_info info)
944 {
945     size_t argc = PARAM_2;
946     napi_value args[2] = {nullptr, nullptr};
947     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
948     double firstParam;
949     napi_get_value_double(env, args[0], &firstParam);
950     double secondParam;
951     napi_get_value_double(env, args[1], &secondParam);
952     double getResult = fminl(firstParam, secondParam);
953     napi_value result;
954     napi_create_double(env, getResult, &result);
955     return result;
956 }
957 
FMaxF(napi_env env,napi_callback_info info)958 static napi_value FMaxF(napi_env env, napi_callback_info info)
959 {
960     size_t argc = PARAM_2;
961     napi_value args[2] = {nullptr, nullptr};
962     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
963     double firstParam;
964     napi_get_value_double(env, args[0], &firstParam);
965     double secondParam;
966     napi_get_value_double(env, args[1], &secondParam);
967     double getResult = fmaxf(firstParam, secondParam);
968     napi_value result;
969     napi_create_double(env, getResult, &result);
970     return result;
971 }
972 
FMaxL(napi_env env,napi_callback_info info)973 static napi_value FMaxL(napi_env env, napi_callback_info info)
974 {
975     size_t argc = PARAM_2;
976     napi_value args[2] = {nullptr, nullptr};
977     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
978     double firstParam;
979     napi_get_value_double(env, args[0], &firstParam);
980     double secondParam;
981     napi_get_value_double(env, args[1], &secondParam);
982     double getResult = fmaxl(firstParam, secondParam);
983     napi_value result;
984     napi_create_double(env, getResult, &result);
985     return result;
986 }
987 
FmaF(napi_env env,napi_callback_info info)988 static napi_value FmaF(napi_env env, napi_callback_info info)
989 {
990     size_t argc = PARAM_3;
991     napi_value args[3] = {nullptr, nullptr, nullptr};
992     int indexSecond = TWO, indexFirst = ONE, indexZero = PARAM_0;
993     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
994     double firstParam;
995     napi_get_value_double(env, args[indexZero], &firstParam);
996     double secondParam;
997     napi_get_value_double(env, args[indexFirst], &secondParam);
998     double thirdParam;
999     napi_get_value_double(env, args[indexSecond], &thirdParam);
1000     double getResult = fmaf(firstParam, secondParam, thirdParam);
1001     napi_value result;
1002     napi_create_double(env, getResult, &result);
1003     return result;
1004 }
1005 
FmaL(napi_env env,napi_callback_info info)1006 static napi_value FmaL(napi_env env, napi_callback_info info)
1007 {
1008     size_t argc = PARAM_3;
1009     napi_value args[3] = {nullptr, nullptr, nullptr};
1010     int indexSecond = TWO, indexFirst = ONE, indexZero = PARAM_0;
1011     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1012     double firstParam;
1013     napi_get_value_double(env, args[indexZero], &firstParam);
1014     double secondParam;
1015     napi_get_value_double(env, args[indexFirst], &secondParam);
1016     double thirdParam;
1017     napi_get_value_double(env, args[indexSecond], &thirdParam);
1018     double getResult = fmal(firstParam, secondParam, thirdParam);
1019     napi_value result;
1020     napi_create_double(env, getResult, &result);
1021     return result;
1022 }
1023 
FloorF(napi_env env,napi_callback_info info)1024 static napi_value FloorF(napi_env env, napi_callback_info info)
1025 {
1026     size_t argc = PARAM_2;
1027     napi_value args[2] = {nullptr, nullptr};
1028     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1029     double firstParam;
1030     napi_get_value_double(env, args[0], &firstParam);
1031     double getResult = floorf(firstParam);
1032     napi_value result;
1033     napi_create_double(env, getResult, &result);
1034     return result;
1035 }
1036 
FloorL(napi_env env,napi_callback_info info)1037 static napi_value FloorL(napi_env env, napi_callback_info info)
1038 {
1039     size_t argc = PARAM_2;
1040     napi_value args[2] = {nullptr, nullptr};
1041     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1042     double firstParam;
1043     napi_get_value_double(env, args[0], &firstParam);
1044     double getResult = floorl(firstParam);
1045     napi_value result;
1046     napi_create_double(env, getResult, &result);
1047     return result;
1048 }
1049 
FDimF(napi_env env,napi_callback_info info)1050 static napi_value FDimF(napi_env env, napi_callback_info info)
1051 {
1052     size_t argc = PARAM_2;
1053     napi_value args[2] = {nullptr, nullptr};
1054     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1055     double firstParam;
1056     napi_get_value_double(env, args[0], &firstParam);
1057     double secondParam;
1058     napi_get_value_double(env, args[1], &secondParam);
1059     double getResult = fdimf(firstParam, secondParam);
1060     napi_value result;
1061     napi_create_double(env, getResult, &result);
1062     return result;
1063 }
1064 
FDimL(napi_env env,napi_callback_info info)1065 static napi_value FDimL(napi_env env, napi_callback_info info)
1066 {
1067     size_t argc = PARAM_2;
1068     napi_value args[2] = {nullptr, nullptr};
1069     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1070     double firstParam;
1071     napi_get_value_double(env, args[0], &firstParam);
1072     double secondParam;
1073     napi_get_value_double(env, args[1], &secondParam);
1074     double getResult = fdiml(firstParam, secondParam);
1075     napi_value result;
1076     napi_create_double(env, getResult, &result);
1077     return result;
1078 }
1079 
FAbsL(napi_env env,napi_callback_info info)1080 static napi_value FAbsL(napi_env env, napi_callback_info info)
1081 {
1082     size_t argc = PARAM_1;
1083     napi_value args[1] = {nullptr};
1084     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1085     double firstParam;
1086     napi_get_value_double(env, args[0], &firstParam);
1087     double getResult = fabsl(firstParam);
1088     napi_value result;
1089     napi_create_double(env, getResult, &result);
1090     return result;
1091 }
1092 
FAbsF(napi_env env,napi_callback_info info)1093 static napi_value FAbsF(napi_env env, napi_callback_info info)
1094 {
1095     size_t argc = PARAM_1;
1096     napi_value args[1] = {nullptr};
1097     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1098     double firstParam;
1099     napi_get_value_double(env, args[0], &firstParam);
1100     float getVOne = firstParam;
1101     float getResultF = fabsf(getVOne);
1102     double getResult = getResultF;
1103     napi_value result;
1104     napi_create_double(env, getResult, &result);
1105     return result;
1106 }
1107 
Ceil(napi_env env,napi_callback_info info)1108 static napi_value Ceil(napi_env env, napi_callback_info info)
1109 {
1110     size_t argc = PARAM_1;
1111     napi_value args[1] = {nullptr};
1112     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1113     double firstParam;
1114     napi_get_value_double(env, args[0], &firstParam);
1115     double getResult = ceil(firstParam);
1116     napi_value result;
1117     napi_create_double(env, getResult, &result);
1118     return result;
1119 }
1120 
CeilF(napi_env env,napi_callback_info info)1121 static napi_value CeilF(napi_env env, napi_callback_info info)
1122 {
1123     size_t argc = PARAM_1;
1124     napi_value args[1] = {nullptr};
1125     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1126     double firstParam;
1127     napi_get_value_double(env, args[0], &firstParam);
1128     double getResult = ceilf(firstParam);
1129     napi_value result;
1130     napi_create_double(env, getResult, &result);
1131     return result;
1132 }
1133 
CeilL(napi_env env,napi_callback_info info)1134 static napi_value CeilL(napi_env env, napi_callback_info info)
1135 {
1136     size_t argc = PARAM_1;
1137     napi_value args[1] = {nullptr};
1138     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1139     double firstParam;
1140     napi_get_value_double(env, args[0], &firstParam);
1141     double getResult = ceill(firstParam);
1142     napi_value result;
1143     napi_create_double(env, getResult, &result);
1144     return result;
1145 }
1146 
ExpM1f(napi_env env,napi_callback_info info)1147 static napi_value ExpM1f(napi_env env, napi_callback_info info)
1148 {
1149     size_t argc = PARAM_1;
1150     napi_value args[1] = {nullptr};
1151     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1152     double firstParam;
1153     napi_get_value_double(env, args[0], &firstParam);
1154     double getResult = expm1f(firstParam);
1155     napi_value result;
1156     napi_create_double(env, getResult, &result);
1157     return result;
1158 }
1159 
ExpM1l(napi_env env,napi_callback_info info)1160 static napi_value ExpM1l(napi_env env, napi_callback_info info)
1161 {
1162     size_t argc = PARAM_1;
1163     napi_value args[1] = {nullptr};
1164     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1165     double firstParam;
1166     napi_get_value_double(env, args[0], &firstParam);
1167     double getResult = expm1l(firstParam);
1168     napi_value result;
1169     napi_create_double(env, getResult, &result);
1170     return result;
1171 }
1172 
ExpF(napi_env env,napi_callback_info info)1173 static napi_value ExpF(napi_env env, napi_callback_info info)
1174 {
1175     size_t argc = PARAM_1;
1176     napi_value args[1] = {nullptr};
1177     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1178     double firstParam;
1179     napi_get_value_double(env, args[0], &firstParam);
1180     double getResult = expf(firstParam);
1181     napi_value result;
1182     napi_create_double(env, getResult, &result);
1183     return result;
1184 }
1185 
ExpL(napi_env env,napi_callback_info info)1186 static napi_value ExpL(napi_env env, napi_callback_info info)
1187 {
1188     size_t argc = PARAM_1;
1189     napi_value args[1] = {nullptr};
1190     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1191     double firstParam;
1192     napi_get_value_double(env, args[0], &firstParam);
1193     double getResult = expl(firstParam);
1194     napi_value result;
1195     napi_create_double(env, getResult, &result);
1196     return result;
1197 }
1198 
Exp2f(napi_env env,napi_callback_info info)1199 static napi_value Exp2f(napi_env env, napi_callback_info info)
1200 {
1201     size_t argc = PARAM_1;
1202     napi_value args[1] = {nullptr};
1203     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1204     double firstParam;
1205     napi_get_value_double(env, args[0], &firstParam);
1206     double getResult = exp2f(firstParam);
1207     napi_value result;
1208     napi_create_double(env, getResult, &result);
1209     return result;
1210 }
1211 
Exp2l(napi_env env,napi_callback_info info)1212 static napi_value Exp2l(napi_env env, napi_callback_info info)
1213 {
1214     size_t argc = PARAM_1;
1215     napi_value args[1] = {nullptr};
1216     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1217     double firstParam;
1218     napi_get_value_double(env, args[0], &firstParam);
1219     double getResult = exp2l(firstParam);
1220     napi_value result;
1221     napi_create_double(env, getResult, &result);
1222     return result;
1223 }
1224 
ErfC(napi_env env,napi_callback_info info)1225 static napi_value ErfC(napi_env env, napi_callback_info info)
1226 {
1227     size_t argc = PARAM_1;
1228     napi_value args[1] = {nullptr};
1229     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1230     double firstParam;
1231     napi_get_value_double(env, args[0], &firstParam);
1232     double getResult = erfc(firstParam);
1233     napi_value result;
1234     napi_create_double(env, getResult, &result);
1235     return result;
1236 }
1237 
ErfCf(napi_env env,napi_callback_info info)1238 static napi_value ErfCf(napi_env env, napi_callback_info info)
1239 {
1240     size_t argc = PARAM_1;
1241     napi_value args[1] = {nullptr};
1242     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1243     double firstParam;
1244     napi_get_value_double(env, args[0], &firstParam);
1245     double getResult = erfcf(firstParam);
1246     napi_value result;
1247     napi_create_double(env, getResult, &result);
1248     return result;
1249 }
1250 
ErfCl(napi_env env,napi_callback_info info)1251 static napi_value ErfCl(napi_env env, napi_callback_info info)
1252 {
1253     size_t argc = PARAM_1;
1254     napi_value args[1] = {nullptr};
1255     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1256     double firstParam;
1257     napi_get_value_double(env, args[0], &firstParam);
1258     double getResult = erfcl(firstParam);
1259     napi_value result;
1260     napi_create_double(env, getResult, &result);
1261     return result;
1262 }
1263 
ErfF(napi_env env,napi_callback_info info)1264 static napi_value ErfF(napi_env env, napi_callback_info info)
1265 {
1266     size_t argc = PARAM_1;
1267     napi_value args[1] = {nullptr};
1268     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1269     double firstParam;
1270     napi_get_value_double(env, args[0], &firstParam);
1271     double getResult = erff(firstParam);
1272     napi_value result;
1273     napi_create_double(env, getResult, &result);
1274     return result;
1275 }
1276 
ErfL(napi_env env,napi_callback_info info)1277 static napi_value ErfL(napi_env env, napi_callback_info info)
1278 {
1279     size_t argc = PARAM_1;
1280     napi_value args[1] = {nullptr};
1281     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1282     double firstParam;
1283     napi_get_value_double(env, args[0], &firstParam);
1284     double getResult = erfl(firstParam);
1285     napi_value result;
1286     napi_create_double(env, getResult, &result);
1287     return result;
1288 }
1289 
CosF(napi_env env,napi_callback_info info)1290 static napi_value CosF(napi_env env, napi_callback_info info)
1291 {
1292     size_t argc = PARAM_1;
1293     napi_value args[1] = {nullptr};
1294     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1295     double firstParam;
1296     napi_get_value_double(env, args[0], &firstParam);
1297     double getResult = cosf(firstParam * PI / HALFCIRCLE);
1298     napi_value result = nullptr;
1299     napi_create_double(env, getResult, &result);
1300     return result;
1301 }
1302 
CosL(napi_env env,napi_callback_info info)1303 static napi_value CosL(napi_env env, napi_callback_info info)
1304 {
1305     size_t argc = PARAM_1;
1306     napi_value args[1] = {nullptr};
1307     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1308     double firstParam;
1309     napi_get_value_double(env, args[0], &firstParam);
1310     double getResult = cosl(firstParam * PI / HALFCIRCLE);
1311     napi_value result = nullptr;
1312     napi_create_double(env, getResult, &result);
1313     return result;
1314 }
1315 
CosHf(napi_env env,napi_callback_info info)1316 static napi_value CosHf(napi_env env, napi_callback_info info)
1317 {
1318     size_t argc = PARAM_1;
1319     napi_value args[1] = {nullptr};
1320     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1321     double firstParam;
1322     napi_get_value_double(env, args[0], &firstParam);
1323     double getResult = coshf(firstParam * PI / HALFCIRCLE);
1324     napi_value result = nullptr;
1325     napi_create_double(env, getResult, &result);
1326     return result;
1327 }
1328 
CosHl(napi_env env,napi_callback_info info)1329 static napi_value CosHl(napi_env env, napi_callback_info info)
1330 {
1331     size_t argc = PARAM_1;
1332     napi_value args[1] = {nullptr};
1333     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1334     double firstParam;
1335     napi_get_value_double(env, args[0], &firstParam);
1336     double getResult = coshl(firstParam * PI / HALFCIRCLE);
1337     napi_value result = nullptr;
1338     napi_create_double(env, getResult, &result);
1339     return result;
1340 }
1341 
doubleInput(napi_env env,napi_callback_info info)1342 static double doubleInput(napi_env env, napi_callback_info info)
1343 {
1344     size_t argc = PARAM_1;
1345     napi_value args[1] = {nullptr};
1346     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1347     double expect;
1348     napi_get_value_double(env, args[0], &expect);
1349     return expect;
1350 }
1351 
doubleOutput(napi_env env,double output)1352 static napi_value doubleOutput(napi_env env, double output)
1353 {
1354     napi_value result;
1355     napi_create_double(env, output, &result);
1356     return result;
1357 }
1358 
Log(napi_env env,napi_callback_info info)1359 static napi_value Log(napi_env env, napi_callback_info info)
1360 {
1361     double input = doubleInput(env, info);
1362     return doubleOutput(env, log(input));
1363 }
1364 
Log10(napi_env env,napi_callback_info info)1365 static napi_value Log10(napi_env env, napi_callback_info info)
1366 {
1367     double input = doubleInput(env, info);
1368     return doubleOutput(env, log10(input));
1369 }
1370 
Log10f(napi_env env,napi_callback_info info)1371 static napi_value Log10f(napi_env env, napi_callback_info info)
1372 {
1373     double input = doubleInput(env, info);
1374     return doubleOutput(env, log10f(input));
1375 }
1376 
Log10l(napi_env env,napi_callback_info info)1377 static napi_value Log10l(napi_env env, napi_callback_info info)
1378 {
1379     double input = doubleInput(env, info);
1380     return doubleOutput(env, log10l(input));
1381 }
1382 
Log1p(napi_env env,napi_callback_info info)1383 static napi_value Log1p(napi_env env, napi_callback_info info)
1384 {
1385     double input = doubleInput(env, info);
1386     return doubleOutput(env, log1p(input));
1387 }
1388 
Log1pf(napi_env env,napi_callback_info info)1389 static napi_value Log1pf(napi_env env, napi_callback_info info)
1390 {
1391     double input = doubleInput(env, info);
1392     return doubleOutput(env, log1pf(input));
1393 }
1394 
Log1pl(napi_env env,napi_callback_info info)1395 static napi_value Log1pl(napi_env env, napi_callback_info info)
1396 {
1397     double input = doubleInput(env, info);
1398     double result = log1pl(input);
1399     return doubleOutput(env, result);
1400 }
1401 
Log2(napi_env env,napi_callback_info info)1402 static napi_value Log2(napi_env env, napi_callback_info info)
1403 {
1404     double input = doubleInput(env, info);
1405     double result = log2(input);
1406     return doubleOutput(env, result);
1407 }
1408 
Log2f(napi_env env,napi_callback_info info)1409 static napi_value Log2f(napi_env env, napi_callback_info info)
1410 {
1411     double input = doubleInput(env, info);
1412     double result = log2(input);
1413     return doubleOutput(env, result);
1414 }
1415 
Log2l(napi_env env,napi_callback_info info)1416 static napi_value Log2l(napi_env env, napi_callback_info info)
1417 {
1418     double input = doubleInput(env, info);
1419     double result = log2(input);
1420     return doubleOutput(env, result);
1421 }
1422 
LogB(napi_env env,napi_callback_info info)1423 static napi_value LogB(napi_env env, napi_callback_info info)
1424 {
1425     double input = doubleInput(env, info);
1426     double result = logb(input);
1427     return doubleOutput(env, result);
1428 }
1429 
LogBf(napi_env env,napi_callback_info info)1430 static napi_value LogBf(napi_env env, napi_callback_info info)
1431 {
1432     double input = doubleInput(env, info);
1433     double result = logbf(input);
1434     return doubleOutput(env, result);
1435 }
1436 
LogBl(napi_env env,napi_callback_info info)1437 static napi_value LogBl(napi_env env, napi_callback_info info)
1438 {
1439     double input = doubleInput(env, info);
1440     double result = logbf(input);
1441     return doubleOutput(env, result);
1442 }
1443 
LogF(napi_env env,napi_callback_info info)1444 static napi_value LogF(napi_env env, napi_callback_info info)
1445 {
1446     double input = doubleInput(env, info);
1447     double result = logf(input);
1448     return doubleOutput(env, result);
1449 }
1450 
LogL(napi_env env,napi_callback_info info)1451 static napi_value LogL(napi_env env, napi_callback_info info)
1452 {
1453     double input = doubleInput(env, info);
1454     double result = logl(input);
1455     return doubleOutput(env, result);
1456 }
1457 
Sin(napi_env env,napi_callback_info info)1458 static napi_value Sin(napi_env env, napi_callback_info info)
1459 {
1460     size_t argc = PARAM_1;
1461     napi_value args[1] = {nullptr};
1462     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1463     double valueZero;
1464     napi_get_value_double(env, args[0], &valueZero);
1465     double sinValue = sin(valueZero);
1466     napi_value result = nullptr;
1467     napi_create_double(env, sinValue, &result);
1468     return result;
1469 }
1470 
Sinf(napi_env env,napi_callback_info info)1471 static napi_value Sinf(napi_env env, napi_callback_info info)
1472 {
1473     size_t argc = PARAM_1;
1474     napi_value args[1] = {nullptr};
1475     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1476     double valueZero;
1477     napi_get_value_double(env, args[0], &valueZero);
1478     double sinValue = sinf(valueZero);
1479     napi_value result = nullptr;
1480     napi_create_double(env, sinValue, &result);
1481     return result;
1482 }
1483 
Sinh(napi_env env,napi_callback_info info)1484 static napi_value Sinh(napi_env env, napi_callback_info info)
1485 {
1486     size_t argc = PARAM_1;
1487     napi_value args[1] = {nullptr};
1488     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1489     double valueZero;
1490     napi_get_value_double(env, args[0], &valueZero);
1491     double sinValue = sinh(valueZero);
1492     napi_value result = nullptr;
1493     napi_create_double(env, sinValue, &result);
1494     return result;
1495 }
1496 
Sinhf(napi_env env,napi_callback_info info)1497 static napi_value Sinhf(napi_env env, napi_callback_info info)
1498 {
1499     size_t argc = PARAM_1;
1500     napi_value args[1] = {nullptr};
1501     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1502     double valueZero;
1503     napi_get_value_double(env, args[0], &valueZero);
1504     double sinValue = sinhf(valueZero);
1505     napi_value result = nullptr;
1506     napi_create_double(env, sinValue, &result);
1507     return result;
1508 }
1509 
Sinhl(napi_env env,napi_callback_info info)1510 static napi_value Sinhl(napi_env env, napi_callback_info info)
1511 {
1512     size_t argc = PARAM_1;
1513     napi_value args[1] = {nullptr};
1514     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1515     double valueZero;
1516     napi_get_value_double(env, args[0], &valueZero);
1517     double sinValue = sinhl(valueZero);
1518     napi_value result = nullptr;
1519     napi_create_double(env, sinValue, &result);
1520     return result;
1521 }
1522 
Sinl(napi_env env,napi_callback_info info)1523 static napi_value Sinl(napi_env env, napi_callback_info info)
1524 {
1525     size_t argc = PARAM_1;
1526     napi_value args[1] = {nullptr};
1527     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1528     double valueZero;
1529     napi_get_value_double(env, args[0], &valueZero);
1530     double sinValue = sinl(valueZero);
1531     napi_value result = nullptr;
1532     napi_create_double(env, sinValue, &result);
1533     return result;
1534 }
1535 
Sqrt(napi_env env,napi_callback_info info)1536 static napi_value Sqrt(napi_env env, napi_callback_info info)
1537 {
1538     size_t argc = PARAM_1;
1539     napi_value args[1] = {nullptr};
1540     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1541     double valueZero;
1542     napi_get_value_double(env, args[0], &valueZero);
1543     double sinValue = sqrt(valueZero);
1544     napi_value result = nullptr;
1545     napi_create_double(env, sinValue, &result);
1546     return result;
1547 }
1548 
Sqrtf(napi_env env,napi_callback_info info)1549 static napi_value Sqrtf(napi_env env, napi_callback_info info)
1550 {
1551     size_t argc = PARAM_1;
1552     napi_value args[1] = {nullptr};
1553     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1554     double valueZero;
1555     napi_get_value_double(env, args[0], &valueZero);
1556     double sinValue = sqrtf(valueZero);
1557     napi_value result = nullptr;
1558     napi_create_double(env, sinValue, &result);
1559     return result;
1560 }
1561 
Sqrtl(napi_env env,napi_callback_info info)1562 static napi_value Sqrtl(napi_env env, napi_callback_info info)
1563 {
1564     size_t argc = PARAM_1;
1565     napi_value args[1] = {nullptr};
1566     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1567     double valueZero;
1568     napi_get_value_double(env, args[0], &valueZero);
1569     double sinValue = sqrtl(valueZero);
1570     napi_value result = nullptr;
1571     napi_create_double(env, sinValue, &result);
1572     return result;
1573 }
1574 
Remainder(napi_env env,napi_callback_info info)1575 static napi_value Remainder(napi_env env, napi_callback_info info)
1576 {
1577     size_t argc = PARAM_2;
1578     napi_value args[2] = {nullptr};
1579     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1580     double valueZero;
1581     napi_get_value_double(env, args[0], &valueZero);
1582     double firstParam;
1583     napi_get_value_double(env, args[1], &firstParam);
1584 
1585     double remainderValue = remainder(valueZero, firstParam);
1586     napi_value result = nullptr;
1587     napi_create_double(env, remainderValue, &result);
1588 
1589     return result;
1590 }
1591 
Remainderf(napi_env env,napi_callback_info info)1592 static napi_value Remainderf(napi_env env, napi_callback_info info)
1593 {
1594     size_t argc = PARAM_2;
1595     napi_value args[2] = {nullptr};
1596     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1597     double valueZero;
1598     napi_get_value_double(env, args[0], &valueZero);
1599     double firstParam;
1600     napi_get_value_double(env, args[1], &firstParam);
1601 
1602     double remainderValue = remainderf(valueZero, firstParam);
1603     napi_value result = nullptr;
1604     napi_create_double(env, remainderValue, &result);
1605 
1606     return result;
1607 }
1608 
Remainderl(napi_env env,napi_callback_info info)1609 static napi_value Remainderl(napi_env env, napi_callback_info info)
1610 {
1611     size_t argc = PARAM_2;
1612     napi_value args[2] = {nullptr};
1613     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1614     double valueZero;
1615     napi_get_value_double(env, args[0], &valueZero);
1616     double firstParam;
1617     napi_get_value_double(env, args[1], &firstParam);
1618 
1619     double remainderValue = remainderl(valueZero, firstParam);
1620     napi_value result = nullptr;
1621     napi_create_double(env, remainderValue, &result);
1622     return result;
1623 }
1624 
Remquo(napi_env env,napi_callback_info info)1625 static napi_value Remquo(napi_env env, napi_callback_info info)
1626 {
1627     size_t argc = PARAM_3;
1628     napi_value args[3] = {nullptr};
1629     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1630     double valueZero;
1631     napi_get_value_double(env, args[0], &valueZero);
1632     double firstParam;
1633     napi_get_value_double(env, args[1], &firstParam);
1634     int secondParam;
1635     napi_get_value_int32(env, args[2], &secondParam);
1636 
1637     double remQuoValue = remquo(valueZero, firstParam, &secondParam);
1638     napi_value result = nullptr;
1639     napi_create_double(env, remQuoValue, &result);
1640 
1641     return result;
1642 }
1643 
Remquof(napi_env env,napi_callback_info info)1644 static napi_value Remquof(napi_env env, napi_callback_info info)
1645 {
1646     size_t argc = PARAM_3;
1647     napi_value args[3] = {nullptr};
1648     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1649     double valueZero;
1650     napi_get_value_double(env, args[0], &valueZero);
1651     double firstParam;
1652     napi_get_value_double(env, args[1], &firstParam);
1653     int secondParam;
1654     napi_get_value_int32(env, args[2], &secondParam);
1655 
1656     double remQuoValue = remquof(valueZero, firstParam, &secondParam);
1657     napi_value result = nullptr;
1658     napi_create_double(env, remQuoValue, &result);
1659 
1660     return result;
1661 }
1662 
Remquol(napi_env env,napi_callback_info info)1663 static napi_value Remquol(napi_env env, napi_callback_info info)
1664 {
1665     size_t argc = PARAM_3;
1666     napi_value args[3] = {nullptr};
1667     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1668     double valueZero;
1669     napi_get_value_double(env, args[0], &valueZero);
1670     double firstParam;
1671     napi_get_value_double(env, args[1], &firstParam);
1672     int secondParam;
1673     napi_get_value_int32(env, args[2], &secondParam);
1674 
1675     double remQuoValue = remquol(valueZero, firstParam, &secondParam);
1676     napi_value result = nullptr;
1677     napi_create_double(env, remQuoValue, &result);
1678 
1679     return result;
1680 }
1681 
Rint(napi_env env,napi_callback_info info)1682 static napi_value Rint(napi_env env, napi_callback_info info)
1683 {
1684     size_t argc = PARAM_1;
1685     napi_value args[1] = {nullptr};
1686     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1687     double valueZero;
1688     napi_get_value_double(env, args[0], &valueZero);
1689     int rinTValue = rint(valueZero);
1690     napi_value result = nullptr;
1691     napi_create_int32(env, rinTValue, &result);
1692 
1693     return result;
1694 }
1695 
Rintf(napi_env env,napi_callback_info info)1696 static napi_value Rintf(napi_env env, napi_callback_info info)
1697 {
1698     size_t argc = PARAM_1;
1699     napi_value args[1] = {nullptr};
1700     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1701     double valueZero;
1702     napi_get_value_double(env, args[0], &valueZero);
1703     double rinTfValue = rintf(valueZero);
1704     napi_value result = nullptr;
1705     napi_create_double(env, rinTfValue, &result);
1706 
1707     return result;
1708 }
1709 
Rintl(napi_env env,napi_callback_info info)1710 static napi_value Rintl(napi_env env, napi_callback_info info)
1711 {
1712     size_t argc = PARAM_1;
1713     napi_value args[1] = {nullptr};
1714     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1715     double valueZero;
1716     napi_get_value_double(env, args[0], &valueZero);
1717     double rinTLValue = rintl(valueZero);
1718     napi_value result = nullptr;
1719     napi_create_double(env, rinTLValue, &result);
1720 
1721     return result;
1722 }
1723 
Round(napi_env env,napi_callback_info info)1724 static napi_value Round(napi_env env, napi_callback_info info)
1725 {
1726     size_t argc = PARAM_1;
1727     napi_value args[1] = {nullptr};
1728     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1729     double valueZero;
1730     napi_get_value_double(env, args[0], &valueZero);
1731     double roundValue = round(valueZero);
1732     napi_value result = nullptr;
1733     napi_create_double(env, roundValue, &result);
1734 
1735     return result;
1736 }
1737 
Roundf(napi_env env,napi_callback_info info)1738 static napi_value Roundf(napi_env env, napi_callback_info info)
1739 {
1740     size_t argc = PARAM_1;
1741     napi_value args[1] = {nullptr};
1742     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1743     double valueZero;
1744     napi_get_value_double(env, args[0], &valueZero);
1745     double roundFValue = roundf(valueZero);
1746     napi_value result = nullptr;
1747     napi_create_double(env, roundFValue, &result);
1748 
1749     return result;
1750 }
1751 
Roundl(napi_env env,napi_callback_info info)1752 static napi_value Roundl(napi_env env, napi_callback_info info)
1753 {
1754     size_t argc = PARAM_1;
1755     napi_value args[1] = {nullptr};
1756     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1757     double valueZero;
1758     napi_get_value_double(env, args[0], &valueZero);
1759     double roundLValue = roundl(valueZero);
1760     napi_value result = nullptr;
1761     napi_create_int32(env, roundLValue, &result);
1762 
1763     return result;
1764 }
1765 
Scalbln(napi_env env,napi_callback_info info)1766 static napi_value Scalbln(napi_env env, napi_callback_info info)
1767 {
1768     size_t argc = PARAM_2;
1769     napi_value args[2] = {nullptr};
1770     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1771     double valueZero;
1772     napi_get_value_double(env, args[0], &valueZero);
1773     double firstParam;
1774     napi_get_value_double(env, args[1], &firstParam);
1775     double scaLBlnValue = scalbln(valueZero, firstParam);
1776     napi_value result = nullptr;
1777     napi_create_double(env, scaLBlnValue, &result);
1778 
1779     return result;
1780 }
1781 
Tan(napi_env env,napi_callback_info info)1782 static napi_value Tan(napi_env env, napi_callback_info info)
1783 {
1784     size_t argc = PARAM_1;
1785     napi_value args[1] = {nullptr};
1786     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1787     double value;
1788     napi_get_value_double(env, args[0], &value);
1789     double tan_value = tan(value);
1790     napi_value result = nullptr;
1791     napi_create_double(env, tan_value, &result);
1792     return result;
1793 }
1794 
Tanf(napi_env env,napi_callback_info info)1795 static napi_value Tanf(napi_env env, napi_callback_info info)
1796 {
1797     size_t argc = PARAM_1;
1798     napi_value args[1] = {nullptr};
1799     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1800     double value;
1801     napi_get_value_double(env, args[0], &value);
1802     double tanFValue = tanf(value);
1803     napi_value result = nullptr;
1804     napi_create_double(env, tanFValue, &result);
1805     return result;
1806 }
1807 
Tanh(napi_env env,napi_callback_info info)1808 static napi_value Tanh(napi_env env, napi_callback_info info)
1809 {
1810     size_t argc = PARAM_1;
1811     napi_value args[1] = {nullptr};
1812     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1813     double value;
1814     napi_get_value_double(env, args[0], &value);
1815     double tanHValue = tanh(value);
1816     napi_value result = nullptr;
1817     napi_create_double(env, tanHValue, &result);
1818     return result;
1819 }
1820 
Tanhf(napi_env env,napi_callback_info info)1821 static napi_value Tanhf(napi_env env, napi_callback_info info)
1822 {
1823     size_t argc = PARAM_1;
1824     napi_value args[1] = {nullptr};
1825     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1826     double value;
1827     napi_get_value_double(env, args[0], &value);
1828     double tanHfValue = tanhf(value);
1829     napi_value result = nullptr;
1830     napi_create_double(env, tanHfValue, &result);
1831     return result;
1832 }
1833 
Tanhl(napi_env env,napi_callback_info info)1834 static napi_value Tanhl(napi_env env, napi_callback_info info)
1835 {
1836     size_t argc = PARAM_1;
1837     napi_value args[1] = {nullptr};
1838     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1839     double value;
1840     napi_get_value_double(env, args[0], &value);
1841     double tanHlValue = tanhl(value);
1842     napi_value result = nullptr;
1843     napi_create_double(env, tanHlValue, &result);
1844     return result;
1845 }
1846 
Tanl(napi_env env,napi_callback_info info)1847 static napi_value Tanl(napi_env env, napi_callback_info info)
1848 {
1849     size_t argc = PARAM_1;
1850     napi_value args[1] = {nullptr};
1851     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1852     double value;
1853     napi_get_value_double(env, args[0], &value);
1854     double tanLValue = tanl(value);
1855     napi_value result = nullptr;
1856     napi_create_double(env, tanLValue, &result);
1857     return result;
1858 }
1859 
Tgamma(napi_env env,napi_callback_info info)1860 static napi_value Tgamma(napi_env env, napi_callback_info info)
1861 {
1862     size_t argc = PARAM_1;
1863     napi_value args[1] = {nullptr};
1864     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1865     double valueZero;
1866     napi_get_value_double(env, args[0], &valueZero);
1867     double tgaMmaValue = tgamma(valueZero);
1868     napi_value result = nullptr;
1869     napi_create_double(env, tgaMmaValue, &result);
1870     return result;
1871 }
1872 
Tgammaf(napi_env env,napi_callback_info info)1873 static napi_value Tgammaf(napi_env env, napi_callback_info info)
1874 {
1875     size_t argc = PARAM_1;
1876     napi_value args[1] = {nullptr};
1877     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1878     double valueZero;
1879     napi_get_value_double(env, args[0], &valueZero);
1880     double tgaMmaFValue = tgammaf(valueZero);
1881     napi_value result = nullptr;
1882     napi_create_double(env, tgaMmaFValue, &result);
1883     return result;
1884 }
1885 
Tgammal(napi_env env,napi_callback_info info)1886 static napi_value Tgammal(napi_env env, napi_callback_info info)
1887 {
1888     size_t argc = PARAM_1;
1889     napi_value args[1] = {nullptr};
1890     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1891     double valueZero;
1892     napi_get_value_double(env, args[0], &valueZero);
1893     double tgaMmaLValue = tgammal(valueZero);
1894     napi_value result = nullptr;
1895     napi_create_double(env, tgaMmaLValue, &result);
1896     return result;
1897 }
1898 
Scalblnl(napi_env env,napi_callback_info info)1899 static napi_value Scalblnl(napi_env env, napi_callback_info info)
1900 {
1901     size_t argc = PARAM_2;
1902     napi_value args[2] = {nullptr};
1903     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1904     double first;
1905     napi_get_value_double(env, args[0], &first);
1906     int64_t second;
1907     napi_get_value_int64(env, args[1], &second);
1908     double value = scalblnl(first, second);
1909     napi_value result;
1910     napi_create_double(env, value, &result);
1911     return result;
1912 }
1913 
Scalbn(napi_env env,napi_callback_info info)1914 static napi_value Scalbn(napi_env env, napi_callback_info info)
1915 {
1916     size_t argc = PARAM_2;
1917     napi_value args[2] = {nullptr};
1918     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1919     double first;
1920     napi_get_value_double(env, args[0], &first);
1921     int second;
1922     napi_get_value_int32(env, args[1], &second);
1923     double value = scalbn(first, second);
1924     napi_value result;
1925     napi_create_double(env, value, &result);
1926     return result;
1927 }
1928 
Scalblnf(napi_env env,napi_callback_info info)1929 static napi_value Scalblnf(napi_env env, napi_callback_info info)
1930 {
1931     size_t argc = PARAM_2;
1932     napi_value args[2] = {nullptr};
1933     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1934     double first;
1935     napi_get_value_double(env, args[0], &first);
1936     int64_t second;
1937     napi_get_value_int64(env, args[1], &second);
1938     double value = scalblnf(first, second);
1939     napi_value result;
1940     napi_create_double(env, value, &result);
1941     return result;
1942 }
1943 
Scalbnf(napi_env env,napi_callback_info info)1944 static napi_value Scalbnf(napi_env env, napi_callback_info info)
1945 {
1946     size_t argc = PARAM_2;
1947     napi_value args[2] = {nullptr};
1948     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1949     double first;
1950     napi_get_value_double(env, args[0], &first);
1951     int64_t second;
1952     napi_get_value_int64(env, args[1], &second);
1953     double value = scalbnf(first, second);
1954     napi_value result;
1955     napi_create_double(env, value, &result);
1956     return result;
1957 }
1958 
Scalbnl(napi_env env,napi_callback_info info)1959 static napi_value Scalbnl(napi_env env, napi_callback_info info)
1960 {
1961     size_t argc = PARAM_2;
1962     napi_value args[2] = {nullptr};
1963     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1964     double first;
1965     napi_get_value_double(env, args[0], &first);
1966     int second;
1967     napi_get_value_int32(env, args[1], &second);
1968     double value = scalbnl(first, second);
1969     napi_value result;
1970     napi_create_double(env, value, &result);
1971     return result;
1972 }
1973 
Significand(napi_env env,napi_callback_info info)1974 static napi_value Significand(napi_env env, napi_callback_info info)
1975 {
1976     size_t argc = PARAM_1;
1977     napi_value args[1] = {nullptr};
1978     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1979     double valueFirst;
1980     napi_get_value_double(env, args[0], &valueFirst);
1981     double sigval = significand(valueFirst);
1982     napi_value result;
1983     napi_create_double(env, sigval, &result);
1984     return result;
1985 }
1986 
Significandf(napi_env env,napi_callback_info info)1987 static napi_value Significandf(napi_env env, napi_callback_info info)
1988 {
1989     size_t argc = PARAM_1;
1990     napi_value args[1] = {nullptr};
1991     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
1992     double valueFirst;
1993     napi_get_value_double(env, args[0], &valueFirst);
1994     double sigval = significandf(valueFirst);
1995     napi_value result;
1996     napi_create_double(env, sigval, &result);
1997     return result;
1998 }
ATanH(napi_env env,napi_callback_info info)1999 static napi_value ATanH(napi_env env, napi_callback_info info)
2000 {
2001     size_t argc = PARAM_1;
2002     napi_value args[1] = {nullptr};
2003     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2004     double firstParam;
2005     napi_get_value_double(env, args[0], &firstParam);
2006     napi_value result = nullptr;
2007 
2008     double resultValue = atanh(firstParam);
2009     napi_create_double(env, resultValue, &result);
2010 
2011     return result;
2012 }
2013 
ATanHF(napi_env env,napi_callback_info info)2014 static napi_value ATanHF(napi_env env, napi_callback_info info)
2015 {
2016     size_t argc = PARAM_1;
2017     napi_value args[1] = {nullptr};
2018     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2019     double firstParam;
2020     napi_get_value_double(env, args[0], &firstParam);
2021     napi_value result = nullptr;
2022 
2023     double resultValue = atanhf(firstParam);
2024     napi_create_double(env, resultValue, &result);
2025 
2026     return result;
2027 }
2028 
ATanHL(napi_env env,napi_callback_info info)2029 static napi_value ATanHL(napi_env env, napi_callback_info info)
2030 {
2031     size_t argc = PARAM_1;
2032     napi_value args[1] = {nullptr};
2033     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2034     double firstParam;
2035     napi_get_value_double(env, args[0], &firstParam);
2036     napi_value result = nullptr;
2037 
2038     double resultValue = atanhl(firstParam);
2039     napi_create_double(env, resultValue, &result);
2040     return result;
2041 }
ModF(napi_env env,napi_callback_info info)2042 static napi_value ModF(napi_env env, napi_callback_info info)
2043 {
2044     size_t argc = PARAM_1;
2045     napi_value args[1] = {nullptr};
2046     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2047     double firstParam;
2048     napi_get_value_double(env, args[0], &firstParam);
2049     napi_value result = nullptr;
2050     double value = PARAM_0;
2051     modf(firstParam, &value);
2052     napi_create_double(env, value, &result);
2053     return result;
2054 }
ModFf(napi_env env,napi_callback_info info)2055 static napi_value ModFf(napi_env env, napi_callback_info info)
2056 {
2057     size_t argc = PARAM_1;
2058     napi_value args[1] = {nullptr};
2059     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2060     double firstParam;
2061     napi_get_value_double(env, args[0], &firstParam);
2062     napi_value result = nullptr;
2063     float value = 0.0;
2064     modff(firstParam, &value);
2065     napi_create_double(env, value, &result);
2066     return result;
2067 }
ModFl(napi_env env,napi_callback_info info)2068 static napi_value ModFl(napi_env env, napi_callback_info info)
2069 {
2070     size_t argc = PARAM_1;
2071     napi_value args[1] = {nullptr};
2072     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2073     double firstParam;
2074     napi_get_value_double(env, args[0], &firstParam);
2075     napi_value result = nullptr;
2076     long double value = PARAM_0;
2077     modfl(firstParam, &value);
2078     napi_create_double(env, value, &result);
2079 
2080     return result;
2081 }
MRand48(napi_env env,napi_callback_info info)2082 static napi_value MRand48(napi_env env, napi_callback_info info)
2083 {
2084     size_t argc = PARAM_1;
2085     napi_value args[1] = {nullptr};
2086     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2087     double firstParam;
2088     napi_get_value_double(env, args[0], &firstParam);
2089     napi_value result = nullptr;
2090     int value = PARAM_0;
2091     long ret = mrand48();
2092     if (ret < pow(TWO, THIRTYONE) && ret > -pow(TWO, THIRTYONE)) {
2093         value = PARAM_0;
2094     } else {
2095         value = ERROR;
2096     }
2097     napi_create_double(env, value, &result);
2098     return result;
2099 }
2100 
Pow(napi_env env,napi_callback_info info)2101 static napi_value Pow(napi_env env, napi_callback_info info)
2102 {
2103     size_t argc = PARAM_2;
2104     napi_value args[2] = {nullptr};
2105     double valueFirst;
2106     double valueSecond;
2107     napi_value result = nullptr;
2108 
2109     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2110     napi_get_value_double(env, args[0], &valueFirst);
2111     napi_get_value_double(env, args[1], &valueSecond);
2112     napi_create_double(env, pow(valueFirst, valueSecond), &result);
2113 
2114     return result;
2115 }
2116 
Powf(napi_env env,napi_callback_info info)2117 static napi_value Powf(napi_env env, napi_callback_info info)
2118 {
2119     size_t argc = PARAM_2;
2120     napi_value args[2] = {nullptr};
2121     double valueFirst;
2122     double valueSecond;
2123     napi_value result = nullptr;
2124 
2125     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2126     napi_get_value_double(env, args[0], &valueFirst);
2127     napi_get_value_double(env, args[1], &valueSecond);
2128     napi_create_double(env, powf(valueFirst, valueSecond), &result);
2129 
2130     return result;
2131 }
2132 
Sincos(napi_env env,napi_callback_info info)2133 static napi_value Sincos(napi_env env, napi_callback_info info)
2134 {
2135     size_t argc = PARAM_2;
2136     napi_value args[2] = {nullptr};
2137     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2138     double dLon;
2139     napi_get_value_double(env, args[0], &dLon);
2140 
2141     double sindLon;
2142     double cosdLon;
2143     int intValue;
2144     napi_get_value_int32(env, args[1], &intValue);
2145     sincos(dLon, &sindLon, &cosdLon);
2146     double napi_double_value;
2147     if (intValue == 1) {
2148         napi_double_value = sindLon;
2149     } else {
2150         napi_double_value = cosdLon;
2151     }
2152     napi_value result = nullptr;
2153     napi_create_double(env, napi_double_value, &result);
2154     return result;
2155 }
2156 
Sincosl(napi_env env,napi_callback_info info)2157 static napi_value Sincosl(napi_env env, napi_callback_info info)
2158 {
2159     size_t argc = PARAM_2;
2160     napi_value args[2] = {nullptr};
2161     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2162     double dou;
2163     napi_get_value_double(env, args[0], &dou);
2164     int intValue;
2165     napi_get_value_int32(env, args[1], &intValue);
2166     long double dLon = dou;
2167     long double sindou;
2168     long double cosdou;
2169     sincosl(dLon, &sindou, &cosdou);
2170     double napi_double_value;
2171     if (intValue == 1) {
2172         napi_double_value = sindou;
2173     } else {
2174         napi_double_value = cosdou;
2175     }
2176     napi_value result = nullptr;
2177     napi_create_double(env, napi_double_value, &result);
2178     return result;
2179 }
Sincosf(napi_env env,napi_callback_info info)2180 static napi_value Sincosf(napi_env env, napi_callback_info info)
2181 {
2182     size_t argc = PARAM_2;
2183     napi_value args[2] = {nullptr};
2184     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2185     double dou;
2186     napi_get_value_double(env, args[0], &dou);
2187     int intValue;
2188     napi_get_value_int32(env, args[1], &intValue);
2189     float dLon = dou;
2190     float sindou;
2191     float cosdou;
2192     sincosf(dLon, &sindou, &cosdou);
2193     float napi_double_value;
2194     if (intValue == 1) {
2195         napi_double_value = sindou;
2196     } else {
2197         napi_double_value = cosdou;
2198     }
2199     napi_value result = nullptr;
2200     napi_create_double(env, napi_double_value, &result);
2201     return result;
2202 }
2203 
Scalb(napi_env env,napi_callback_info info)2204 static napi_value Scalb(napi_env env, napi_callback_info info)
2205 {
2206     size_t argc = PARAM_2;
2207     napi_value args[2] = {nullptr};
2208     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2209     double param;
2210     napi_get_value_double(env, args[0], &param);
2211     double paramExp;
2212     napi_get_value_double(env, args[1], &paramExp);
2213     double resultValue = scalb(param, paramExp);
2214     napi_value result = nullptr;
2215     napi_create_double(env, resultValue, &result);
2216 
2217     return result;
2218 }
2219 
Scalbf(napi_env env,napi_callback_info info)2220 static napi_value Scalbf(napi_env env, napi_callback_info info)
2221 {
2222     size_t argc = PARAM_2;
2223     napi_value args[2] = {nullptr};
2224     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2225     double param;
2226     napi_get_value_double(env, args[0], &param);
2227     double paramExp;
2228     napi_get_value_double(env, args[1], &paramExp);
2229     double resultValue = scalbf(param, paramExp);
2230     napi_value result = nullptr;
2231     napi_create_double(env, resultValue, &result);
2232 
2233     return result;
2234 }
2235 
Trunc(napi_env env,napi_callback_info info)2236 static napi_value Trunc(napi_env env, napi_callback_info info)
2237 {
2238     size_t argc = PARAM_1;
2239     napi_value args[1] = {nullptr};
2240     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2241     double param;
2242     napi_get_value_double(env, args[0], &param);
2243     double resultValue = trunc(param);
2244 
2245     napi_value result = nullptr;
2246     napi_create_double(env, resultValue, &result);
2247 
2248     return result;
2249 }
2250 
Truncf(napi_env env,napi_callback_info info)2251 static napi_value Truncf(napi_env env, napi_callback_info info)
2252 {
2253     size_t argc = PARAM_1;
2254     napi_value args[1] = {nullptr};
2255     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2256     double param;
2257     napi_get_value_double(env, args[0], &param);
2258     double resultValue = truncf(param);
2259     napi_value result = nullptr;
2260     napi_create_double(env, resultValue, &result);
2261 
2262     return result;
2263 }
2264 
Truncl(napi_env env,napi_callback_info info)2265 static napi_value Truncl(napi_env env, napi_callback_info info)
2266 {
2267     size_t argc = PARAM_1;
2268     napi_value args[1] = {nullptr};
2269     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2270     double param;
2271     napi_get_value_double(env, args[0], &param);
2272     double resultValue = truncl(param);
2273     napi_value result = nullptr;
2274     napi_create_double(env, resultValue, &result);
2275 
2276     return result;
2277 }
2278 
Y0(napi_env env,napi_callback_info info)2279 static napi_value Y0(napi_env env, napi_callback_info info)
2280 {
2281     size_t argc = PARAM_1;
2282     napi_value args[1] = {nullptr};
2283     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2284     double param;
2285     napi_get_value_double(env, args[0], &param);
2286     double resultValue = y0(param);
2287     napi_value result = nullptr;
2288     napi_create_double(env, resultValue, &result);
2289 
2290     return result;
2291 }
2292 
Y0f(napi_env env,napi_callback_info info)2293 static napi_value Y0f(napi_env env, napi_callback_info info)
2294 {
2295     size_t argc = PARAM_1;
2296     napi_value args[1] = {nullptr};
2297     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2298     double param;
2299     napi_get_value_double(env, args[0], &param);
2300     double resultValue = y0f(param);
2301     napi_value result = nullptr;
2302     napi_create_double(env, resultValue, &result);
2303 
2304     return result;
2305 }
2306 
Y1(napi_env env,napi_callback_info info)2307 static napi_value Y1(napi_env env, napi_callback_info info)
2308 {
2309     size_t argc = PARAM_1;
2310     napi_value args[1] = {nullptr};
2311     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2312     double param;
2313     napi_get_value_double(env, args[0], &param);
2314     double resultValue = y1(param);
2315     napi_value result = nullptr;
2316     napi_create_double(env, resultValue, &result);
2317 
2318     return result;
2319 }
2320 
Y1f(napi_env env,napi_callback_info info)2321 static napi_value Y1f(napi_env env, napi_callback_info info)
2322 {
2323     size_t argc = PARAM_1;
2324     napi_value args[1] = {nullptr};
2325     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2326     double param;
2327     napi_get_value_double(env, args[0], &param);
2328     double resultValue = y1f(param);
2329     napi_value result = nullptr;
2330     napi_create_double(env, resultValue, &result);
2331 
2332     return result;
2333 }
2334 
Fpclassify(napi_env env,napi_callback_info info)2335 static napi_value Fpclassify(napi_env env, napi_callback_info info)
2336 {
2337     size_t argc = PARAM_1;
2338     napi_value args[1] = {nullptr};
2339     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2340     double param;
2341     napi_get_value_double(env, args[0], &param);
2342 
2343     double value = __fpclassify(param);
2344     napi_value result;
2345     napi_create_double(env, value, &result);
2346     return result;
2347 }
2348 
Fpclassifyf(napi_env env,napi_callback_info info)2349 static napi_value Fpclassifyf(napi_env env, napi_callback_info info)
2350 {
2351     size_t argc = PARAM_1;
2352     napi_value args[1] = {nullptr};
2353     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2354     double param;
2355     napi_get_value_double(env, args[0], &param);
2356 
2357     double value = __fpclassifyf(param);
2358     napi_value result;
2359     napi_create_double(env, value, &result);
2360     return result;
2361 }
2362 
Fpclassifyl(napi_env env,napi_callback_info info)2363 static napi_value Fpclassifyl(napi_env env, napi_callback_info info)
2364 {
2365     size_t argc = PARAM_1;
2366     napi_value args[1] = {nullptr};
2367     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2368     double param;
2369     napi_get_value_double(env, args[0], &param);
2370 
2371     double value = __fpclassifyl(param);
2372     napi_value result;
2373     napi_create_double(env, value, &result);
2374     return result;
2375 }
2376 
Signbit(napi_env env,napi_callback_info info)2377 static napi_value Signbit(napi_env env, napi_callback_info info)
2378 {
2379     size_t argc = PARAM_1;
2380     napi_value args[1] = {nullptr};
2381     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2382     double param;
2383     napi_get_value_double(env, args[0], &param);
2384 
2385     double value = __signbit(param);
2386     napi_value result;
2387     napi_create_double(env, value, &result);
2388     return result;
2389 }
2390 
Signbitf(napi_env env,napi_callback_info info)2391 static napi_value Signbitf(napi_env env, napi_callback_info info)
2392 {
2393     size_t argc = PARAM_1;
2394     napi_value args[1] = {nullptr};
2395     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2396     double param;
2397     napi_get_value_double(env, args[0], &param);
2398 
2399     double value = __signbitf(param);
2400     napi_value result;
2401     napi_create_double(env, value, &result);
2402     return result;
2403 }
2404 
Signbitl(napi_env env,napi_callback_info info)2405 static napi_value Signbitl(napi_env env, napi_callback_info info)
2406 {
2407     size_t argc = PARAM_1;
2408     napi_value args[1] = {nullptr};
2409     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2410     double param;
2411     napi_get_value_double(env, args[0], &param);
2412 
2413     double value = __signbitl(param);
2414     napi_value result;
2415     napi_create_double(env, value, &result);
2416     return result;
2417 }
2418 
CBrt(napi_env env,napi_callback_info info)2419 static napi_value CBrt(napi_env env, napi_callback_info info)
2420 {
2421     size_t argc = PARAM_1;
2422     napi_value args[1] = {nullptr};
2423     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2424     double value0;
2425     napi_get_value_double(env, args[0], &value0);
2426     napi_value result = nullptr;
2427 
2428     double resultValue = cbrt(value0);
2429     napi_create_double(env, resultValue, &result);
2430 
2431     return result;
2432 }
2433 
CBrtL(napi_env env,napi_callback_info info)2434 static napi_value CBrtL(napi_env env, napi_callback_info info)
2435 {
2436     size_t argc = PARAM_1;
2437     napi_value args[1] = {nullptr};
2438     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2439     double value0;
2440     napi_get_value_double(env, args[0], &value0);
2441     napi_value result = nullptr;
2442 
2443     double resultValue = cbrtl(value0);
2444     napi_create_double(env, resultValue, &result);
2445 
2446     return result;
2447 }
2448 
CBrtF(napi_env env,napi_callback_info info)2449 static napi_value CBrtF(napi_env env, napi_callback_info info)
2450 {
2451     size_t argc = PARAM_1;
2452     napi_value args[1] = {nullptr};
2453     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2454     double value0;
2455     napi_get_value_double(env, args[0], &value0);
2456     napi_value result = nullptr;
2457 
2458     double resultValue = cbrtf(value0);
2459     napi_create_double(env, resultValue, &result);
2460 
2461     return result;
2462 }
2463 
Frexp(napi_env env,napi_callback_info info)2464 static napi_value Frexp(napi_env env, napi_callback_info info)
2465 {
2466     size_t argc = PARAM_1;
2467     napi_value args[1] = {nullptr};
2468     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2469     double value0;
2470     napi_get_value_double(env, args[0], &value0);
2471     int exp;
2472     napi_value result = nullptr;
2473 
2474     double resultValue = frexp(value0, &exp);
2475     napi_create_double(env, resultValue, &result);
2476 
2477     return result;
2478 }
2479 
Frexpf(napi_env env,napi_callback_info info)2480 static napi_value Frexpf(napi_env env, napi_callback_info info)
2481 {
2482     size_t argc = PARAM_1;
2483     napi_value args[1] = {nullptr};
2484     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2485     double value0;
2486     napi_get_value_double(env, args[0], &value0);
2487     int exp;
2488     napi_value result = nullptr;
2489 
2490     double resultValue = frexpf(value0, &exp);
2491     napi_create_double(env, resultValue, &result);
2492 
2493     return result;
2494 }
2495 
Frexpl(napi_env env,napi_callback_info info)2496 static napi_value Frexpl(napi_env env, napi_callback_info info)
2497 {
2498     size_t argc = PARAM_1;
2499     napi_value args[1] = {nullptr};
2500     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2501     double value0;
2502     napi_get_value_double(env, args[0], &value0);
2503     int exp;
2504     napi_value result = nullptr;
2505 
2506     double resultValue = frexpl(value0, &exp);
2507     napi_create_double(env, resultValue, &result);
2508 
2509     return result;
2510 }
2511 
Powl(napi_env env,napi_callback_info info)2512 static napi_value Powl(napi_env env, napi_callback_info info)
2513 {
2514     size_t argc = PARAM_2;
2515     napi_value args[2] = {nullptr};
2516     double valueFirst;
2517     double valueSecond;
2518     napi_value result = nullptr;
2519 
2520     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2521     napi_get_value_double(env, args[0], &valueFirst);
2522     napi_get_value_double(env, args[1], &valueSecond);
2523     napi_create_double(env, powl(valueFirst, valueSecond), &result);
2524 
2525     return result;
2526 }
2527 
NextToward(napi_env env,napi_callback_info info)2528 static napi_value NextToward(napi_env env, napi_callback_info info)
2529 {
2530     size_t argc = PARAM_2;
2531     napi_value args[2] = {nullptr};
2532     double valueFirst;
2533     double valueSecond;
2534     napi_value result = nullptr;
2535 
2536     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2537     napi_get_value_double(env, args[0], &valueFirst);
2538     napi_get_value_double(env, args[1], &valueSecond);
2539     napi_create_double(env, nexttoward(valueFirst, valueSecond), &result);
2540 
2541     return result;
2542 }
2543 
NextTowardF(napi_env env,napi_callback_info info)2544 static napi_value NextTowardF(napi_env env, napi_callback_info info)
2545 {
2546     size_t argc = PARAM_2;
2547     napi_value args[2] = {nullptr};
2548     double valueFirst;
2549     double valueSecond;
2550     napi_value result = nullptr;
2551 
2552     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2553     napi_get_value_double(env, args[0], &valueFirst);
2554     napi_get_value_double(env, args[1], &valueSecond);
2555     napi_create_double(env, nexttowardf(valueFirst, valueSecond), &result);
2556 
2557     return result;
2558 }
2559 
NextTowardL(napi_env env,napi_callback_info info)2560 static napi_value NextTowardL(napi_env env, napi_callback_info info)
2561 {
2562     size_t argc = PARAM_2;
2563     napi_value args[2] = {nullptr};
2564     double valueFirst;
2565     double valueSecond;
2566     napi_value result = nullptr;
2567 
2568     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2569     napi_get_value_double(env, args[0], &valueFirst);
2570     napi_get_value_double(env, args[1], &valueSecond);
2571     napi_create_double(env, nexttowardl(valueFirst, valueSecond), &result);
2572 
2573     return result;
2574 }
2575 
Nextafter(napi_env env,napi_callback_info info)2576 static napi_value Nextafter(napi_env env, napi_callback_info info)
2577 {
2578     size_t argc = PARAM_2;
2579     napi_value args[2] = {nullptr};
2580     double valueFirst;
2581     double valueSecond;
2582     napi_value result = nullptr;
2583 
2584     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2585     napi_get_value_double(env, args[0], &valueFirst);
2586     napi_get_value_double(env, args[1], &valueSecond);
2587     napi_create_double(env, nextafter(valueFirst, valueSecond), &result);
2588 
2589     return result;
2590 }
2591 
Nextafterf(napi_env env,napi_callback_info info)2592 static napi_value Nextafterf(napi_env env, napi_callback_info info)
2593 {
2594     size_t argc = PARAM_2;
2595     napi_value args[2] = {nullptr};
2596     double valueFirst;
2597     double valueSecond;
2598     napi_value result = nullptr;
2599 
2600     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2601     napi_get_value_double(env, args[0], &valueFirst);
2602     napi_get_value_double(env, args[1], &valueSecond);
2603     napi_create_double(env, nextafterf(valueFirst, valueSecond), &result);
2604 
2605     return result;
2606 }
2607 
Nextafterl(napi_env env,napi_callback_info info)2608 static napi_value Nextafterl(napi_env env, napi_callback_info info)
2609 {
2610     size_t argc = PARAM_2;
2611     napi_value args[2] = {nullptr};
2612     double valueFirst;
2613     double valueSecond;
2614     napi_value result = nullptr;
2615 
2616     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2617     napi_get_value_double(env, args[0], &valueFirst);
2618     napi_get_value_double(env, args[1], &valueSecond);
2619     napi_create_double(env, nextafterl(valueFirst, valueSecond), &result);
2620 
2621     return result;
2622 }
2623 
Nearbyint(napi_env env,napi_callback_info info)2624 static napi_value Nearbyint(napi_env env, napi_callback_info info)
2625 {
2626     size_t argc = PARAM_1;
2627     napi_value args[1] = {nullptr};
2628     double valueFirst;
2629     napi_value result = nullptr;
2630 
2631     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2632     napi_get_value_double(env, args[0], &valueFirst);
2633     napi_create_double(env, nearbyint(valueFirst), &result);
2634 
2635     return result;
2636 }
Nearbyintf(napi_env env,napi_callback_info info)2637 static napi_value Nearbyintf(napi_env env, napi_callback_info info)
2638 {
2639     size_t argc = PARAM_1;
2640     napi_value args[1] = {nullptr};
2641     double valueFirst;
2642     napi_value result = nullptr;
2643 
2644     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2645     napi_get_value_double(env, args[0], &valueFirst);
2646     napi_create_double(env, nearbyintf(valueFirst), &result);
2647 
2648     return result;
2649 }
Nearbyintl(napi_env env,napi_callback_info info)2650 static napi_value Nearbyintl(napi_env env, napi_callback_info info)
2651 {
2652     size_t argc = PARAM_1;
2653     napi_value args[1] = {nullptr};
2654     double valueFirst;
2655     napi_value result = nullptr;
2656 
2657     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2658     napi_get_value_double(env, args[0], &valueFirst);
2659     napi_create_double(env, nearbyintl(valueFirst), &result);
2660 
2661     return result;
2662 }
Nan(napi_env env,napi_callback_info info)2663 static napi_value Nan(napi_env env, napi_callback_info info)
2664 {
2665     size_t argc = PARAM_1;
2666     napi_value args[1] = {nullptr};
2667     size_t size = STRLENGTH;
2668     char *value = static_cast<char *>(malloc(sizeof(char) * size));
2669     size_t actualVal;
2670     napi_value result = nullptr;
2671 
2672     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2673     napi_get_value_string_utf8(env, args[0], value, size, &actualVal);
2674     napi_create_double(env, nan(value), &result);
2675 
2676     return result;
2677 }
2678 
Nanf(napi_env env,napi_callback_info info)2679 static napi_value Nanf(napi_env env, napi_callback_info info)
2680 {
2681     size_t argc = PARAM_1;
2682     napi_value args[1] = {nullptr};
2683     size_t size = STRLENGTH;
2684     char *value = static_cast<char *>(malloc(sizeof(char) * size));
2685     size_t actualVal;
2686     napi_value result = nullptr;
2687 
2688     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2689     napi_get_value_string_utf8(env, args[0], value, size, &actualVal);
2690     napi_create_double(env, nanf(value), &result);
2691 
2692     return result;
2693 }
2694 
Nanl(napi_env env,napi_callback_info info)2695 static napi_value Nanl(napi_env env, napi_callback_info info)
2696 {
2697     size_t argc = PARAM_1;
2698     napi_value args[1] = {nullptr};
2699     size_t size = STRLENGTH;
2700     char *value = static_cast<char *>(malloc(sizeof(char) * size));
2701     size_t actualVal;
2702     napi_value result = nullptr;
2703 
2704     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2705     napi_get_value_string_utf8(env, args[0], value, size, &actualVal);
2706     napi_create_double(env, nanf(value), &result);
2707 
2708     return result;
2709 }
LRint(napi_env env,napi_callback_info info)2710 static napi_value LRint(napi_env env, napi_callback_info info)
2711 {
2712     size_t argc = PARAM_1;
2713     napi_value args[1] = {nullptr};
2714     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2715     double valueZero;
2716     napi_get_value_double(env, args[0], &valueZero);
2717     int lrintValue = lrint(valueZero);
2718     napi_value result = nullptr;
2719     napi_create_int32(env, lrintValue, &result);
2720 
2721     return result;
2722 }
LRintl(napi_env env,napi_callback_info info)2723 static napi_value LRintl(napi_env env, napi_callback_info info)
2724 {
2725     size_t argc = PARAM_1;
2726     napi_value args[1] = {nullptr};
2727     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2728     double valueZero;
2729     napi_get_value_double(env, args[0], &valueZero);
2730     double lrintl_value = lrintl(valueZero);
2731     napi_value result = nullptr;
2732     napi_create_double(env, lrintl_value, &result);
2733 
2734     return result;
2735 }
2736 
LRound(napi_env env,napi_callback_info info)2737 static napi_value LRound(napi_env env, napi_callback_info info)
2738 {
2739     size_t argc = PARAM_1;
2740     napi_value args[1] = {nullptr};
2741     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2742     double valueZero;
2743     napi_get_value_double(env, args[0], &valueZero);
2744     double lroundValue = lround(valueZero);
2745     napi_value result = nullptr;
2746     napi_create_double(env, lroundValue, &result);
2747 
2748     return result;
2749 }
2750 
LRoundf(napi_env env,napi_callback_info info)2751 static napi_value LRoundf(napi_env env, napi_callback_info info)
2752 {
2753     size_t argc = PARAM_1;
2754     napi_value args[1] = {nullptr};
2755     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2756     double valueZero;
2757     napi_get_value_double(env, args[0], &valueZero);
2758     double lroundf_value = lroundf(valueZero);
2759     napi_value result = nullptr;
2760     napi_create_double(env, lroundf_value, &result);
2761 
2762     return result;
2763 }
2764 
LRoundl(napi_env env,napi_callback_info info)2765 static napi_value LRoundl(napi_env env, napi_callback_info info)
2766 {
2767     size_t argc = PARAM_1;
2768     napi_value args[1] = {nullptr};
2769     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2770     double valueZero;
2771     napi_get_value_double(env, args[0], &valueZero);
2772     double lroundl_value = lroundl(valueZero);
2773     napi_value result = nullptr;
2774     napi_create_int32(env, lroundl_value, &result);
2775 
2776     return result;
2777 }
2778 
HYpot(napi_env env,napi_callback_info info)2779 static napi_value HYpot(napi_env env, napi_callback_info info)
2780 {
2781     size_t argc = PARAM_2;
2782     napi_value args[2] = {nullptr};
2783     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2784     double x;
2785     double y;
2786     napi_get_value_double(env, args[0], &x);
2787     napi_get_value_double(env, args[1], &y);
2788     napi_value result = nullptr;
2789 
2790     double resultValue = hypot(x, y);
2791     napi_create_double(env, resultValue, &result);
2792 
2793     return result;
2794 }
2795 
HYpotf(napi_env env,napi_callback_info info)2796 static napi_value HYpotf(napi_env env, napi_callback_info info)
2797 {
2798     size_t argc = PARAM_2;
2799     napi_value args[2] = {nullptr};
2800     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2801     double x;
2802     double y;
2803     napi_get_value_double(env, args[0], &x);
2804     napi_get_value_double(env, args[1], &y);
2805     napi_value result = nullptr;
2806 
2807     double resultValue = hypotf(x, y);
2808     napi_create_double(env, resultValue, &result);
2809 
2810     return result;
2811 }
2812 
HYpotl(napi_env env,napi_callback_info info)2813 static napi_value HYpotl(napi_env env, napi_callback_info info)
2814 {
2815     size_t argc = PARAM_2;
2816     napi_value args[2] = {nullptr};
2817     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2818     double x;
2819     double y;
2820     napi_get_value_double(env, args[0], &x);
2821     napi_get_value_double(env, args[1], &y);
2822     napi_value result = nullptr;
2823 
2824     double resultValue = hypotl(x, y);
2825     napi_create_double(env, resultValue, &result);
2826     return result;
2827 }
ILogb(napi_env env,napi_callback_info info)2828 static napi_value ILogb(napi_env env, napi_callback_info info)
2829 {
2830     size_t argc = PARAM_1;
2831     napi_value args[1] = {nullptr};
2832     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2833     double valueZero;
2834     napi_get_value_double(env, args[0], &valueZero);
2835     double ilogb_value = ilogb(valueZero);
2836     napi_value result = nullptr;
2837     napi_create_double(env, ilogb_value, &result);
2838     return result;
2839 }
ILogbf(napi_env env,napi_callback_info info)2840 static napi_value ILogbf(napi_env env, napi_callback_info info)
2841 {
2842     size_t argc = PARAM_1;
2843     napi_value args[1] = {nullptr};
2844     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2845     double valueZero;
2846     napi_get_value_double(env, args[0], &valueZero);
2847     double ilogbf_value = ilogbf(valueZero);
2848     napi_value result = nullptr;
2849     napi_create_double(env, ilogbf_value, &result);
2850 
2851     return result;
2852 }
ILogbl(napi_env env,napi_callback_info info)2853 static napi_value ILogbl(napi_env env, napi_callback_info info)
2854 {
2855     size_t argc = PARAM_1;
2856     napi_value args[1] = {nullptr};
2857     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2858     double valueZero;
2859     napi_get_value_double(env, args[0], &valueZero);
2860     double ilogbl_value = ilogbl(valueZero);
2861     napi_value result = nullptr;
2862     napi_create_double(env, ilogbl_value, &result);
2863 
2864     return result;
2865 }
2866 
2867 extern int signgam;
SignGam(napi_env env,napi_callback_info info)2868 static napi_value SignGam(napi_env env, napi_callback_info info)
2869 {
2870     size_t argc = PARAM_1;
2871     napi_value args[1] = {nullptr};
2872     napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
2873     double param;
2874     napi_get_value_double(env, args[0], &param);
2875     lgamma(param);
2876     napi_value result;
2877     int retVal = FAIL;
2878     if (signgam >= PARAM_0) {
2879         retVal = SUCCESS;
2880     } else {
2881         retVal = FAIL;
2882     }
2883     napi_create_double(env, retVal, &result);
2884     return result;
2885 }
Yn(napi_env env,napi_callback_info info)2886 static napi_value Yn(napi_env env, napi_callback_info info)
2887 {
2888     double ret = yn(PARAM_3, PARAM_30);
2889     napi_value result = nullptr;
2890     if (ret == MAGICNUM) {
2891         napi_create_double(env, PARAM_0, &result);
2892     } else {
2893         napi_create_double(env, PARAM_UNNORMAL, &result);
2894     }
2895     return result;
2896 }
2897 
FloatEqual(float a,float b,float epsilon)2898 static int FloatEqual(float a, float b, float epsilon)
2899 {
2900     return fabs(a - b) < epsilon;
2901 }
2902 
Ynf(napi_env env,napi_callback_info info)2903 static napi_value Ynf(napi_env env, napi_callback_info info)
2904 {
2905     float ret = ynf(PARAM_3, PARAM_30);
2906     napi_value result = nullptr;
2907     if (FloatEqual(ret, MAGICYNFNUM, EPSILON_1)) {
2908         napi_create_double(env, PARAM_0, &result);
2909     } else {
2910         napi_create_double(env, PARAM_UNNORMAL, &result);
2911     }
2912     return result;
2913 }
2914 EXTERN_C_START
Init(napi_env env,napi_value exports)2915 static napi_value Init(napi_env env, napi_value exports)
2916 {
2917     napi_property_descriptor desc[] = {
2918         {"remainder", nullptr, Remainder, nullptr, nullptr, nullptr, napi_default, nullptr},
2919         {"remainderf", nullptr, Remainderf, nullptr, nullptr, nullptr, napi_default, nullptr},
2920         {"remainderl", nullptr, Remainderl, nullptr, nullptr, nullptr, napi_default, nullptr},
2921         {"remquo", nullptr, Remquo, nullptr, nullptr, nullptr, napi_default, nullptr},
2922         {"remquof", nullptr, Remquof, nullptr, nullptr, nullptr, napi_default, nullptr},
2923         {"remquol", nullptr, Remquol, nullptr, nullptr, nullptr, napi_default, nullptr},
2924         {"rint", nullptr, Rint, nullptr, nullptr, nullptr, napi_default, nullptr},
2925         {"rintf", nullptr, Rintf, nullptr, nullptr, nullptr, napi_default, nullptr},
2926         {"rintl", nullptr, Rintl, nullptr, nullptr, nullptr, napi_default, nullptr},
2927         {"round", nullptr, Round, nullptr, nullptr, nullptr, napi_default, nullptr},
2928         {"roundl", nullptr, Roundl, nullptr, nullptr, nullptr, napi_default, nullptr},
2929         {"roundf", nullptr, Roundf, nullptr, nullptr, nullptr, napi_default, nullptr},
2930         {"scalbln", nullptr, Scalbln, nullptr, nullptr, nullptr, napi_default, nullptr},
2931         {"tan", nullptr, Tan, nullptr, nullptr, nullptr, napi_default, nullptr},
2932         {"tanf", nullptr, Tanf, nullptr, nullptr, nullptr, napi_default, nullptr},
2933         {"tanh", nullptr, Tanh, nullptr, nullptr, nullptr, napi_default, nullptr},
2934         {"tanhf", nullptr, Tanhf, nullptr, nullptr, nullptr, napi_default, nullptr},
2935         {"tanhl", nullptr, Tanhl, nullptr, nullptr, nullptr, napi_default, nullptr},
2936         {"tanl", nullptr, Tanl, nullptr, nullptr, nullptr, napi_default, nullptr},
2937         {"tgamma", nullptr, Tgamma, nullptr, nullptr, nullptr, napi_default, nullptr},
2938         {"tgammaf", nullptr, Tgammaf, nullptr, nullptr, nullptr, napi_default, nullptr},
2939         {"tgammal", nullptr, Tgammal, nullptr, nullptr, nullptr, napi_default, nullptr},
2940         {"scalblnl", nullptr, Scalblnl, nullptr, nullptr, nullptr, napi_default, nullptr},
2941         {"scalbn", nullptr, Scalbn, nullptr, nullptr, nullptr, napi_default, nullptr},
2942         {"scalblnf", nullptr, Scalblnf, nullptr, nullptr, nullptr, napi_default, nullptr},
2943         {"scalbnf", nullptr, Scalbnf, nullptr, nullptr, nullptr, napi_default, nullptr},
2944         {"scalbnl", nullptr, Scalbnl, nullptr, nullptr, nullptr, napi_default, nullptr},
2945         {"log", nullptr, Log, nullptr, nullptr, nullptr, napi_default, nullptr},
2946         {"log10", nullptr, Log10, nullptr, nullptr, nullptr, napi_default, nullptr},
2947         {"log10l", nullptr, Log10l, nullptr, nullptr, nullptr, napi_default, nullptr},
2948         {"log10f", nullptr, Log10f, nullptr, nullptr, nullptr, napi_default, nullptr},
2949         {"log1p", nullptr, Log1p, nullptr, nullptr, nullptr, napi_default, nullptr},
2950         {"log1pf", nullptr, Log1pf, nullptr, nullptr, nullptr, napi_default, nullptr},
2951         {"log1pl", nullptr, Log1pl, nullptr, nullptr, nullptr, napi_default, nullptr},
2952         {"log2", nullptr, Log2, nullptr, nullptr, nullptr, napi_default, nullptr},
2953         {"log2f", nullptr, Log2f, nullptr, nullptr, nullptr, napi_default, nullptr},
2954         {"log2l", nullptr, Log2l, nullptr, nullptr, nullptr, napi_default, nullptr},
2955         {"logB", nullptr, LogB, nullptr, nullptr, nullptr, napi_default, nullptr},
2956         {"logBf", nullptr, LogBf, nullptr, nullptr, nullptr, napi_default, nullptr},
2957         {"logBl", nullptr, LogBl, nullptr, nullptr, nullptr, napi_default, nullptr},
2958         {"logF", nullptr, LogF, nullptr, nullptr, nullptr, napi_default, nullptr},
2959         {"logL", nullptr, LogL, nullptr, nullptr, nullptr, napi_default, nullptr},
2960         {"aSin", nullptr, ASin, nullptr, nullptr, nullptr, napi_default, nullptr},
2961         {"aSinF", nullptr, ASinF, nullptr, nullptr, nullptr, napi_default, nullptr},
2962         {"aSinL", nullptr, ASinL, nullptr, nullptr, nullptr, napi_default, nullptr},
2963         {"aSinH", nullptr, ASinH, nullptr, nullptr, nullptr, napi_default, nullptr},
2964         {"aSinHL", nullptr, ASinHL, nullptr, nullptr, nullptr, napi_default, nullptr},
2965         {"aSinHF", nullptr, ASinHF, nullptr, nullptr, nullptr, napi_default, nullptr},
2966         {"aCos", nullptr, ACos, nullptr, nullptr, nullptr, napi_default, nullptr},
2967         {"aCosF", nullptr, ACosF, nullptr, nullptr, nullptr, napi_default, nullptr},
2968         {"aCosL", nullptr, ACosL, nullptr, nullptr, nullptr, napi_default, nullptr},
2969         {"aCosH", nullptr, ACosH, nullptr, nullptr, nullptr, napi_default, nullptr},
2970         {"aCosHL", nullptr, ACosHL, nullptr, nullptr, nullptr, napi_default, nullptr},
2971         {"aCosHF", nullptr, ACosHF, nullptr, nullptr, nullptr, napi_default, nullptr},
2972         {"aTan", nullptr, ATan, nullptr, nullptr, nullptr, napi_default, nullptr},
2973         {"aTanF", nullptr, ATanF, nullptr, nullptr, nullptr, napi_default, nullptr},
2974         {"aTanL", nullptr, ATanL, nullptr, nullptr, nullptr, napi_default, nullptr},
2975         {"aTan2", nullptr, ATan2, nullptr, nullptr, nullptr, napi_default, nullptr},
2976         {"aTan2F", nullptr, ATan2F, nullptr, nullptr, nullptr, napi_default, nullptr},
2977         {"aTan2L", nullptr, ATan2L, nullptr, nullptr, nullptr, napi_default, nullptr},
2978         {"coshl", nullptr, CosHl, nullptr, nullptr, nullptr, napi_default, nullptr},
2979         {"coshf", nullptr, CosHf, nullptr, nullptr, nullptr, napi_default, nullptr},
2980         {"cosh", nullptr, Cosh, nullptr, nullptr, nullptr, napi_default, nullptr},
2981         {"cosl", nullptr, CosL, nullptr, nullptr, nullptr, napi_default, nullptr},
2982         {"cosf", nullptr, CosF, nullptr, nullptr, nullptr, napi_default, nullptr},
2983         {"erfl", nullptr, ErfL, nullptr, nullptr, nullptr, napi_default, nullptr},
2984         {"erff", nullptr, ErfF, nullptr, nullptr, nullptr, napi_default, nullptr},
2985         {"erfcl", nullptr, ErfCl, nullptr, nullptr, nullptr, napi_default, nullptr},
2986         {"erfcf", nullptr, ErfCf, nullptr, nullptr, nullptr, napi_default, nullptr},
2987         {"erfc", nullptr, ErfC, nullptr, nullptr, nullptr, napi_default, nullptr},
2988         {"exp2l", nullptr, Exp2l, nullptr, nullptr, nullptr, napi_default, nullptr},
2989         {"exp2f", nullptr, Exp2f, nullptr, nullptr, nullptr, napi_default, nullptr},
2990         {"expl", nullptr, ExpL, nullptr, nullptr, nullptr, napi_default, nullptr},
2991         {"expf", nullptr, ExpF, nullptr, nullptr, nullptr, napi_default, nullptr},
2992         {"expm1l", nullptr, ExpM1l, nullptr, nullptr, nullptr, napi_default, nullptr},
2993         {"expm1f", nullptr, ExpM1f, nullptr, nullptr, nullptr, napi_default, nullptr},
2994         {"ceill", nullptr, CeilL, nullptr, nullptr, nullptr, napi_default, nullptr},
2995         {"ceilf", nullptr, CeilF, nullptr, nullptr, nullptr, napi_default, nullptr},
2996         {"ceil", nullptr, Ceil, nullptr, nullptr, nullptr, napi_default, nullptr},
2997         {"fabsl", nullptr, FAbsL, nullptr, nullptr, nullptr, napi_default, nullptr},
2998         {"fabsf", nullptr, FAbsF, nullptr, nullptr, nullptr, napi_default, nullptr},
2999         {"fdiml", nullptr, FDimL, nullptr, nullptr, nullptr, napi_default, nullptr},
3000         {"fdimf", nullptr, FDimF, nullptr, nullptr, nullptr, napi_default, nullptr},
3001         {"floorl", nullptr, FloorL, nullptr, nullptr, nullptr, napi_default, nullptr},
3002         {"floorf", nullptr, FloorF, nullptr, nullptr, nullptr, napi_default, nullptr},
3003         {"fmal", nullptr, FmaL, nullptr, nullptr, nullptr, napi_default, nullptr},
3004         {"fmaf", nullptr, FmaF, nullptr, nullptr, nullptr, napi_default, nullptr},
3005         {"fmaxl", nullptr, FMaxL, nullptr, nullptr, nullptr, napi_default, nullptr},
3006         {"fmaxf", nullptr, FMaxF, nullptr, nullptr, nullptr, napi_default, nullptr},
3007         {"fminl", nullptr, FMinL, nullptr, nullptr, nullptr, napi_default, nullptr},
3008         {"fminf", nullptr, FMinF, nullptr, nullptr, nullptr, napi_default, nullptr},
3009         {"fmodl", nullptr, FmodL, nullptr, nullptr, nullptr, napi_default, nullptr},
3010         {"fmodf", nullptr, FmodF, nullptr, nullptr, nullptr, napi_default, nullptr},
3011         {"expm1", nullptr, ExpM1, nullptr, nullptr, nullptr, napi_default, nullptr},
3012         {"exp2", nullptr, Exp2, nullptr, nullptr, nullptr, napi_default, nullptr},
3013         {"cos", nullptr, Cos, nullptr, nullptr, nullptr, napi_default, nullptr},
3014         {"erf", nullptr, Erf, nullptr, nullptr, nullptr, napi_default, nullptr},
3015         {"copysignl", nullptr, CopySignL, nullptr, nullptr, nullptr, napi_default, nullptr},
3016         {"copysignf", nullptr, CopySignF, nullptr, nullptr, nullptr, napi_default, nullptr},
3017         {"copysign", nullptr, CopySign, nullptr, nullptr, nullptr, napi_default, nullptr},
3018         {"exp", nullptr, Exp, nullptr, nullptr, nullptr, napi_default, nullptr},
3019         {"fabs", nullptr, FAbs, nullptr, nullptr, nullptr, napi_default, nullptr},
3020         {"fdim", nullptr, FDim, nullptr, nullptr, nullptr, napi_default, nullptr},
3021         {"floor", nullptr, Floor, nullptr, nullptr, nullptr, napi_default, nullptr},
3022         {"fma", nullptr, Fma, nullptr, nullptr, nullptr, napi_default, nullptr},
3023         {"fmax", nullptr, FMax, nullptr, nullptr, nullptr, napi_default, nullptr},
3024         {"fmin", nullptr, FMin, nullptr, nullptr, nullptr, napi_default, nullptr},
3025         {"fmod", nullptr, Fmod, nullptr, nullptr, nullptr, napi_default, nullptr},
3026         {"sin", nullptr, Sin, nullptr, nullptr, nullptr, napi_default, nullptr},
3027         {"sinf", nullptr, Sinf, nullptr, nullptr, nullptr, napi_default, nullptr},
3028         {"sinl", nullptr, Sinl, nullptr, nullptr, nullptr, napi_default, nullptr},
3029         {"sinh", nullptr, Sinh, nullptr, nullptr, nullptr, napi_default, nullptr},
3030         {"sinhf", nullptr, Sinhf, nullptr, nullptr, nullptr, napi_default, nullptr},
3031         {"sinhl", nullptr, Sinhl, nullptr, nullptr, nullptr, napi_default, nullptr},
3032         {"sqrt", nullptr, Sqrt, nullptr, nullptr, nullptr, napi_default, nullptr},
3033         {"sqrtf", nullptr, Sqrtf, nullptr, nullptr, nullptr, napi_default, nullptr},
3034         {"sqrtl", nullptr, Sqrtl, nullptr, nullptr, nullptr, napi_default, nullptr},
3035         {"j0", nullptr, J0, nullptr, nullptr, nullptr, napi_default, nullptr},
3036         {"j0f", nullptr, J0f, nullptr, nullptr, nullptr, napi_default, nullptr},
3037         {"j1", nullptr, J1, nullptr, nullptr, nullptr, napi_default, nullptr},
3038         {"j1f", nullptr, J1f, nullptr, nullptr, nullptr, napi_default, nullptr},
3039         {"jn", nullptr, Jn, nullptr, nullptr, nullptr, napi_default, nullptr},
3040         {"jnf", nullptr, Jnf, nullptr, nullptr, nullptr, napi_default, nullptr},
3041         {"ldexp", nullptr, Ldexp, nullptr, nullptr, nullptr, napi_default, nullptr},
3042         {"ldexpf", nullptr, Ldexpf, nullptr, nullptr, nullptr, napi_default, nullptr},
3043         {"ldexpl", nullptr, Ldexpl, nullptr, nullptr, nullptr, napi_default, nullptr},
3044         {"aTanH", nullptr, ATanH, nullptr, nullptr, nullptr, napi_default, nullptr},
3045         {"aTanHF", nullptr, ATanHF, nullptr, nullptr, nullptr, napi_default, nullptr},
3046         {"aTanHL", nullptr, ATanHL, nullptr, nullptr, nullptr, napi_default, nullptr},
3047         {"sincos", nullptr, Sincos, nullptr, nullptr, nullptr, napi_default, nullptr},
3048         {"sincosl", nullptr, Sincosl, nullptr, nullptr, nullptr, napi_default, nullptr},
3049         {"sincosf", nullptr, Sincosf, nullptr, nullptr, nullptr, napi_default, nullptr},
3050         {"significand", nullptr, Significand, nullptr, nullptr, nullptr, napi_default, nullptr},
3051         {"significandf", nullptr, Significandf, nullptr, nullptr, nullptr, napi_default, nullptr},
3052         {"trunc", nullptr, Trunc, nullptr, nullptr, nullptr, napi_default, nullptr},
3053         {"truncf", nullptr, Truncf, nullptr, nullptr, nullptr, napi_default, nullptr},
3054         {"truncl", nullptr, Truncl, nullptr, nullptr, nullptr, napi_default, nullptr},
3055         {"scalb", nullptr, Scalb, nullptr, nullptr, nullptr, napi_default, nullptr},
3056         {"scalbf", nullptr, Scalbf, nullptr, nullptr, nullptr, napi_default, nullptr},
3057         {"y0", nullptr, Y0, nullptr, nullptr, nullptr, napi_default, nullptr},
3058         {"y0f", nullptr, Y0f, nullptr, nullptr, nullptr, napi_default, nullptr},
3059         {"y1", nullptr, Y1, nullptr, nullptr, nullptr, napi_default, nullptr},
3060         {"y1f", nullptr, Y1f, nullptr, nullptr, nullptr, napi_default, nullptr},
3061         {"cbrt", nullptr, CBrt, nullptr, nullptr, nullptr, napi_default, nullptr},
3062         {"cbrtf", nullptr, CBrtF, nullptr, nullptr, nullptr, napi_default, nullptr},
3063         {"cbrtl", nullptr, CBrtL, nullptr, nullptr, nullptr, napi_default, nullptr},
3064         {"frexp", nullptr, Frexp, nullptr, nullptr, nullptr, napi_default, nullptr},
3065         {"frexpl", nullptr, Frexpl, nullptr, nullptr, nullptr, napi_default, nullptr},
3066         {"frexpf", nullptr, Frexpf, nullptr, nullptr, nullptr, napi_default, nullptr},
3067         {"fpclassifyl", nullptr, Fpclassifyl, nullptr, nullptr, nullptr, napi_default, nullptr},
3068         {"fpclassify", nullptr, Fpclassify, nullptr, nullptr, nullptr, napi_default, nullptr},
3069         {"fpclassifyf", nullptr, Fpclassifyf, nullptr, nullptr, nullptr, napi_default, nullptr},
3070         {"signbit", nullptr, Signbit, nullptr, nullptr, nullptr, napi_default, nullptr},
3071         {"signbitf", nullptr, Signbitf, nullptr, nullptr, nullptr, napi_default, nullptr},
3072         {"signbitl", nullptr, Signbitl, nullptr, nullptr, nullptr, napi_default, nullptr},
3073         {"nan", nullptr, Nan, nullptr, nullptr, nullptr, napi_default, nullptr},
3074         {"nanl", nullptr, Nanl, nullptr, nullptr, nullptr, napi_default, nullptr},
3075         {"nanf", nullptr, Nanf, nullptr, nullptr, nullptr, napi_default, nullptr},
3076         {"nearbyint", nullptr, Nearbyint, nullptr, nullptr, nullptr, napi_default, nullptr},
3077         {"nearbyintf", nullptr, Nearbyintf, nullptr, nullptr, nullptr, napi_default, nullptr},
3078         {"nearbyintl", nullptr, Nearbyintl, nullptr, nullptr, nullptr, napi_default, nullptr},
3079         {"nextafter", nullptr, Nextafter, nullptr, nullptr, nullptr, napi_default, nullptr},
3080         {"nextafterl", nullptr, Nextafterl, nullptr, nullptr, nullptr, napi_default, nullptr},
3081         {"nextafterf", nullptr, Nextafterf, nullptr, nullptr, nullptr, napi_default, nullptr},
3082         {"nextToward", nullptr, NextToward, nullptr, nullptr, nullptr, napi_default, nullptr},
3083         {"nextTowardF", nullptr, NextTowardF, nullptr, nullptr, nullptr, napi_default, nullptr},
3084         {"nextTowardL", nullptr, NextTowardL, nullptr, nullptr, nullptr, napi_default, nullptr},
3085         {"pow", nullptr, Pow, nullptr, nullptr, nullptr, napi_default, nullptr},
3086         {"powf", nullptr, Powf, nullptr, nullptr, nullptr, napi_default, nullptr},
3087         {"powl", nullptr, Powl, nullptr, nullptr, nullptr, napi_default, nullptr},
3088         {"modF", nullptr, ModF, nullptr, nullptr, nullptr, napi_default, nullptr},
3089         {"modFf", nullptr, ModFf, nullptr, nullptr, nullptr, napi_default, nullptr},
3090         {"modFl", nullptr, ModFl, nullptr, nullptr, nullptr, napi_default, nullptr},
3091         {"mRand48", nullptr, MRand48, nullptr, nullptr, nullptr, napi_default, nullptr},
3092         {"lgamma", nullptr, Lgamma, nullptr, nullptr, nullptr, napi_default, nullptr},
3093         {"lgammaf", nullptr, Lgammaf, nullptr, nullptr, nullptr, napi_default, nullptr},
3094         {"lgammal", nullptr, Lgammal, nullptr, nullptr, nullptr, napi_default, nullptr},
3095         {"lgammaR", nullptr, Lgamma_r, nullptr, nullptr, nullptr, napi_default, nullptr},
3096         {"lgammafR", nullptr, Lgammaf_r, nullptr, nullptr, nullptr, napi_default, nullptr},
3097         {"lgammalR", nullptr, Lgammal_r, nullptr, nullptr, nullptr, napi_default, nullptr},
3098         {"llrint", nullptr, LLrint, nullptr, nullptr, nullptr, napi_default, nullptr},
3099         {"llrintF", nullptr, LLrintf, nullptr, nullptr, nullptr, napi_default, nullptr},
3100         {"llrintL", nullptr, LLrintl, nullptr, nullptr, nullptr, napi_default, nullptr},
3101         {"llround", nullptr, LLround, nullptr, nullptr, nullptr, napi_default, nullptr},
3102         {"llroundF", nullptr, LLroundf, nullptr, nullptr, nullptr, napi_default, nullptr},
3103         {"llroundL", nullptr, LLroundl, nullptr, nullptr, nullptr, napi_default, nullptr},
3104         {"yn", nullptr, Yn, nullptr, nullptr, nullptr, napi_default, nullptr},
3105         {"ynf", nullptr, Ynf, nullptr, nullptr, nullptr, napi_default, nullptr},
3106         {"lRint", nullptr, LRint, nullptr, nullptr, nullptr, napi_default, nullptr},
3107         {"lRintf", nullptr, LRintf, nullptr, nullptr, nullptr, napi_default, nullptr},
3108         {"lRintl", nullptr, LRintl, nullptr, nullptr, nullptr, napi_default, nullptr},
3109         {"lRound", nullptr, LRound, nullptr, nullptr, nullptr, napi_default, nullptr},
3110         {"lRoundl", nullptr, LRoundl, nullptr, nullptr, nullptr, napi_default, nullptr},
3111         {"lRoundf", nullptr, LRoundf, nullptr, nullptr, nullptr, napi_default, nullptr},
3112         {"ilogb", nullptr, ILogb, nullptr, nullptr, nullptr, napi_default, nullptr},
3113         {"ilogbf", nullptr, ILogbf, nullptr, nullptr, nullptr, napi_default, nullptr},
3114         {"ilogbl", nullptr, ILogbl, nullptr, nullptr, nullptr, napi_default, nullptr},
3115         {"hypot", nullptr, HYpot, nullptr, nullptr, nullptr, napi_default, nullptr},
3116         {"hypotf", nullptr, HYpotf, nullptr, nullptr, nullptr, napi_default, nullptr},
3117         {"hypotl", nullptr, HYpotl, nullptr, nullptr, nullptr, napi_default, nullptr},
3118         {"signGam", nullptr, SignGam, nullptr, nullptr, nullptr, napi_default, nullptr},
3119 
3120     };
3121     napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
3122     return exports;
3123 }
3124 
3125 EXTERN_C_END
3126 
3127 static napi_module demoModule = {
3128     .nm_version = 1,
3129     .nm_flags = 0,
3130     .nm_filename = nullptr,
3131     .nm_register_func = Init,
3132     .nm_modname = "math",
3133     .nm_priv = ((void *)0),
3134     .reserved = {0},
3135 };
3136 
RegisterEntryModule(void)3137 extern "C" __attribute__((constructor)) void RegisterEntryModule(void) { napi_module_register(&demoModule); }
3138