@@ -26,73 +26,74 @@ pub extern mod c_double_utils {
26
26
27
27
// Alpabetically sorted by link_name
28
28
29
- pure fn acos ( n : c_double ) -> c_double ;
30
- pure fn asin ( n : c_double ) -> c_double ;
31
- pure fn atan ( n : c_double ) -> c_double ;
32
- pure fn atan2 ( a : c_double , b : c_double ) -> c_double ;
33
- pure fn cbrt ( n : c_double ) -> c_double ;
34
- pure fn ceil ( n : c_double ) -> c_double ;
35
- pure fn copysign ( x : c_double , y : c_double ) -> c_double ;
36
- pure fn cos ( n : c_double ) -> c_double ;
37
- pure fn cosh ( n : c_double ) -> c_double ;
38
- pure fn erf ( n : c_double ) -> c_double ;
39
- pure fn erfc ( n : c_double ) -> c_double ;
40
- pure fn exp ( n : c_double ) -> c_double ;
41
- pure fn expm1 ( n : c_double ) -> c_double ;
42
- pure fn exp2 ( n : c_double ) -> c_double ;
43
- #[ link_name="fabs" ] pure fn abs ( n : c_double ) -> c_double ;
29
+ unsafe fn acos ( n : c_double ) -> c_double ;
30
+ unsafe fn asin ( n : c_double ) -> c_double ;
31
+ unsafe fn atan ( n : c_double ) -> c_double ;
32
+ unsafe fn atan2 ( a : c_double , b : c_double ) -> c_double ;
33
+ unsafe fn cbrt ( n : c_double ) -> c_double ;
34
+ unsafe fn ceil ( n : c_double ) -> c_double ;
35
+ unsafe fn copysign ( x : c_double , y : c_double ) -> c_double ;
36
+ unsafe fn cos ( n : c_double ) -> c_double ;
37
+ unsafe fn cosh ( n : c_double ) -> c_double ;
38
+ unsafe fn erf ( n : c_double ) -> c_double ;
39
+ unsafe fn erfc ( n : c_double ) -> c_double ;
40
+ unsafe fn exp ( n : c_double ) -> c_double ;
41
+ unsafe fn expm1 ( n : c_double ) -> c_double ;
42
+ unsafe fn exp2 ( n : c_double ) -> c_double ;
43
+ #[ link_name="fabs" ] unsafe fn abs ( n : c_double ) -> c_double ;
44
44
// rename: for clarity and consistency with add/sub/mul/div
45
- #[ link_name="fdim" ] pure fn abs_sub ( a : c_double , b : c_double ) -> c_double ;
46
- pure fn floor ( n : c_double ) -> c_double ;
45
+ #[ link_name="fdim" ]
46
+ unsafe fn abs_sub ( a : c_double , b : c_double ) -> c_double ;
47
+ unsafe fn floor ( n : c_double ) -> c_double ;
47
48
// rename: for clarity and consistency with add/sub/mul/div
48
- #[ link_name="fma" ] pure fn mul_add ( a : c_double , b : c_double ,
49
+ #[ link_name="fma" ] unsafe fn mul_add ( a : c_double , b : c_double ,
49
50
c : c_double ) -> c_double ;
50
- #[ link_name="fmax" ] pure fn fmax ( a : c_double , b : c_double ) -> c_double ;
51
- #[ link_name="fmin" ] pure fn fmin ( a : c_double , b : c_double ) -> c_double ;
52
- pure fn nextafter ( x : c_double , y : c_double ) -> c_double ;
53
- pure fn frexp ( n : c_double , value : & mut c_int ) -> c_double ;
54
- pure fn hypot ( x : c_double , y : c_double ) -> c_double ;
55
- pure fn ldexp ( x : c_double , n : c_int ) -> c_double ;
51
+ #[ link_name="fmax" ] unsafe fn fmax ( a : c_double , b : c_double ) -> c_double ;
52
+ #[ link_name="fmin" ] unsafe fn fmin ( a : c_double , b : c_double ) -> c_double ;
53
+ unsafe fn nextafter ( x : c_double , y : c_double ) -> c_double ;
54
+ unsafe fn frexp ( n : c_double , value : & mut c_int ) -> c_double ;
55
+ unsafe fn hypot ( x : c_double , y : c_double ) -> c_double ;
56
+ unsafe fn ldexp ( x : c_double , n : c_int ) -> c_double ;
56
57
#[ cfg( unix) ]
57
- #[ link_name="lgamma_r" ] pure fn lgamma ( n : c_double ,
58
+ #[ link_name="lgamma_r" ] unsafe fn lgamma ( n : c_double ,
58
59
sign : & mut c_int ) -> c_double ;
59
60
#[ cfg( windows) ]
60
- #[ link_name="__lgamma_r" ] pure fn lgamma ( n : c_double ,
61
+ #[ link_name="__lgamma_r" ] unsafe fn lgamma ( n : c_double ,
61
62
sign : & mut c_int ) -> c_double ;
62
63
// renamed: log is a reserved keyword; ln seems more natural, too
63
- #[ link_name="log" ] pure fn ln ( n : c_double ) -> c_double ;
64
+ #[ link_name="log" ] unsafe fn ln ( n : c_double ) -> c_double ;
64
65
// renamed: "logb" /often/ is confused for log2 by beginners
65
- #[ link_name="logb" ] pure fn log_radix ( n : c_double ) -> c_double ;
66
+ #[ link_name="logb" ] unsafe fn log_radix ( n : c_double ) -> c_double ;
66
67
// renamed: to be consitent with log as ln
67
- #[ link_name="log1p" ] pure fn ln1p ( n : c_double ) -> c_double ;
68
- pure fn log10 ( n : c_double ) -> c_double ;
69
- pure fn log2 ( n : c_double ) -> c_double ;
70
- #[ link_name="ilogb" ] pure fn ilog_radix ( n : c_double ) -> c_int ;
71
- pure fn modf ( n : c_double , iptr : & mut c_double ) -> c_double ;
72
- pure fn pow ( n : c_double , e : c_double ) -> c_double ;
68
+ #[ link_name="log1p" ] unsafe fn ln1p ( n : c_double ) -> c_double ;
69
+ unsafe fn log10 ( n : c_double ) -> c_double ;
70
+ unsafe fn log2 ( n : c_double ) -> c_double ;
71
+ #[ link_name="ilogb" ] unsafe fn ilog_radix ( n : c_double ) -> c_int ;
72
+ unsafe fn modf ( n : c_double , iptr : & mut c_double ) -> c_double ;
73
+ unsafe fn pow ( n : c_double , e : c_double ) -> c_double ;
73
74
// FIXME (#1379): enable when rounding modes become available
74
- // pure fn rint(n: c_double) -> c_double;
75
- pure fn round ( n : c_double ) -> c_double ;
75
+ // unsafe fn rint(n: c_double) -> c_double;
76
+ unsafe fn round ( n : c_double ) -> c_double ;
76
77
// rename: for consistency with logradix
77
- #[ link_name="scalbn" ] pure fn ldexp_radix ( n : c_double , i : c_int ) ->
78
+ #[ link_name="scalbn" ] unsafe fn ldexp_radix ( n : c_double , i : c_int ) ->
78
79
c_double ;
79
- pure fn sin ( n : c_double ) -> c_double ;
80
- pure fn sinh ( n : c_double ) -> c_double ;
81
- pure fn sqrt ( n : c_double ) -> c_double ;
82
- pure fn tan ( n : c_double ) -> c_double ;
83
- pure fn tanh ( n : c_double ) -> c_double ;
84
- pure fn tgamma ( n : c_double ) -> c_double ;
85
- pure fn trunc ( n : c_double ) -> c_double ;
80
+ unsafe fn sin ( n : c_double ) -> c_double ;
81
+ unsafe fn sinh ( n : c_double ) -> c_double ;
82
+ unsafe fn sqrt ( n : c_double ) -> c_double ;
83
+ unsafe fn tan ( n : c_double ) -> c_double ;
84
+ unsafe fn tanh ( n : c_double ) -> c_double ;
85
+ unsafe fn tgamma ( n : c_double ) -> c_double ;
86
+ unsafe fn trunc ( n : c_double ) -> c_double ;
86
87
87
88
// These are commonly only available for doubles
88
89
89
- pure fn j0 ( n : c_double ) -> c_double ;
90
- pure fn j1 ( n : c_double ) -> c_double ;
91
- pure fn jn ( i : c_int , n : c_double ) -> c_double ;
90
+ unsafe fn j0 ( n : c_double ) -> c_double ;
91
+ unsafe fn j1 ( n : c_double ) -> c_double ;
92
+ unsafe fn jn ( i : c_int , n : c_double ) -> c_double ;
92
93
93
- pure fn y0 ( n : c_double ) -> c_double ;
94
- pure fn y1 ( n : c_double ) -> c_double ;
95
- pure fn yn ( i : c_int , n : c_double ) -> c_double ;
94
+ unsafe fn y0 ( n : c_double ) -> c_double ;
95
+ unsafe fn y1 ( n : c_double ) -> c_double ;
96
+ unsafe fn yn ( i : c_int , n : c_double ) -> c_double ;
96
97
}
97
98
98
99
#[ link_name = "m" ]
@@ -101,64 +102,64 @@ pub extern mod c_float_utils {
101
102
102
103
// Alpabetically sorted by link_name
103
104
104
- #[ link_name="acosf" ] pure fn acos ( n : c_float ) -> c_float ;
105
- #[ link_name="asinf" ] pure fn asin ( n : c_float ) -> c_float ;
106
- #[ link_name="atanf" ] pure fn atan ( n : c_float ) -> c_float ;
107
- #[ link_name="atan2f" ] pure fn atan2 ( a : c_float , b : c_float ) -> c_float ;
108
- #[ link_name="cbrtf" ] pure fn cbrt ( n : c_float ) -> c_float ;
109
- #[ link_name="ceilf" ] pure fn ceil ( n : c_float ) -> c_float ;
110
- #[ link_name="copysignf" ] pure fn copysign ( x : c_float ,
105
+ #[ link_name="acosf" ] unsafe fn acos ( n : c_float ) -> c_float ;
106
+ #[ link_name="asinf" ] unsafe fn asin ( n : c_float ) -> c_float ;
107
+ #[ link_name="atanf" ] unsafe fn atan ( n : c_float ) -> c_float ;
108
+ #[ link_name="atan2f" ] unsafe fn atan2 ( a : c_float , b : c_float ) -> c_float ;
109
+ #[ link_name="cbrtf" ] unsafe fn cbrt ( n : c_float ) -> c_float ;
110
+ #[ link_name="ceilf" ] unsafe fn ceil ( n : c_float ) -> c_float ;
111
+ #[ link_name="copysignf" ] unsafe fn copysign ( x : c_float ,
111
112
y : c_float ) -> c_float ;
112
- #[ link_name="cosf" ] pure fn cos ( n : c_float ) -> c_float ;
113
- #[ link_name="coshf" ] pure fn cosh ( n : c_float ) -> c_float ;
114
- #[ link_name="erff" ] pure fn erf ( n : c_float ) -> c_float ;
115
- #[ link_name="erfcf" ] pure fn erfc ( n : c_float ) -> c_float ;
116
- #[ link_name="expf" ] pure fn exp ( n : c_float ) -> c_float ;
117
- #[ link_name="expm1f" ] pure fn expm1 ( n : c_float ) -> c_float ;
118
- #[ link_name="exp2f" ] pure fn exp2 ( n : c_float ) -> c_float ;
119
- #[ link_name="fabsf" ] pure fn abs ( n : c_float ) -> c_float ;
120
- #[ link_name="fdimf" ] pure fn abs_sub ( a : c_float , b : c_float ) -> c_float ;
121
- #[ link_name="floorf" ] pure fn floor ( n : c_float ) -> c_float ;
122
- #[ link_name="frexpf" ] pure fn frexp ( n : c_float ,
113
+ #[ link_name="cosf" ] unsafe fn cos ( n : c_float ) -> c_float ;
114
+ #[ link_name="coshf" ] unsafe fn cosh ( n : c_float ) -> c_float ;
115
+ #[ link_name="erff" ] unsafe fn erf ( n : c_float ) -> c_float ;
116
+ #[ link_name="erfcf" ] unsafe fn erfc ( n : c_float ) -> c_float ;
117
+ #[ link_name="expf" ] unsafe fn exp ( n : c_float ) -> c_float ;
118
+ #[ link_name="expm1f" ] unsafe fn expm1 ( n : c_float ) -> c_float ;
119
+ #[ link_name="exp2f" ] unsafe fn exp2 ( n : c_float ) -> c_float ;
120
+ #[ link_name="fabsf" ] unsafe fn abs ( n : c_float ) -> c_float ;
121
+ #[ link_name="fdimf" ] unsafe fn abs_sub ( a : c_float , b : c_float ) -> c_float ;
122
+ #[ link_name="floorf" ] unsafe fn floor ( n : c_float ) -> c_float ;
123
+ #[ link_name="frexpf" ] unsafe fn frexp ( n : c_float ,
123
124
value : & mut c_int ) -> c_float ;
124
- #[ link_name="fmaf" ] pure fn mul_add ( a : c_float ,
125
+ #[ link_name="fmaf" ] unsafe fn mul_add ( a : c_float ,
125
126
b : c_float , c : c_float ) -> c_float ;
126
- #[ link_name="fmaxf" ] pure fn fmax ( a : c_float , b : c_float ) -> c_float ;
127
- #[ link_name="fminf" ] pure fn fmin ( a : c_float , b : c_float ) -> c_float ;
128
- #[ link_name="nextafterf" ] pure fn nextafter ( x : c_float ,
127
+ #[ link_name="fmaxf" ] unsafe fn fmax ( a : c_float , b : c_float ) -> c_float ;
128
+ #[ link_name="fminf" ] unsafe fn fmin ( a : c_float , b : c_float ) -> c_float ;
129
+ #[ link_name="nextafterf" ] unsafe fn nextafter ( x : c_float ,
129
130
y : c_float ) -> c_float ;
130
- #[ link_name="hypotf" ] pure fn hypot ( x : c_float , y : c_float ) -> c_float ;
131
- #[ link_name="ldexpf" ] pure fn ldexp ( x : c_float , n : c_int ) -> c_float ;
131
+ #[ link_name="hypotf" ] unsafe fn hypot ( x : c_float , y : c_float ) -> c_float ;
132
+ #[ link_name="ldexpf" ] unsafe fn ldexp ( x : c_float , n : c_int ) -> c_float ;
132
133
133
134
#[ cfg( unix) ]
134
- #[ link_name="lgammaf_r" ] pure fn lgamma ( n : c_float ,
135
+ #[ link_name="lgammaf_r" ] unsafe fn lgamma ( n : c_float ,
135
136
sign : & mut c_int ) -> c_float ;
136
137
137
138
#[ cfg( windows) ]
138
- #[ link_name="__lgammaf_r" ] pure fn lgamma ( n : c_float ,
139
+ #[ link_name="__lgammaf_r" ] unsafe fn lgamma ( n : c_float ,
139
140
sign : & mut c_int ) -> c_float ;
140
141
141
- #[ link_name="logf" ] pure fn ln ( n : c_float ) -> c_float ;
142
- #[ link_name="logbf" ] pure fn log_radix ( n : c_float ) -> c_float ;
143
- #[ link_name="log1pf" ] pure fn ln1p ( n : c_float ) -> c_float ;
144
- #[ link_name="log2f" ] pure fn log2 ( n : c_float ) -> c_float ;
145
- #[ link_name="log10f" ] pure fn log10 ( n : c_float ) -> c_float ;
146
- #[ link_name="ilogbf" ] pure fn ilog_radix ( n : c_float ) -> c_int ;
147
- #[ link_name="modff" ] pure fn modf ( n : c_float ,
142
+ #[ link_name="logf" ] unsafe fn ln ( n : c_float ) -> c_float ;
143
+ #[ link_name="logbf" ] unsafe fn log_radix ( n : c_float ) -> c_float ;
144
+ #[ link_name="log1pf" ] unsafe fn ln1p ( n : c_float ) -> c_float ;
145
+ #[ link_name="log2f" ] unsafe fn log2 ( n : c_float ) -> c_float ;
146
+ #[ link_name="log10f" ] unsafe fn log10 ( n : c_float ) -> c_float ;
147
+ #[ link_name="ilogbf" ] unsafe fn ilog_radix ( n : c_float ) -> c_int ;
148
+ #[ link_name="modff" ] unsafe fn modf ( n : c_float ,
148
149
iptr : & mut c_float ) -> c_float ;
149
- #[ link_name="powf" ] pure fn pow ( n : c_float , e : c_float ) -> c_float ;
150
+ #[ link_name="powf" ] unsafe fn pow ( n : c_float , e : c_float ) -> c_float ;
150
151
// FIXME (#1379): enable when rounding modes become available
151
- // #[link_name="rintf"] pure fn rint(n: c_float) -> c_float;
152
- #[ link_name="roundf" ] pure fn round ( n : c_float ) -> c_float ;
153
- #[ link_name="scalbnf" ] pure fn ldexp_radix ( n : c_float , i : c_int )
152
+ // #[link_name="rintf"] unsafe fn rint(n: c_float) -> c_float;
153
+ #[ link_name="roundf" ] unsafe fn round ( n : c_float ) -> c_float ;
154
+ #[ link_name="scalbnf" ] unsafe fn ldexp_radix ( n : c_float , i : c_int )
154
155
-> c_float ;
155
- #[ link_name="sinf" ] pure fn sin ( n : c_float ) -> c_float ;
156
- #[ link_name="sinhf" ] pure fn sinh ( n : c_float ) -> c_float ;
157
- #[ link_name="sqrtf" ] pure fn sqrt ( n : c_float ) -> c_float ;
158
- #[ link_name="tanf" ] pure fn tan ( n : c_float ) -> c_float ;
159
- #[ link_name="tanhf" ] pure fn tanh ( n : c_float ) -> c_float ;
160
- #[ link_name="tgammaf" ] pure fn tgamma ( n : c_float ) -> c_float ;
161
- #[ link_name="truncf" ] pure fn trunc ( n : c_float ) -> c_float ;
156
+ #[ link_name="sinf" ] unsafe fn sin ( n : c_float ) -> c_float ;
157
+ #[ link_name="sinhf" ] unsafe fn sinh ( n : c_float ) -> c_float ;
158
+ #[ link_name="sqrtf" ] unsafe fn sqrt ( n : c_float ) -> c_float ;
159
+ #[ link_name="tanf" ] unsafe fn tan ( n : c_float ) -> c_float ;
160
+ #[ link_name="tanhf" ] unsafe fn tanh ( n : c_float ) -> c_float ;
161
+ #[ link_name="tgammaf" ] unsafe fn tgamma ( n : c_float ) -> c_float ;
162
+ #[ link_name="truncf" ] unsafe fn trunc ( n : c_float ) -> c_float ;
162
163
}
163
164
164
165
// PORT check these by running src/etc/machconsts.c for your architecture
0 commit comments