\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}2 \cdot \frac{\frac{1}{x}}{\left(x + 1\right) \cdot \left(x - 1\right)}double f(double x) {
double r186709 = 1.0;
double r186710 = x;
double r186711 = r186710 + r186709;
double r186712 = r186709 / r186711;
double r186713 = 2.0;
double r186714 = r186713 / r186710;
double r186715 = r186712 - r186714;
double r186716 = r186710 - r186709;
double r186717 = r186709 / r186716;
double r186718 = r186715 + r186717;
return r186718;
}
double f(double x) {
double r186719 = 2.0;
double r186720 = 1.0;
double r186721 = x;
double r186722 = r186720 / r186721;
double r186723 = 1.0;
double r186724 = r186721 + r186723;
double r186725 = r186721 - r186723;
double r186726 = r186724 * r186725;
double r186727 = r186722 / r186726;
double r186728 = r186719 * r186727;
return r186728;
}




Bits error versus x
Results
| Original | 10.1 |
|---|---|
| Target | 0.3 |
| Herbie | 0.1 |
Initial program 10.1
rmApplied frac-sub25.9
Applied frac-add25.4
Simplified25.4
Simplified25.4
Taylor expanded around 0 0.3
rmApplied div-inv0.3
Simplified0.1
Final simplification0.1
herbie shell --seed 2019194 +o rules:numerics
(FPCore (x)
:name "3frac (problem 3.3.3)"
:herbie-target
(/ 2.0 (* x (- (* x x) 1.0)))
(+ (- (/ 1.0 (+ x 1.0)) (/ 2.0 x)) (/ 1.0 (- x 1.0))))