\frac{x0}{1 - x1} - x0\frac{\left(x0 \cdot \frac{1}{1 - x1}\right) \cdot \frac{x0}{1 - x1} - x0 \cdot x0}{\left(\sqrt[3]{x0 + \frac{x0}{1 - x1}} \cdot \sqrt[3]{x0 + \frac{x0}{1 - x1}}\right) \cdot \sqrt[3]{x0 + \frac{x0}{1 - x1}}}double f(double x0, double x1) {
double r4825602 = x0;
double r4825603 = 1.0;
double r4825604 = x1;
double r4825605 = r4825603 - r4825604;
double r4825606 = r4825602 / r4825605;
double r4825607 = r4825606 - r4825602;
return r4825607;
}
double f(double x0, double x1) {
double r4825608 = x0;
double r4825609 = 1.0;
double r4825610 = 1.0;
double r4825611 = x1;
double r4825612 = r4825610 - r4825611;
double r4825613 = r4825609 / r4825612;
double r4825614 = r4825608 * r4825613;
double r4825615 = r4825608 / r4825612;
double r4825616 = r4825614 * r4825615;
double r4825617 = r4825608 * r4825608;
double r4825618 = r4825616 - r4825617;
double r4825619 = r4825608 + r4825615;
double r4825620 = cbrt(r4825619);
double r4825621 = r4825620 * r4825620;
double r4825622 = r4825621 * r4825620;
double r4825623 = r4825618 / r4825622;
return r4825623;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 7.9 |
|---|---|
| Target | 0.3 |
| Herbie | 5.7 |
Initial program 7.9
rmApplied flip--7.3
rmApplied div-inv5.6
rmApplied add-cube-cbrt5.7
Final simplification5.7
herbie shell --seed 2019172
(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.0 x1))
(- (/ x0 (- 1.0 x1)) x0))