1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
// approx_eq!(f32, 15.0, 15.1) #[macro_export] macro_rules! approx_eq { ($typ:ty, $lhs:expr, $rhs:expr) => { { let m: <$typ as ApproxEq>::Margin = Default::default(); <$typ as ApproxEq>::approx_eq($lhs, $rhs, m) } }; ($typ:ty, $lhs:expr, $rhs:expr $(, $set:ident = $val:expr)*) => { { let m = <$typ as ApproxEq>::Margin::zero()$(.$set($val))*; <$typ as ApproxEq>::approx_eq($lhs, $rhs, m) } }; ($typ:ty, $lhs:expr, $rhs:expr, $marg:expr) => { { <$typ as ApproxEq>::approx_eq($lhs, $rhs, $marg) } }; /* (f32, $lhs:expr, $rhs:expr, ulps = $ulps:expr) => { { let m = F32Margin { epsilon: 0.0, ulps: $ulps }; <$typ as ApproxEq>::approx_eq($lhs, $rhs, m) } }; (f32, $lhs:expr, $rhs:expr, epsilon = $epsilon:expr) => { { let m = F32Margin { epsilon: $epsilon, ulps: 0 }; <$typ as ApproxEq>::approx_eq($lhs, $rhs, m) } }; (f32, $lhs:expr, $rhs:expr, ulps = $ulps:expr, epsilon = $epsilon:expr) => { { let m = F32Margin { epsilon: $epsilon, ulps: $ulps }; <$typ as ApproxEq>::approx_eq($lhs, $rhs, m) } }; (f32, $lhs:expr, $rhs:expr, epsilon = $epsilon:expr, ulps = $ulps:expr) => { { let m = F32Margin { epsilon: $epsilon, ulps: $ulps }; <$typ as ApproxEq>::approx_eq($lhs, $rhs, m) } }; (f64, $lhs:expr, $rhs:expr, ulps = $ulps:expr) => { { let m = F64Margin { epsilon: 0.0, ulps: $ulps }; <$typ as ApproxEq>::approx_eq($lhs, $rhs, m) } }; (f64, $lhs:expr, $rhs:expr, epsilon = $epsilon:expr) => { { let m = F64Margin { epsilon: $epsilon, ulps: 0 }; <$typ as ApproxEq>::approx_eq($lhs, $rhs, m) } }; (f64, $lhs:expr, $rhs:expr, ulps = $ulps:expr, epsilon = $epsilon:expr) => { { let m = F64Margin { epsilon: $epsilon, ulps: $ulps }; <$typ as ApproxEq>::approx_eq($lhs, $rhs, m) } }; (f64, $lhs:expr, $rhs:expr, epsilon = $epsilon:expr, ulps = $ulps:expr) => { { let m = F64Margin { epsilon: $epsilon, ulps: $ulps }; <$typ as ApproxEq>::approx_eq($lhs, $rhs, m) } }; */ }