From a64cf66f4cc9bbfbb4a3252b2ba56f2f60de75b3 Mon Sep 17 00:00:00 2001 From: James Lucas Date: Sun, 18 Sep 2016 14:36:44 -0700 Subject: [PATCH] Implementing epsilon function to retrieve EPSILON constant --- traits/src/float.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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