#[inline(always)]
pub(crate) fn at_least(value: f32, floor: f32) -> f32 {
if value > floor { value } else { floor }
}
#[inline(always)]
pub(crate) fn at_most(value: f32, ceiling: f32) -> f32 {
if value < ceiling { value } else { ceiling }
}
#[inline(always)]
pub(crate) fn within(value: f32, low: f32, high: f32) -> f32 {
if value < low {
low
} else if value > high {
high
} else {
value
}
}
#[inline(always)]
pub(crate) fn all_finite<const N: usize>(values: [f32; N]) -> bool {
values.iter().fold(0.0, |sum, value| sum + value * 0.0) == 0.0
}
#[cfg(test)]
#[path = "tests/float_tests.rs"]
mod tests;