Average Error: 58.5 → 0.3
Time: 12.2s
Precision: 64
\[\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\]
\[\frac{-2}{3} \cdot {\left(\frac{\varepsilon}{1}\right)}^{3} - \left(\frac{2}{5} \cdot \frac{{\varepsilon}^{5}}{{1}^{5}} + 2 \cdot \varepsilon\right)\]
\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)
\frac{-2}{3} \cdot {\left(\frac{\varepsilon}{1}\right)}^{3} - \left(\frac{2}{5} \cdot \frac{{\varepsilon}^{5}}{{1}^{5}} + 2 \cdot \varepsilon\right)
double f(double eps) {
        double r85811 = 1.0;
        double r85812 = eps;
        double r85813 = r85811 - r85812;
        double r85814 = r85811 + r85812;
        double r85815 = r85813 / r85814;
        double r85816 = log(r85815);
        return r85816;
}

double f(double eps) {
        double r85817 = -0.6666666666666666;
        double r85818 = eps;
        double r85819 = 1.0;
        double r85820 = r85818 / r85819;
        double r85821 = 3.0;
        double r85822 = pow(r85820, r85821);
        double r85823 = r85817 * r85822;
        double r85824 = 0.4;
        double r85825 = 5.0;
        double r85826 = pow(r85818, r85825);
        double r85827 = pow(r85819, r85825);
        double r85828 = r85826 / r85827;
        double r85829 = r85824 * r85828;
        double r85830 = 2.0;
        double r85831 = r85830 * r85818;
        double r85832 = r85829 + r85831;
        double r85833 = r85823 - r85832;
        return r85833;
}

Error

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original58.5
Target0.3
Herbie0.3
\[-2 \cdot \left(\left(\varepsilon + \frac{{\varepsilon}^{3}}{3}\right) + \frac{{\varepsilon}^{5}}{5}\right)\]

Derivation

  1. Initial program 58.5

    \[\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\]
  2. Using strategy rm
  3. Applied log-div58.5

    \[\leadsto \color{blue}{\log \left(1 - \varepsilon\right) - \log \left(1 + \varepsilon\right)}\]
  4. Simplified58.5

    \[\leadsto \log \left(1 - \varepsilon\right) - \color{blue}{\log \left(\varepsilon + 1\right)}\]
  5. Taylor expanded around 0 0.3

    \[\leadsto \color{blue}{-\left(\frac{2}{3} \cdot \frac{{\varepsilon}^{3}}{{1}^{3}} + \left(\frac{2}{5} \cdot \frac{{\varepsilon}^{5}}{{1}^{5}} + 2 \cdot \varepsilon\right)\right)}\]
  6. Simplified0.3

    \[\leadsto \color{blue}{\frac{-2}{3} \cdot {\left(\frac{\varepsilon}{1}\right)}^{3} - \left(\frac{2}{5} \cdot \frac{{\varepsilon}^{5}}{{1}^{5}} + 2 \cdot \varepsilon\right)}\]
  7. Final simplification0.3

    \[\leadsto \frac{-2}{3} \cdot {\left(\frac{\varepsilon}{1}\right)}^{3} - \left(\frac{2}{5} \cdot \frac{{\varepsilon}^{5}}{{1}^{5}} + 2 \cdot \varepsilon\right)\]

Reproduce

herbie shell --seed 2019303 
(FPCore (eps)
  :name "logq (problem 3.4.3)"
  :precision binary64

  :herbie-target
  (* -2 (+ (+ eps (/ (pow eps 3) 3)) (/ (pow eps 5) 5)))

  (log (/ (- 1 eps) (+ 1 eps))))