@@ -10,28 +10,44 @@ native mod f64 {
10
10
pure fn asin ( n : f64 ) -> f64 ;
11
11
pure fn atan ( n : f64 ) -> f64 ;
12
12
pure fn atan2 ( a : f64 , b : f64 ) -> f64 ;
13
+ pure fn cbrt ( n : f64 ) -> f64 ;
13
14
pure fn ceil ( n : f64 ) -> f64 ;
14
15
pure fn cos ( n : f64 ) -> f64 ;
15
16
pure fn cosh ( n : f64 ) -> f64 ;
17
+ pure fn erf ( n : f64 ) -> f64 ;
18
+ pure fn erfc ( n : f64 ) -> f64 ;
16
19
pure fn exp ( n : f64 ) -> f64 ;
20
+ pure fn expm1 ( n : f64 ) -> f64 ;
21
+ pure fn exp2 ( n : f64 ) -> f64 ;
17
22
#[ link_name="fabs" ] pure fn abs ( n : f64 ) -> f64 ;
23
+ #[ link_name="fdim" ] pure fn sub_pos ( a : f64 , b : f64 ) -> f64 ;
18
24
pure fn floor ( n : f64 ) -> f64 ;
25
+ #[ link_name="fma" ] pure fn mul_add ( a : f64 , b : f64 , c : f64 ) -> f64 ;
26
+ #[ link_name="fmax" ] pure fn max ( a : f64 , b : f64 ) -> f64 ;
27
+ #[ link_name="fmin" ] pure fn min ( a : f64 , b : f64 ) -> f64 ;
28
+ pure fn nextafter ( x : f64 , y : f64 ) -> f64
19
29
pure fn fmod ( x : f64 , y : f64 ) -> f64 ;
20
30
pure fn frexp ( n : f64 , & value: c_int ) -> f64 ;
31
+ pure fn hypot ( x : f64 , y : f64 ) -> f64 ;
21
32
pure fn ldexp ( x : f64 , n : c_int ) -> f64 ;
33
+ #[ link_name="lgamma_r" ] pure fn lgamma ( n : f64 , sign : * c_int ) -> f64 ;
22
34
#[ link_name="log" ] pure fn ln ( n : f64 ) -> f64 ;
35
+ pure fn logb ( n : f64 ) -> f64 ;
23
36
#[ link_name="log1p" ] pure fn ln1p ( n : f64 ) -> f64 ;
24
37
pure fn log10 ( n : f64 ) -> f64 ;
25
38
pure fn log2 ( n : f64 ) -> f64 ;
39
+ pure fn ilogb ( n : f64 ) -> c_int ;
26
40
pure fn modf ( n : f64 , iptr : * f64 ) -> f64 ;
27
41
pure fn pow ( n : f64 , e : f64 ) -> f64 ;
42
+ #[ link_name="remainder" ] pure fn rem ( a : f64 , b : f64 ) -> f64 ;
28
43
pure fn rint ( n : f64 ) -> f64 ;
29
44
pure fn round ( n : f64 ) -> f64 ;
30
45
pure fn sin ( n : f64 ) -> f64 ;
31
46
pure fn sinh ( n : f64 ) -> f64 ;
32
47
pure fn sqrt ( n : f64 ) -> f64 ;
33
48
pure fn tan ( n : f64 ) -> f64 ;
34
49
pure fn tanh ( n : f64 ) -> f64 ;
50
+ pure fn tgamma ( n : f64 ) -> f64 ;
35
51
pure fn trunc ( n : f64 ) -> f64 ;
36
52
}
37
53
@@ -45,31 +61,59 @@ native mod f32 {
45
61
#[ link_name="asinf" ] pure fn asin ( n : f32 ) -> f32 ;
46
62
#[ link_name="atanf" ] pure fn atan ( n : f32 ) -> f32 ;
47
63
#[ link_name="atan2f" ] pure fn atan2 ( a : f32 , b : f32 ) -> f32 ;
64
+ #[ link_name="cbrtf" ] pure fn cbrt ( n : f32 ) -> f32 ;
48
65
#[ link_name="ceilf" ] pure fn ceil ( n : f32 ) -> f32 ;
49
66
#[ link_name="cosf" ] pure fn cos ( n : f32 ) -> f32 ;
50
67
#[ link_name="coshf" ] pure fn cosh ( n : f32 ) -> f32 ;
68
+ #[ link_name="erff" ] pure fn erf ( n : f32 ) -> f32 ;
69
+ #[ link_name="erfcf" ] pure fn erfc ( n : f32 ) -> f32 ;
51
70
#[ link_name="expf" ] pure fn exp ( n : f32 ) -> f32 ;
71
+ #[ link_name="expm1f" ] pure fn expm1 ( n : f32 ) -> f32 ;
72
+ #[ link_name="exp2f" ] pure fn exp2 ( n : f32 ) -> f32 ;
52
73
#[ link_name="fabsf" ] pure fn abs ( n : f32 ) -> f32 ;
74
+ #[ link_name="fdimf" ] pure fn sub_pos ( a : f32 , b : f32 ) -> f32 ;
53
75
#[ link_name="floorf" ] pure fn floor ( n : f32 ) -> f32 ;
54
76
#[ link_name="frexpf" ] pure fn frexp ( n : f64 , & value: c_int ) -> f32 ;
77
+ #[ link_name="fmaf" ] pure fn mul_add ( a : f32 , b : f32 , c : f32 ) -> f32 ;
78
+ #[ link_name="fmaxf" ] pure fn max ( a : f32 , b : f32 ) -> f32 ;
79
+ #[ link_name="fminf" ] pure fn min ( a : f32 , b : f32 ) -> f32 ;
80
+ #[ link_name="nextafterf" ] pure fn nextafter ( x : f32 , y : f32 ) -> f32
55
81
#[ link_name="fmodf" ] pure fn fmod ( x : f32 , y : f32 ) -> f32 ;
82
+ #[ link_name="hypotf" ] pure fn hypot ( x : f32 , y : f32 ) -> f32 ;
56
83
#[ link_name="ldexpf" ] pure fn ldexp ( x : f32 , n : c_int ) -> f32 ;
84
+ #[ link_name="lgammaf_r" ] pure fn lgamma ( n : f32 , sign : * c_int ) -> f32 ;
57
85
#[ link_name="logf" ] pure fn ln ( n : f32 ) -> f32 ;
86
+ #[ link_name="logbf" ] pure fn logb ( n : f32 ) -> f32 ;
58
87
#[ link_name="log1p" ] pure fn ln1p ( n : f64 ) -> f64 ;
59
88
#[ link_name="log2f" ] pure fn log2 ( n : f32 ) -> f32 ;
60
89
#[ link_name="log10f" ] pure fn log10 ( n : f32 ) -> f32 ;
90
+ #[ link_name="ilogbf" ] pure fn ilogb ( n : f32 ) -> c_int ;
61
91
#[ link_name="modff" ] pure fn modf ( n : f32 , iptr : * f32 ) -> f32 ;
62
92
#[ link_name="powf" ] pure fn pow ( n : f32 , e : f32 ) -> f32 ;
93
+ #[ link_name="remainderf" ] pure fn rem ( a : f32 , b : f32 ) -> f32 ;
63
94
#[ link_name="rintf" ] pure fn rint ( n : f32 ) -> f32 ;
64
95
#[ link_name="roundf" ] pure fn round ( n : f32 ) -> f32 ;
65
96
#[ link_name="sinf" ] pure fn sin ( n : f32 ) -> f32 ;
66
97
#[ link_name="sinhf" ] pure fn sinh ( n : f32 ) -> f32 ;
67
98
#[ link_name="sqrtf" ] pure fn sqrt ( n : f32 ) -> f32 ;
68
99
#[ link_name="tanf" ] pure fn tan ( n : f32 ) -> f32 ;
69
100
#[ link_name="tanhf" ] pure fn tanh ( n : f32 ) -> f32 ;
101
+ #[ link_name="tgammaf" ] pure fn tgamma ( n : f32 ) -> f32 ;
70
102
#[ link_name="truncf" ] pure fn trunc ( n : f32 ) -> f32 ;
71
103
}
72
104
105
+ #[ link_name = "m" ]
106
+ #[ abi = "cdecl" ]
107
+ native mod bessel {
108
+ pure fn j0 ( n : m_float ) -> m_float ;
109
+ pure fn j1 ( n : m_float ) -> m_float ;
110
+ pure fn jn ( i : c_int , n : m_float ) -> m_float ;
111
+
112
+ pure fn y0 ( n : m_float ) -> m_float ;
113
+ pure fn y1 ( n : m_float ) -> m_float ;
114
+ pure fn yn ( i : c_int , n : m_float ) -> m_float ;
115
+ }
116
+
73
117
//
74
118
// Local Variables:
75
119
// mode: rust
0 commit comments