Merge pull request rust-lang/libm#3 from japaric/approx

use approximate equality with 1 ULP of tolerance
This commit is contained in:
Jorge Aparicio 2018-07-12 12:31:16 -05:00 committed by GitHub
commit e591270bd3
2 changed files with 9 additions and 3 deletions

View file

@ -10,3 +10,9 @@ pub use fabsf::fabsf;
pub use powf::powf;
pub use scalbnf::scalbnf;
pub use sqrtf::sqrtf;
/// Approximate equality with 1 ULP of tolerance
#[doc(hidden)]
pub fn _eqf(a: u32, b: u32) -> bool {
(a as i32).wrapping_sub(b as i32).abs() <= 1
}

View file

@ -65,7 +65,7 @@ macro_rules! f32_f32 {
let outi = outf.to_bits();
if !((outf.is_nan() && f32::from_bits(expected).is_nan()) ||
outi == expected) {{
libm::_eqf(outi, expected)) {{
panic!(
\"input: {{}}, output: {{}}, expected: {{}}\",
inp,
@ -124,7 +124,7 @@ macro_rules! f32f32_f32 {
let outi = outf.to_bits();
if !((outf.is_nan() && f32::from_bits(expected).is_nan()) ||
outi == expected) {{
libm::_eqf(outi, expected)) {{
panic!(
\"input: {{:?}}, output: {{}}, expected: {{}}\",
(i1, i2),
@ -182,7 +182,7 @@ macro_rules! f32i32_f32 {
let outi = outf.to_bits();
if !((outf.is_nan() && f32::from_bits(expected).is_nan()) ||
outi == expected) {{
libm::_eqf(outi, expected)) {{
panic!(
\"input: {{:?}}, output: {{}}, expected: {{}}\",
(i1, i2),