about summary refs log tree commit diff
path: root/src/libstd/num/cmath.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd/num/cmath.rs')
-rw-r--r--src/libstd/num/cmath.rs232
1 files changed, 133 insertions, 99 deletions
diff --git a/src/libstd/num/cmath.rs b/src/libstd/num/cmath.rs
index c89fc73693c..f7aa3267d6d 100644
--- a/src/libstd/num/cmath.rs
+++ b/src/libstd/num/cmath.rs
@@ -19,81 +19,86 @@ pub mod c_double_utils {
 
     #[link_name = "m"]
     #[abi = "cdecl"]
-    pub extern {
+    extern {
         // Alpabetically sorted by link_name
 
-        unsafe fn acos(n: c_double) -> c_double;
-        unsafe fn asin(n: c_double) -> c_double;
-        unsafe fn atan(n: c_double) -> c_double;
-        unsafe fn atan2(a: c_double, b: c_double) -> c_double;
-        unsafe fn cbrt(n: c_double) -> c_double;
-        unsafe fn ceil(n: c_double) -> c_double;
-        unsafe fn copysign(x: c_double, y: c_double) -> c_double;
-        unsafe fn cos(n: c_double) -> c_double;
-        unsafe fn cosh(n: c_double) -> c_double;
-        unsafe fn erf(n: c_double) -> c_double;
-        unsafe fn erfc(n: c_double) -> c_double;
-        unsafe fn exp(n: c_double) -> c_double;
+        pub unsafe fn acos(n: c_double) -> c_double;
+        pub unsafe fn asin(n: c_double) -> c_double;
+        pub unsafe fn atan(n: c_double) -> c_double;
+        pub unsafe fn atan2(a: c_double, b: c_double) -> c_double;
+        pub unsafe fn cbrt(n: c_double) -> c_double;
+        pub unsafe fn ceil(n: c_double) -> c_double;
+        pub unsafe fn copysign(x: c_double, y: c_double) -> c_double;
+        pub unsafe fn cos(n: c_double) -> c_double;
+        pub unsafe fn cosh(n: c_double) -> c_double;
+        pub unsafe fn erf(n: c_double) -> c_double;
+        pub unsafe fn erfc(n: c_double) -> c_double;
+        pub unsafe fn exp(n: c_double) -> c_double;
         // rename: for consistency with underscore usage elsewhere
         #[link_name="expm1"] unsafe fn exp_m1(n: c_double) -> c_double;
-        unsafe fn exp2(n: c_double) -> c_double;
+        pub unsafe fn exp2(n: c_double) -> c_double;
         #[link_name="fabs"] unsafe fn abs(n: c_double) -> c_double;
         // rename: for clarity and consistency with add/sub/mul/div
         #[link_name="fdim"]
-        unsafe fn abs_sub(a: c_double, b: c_double) -> c_double;
-        unsafe fn floor(n: c_double) -> c_double;
+        pub unsafe fn abs_sub(a: c_double, b: c_double) -> c_double;
+        pub unsafe fn floor(n: c_double) -> c_double;
         // rename: for clarity and consistency with add/sub/mul/div
         #[link_name="fma"]
-        unsafe fn mul_add(a: c_double, b: c_double, c: c_double) -> c_double;
+        pub unsafe fn mul_add(a: c_double, b: c_double, c: c_double)
+                              -> c_double;
         #[link_name="fmax"]
-        unsafe fn fmax(a: c_double, b: c_double) -> c_double;
+        pub unsafe fn fmax(a: c_double, b: c_double) -> c_double;
         #[link_name="fmin"]
-        unsafe fn fmin(a: c_double, b: c_double) -> c_double;
+        pub unsafe fn fmin(a: c_double, b: c_double) -> c_double;
         #[link_name="nextafter"]
-        unsafe fn next_after(x: c_double, y: c_double) -> c_double;
-        unsafe fn frexp(n: c_double, value: &mut c_int) -> c_double;
-        unsafe fn hypot(x: c_double, y: c_double) -> c_double;
-        unsafe fn ldexp(x: c_double, n: c_int) -> c_double;
+        pub unsafe fn next_after(x: c_double, y: c_double) -> c_double;
+        pub unsafe fn frexp(n: c_double, value: &mut c_int) -> c_double;
+        pub unsafe fn hypot(x: c_double, y: c_double) -> c_double;
+        pub unsafe fn ldexp(x: c_double, n: c_int) -> c_double;
         #[cfg(unix)]
         #[link_name="lgamma_r"]
-        unsafe fn lgamma(n: c_double, sign: &mut c_int) -> c_double;
+        pub unsafe fn lgamma(n: c_double, sign: &mut c_int) -> c_double;
         #[cfg(windows)]
         #[link_name="__lgamma_r"]
-        unsafe fn lgamma(n: c_double, sign: &mut c_int) -> c_double;
-        // renamed: log is a reserved keyword; ln seems more natural, too
-        #[link_name="log"] unsafe fn ln(n: c_double) -> c_double;
+        pub unsafe fn lgamma(n: c_double, sign: &mut c_int) -> c_double;
+        // renamed: ln seems more natural
+        #[link_name="log"]
+        pub unsafe fn ln(n: c_double) -> c_double;
         // renamed: "logb" /often/ is confused for log2 by beginners
-        #[link_name="logb"] unsafe fn log_radix(n: c_double) -> c_double;
+        #[link_name="logb"]
+        pub unsafe fn log_radix(n: c_double) -> c_double;
         // renamed: to be consitent with log as ln
-        #[link_name="log1p"] unsafe fn ln_1p(n: c_double) -> c_double;
-        unsafe fn log10(n: c_double) -> c_double;
-        unsafe fn log2(n: c_double) -> c_double;
-        #[link_name="ilogb"] unsafe fn ilog_radix(n: c_double) -> c_int;
-        unsafe fn modf(n: c_double, iptr: &mut c_double) -> c_double;
-        unsafe fn pow(n: c_double, e: c_double) -> c_double;
+        #[link_name="log1p"]
+        pub unsafe fn ln_1p(n: c_double) -> c_double;
+        pub unsafe fn log10(n: c_double) -> c_double;
+        pub unsafe fn log2(n: c_double) -> c_double;
+        #[link_name="ilogb"]
+        pub unsafe fn ilog_radix(n: c_double) -> c_int;
+        pub unsafe fn modf(n: c_double, iptr: &mut c_double) -> c_double;
+        pub unsafe fn pow(n: c_double, e: c_double) -> c_double;
     // FIXME (#1379): enable when rounding modes become available
     //    unsafe fn rint(n: c_double) -> c_double;
-        unsafe fn round(n: c_double) -> c_double;
+        pub unsafe fn round(n: c_double) -> c_double;
         // rename: for consistency with logradix
-        #[link_name="scalbn"] unsafe fn ldexp_radix(n: c_double, i: c_int) ->
-            c_double;
-        unsafe fn sin(n: c_double) -> c_double;
-        unsafe fn sinh(n: c_double) -> c_double;
-        unsafe fn sqrt(n: c_double) -> c_double;
-        unsafe fn tan(n: c_double) -> c_double;
-        unsafe fn tanh(n: c_double) -> c_double;
-        unsafe fn tgamma(n: c_double) -> c_double;
-        unsafe fn trunc(n: c_double) -> c_double;
+        #[link_name="scalbn"]
+        pub unsafe fn ldexp_radix(n: c_double, i: c_int) -> c_double;
+        pub unsafe fn sin(n: c_double) -> c_double;
+        pub unsafe fn sinh(n: c_double) -> c_double;
+        pub unsafe fn sqrt(n: c_double) -> c_double;
+        pub unsafe fn tan(n: c_double) -> c_double;
+        pub unsafe fn tanh(n: c_double) -> c_double;
+        pub unsafe fn tgamma(n: c_double) -> c_double;
+        pub unsafe fn trunc(n: c_double) -> c_double;
 
         // These are commonly only available for doubles
 
-        unsafe fn j0(n: c_double) -> c_double;
-        unsafe fn j1(n: c_double) -> c_double;
-        unsafe fn jn(i: c_int, n: c_double) -> c_double;
+        pub unsafe fn j0(n: c_double) -> c_double;
+        pub unsafe fn j1(n: c_double) -> c_double;
+        pub unsafe fn jn(i: c_int, n: c_double) -> c_double;
 
-        unsafe fn y0(n: c_double) -> c_double;
-        unsafe fn y1(n: c_double) -> c_double;
-        unsafe fn yn(i: c_int, n: c_double) -> c_double;
+        pub unsafe fn y0(n: c_double) -> c_double;
+        pub unsafe fn y1(n: c_double) -> c_double;
+        pub unsafe fn yn(i: c_int, n: c_double) -> c_double;
     }
 }
 
@@ -102,73 +107,102 @@ pub mod c_float_utils {
 
     #[link_name = "m"]
     #[abi = "cdecl"]
-    pub extern {
+    extern {
         // Alpabetically sorted by link_name
 
-        #[link_name="acosf"] unsafe fn acos(n: c_float) -> c_float;
-        #[link_name="asinf"] unsafe fn asin(n: c_float) -> c_float;
-        #[link_name="atanf"] unsafe fn atan(n: c_float) -> c_float;
+        #[link_name="acosf"]
+        pub unsafe fn acos(n: c_float) -> c_float;
+        #[link_name="asinf"]
+        pub unsafe fn asin(n: c_float) -> c_float;
+        #[link_name="atanf"]
+        pub unsafe fn atan(n: c_float) -> c_float;
         #[link_name="atan2f"]
-        unsafe fn atan2(a: c_float, b: c_float) -> c_float;
-        #[link_name="cbrtf"] unsafe fn cbrt(n: c_float) -> c_float;
-        #[link_name="ceilf"] unsafe fn ceil(n: c_float) -> c_float;
-        #[link_name="copysignf"] unsafe fn copysign(x: c_float,
-                                                  y: c_float) -> c_float;
-        #[link_name="cosf"] unsafe fn cos(n: c_float) -> c_float;
-        #[link_name="coshf"] unsafe fn cosh(n: c_float) -> c_float;
-        #[link_name="erff"] unsafe fn erf(n: c_float) -> c_float;
-        #[link_name="erfcf"] unsafe fn erfc(n: c_float) -> c_float;
-        #[link_name="expf"] unsafe fn exp(n: c_float) -> c_float;
-        #[link_name="expm1f"]unsafe fn exp_m1(n: c_float) -> c_float;
-        #[link_name="exp2f"] unsafe fn exp2(n: c_float) -> c_float;
-        #[link_name="fabsf"] unsafe fn abs(n: c_float) -> c_float;
+        pub unsafe fn atan2(a: c_float, b: c_float) -> c_float;
+        #[link_name="cbrtf"]
+        pub unsafe fn cbrt(n: c_float) -> c_float;
+        #[link_name="ceilf"]
+        pub unsafe fn ceil(n: c_float) -> c_float;
+        #[link_name="copysignf"]
+        pub unsafe fn copysign(x: c_float, y: c_float) -> c_float;
+        #[link_name="cosf"]
+        pub unsafe fn cos(n: c_float) -> c_float;
+        #[link_name="coshf"]
+        pub unsafe fn cosh(n: c_float) -> c_float;
+        #[link_name="erff"]
+        pub unsafe fn erf(n: c_float) -> c_float;
+        #[link_name="erfcf"]
+        pub unsafe fn erfc(n: c_float) -> c_float;
+        #[link_name="expf"]
+        pub unsafe fn exp(n: c_float) -> c_float;
+        #[link_name="expm1f"]
+        pub unsafe fn exp_m1(n: c_float) -> c_float;
+        #[link_name="exp2f"]
+        pub unsafe fn exp2(n: c_float) -> c_float;
+        #[link_name="fabsf"]
+        pub unsafe fn abs(n: c_float) -> c_float;
         #[link_name="fdimf"]
-        unsafe fn abs_sub(a: c_float, b: c_float) -> c_float;
-        #[link_name="floorf"] unsafe fn floor(n: c_float) -> c_float;
-        #[link_name="frexpf"] unsafe fn frexp(n: c_float,
-                                            value: &mut c_int) -> c_float;
+        pub unsafe fn abs_sub(a: c_float, b: c_float) -> c_float;
+        #[link_name="floorf"]
+        pub unsafe fn floor(n: c_float) -> c_float;
+        #[link_name="frexpf"]
+        pub unsafe fn frexp(n: c_float, value: &mut c_int) -> c_float;
         #[link_name="fmaf"]
-        unsafe fn mul_add(a: c_float, b: c_float, c: c_float) -> c_float;
+        pub unsafe fn mul_add(a: c_float, b: c_float, c: c_float) -> c_float;
         #[link_name="fmaxf"]
-        unsafe fn fmax(a: c_float, b: c_float) -> c_float;
+        pub unsafe fn fmax(a: c_float, b: c_float) -> c_float;
         #[link_name="fminf"]
-        unsafe fn fmin(a: c_float, b: c_float) -> c_float;
+        pub unsafe fn fmin(a: c_float, b: c_float) -> c_float;
         #[link_name="nextafterf"]
-        unsafe fn next_after(x: c_float, y: c_float) -> c_float;
+        pub unsafe fn next_after(x: c_float, y: c_float) -> c_float;
         #[link_name="hypotf"]
-        unsafe fn hypot(x: c_float, y: c_float) -> c_float;
+        pub unsafe fn hypot(x: c_float, y: c_float) -> c_float;
         #[link_name="ldexpf"]
-        unsafe fn ldexp(x: c_float, n: c_int) -> c_float;
+        pub unsafe fn ldexp(x: c_float, n: c_int) -> c_float;
 
         #[cfg(unix)]
-        #[link_name="lgammaf_r"] unsafe fn lgamma(n: c_float,
-                                                sign: &mut c_int) -> c_float;
+        #[link_name="lgammaf_r"]
+        pub unsafe fn lgamma(n: c_float, sign: &mut c_int) -> c_float;
 
         #[cfg(windows)]
         #[link_name="__lgammaf_r"]
-        unsafe fn lgamma(n: c_float, sign: &mut c_int) -> c_float;
+        pub unsafe fn lgamma(n: c_float, sign: &mut c_int) -> c_float;
 
-        #[link_name="logf"] unsafe fn ln(n: c_float) -> c_float;
-        #[link_name="logbf"] unsafe fn log_radix(n: c_float) -> c_float;
-        #[link_name="log1pf"] unsafe fn ln_1p(n: c_float) -> c_float;
-        #[link_name="log2f"] unsafe fn log2(n: c_float) -> c_float;
-        #[link_name="log10f"] unsafe fn log10(n: c_float) -> c_float;
-        #[link_name="ilogbf"] unsafe fn ilog_radix(n: c_float) -> c_int;
-        #[link_name="modff"] unsafe fn modf(n: c_float,
-                                          iptr: &mut c_float) -> c_float;
-        #[link_name="powf"] unsafe fn pow(n: c_float, e: c_float) -> c_float;
+        #[link_name="logf"]
+        pub unsafe fn ln(n: c_float) -> c_float;
+        #[link_name="logbf"]
+        pub unsafe fn log_radix(n: c_float) -> c_float;
+        #[link_name="log1pf"]
+        pub unsafe fn ln_1p(n: c_float) -> c_float;
+        #[link_name="log2f"]
+        pub unsafe fn log2(n: c_float) -> c_float;
+        #[link_name="log10f"]
+        pub unsafe fn log10(n: c_float) -> c_float;
+        #[link_name="ilogbf"]
+        pub unsafe fn ilog_radix(n: c_float) -> c_int;
+        #[link_name="modff"]
+        pub unsafe fn modf(n: c_float, iptr: &mut c_float) -> c_float;
+        #[link_name="powf"]
+        pub unsafe fn pow(n: c_float, e: c_float) -> c_float;
     // FIXME (#1379): enable when rounding modes become available
     //    #[link_name="rintf"] unsafe fn rint(n: c_float) -> c_float;
