\frac{x0}{1 - x1} - x0\frac{\log \left(e^{\left(\frac{x0}{1 \cdot 1 - x1 \cdot x1} \cdot \left(1 + x1\right)\right) \cdot \left(\frac{x0}{{1}^{3} - {x1}^{3}} \cdot \left(1 \cdot 1 + \left(x1 \cdot x1 + 1 \cdot x1\right)\right)\right) - x0 \cdot x0}\right)}{x0 + \frac{x0}{1 - x1}}double f(double x0, double x1) {
double r114702 = x0;
double r114703 = 1.0;
double r114704 = x1;
double r114705 = r114703 - r114704;
double r114706 = r114702 / r114705;
double r114707 = r114706 - r114702;
return r114707;
}
double f(double x0, double x1) {
double r114708 = x0;
double r114709 = 1.0;
double r114710 = r114709 * r114709;
double r114711 = x1;
double r114712 = r114711 * r114711;
double r114713 = r114710 - r114712;
double r114714 = r114708 / r114713;
double r114715 = r114709 + r114711;
double r114716 = r114714 * r114715;
double r114717 = 3.0;
double r114718 = pow(r114709, r114717);
double r114719 = pow(r114711, r114717);
double r114720 = r114718 - r114719;
double r114721 = r114708 / r114720;
double r114722 = r114709 * r114711;
double r114723 = r114712 + r114722;
double r114724 = r114710 + r114723;
double r114725 = r114721 * r114724;
double r114726 = r114716 * r114725;
double r114727 = r114708 * r114708;
double r114728 = r114726 - r114727;
double r114729 = exp(r114728);
double r114730 = log(r114729);
double r114731 = r114709 - r114711;
double r114732 = r114708 / r114731;
double r114733 = r114708 + r114732;
double r114734 = r114730 / r114733;
return r114734;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 7.9 |
|---|---|
| Target | 0.2 |
| Herbie | 4.7 |
Initial program 7.9
rmApplied flip--7.3
Simplified7.3
rmApplied flip--5.6
Applied associate-/r/6.2
rmApplied add-log-exp6.2
Applied add-log-exp6.2
Applied diff-log5.8
Simplified5.8
rmApplied flip3--5.8
Applied associate-/r/4.7
Final simplification4.7
herbie shell --seed 2019208
(FPCore (x0 x1)
:name "(- (/ x0 (- 1 x1)) x0)"
:precision binary64
:pre (or (and (== x0 1.855) (== x1 2.09000000000000012e-4)) (and (== x0 2.98499999999999988) (== x1 0.018599999999999998)))
:herbie-target
(/ (* x0 x1) (- 1 x1))
(- (/ x0 (- 1 x1)) x0))