\frac{x0}{1 - x1} - x0\frac{\log \left(e^{\frac{x0}{1 - x1} \cdot \frac{\sqrt{x0}}{\frac{1 - x1}{\sqrt{x0}}} - x0 \cdot x0}\right)}{\sqrt[3]{{\left(\frac{x0}{1 - x1}\right)}^{3}} + x0}double f(double x0, double x1) {
double r159480 = x0;
double r159481 = 1.0;
double r159482 = x1;
double r159483 = r159481 - r159482;
double r159484 = r159480 / r159483;
double r159485 = r159484 - r159480;
return r159485;
}
double f(double x0, double x1) {
double r159486 = x0;
double r159487 = 1.0;
double r159488 = x1;
double r159489 = r159487 - r159488;
double r159490 = r159486 / r159489;
double r159491 = sqrt(r159486);
double r159492 = r159489 / r159491;
double r159493 = r159491 / r159492;
double r159494 = r159490 * r159493;
double r159495 = r159486 * r159486;
double r159496 = r159494 - r159495;
double r159497 = exp(r159496);
double r159498 = log(r159497);
double r159499 = 3.0;
double r159500 = pow(r159490, r159499);
double r159501 = cbrt(r159500);
double r159502 = r159501 + r159486;
double r159503 = r159498 / r159502;
return r159503;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 7.9 |
|---|---|
| Target | 0.3 |
| Herbie | 4.7 |
Initial program 7.9
rmApplied flip--7.3
rmApplied add-sqr-sqrt7.3
Applied associate-/l*5.6
rmApplied add-log-exp5.6
Applied add-log-exp5.6
Applied diff-log5.5
Simplified4.7
rmApplied add-cbrt-cube4.7
Applied add-cbrt-cube4.7
Applied cbrt-undiv4.7
Simplified4.7
Final simplification4.7
herbie shell --seed 2020047
(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))