math.rs 1.3 KB

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