Sha256: 99f38b768ad15e726559c446825f9f1bad67935cdd28ffcc1cbcd3e031a901ea
Contents?: true
Size: 1.56 KB
Versions: 38
Compression:
Stored size: 1.56 KB
Contents
use minimal_lexical::extended_float::ExtendedFloat; use minimal_lexical::rounding; #[test] fn round_test() { let mut fp = ExtendedFloat { mant: 9223372036854776832, exp: -10, }; rounding::round::<f64, _>(&mut fp, |f, s| { f.mant >>= s; f.exp += s; }); assert_eq!(fp.mant, 0); assert_eq!(fp.exp, 1); let mut fp = ExtendedFloat { mant: 9223372036854776832, exp: -10, }; rounding::round::<f64, _>(&mut fp, |f, s| { f.mant >>= s; f.exp += s; // Round-up. f.mant += 1; }); assert_eq!(fp.mant, 1); assert_eq!(fp.exp, 1); // Round-down let mut fp = ExtendedFloat { mant: 9223372036854776832, exp: -10, }; rounding::round::<f64, _>(&mut fp, |f, s| { rounding::round_nearest_tie_even(f, s, |is_odd, is_halfway, is_above| { is_above || (is_odd && is_halfway) }); }); assert_eq!(fp.mant, 0); assert_eq!(fp.exp, 1); // Round up let mut fp = ExtendedFloat { mant: 9223372036854778880, exp: -10, }; rounding::round::<f64, _>(&mut fp, |f, s| { rounding::round_nearest_tie_even(f, s, |is_odd, is_halfway, is_above| { is_above || (is_odd && is_halfway) }); }); assert_eq!(fp.mant, 2); assert_eq!(fp.exp, 1); // Round down let mut fp = ExtendedFloat { mant: 9223372036854778880, exp: -10, }; rounding::round::<f64, _>(&mut fp, rounding::round_down); assert_eq!(fp.mant, 1); assert_eq!(fp.exp, 1); }
Version data entries
38 entries across 38 versions & 1 rubygems