blob: ea0b592d7ab97e57e50dbbecfe5d5e5ec11696f9 [file] [log] [blame]
use core::f32;
/// Positive difference (f32)
///
/// Determines the positive difference between arguments, returning:
/// * x - y if x > y, or
/// * +0 if x <= y, or
/// * NAN if either argument is NAN.
///
/// A range error may occur.
#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)]
pub fn fdimf(x: f32, y: f32) -> f32 {
if x.is_nan() {
x
} else if y.is_nan() {
y
} else if x > y {
x - y
} else {
0.0
}
}