\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)(\left({\varepsilon}^{5}\right) \cdot \frac{-2}{5} + \left(\frac{\left({\left(\left(\frac{-2}{3} \cdot \varepsilon\right) \cdot \varepsilon\right)}^{3} - 8\right) \cdot \varepsilon}{(2 \cdot \left(\left(\frac{-2}{3} \cdot \varepsilon\right) \cdot \varepsilon\right) + \left((\left(\left(\frac{-2}{3} \cdot \varepsilon\right) \cdot \varepsilon\right) \cdot \left(\left(\frac{-2}{3} \cdot \varepsilon\right) \cdot \varepsilon\right) + 4)_*\right))_*}\right))_*double f(double eps) {
double r14770178 = 1.0;
double r14770179 = eps;
double r14770180 = r14770178 - r14770179;
double r14770181 = r14770178 + r14770179;
double r14770182 = r14770180 / r14770181;
double r14770183 = log(r14770182);
return r14770183;
}
double f(double eps) {
double r14770184 = eps;
double r14770185 = 5.0;
double r14770186 = pow(r14770184, r14770185);
double r14770187 = -0.4;
double r14770188 = -0.6666666666666666;
double r14770189 = r14770188 * r14770184;
double r14770190 = r14770189 * r14770184;
double r14770191 = 3.0;
double r14770192 = pow(r14770190, r14770191);
double r14770193 = 8.0;
double r14770194 = r14770192 - r14770193;
double r14770195 = r14770194 * r14770184;
double r14770196 = 2.0;
double r14770197 = 4.0;
double r14770198 = fma(r14770190, r14770190, r14770197);
double r14770199 = fma(r14770196, r14770190, r14770198);
double r14770200 = r14770195 / r14770199;
double r14770201 = fma(r14770186, r14770187, r14770200);
return r14770201;
}




Bits error versus eps
| Original | 58.7 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 58.7
Taylor expanded around 0 0.2
Simplified0.2
rmApplied flip3--0.2
Applied associate-*r/0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019112 +o rules:numerics
(FPCore (eps)
:name "logq (problem 3.4.3)"
:herbie-target
(* -2 (+ (+ eps (/ (pow eps 3) 3)) (/ (pow eps 5) 5)))
(log (/ (- 1 eps) (+ 1 eps))))