\frac{x0}{1 - x1} - x0\frac{\log \left(e^{\left(\frac{1}{1 - x1} \cdot x0\right) \cdot \frac{x0}{1 - x1} - x0 \cdot x0}\right)}{x0 + \frac{x0}{1 - x1}}double f(double x0, double x1) {
double r3909724 = x0;
double r3909725 = 1.0;
double r3909726 = x1;
double r3909727 = r3909725 - r3909726;
double r3909728 = r3909724 / r3909727;
double r3909729 = r3909728 - r3909724;
return r3909729;
}
double f(double x0, double x1) {
double r3909730 = 1.0;
double r3909731 = x1;
double r3909732 = r3909730 - r3909731;
double r3909733 = r3909730 / r3909732;
double r3909734 = x0;
double r3909735 = r3909733 * r3909734;
double r3909736 = r3909734 / r3909732;
double r3909737 = r3909735 * r3909736;
double r3909738 = r3909734 * r3909734;
double r3909739 = r3909737 - r3909738;
double r3909740 = exp(r3909739);
double r3909741 = log(r3909740);
double r3909742 = r3909734 + r3909736;
double r3909743 = r3909741 / r3909742;
return r3909743;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 7.9 |
|---|---|
| Target | 0.2 |
| Herbie | 4.6 |
Initial program 7.9
rmApplied flip--7.3
rmApplied div-inv5.6
rmApplied add-log-exp4.6
Final simplification4.6
herbie shell --seed 2019124
(FPCore (x0 x1)
:name "(- (/ x0 (- 1 x1)) x0)"
:pre (or (and (== x0 1.855) (== x1 0.000209)) (and (== x0 2.985) (== x1 0.0186)))
:herbie-target
(/ (* x0 x1) (- 1 x1))
(- (/ x0 (- 1 x1)) x0))