1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#![allow(dead_code)] macro_rules! no_mangle { ($(fn $fun:ident($($iid:ident : $ity:ty),+) -> $oty:ty;)+) => { $( #[no_mangle] pub extern "C" fn $fun($($iid: $ity),+) -> $oty { libm::$fun($($iid),+) } )+ } } no_mangle! { fn acos(x: f64) -> f64; fn asin(x: f64) -> f64; fn atan(x: f64) -> f64; fn atan2(x: f64, y: f64) -> f64; fn cbrt(x: f64) -> f64; fn cosh(x: f64) -> f64; fn expm1(x: f64) -> f64; fn hypot(x: f64, y: f64) -> f64; fn log1p(x: f64) -> f64; fn sinh(x: f64) -> f64; fn tan(x: f64) -> f64; fn tanh(x: f64) -> f64; fn cos(x: f64) -> f64; fn cosf(x: f32) -> f32; fn exp(x: f64) -> f64; fn expf(x: f32) -> f32; fn log2(x: f64) -> f64; fn log2f(x: f32) -> f32; fn log10(x: f64) -> f64; fn log10f(x: f32) -> f32; fn log(x: f64) -> f64; fn logf(x: f32) -> f32; fn round(x: f64) -> f64; fn roundf(x: f32) -> f32; fn sin(x: f64) -> f64; fn sinf(x: f32) -> f32; fn pow(x: f64, y: f64) -> f64; fn powf(x: f32, y: f32) -> f32; fn exp2(x: f64) -> f64; fn exp2f(x: f32) -> f32; fn fmod(x: f64, y: f64) -> f64; fn fmodf(x: f32, y: f32) -> f32; fn fma(x: f64, y: f64, z: f64) -> f64; fn fmaf(x: f32, y: f32, z: f32) -> f32; }