\frac{x0}{1 - x1} - x0\frac{e^{\log \left(\frac{x0}{1 - x1} \cdot \left(x0 \cdot \frac{1}{1 - x1}\right) - x0 \cdot x0\right)}}{\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 r158279 = x0;
double r158280 = 1.0;
double r158281 = x1;
double r158282 = r158280 - r158281;
double r158283 = r158279 / r158282;
double r158284 = r158283 - r158279;
return r158284;
}
double f(double x0, double x1) {
double r158285 = x0;
double r158286 = 1.0;
double r158287 = x1;
double r158288 = r158286 - r158287;
double r158289 = r158285 / r158288;
double r158290 = 1.0;
double r158291 = r158290 / r158288;
double r158292 = r158285 * r158291;
double r158293 = r158289 * r158292;
double r158294 = r158285 * r158285;
double r158295 = r158293 - r158294;
double r158296 = log(r158295);
double r158297 = exp(r158296);
double r158298 = r158289 + r158285;
double r158299 = cbrt(r158298);
double r158300 = r158299 * r158299;
double r158301 = r158300 * r158299;
double r158302 = r158297 / r158301;
return r158302;
}




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
rmApplied add-exp-log5.7
Final simplification5.7
herbie shell --seed 2019318
(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))