\log \left(\frac{1 - \varepsilon}{1 + \varepsilon}\right)-\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)double f(double eps) {
double r91174 = 1.0;
double r91175 = eps;
double r91176 = r91174 - r91175;
double r91177 = r91174 + r91175;
double r91178 = r91176 / r91177;
double r91179 = log(r91178);
return r91179;
}
double f(double eps) {
double r91180 = 0.6666666666666666;
double r91181 = eps;
double r91182 = 3.0;
double r91183 = pow(r91181, r91182);
double r91184 = 1.0;
double r91185 = pow(r91184, r91182);
double r91186 = r91183 / r91185;
double r91187 = r91180 * r91186;
double r91188 = 0.4;
double r91189 = 5.0;
double r91190 = pow(r91181, r91189);
double r91191 = pow(r91184, r91189);
double r91192 = r91190 / r91191;
double r91193 = r91188 * r91192;
double r91194 = 2.0;
double r91195 = r91194 * r91181;
double r91196 = r91193 + r91195;
double r91197 = r91187 + r91196;
double r91198 = -r91197;
return r91198;
}




Bits error versus eps
Results
| Original | 58.6 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 58.6
rmApplied log-div58.6
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2020059
(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))))