\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)\frac{{\varepsilon}^{3}}{{1}^{2}} \cdot \left(4 - \frac{2.666666666666666518636930049979127943516}{1}\right) - 2 \cdot \left(\left(\frac{{\varepsilon}^{2}}{{1}^{2}} + \left({\varepsilon}^{3} + \varepsilon\right)\right) - {\varepsilon}^{2}\right)double f(double eps) {
double r75648 = 1.0;
double r75649 = eps;
double r75650 = r75648 - r75649;
double r75651 = r75648 + r75649;
double r75652 = r75650 / r75651;
double r75653 = log(r75652);
return r75653;
}
double f(double eps) {
double r75654 = eps;
double r75655 = 3.0;
double r75656 = pow(r75654, r75655);
double r75657 = 1.0;
double r75658 = 2.0;
double r75659 = pow(r75657, r75658);
double r75660 = r75656 / r75659;
double r75661 = 4.0;
double r75662 = 2.6666666666666665;
double r75663 = r75662 / r75657;
double r75664 = r75661 - r75663;
double r75665 = r75660 * r75664;
double r75666 = 2.0;
double r75667 = pow(r75654, r75658);
double r75668 = r75667 / r75659;
double r75669 = r75656 + r75654;
double r75670 = r75668 + r75669;
double r75671 = r75670 - r75667;
double r75672 = r75666 * r75671;
double r75673 = r75665 - r75672;
return r75673;
}




Bits error versus eps
Results
| Original | 58.3 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 58.3
rmApplied flip3-+58.3
Applied associate-/r/58.3
rmApplied associate-*l/58.3
Applied log-div58.3
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019294
(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))))