hexasphere/
math.rs

1#[cfg(feature = "libm")]
2mod libm_math {
3    #[inline(always)]
4    pub(crate) fn acos(f: f32) -> f32 {
5        libm::acosf(f)
6    }
7
8    #[allow(unused)]
9    #[inline(always)]
10    pub(crate) fn sin(f: f32) -> f32 {
11        libm::sinf(f)
12    }
13
14    #[inline(always)]
15    pub(crate) fn sqrt(f: f32) -> f32 {
16        libm::sqrtf(f)
17    }
18}
19
20#[cfg(not(feature = "libm"))]
21mod std_math {
22    #[inline(always)]
23    pub(crate) fn acos(f: f32) -> f32 {
24        f32::acos(f)
25    }
26
27    #[allow(unused)]
28    #[inline(always)]
29    pub(crate) fn sin(f: f32) -> f32 {
30        f32::sin(f)
31    }
32
33    #[inline(always)]
34    pub(crate) fn sqrt(f: f32) -> f32 {
35        f32::sqrt(f)
36    }
37}
38
39#[cfg(feature = "libm")]
40pub(crate) use libm_math::*;
41
42#[cfg(not(feature = "libm"))]
43pub(crate) use std_math::*;