x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - 2 \cdot \frac{y}{2 \cdot z - \frac{y}{\frac{z}{t}}}double f(double x, double y, double z, double t) {
double r441473 = x;
double r441474 = y;
double r441475 = 2.0;
double r441476 = r441474 * r441475;
double r441477 = z;
double r441478 = r441476 * r441477;
double r441479 = r441477 * r441475;
double r441480 = r441479 * r441477;
double r441481 = t;
double r441482 = r441474 * r441481;
double r441483 = r441480 - r441482;
double r441484 = r441478 / r441483;
double r441485 = r441473 - r441484;
return r441485;
}
double f(double x, double y, double z, double t) {
double r441486 = x;
double r441487 = 2.0;
double r441488 = y;
double r441489 = z;
double r441490 = r441487 * r441489;
double r441491 = t;
double r441492 = r441489 / r441491;
double r441493 = r441488 / r441492;
double r441494 = r441490 - r441493;
double r441495 = r441488 / r441494;
double r441496 = r441487 * r441495;
double r441497 = r441486 - r441496;
return r441497;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.9 |
Initial program 11.6
Simplified2.8
rmApplied associate-/l*0.9
Final simplification0.9
herbie shell --seed 2019174
(FPCore (x y z t)
:name "Numeric.AD.Rank1.Halley:findZero from ad-4.2.4"
:herbie-target
(- x (/ 1.0 (- (/ z y) (/ (/ t 2.0) z))))
(- x (/ (* (* y 2.0) z) (- (* (* z 2.0) z) (* y t)))))