diff --git a/traits/src/float.rs b/traits/src/float.rs index 66c174c..6b052c3 100644 --- a/traits/src/float.rs +++ b/traits/src/float.rs @@ -89,6 +89,18 @@ pub trait Float /// ``` fn min_positive_value() -> Self; + /// Returns epsilon, a small positive value. + /// + /// ``` + /// use num_traits::Float; + /// use std::f64; + /// + /// let x: f64 = Float::epsilon(); + /// + /// assert_eq!(x, f64::EPSILON); + /// ``` + fn epsilon() -> Self; + /// Returns the largest finite value that this type can represent. /// /// ``` @@ -936,6 +948,11 @@ macro_rules! float_impl { ::std::$T::MIN_POSITIVE } + #[inline] + fn epsilon() -> Self { + ::std::$T::EPSILON + } + #[inline] fn max_value() -> Self { ::std::$T::MAX