1+ export c_double;
2+ export c_float;
3+ export bessel;
4+
15import ctypes:: c_int;
26import ctypes:: c_float;
37import ctypes:: c_double;
48
5- // FIXME scalbn copysign
6-
79#[ link_name = "m" ]
810#[ abi = "cdecl" ]
911native mod c_double {
@@ -16,6 +18,7 @@ native mod c_double {
1618 pure fn atan2 ( a : c_double , b : c_double ) -> c_double ;
1719 pure fn cbrt ( n : c_double ) -> c_double ;
1820 pure fn ceil ( n : c_double ) -> c_double ;
21+ pure fn copysign ( x : c_double , y : c_double ) -> c_double ;
1922 pure fn cos ( n : c_double ) -> c_double ;
2023 pure fn cosh ( n : c_double ) -> c_double ;
2124 pure fn erf ( n : c_double ) -> c_double ;
@@ -26,15 +29,16 @@ native mod c_double {
2629 #[ link_name="fabs" ] pure fn abs ( n : c_double ) -> c_double ;
2730 #[ link_name="fdim" ] pure fn sub_pos ( a : c_double , b : c_double ) -> c_double ;
2831 pure fn floor ( n : c_double ) -> c_double ;
29- #[ link_name="fma" ] pure fn mul_add ( a : c_double , b : c_double , c : c_double ) -> c_double ;
32+ #[ link_name="fma" ] pure fn mul_add ( a : c_double , b : c_double ,
33+ c : c_double ) -> c_double ;
3034 #[ link_name="fmax" ] pure fn fmax ( a : c_double , b : c_double ) -> c_double ;
3135 #[ link_name="fmin" ] pure fn fmin ( a : c_double , b : c_double ) -> c_double ;
3236 pure fn nextafter ( x : c_double , y : c_double ) -> c_double ;
33- #[ link_name="fmod" ] pure fn rem ( x : c_double , y : c_double ) -> c_double ;
3437 pure fn frexp ( n : c_double , & value: c_int ) -> c_double ;
3538 pure fn hypot ( x : c_double , y : c_double ) -> c_double ;
3639 pure fn ldexp ( x : c_double , n : c_int ) -> c_double ;
37- #[ link_name="lgamma_r" ] pure fn lgamma ( n : c_double , & sign: c_int ) -> c_double ;
40+ #[ link_name="lgamma_r" ] pure fn lgamma ( n : c_double ,
41+ & sign: c_int ) -> c_double ;
3842 #[ link_name="log" ] pure fn ln ( n : c_double ) -> c_double ;
3943 pure fn logb ( n : c_double ) -> c_double ;
4044 #[ link_name="log1p" ] pure fn ln1p ( n : c_double ) -> c_double ;
@@ -45,6 +49,7 @@ native mod c_double {
4549 pure fn pow ( n : c_double , e : c_double ) -> c_double ;
4650 pure fn rint ( n : c_double ) -> c_double ;
4751 pure fn round ( n : c_double ) -> c_double ;
52+ pure fn scalbn ( n : c_double , i : c_int ) -> c_double ;
4853 pure fn sin ( n : c_double ) -> c_double ;
4954 pure fn sinh ( n : c_double ) -> c_double ;
5055 pure fn sqrt ( n : c_double ) -> c_double ;
@@ -66,6 +71,8 @@ native mod c_float {
6671 #[ link_name="atan2f" ] pure fn atan2 ( a : c_float , b : c_float ) -> c_float ;
6772 #[ link_name="cbrtf" ] pure fn cbrt ( n : c_float ) -> c_float ;
6873 #[ link_name="ceilf" ] pure fn ceil ( n : c_float ) -> c_float ;
74+ #[ link_name="copysignf" ] pure fn copysign ( x : c_float ,
75+ y : c_float ) -> c_float ;
6976 #[ link_name="cosf" ] pure fn cos ( n : c_float ) -> c_float ;
7077 #[ link_name="coshf" ] pure fn cosh ( n : c_float ) -> c_float ;
7178 #[ link_name="erff" ] pure fn erf ( n : c_float ) -> c_float ;
@@ -76,25 +83,30 @@ native mod c_float {
7683 #[ link_name="fabsf" ] pure fn abs ( n : c_float ) -> c_float ;
7784 #[ link_name="fdimf" ] pure fn sub_pos ( a : c_float , b : c_float ) -> c_float ;
7885 #[ link_name="floorf" ] pure fn floor ( n : c_float ) -> c_float ;
79- #[ link_name="frexpf" ] pure fn frexp ( n : c_double , & value: c_int ) -> c_float ;
80- #[ link_name="fmaf" ] pure fn mul_add ( a : c_float , b : c_float , c : c_float ) -> c_float ;
86+ #[ link_name="frexpf" ] pure fn frexp ( n : c_double ,
87+ & value: c_int ) -> c_float ;
88+ #[ link_name="fmaf" ] pure fn mul_add ( a : c_float ,
89+ b : c_float , c : c_float ) -> c_float ;
8190 #[ link_name="fmaxf" ] pure fn fmax ( a : c_float , b : c_float ) -> c_float ;
8291 #[ link_name="fminf" ] pure fn fmin ( a : c_float , b : c_float ) -> c_float ;
83- #[ link_name="nextafterf" ] pure fn nextafter ( x : c_float , y : c_float ) -> c_float ;
84- # [ link_name= "fmodf" ] pure fn rem ( x : c_float , y : c_float ) -> c_float ;
92+ #[ link_name="nextafterf" ] pure fn nextafter ( x : c_float ,
93+ y : c_float ) -> c_float ;
8594 #[ link_name="hypotf" ] pure fn hypot ( x : c_float , y : c_float ) -> c_float ;
8695 #[ link_name="ldexpf" ] pure fn ldexp ( x : c_float , n : c_int ) -> c_float ;
87- #[ link_name="lgammaf_r" ] pure fn lgamma ( n : c_float , & sign: c_int ) -> c_float ;
96+ #[ link_name="lgammaf_r" ] pure fn lgamma ( n : c_float ,
97+ & sign: c_int ) -> c_float ;
8898 #[ link_name="logf" ] pure fn ln ( n : c_float ) -> c_float ;
8999 #[ link_name="logbf" ] pure fn logb ( n : c_float ) -> c_float ;
90100 #[ link_name="log1p" ] pure fn ln1p ( n : c_double ) -> c_double ;
91101 #[ link_name="log2f" ] pure fn log2 ( n : c_float ) -> c_float ;
92102 #[ link_name="log10f" ] pure fn log10 ( n : c_float ) -> c_float ;
93103 #[ link_name="ilogbf" ] pure fn ilogb ( n : c_float ) -> c_int ;
94- #[ link_name="modff" ] pure fn modf ( n : c_float , & iptr: c_float ) -> c_float ;
104+ #[ link_name="modff" ] pure fn modf ( n : c_float ,
105+ & iptr: c_float ) -> c_float ;
95106 #[ link_name="powf" ] pure fn pow ( n : c_float , e : c_float ) -> c_float ;
96107 #[ link_name="rintf" ] pure fn rint ( n : c_float ) -> c_float ;
97108 #[ link_name="roundf" ] pure fn round ( n : c_float ) -> c_float ;
109+ #[ link_name="scalbnf" ] pure fn scalbn ( n : c_float , i : c_int ) -> c_float ;
98110 #[ link_name="sinf" ] pure fn sin ( n : c_float ) -> c_float ;
99111 #[ link_name="sinhf" ] pure fn sinh ( n : c_float ) -> c_float ;
100112 #[ link_name="sqrtf" ] pure fn sqrt ( n : c_float ) -> c_float ;
0 commit comments