\frac{x0}{1 - x1} - x0\frac{\frac{x0}{1 - x1} \cdot \left(x0 \cdot \frac{1}{1 - x1}\right) - x0 \cdot x0}{\left(\sqrt[3]{\frac{x0}{1 - x1} + x0} \cdot \sqrt[3]{\frac{x0}{1 - x1} + x0}\right) \cdot \sqrt[3]{\frac{x0}{1 - x1} + x0}}double f(double x0, double x1) {
double r10614173 = x0;
double r10614174 = 1.0;
double r10614175 = x1;
double r10614176 = r10614174 - r10614175;
double r10614177 = r10614173 / r10614176;
double r10614178 = r10614177 - r10614173;
return r10614178;
}
double f(double x0, double x1) {
double r10614179 = x0;
double r10614180 = 1.0;
double r10614181 = x1;
double r10614182 = r10614180 - r10614181;
double r10614183 = r10614179 / r10614182;
double r10614184 = 1.0;
double r10614185 = r10614184 / r10614182;
double r10614186 = r10614179 * r10614185;
double r10614187 = r10614183 * r10614186;
double r10614188 = r10614179 * r10614179;
double r10614189 = r10614187 - r10614188;
double r10614190 = r10614183 + r10614179;
double r10614191 = cbrt(r10614190);
double r10614192 = r10614191 * r10614191;
double r10614193 = r10614192 * r10614191;
double r10614194 = r10614189 / r10614193;
return r10614194;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 8.0 |
|---|---|
| Target | 0.2 |
| Herbie | 5.7 |
Initial program 8.0
rmApplied flip--7.4
rmApplied div-inv5.7
rmApplied add-cube-cbrt5.7
Final simplification5.7
herbie shell --seed 2019173
(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))