pub fn next_below(value: f64) -> f64 {
    if value.is_nan() {
        return value;
    } else {
        let mut transient = value.to_bits();

        if value > 0.0 {
            transient -= 1;
        } else if value < 0.0 {
            transient += 1;
        } else {
            transient = F64_SIGN_MASK | 1;
        }

        f64::from_bits(transient)
    }
}
// this will work for two's complement floats if ints have the same endianness on the platform as floats
this will work for two's complement floats if ints have the same endianness on the platform as floats
this will work for two ' s complement floats if ints have the same endianness on the platform as floats
pub fn next_below(value: f64) -> f64 {
    if value.is_nan() {
        return value;
    } else {
        let mut transient = value.to_bits();
        if value > 0.0 {
            transient -= 1;
        } else if value < 0.0 {
            transient += 1;
        } else {
            transient = F64_SIGN_MASK | 1;
        }
        f64::from_bits(transient)
    }
}
pub fn next_below ( value : f64 ) -> f64 { if value . is_nan ( ) { return value ; } else { let mut transient = value . to_bits ( ) ; if value > 0.0 { transient -= 1 ; } else if value < 0.0 { transient += 1 ; } else { transient = F64_SIGN_MASK | 1 ; } f64 :: from_bits ( transient ) } }
this will work for two's complement floats if ints have the same endianness on the platform as floats
this will work for two ' s complement floats if ints have the same endianness on the platform as floats
value
f64
value
f64