Average Error: 58.5 → 0.3
Time: 8.1s
Precision: 64
\[\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\]
\[\left(\left(2 \cdot \frac{{\varepsilon}^{2}}{{1}^{2}} + 4 \cdot \frac{{\varepsilon}^{3}}{{1}^{2}}\right) - 2 \cdot \left(\left({\varepsilon}^{2} + {\varepsilon}^{3}\right) + \varepsilon\right)\right) - 2.66666666666666652 \cdot \frac{{\varepsilon}^{3}}{{1}^{3}}\]
\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)
\left(\left(2 \cdot \frac{{\varepsilon}^{2}}{{1}^{2}} + 4 \cdot \frac{{\varepsilon}^{3}}{{1}^{2}}\right) - 2 \cdot \left(\left({\varepsilon}^{2} + {\varepsilon}^{3}\right) + \varepsilon\right)\right) - 2.66666666666666652 \cdot \frac{{\varepsilon}^{3}}{{1}^{3}}
double code(double eps) {
	return ((double) log(((double) (((double) (1.0 - eps)) / ((double) (1.0 + eps))))));
}
double code(double eps) {
	return ((double) (((double) (((double) (((double) (2.0 * ((double) (((double) pow(eps, 2.0)) / ((double) pow(1.0, 2.0)))))) + ((double) (4.0 * ((double) (((double) pow(eps, 3.0)) / ((double) pow(1.0, 2.0)))))))) - ((double) (2.0 * ((double) (((double) (((double) pow(eps, 2.0)) + ((double) pow(eps, 3.0)))) + eps)))))) - ((double) (2.6666666666666665 * ((double) (((double) pow(eps, 3.0)) / ((double) pow(1.0, 3.0))))))));
}

Error

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original58.5
Target0.2
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 flip3--58.6

    \[\leadsto \log \left(\frac{\color{blue}{\frac{{1}^{3} - {\varepsilon}^{3}}{1 \cdot 1 + \left(\varepsilon \cdot \varepsilon + 1 \cdot \varepsilon\right)}}}{1 + \varepsilon}\right)\]
  4. Applied associate-/l/58.5

    \[\leadsto \log \color{blue}{\left(\frac{{1}^{3} - {\varepsilon}^{3}}{\left(1 + \varepsilon\right) \cdot \left(1 \cdot 1 + \left(\varepsilon \cdot \varepsilon + 1 \cdot \varepsilon\right)\right)}\right)}\]
  5. Applied log-div58.5

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

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

    \[\leadsto \color{blue}{\left(\left(2 \cdot \frac{{\varepsilon}^{2}}{{1}^{2}} + 4 \cdot \frac{{\varepsilon}^{3}}{{1}^{2}}\right) - 2 \cdot \left({\varepsilon}^{2} + \left({\varepsilon}^{3} + \varepsilon\right)\right)\right) - 2.66666666666666652 \cdot \frac{{\varepsilon}^{3}}{{1}^{3}}}\]
  8. Using strategy rm
  9. Applied associate-+r+0.3

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

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

Reproduce

herbie shell --seed 2020113 
(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))))