-        #[link_name="roundf"] unsafe fn round(n: c_float) -> c_float;
-        #[link_name="scalbnf"] unsafe fn ldexp_radix(n: c_float, i: c_int)
-            -> c_float;
-        #[link_name="sinf"] unsafe fn sin(n: c_float) -> c_float;
-        #[link_name="sinhf"] unsafe fn sinh(n: c_float) -> c_float;
-        #[link_name="sqrtf"] unsafe fn sqrt(n: c_float) -> c_float;
-        #[link_name="tanf"] unsafe fn tan(n: c_float) -> c_float;
-        #[link_name="tanhf"] unsafe fn tanh(n: c_float) -> c_float;
-        #[link_name="tgammaf"] unsafe fn tgamma(n: c_float) -> c_float;
-        #[link_name="truncf"] unsafe fn trunc(n: c_float) -> c_float;
+        #[link_name="roundf"]
+        pub unsafe fn round(n: c_float) -> c_float;
+        #[link_name="scalbnf"]
+        pub unsafe fn ldexp_radix(n: c_float, i: c_int) -> c_float;
+        #[link_name="sinf"]
+        pub unsafe fn sin(n: c_float) -> c_float;
+        #[link_name="sinhf"]
+        pub unsafe fn sinh(n: c_float) -> c_float;
+        #[link_name="sqrtf"]
+        pub unsafe fn sqrt(n: c_float) -> c_float;
+        #[link_name="tanf"]
+        pub unsafe fn tan(n: c_float) -> c_float;
+        #[link_name="tanhf"]
+        pub unsafe fn tanh(n: c_float) -> c_float;
+        #[link_name="tgammaf"]
+        pub unsafe fn tgamma(n: c_float) -> c_float;
+        #[link_name="truncf"]
+        pub unsafe fn trunc(n: c_float) -> c_float;
     }
 }