\frac{x0}{1 - x1} - x0\frac{\frac{\frac{x0}{\sqrt{1 - x1}}}{\sqrt{1 - x1}} \cdot \frac{x0}{1 - x1} - 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 r164336 = x0;
double r164337 = 1.0;
double r164338 = x1;
double r164339 = r164337 - r164338;
double r164340 = r164336 / r164339;
double r164341 = r164340 - r164336;
return r164341;
}
double f(double x0, double x1) {
double r164342 = x0;
double r164343 = 1.0;
double r164344 = x1;
double r164345 = r164343 - r164344;
double r164346 = sqrt(r164345);
double r164347 = r164342 / r164346;
double r164348 = r164347 / r164346;
double r164349 = r164342 / r164345;
double r164350 = r164348 * r164349;
double r164351 = r164342 * r164342;
double r164352 = r164350 - r164351;
double r164353 = r164349 + r164342;
double r164354 = cbrt(r164353);
double r164355 = r164354 * r164354;
double r164356 = r164355 * r164354;
double r164357 = r164352 / r164356;
return r164357;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 7.9 |
|---|---|
| Target | 0.2 |
| Herbie | 5.7 |
Initial program 7.9
rmApplied flip--7.3
rmApplied add-sqr-sqrt5.6
Applied associate-/r*5.6
rmApplied add-cube-cbrt5.7
Final simplification5.7
herbie shell --seed 2019362
(FPCore (x0 x1)
:name "(- (/ x0 (- 1 x1)) x0)"
:precision binary64
: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))