\frac{x0}{1 - x1} - x0\frac{\left(\frac{\frac{x0}{1 - x1}}{\left(1 - x1\right) \cdot \left(1 - x1\right)} - x0\right) \cdot \left(x0 \cdot x0\right)}{\frac{\left(1 - x1\right) \cdot \left(\left(x0 \cdot x0\right) \cdot \left(x0 \cdot x0\right) - \left(\frac{x0}{1 - x1} \cdot x0\right) \cdot \left(\frac{x0}{1 - x1} \cdot x0\right)\right) + \left(\frac{x0}{1 - x1} \cdot x0\right) \cdot \left(x0 \cdot x0 - \frac{x0}{1 - x1} \cdot x0\right)}{\left(x0 \cdot x0 - \frac{x0}{1 - x1} \cdot x0\right) \cdot \left(1 - x1\right)}}double f(double x0, double x1) {
double r8463399 = x0;
double r8463400 = 1.0;
double r8463401 = x1;
double r8463402 = r8463400 - r8463401;
double r8463403 = r8463399 / r8463402;
double r8463404 = r8463403 - r8463399;
return r8463404;
}
double f(double x0, double x1) {
double r8463405 = x0;
double r8463406 = 1.0;
double r8463407 = x1;
double r8463408 = r8463406 - r8463407;
double r8463409 = r8463405 / r8463408;
double r8463410 = r8463408 * r8463408;
double r8463411 = r8463409 / r8463410;
double r8463412 = r8463411 - r8463405;
double r8463413 = r8463405 * r8463405;
double r8463414 = r8463412 * r8463413;
double r8463415 = r8463413 * r8463413;
double r8463416 = r8463409 * r8463405;
double r8463417 = r8463416 * r8463416;
double r8463418 = r8463415 - r8463417;
double r8463419 = r8463408 * r8463418;
double r8463420 = r8463413 - r8463416;
double r8463421 = r8463416 * r8463420;
double r8463422 = r8463419 + r8463421;
double r8463423 = r8463420 * r8463408;
double r8463424 = r8463422 / r8463423;
double r8463425 = r8463414 / r8463424;
return r8463425;
}




Bits error versus x0




Bits error versus x1
Results
| Original | 7.9 |
|---|---|
| Target | 0.3 |
| Herbie | 5.9 |
Initial program 7.9
rmApplied flip3--7.7
Simplified6.1
rmApplied flip-+6.2
Applied associate-*r/6.2
Applied frac-add5.9
Final simplification5.9
herbie shell --seed 2019125
(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 x1))
(- (/ x0 (- 1 x1)) x0))