From 6c802ef0c0966be9c66ad1b6a3becf7205715a6f Mon Sep 17 00:00:00 2001 From: Jason Travis Smith Date: Thu, 22 Jun 2017 16:21:30 -0400 Subject: [PATCH] Adding the C math functions. --- src/c/math.rs | 29 +++++++++++++++++++++++++++++ src/c/mod.rs | 2 ++ src/c/stdlib.rs | 2 +- src/c/string.rs | 5 ----- 4 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 src/c/math.rs diff --git a/src/c/math.rs b/src/c/math.rs new file mode 100644 index 0000000..cbfc4c2 --- /dev/null +++ b/src/c/math.rs @@ -0,0 +1,29 @@ +use binding::{CDouble, CInt}; + + + +#[link(name="c")] +extern +{ + pub fn acos(x: CDouble) -> CDouble; + pub fn asin(x: CDouble) -> CDouble; + pub fn atan(x: CDouble) -> CDouble; + pub fn atan2(y: CDouble, x: CDouble) -> CDouble; + pub fn cos(x: CDouble) -> CDouble; + pub fn cosh(x: CDouble) -> CDouble; + pub fn sin(x: CDouble) -> CDouble; + pub fn sinh(x: CDouble) -> CDouble; + pub fn tanh(x: CDouble) -> CDouble; + pub fn exp(x: CDouble) -> CDouble; + pub fn frexp(x: CDouble, exponent: *mut CInt) -> CDouble; + pub fn ldexp(x: CDouble, exponent: CInt) -> CDouble; + pub fn log(x: CDouble)-> CDouble; + pub fn log10(x: CDouble)-> CDouble; + pub fn modf(x: CDouble, integer: *mut CInt)-> CDouble; + pub fn pow(x: CDouble, y: CDouble) -> CDouble; + pub fn sqrt(x: CDouble) -> CDouble; + pub fn ceil(x: CDouble) -> CDouble; + pub fn fabs(x: CDouble) -> CDouble; + pub fn floor(x: CDouble) -> CDouble; + pub fn fmod(x: CDouble, y: CDouble) -> CDouble; +} diff --git a/src/c/mod.rs b/src/c/mod.rs index 12c8636..e054041 100644 --- a/src/c/mod.rs +++ b/src/c/mod.rs @@ -4,6 +4,7 @@ mod errno; +mod math; mod stddef; mod stdlib; mod string; @@ -12,6 +13,7 @@ mod time; pub use self::errno::*; +pub use self::math::*; pub use self::stddef::*; pub use self::stdlib::*; pub use self::string::*; diff --git a/src/c/stdlib.rs b/src/c/stdlib.rs index 6e34593..2c510b3 100644 --- a/src/c/stdlib.rs +++ b/src/c/stdlib.rs @@ -1,7 +1,7 @@ use binding::CVoid; - +#[link(name="c")] extern { pub fn calloc(nobj: usize, size: usize) -> *mut CVoid; diff --git a/src/c/string.rs b/src/c/string.rs index 6b963f5..c4b12ce 100644 --- a/src/c/string.rs +++ b/src/c/string.rs @@ -1,8 +1,3 @@ -#[link(name="c")] -extern -{ -} - #[cfg(not(feature="no_mem_manip"))] #[link(name="c")] extern