]> git.lizzy.rs Git - rust.git/commitdiff
doc: show that `f32::log` and `f64::log` are not correctly rounded
authorTrevor Spiteri <tspiteri@ieee.org>
Mon, 8 Jan 2018 18:22:37 +0000 (19:22 +0100)
committerTrevor Spiteri <tspiteri@ieee.org>
Mon, 8 Jan 2018 18:22:37 +0000 (19:22 +0100)
src/libstd/f32.rs
src/libstd/f64.rs

index 6d76c7e722c459b9253a0601578fdba5f2d58c9e..8a15f19e4406710c2767aaf6dc8255255994f6d1 100644 (file)
@@ -470,22 +470,21 @@ pub fn ln(self) -> f32 {
         return unsafe { intrinsics::logf32(self) };
     }
 
-    /// Returns the logarithm of the number with respect to an arbitrary base.
+    /// Returns the logarithm of the number with respect to an arbitrary base,
+    /// calculated as `self.ln() / base.ln()`.
+    ///
+    /// `self.log2()` can produce more accurate results for base 2, and
+    /// `self.log10()` can produce more accurate results for base 10.
     ///
     /// ```
     /// use std::f32;
     ///
-    /// let ten = 10.0f32;
-    /// let two = 2.0f32;
-    ///
-    /// // log10(10) - 1 == 0
-    /// let abs_difference_10 = (ten.log(10.0) - 1.0).abs();
+    /// let five = 5.0f32;
     ///
-    /// // log2(2) - 1 == 0
-    /// let abs_difference_2 = (two.log(2.0) - 1.0).abs();
+    /// // log5(5) - 1 == 0
+    /// let abs_difference = (five.log(5.0) - 1.0).abs();
     ///
-    /// assert!(abs_difference_10 <= f32::EPSILON);
-    /// assert!(abs_difference_2 <= f32::EPSILON);
+    /// assert!(abs_difference <= f32::EPSILON);
     /// ```
     #[stable(feature = "rust1", since = "1.0.0")]
     #[inline]
index dee9566f1fc688f3dcd49992103088be67c1048b..33f447b794c9bdd277819dcbc5cf558020bd1631 100644 (file)
@@ -430,20 +430,19 @@ pub fn ln(self) -> f64 {
         self.log_wrapper(|n| { unsafe { intrinsics::logf64(n) } })
     }
 
-    /// Returns the logarithm of the number with respect to an arbitrary base.
+    /// Returns the logarithm of the number with respect to an arbitrary base,
+    /// calculated as `self.ln() / base.ln()`.
     ///
-    /// ```
-    /// let ten = 10.0_f64;
-    /// let two = 2.0_f64;
+    /// `self.log2()` can produce more accurate results for base 2, and
+    /// `self.log10()` can produce more accurate results for base 10.
     ///
-    /// // log10(10) - 1 == 0
-    /// let abs_difference_10 = (ten.log(10.0) - 1.0).abs();
+    /// ```
+    /// let five = 5.0_f64;
     ///
-    /// // log2(2) - 1 == 0
-    /// let abs_difference_2 = (two.log(2.0) - 1.0).abs();
+    /// // log5(5) - 1 == 0
+    /// let abs_difference = (five.log(5.0) - 1.0).abs();
     ///
-    /// assert!(abs_difference_10 < 1e-10);
-    /// assert!(abs_difference_2 < 1e-10);
+    /// assert!(abs_difference < 1e-10);
     /// ```
     #[stable(feature = "rust1", since = "1.0.0")]
     #[inline]