x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{1}{\frac{z}{y} - \frac{\frac{t}{2}}{z}}double f(double x, double y, double z, double t) {
double r519532 = x;
double r519533 = y;
double r519534 = 2.0;
double r519535 = r519533 * r519534;
double r519536 = z;
double r519537 = r519535 * r519536;
double r519538 = r519536 * r519534;
double r519539 = r519538 * r519536;
double r519540 = t;
double r519541 = r519533 * r519540;
double r519542 = r519539 - r519541;
double r519543 = r519537 / r519542;
double r519544 = r519532 - r519543;
return r519544;
}
double f(double x, double y, double z, double t) {
double r519545 = x;
double r519546 = 1.0;
double r519547 = z;
double r519548 = y;
double r519549 = r519547 / r519548;
double r519550 = t;
double r519551 = 2.0;
double r519552 = r519550 / r519551;
double r519553 = r519552 / r519547;
double r519554 = r519549 - r519553;
double r519555 = r519546 / r519554;
double r519556 = r519545 - r519555;
return r519556;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.9 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 11.9
Simplified3.5
rmApplied clear-num3.6
Simplified0.1
Final simplification0.1
herbie shell --seed 2019350
(FPCore (x y z t)
:name "Numeric.AD.Rank1.Halley:findZero from ad-4.2.4"
:precision binary64
:herbie-target
(- x (/ 1 (- (/ z y) (/ (/ t 2) z))))
(- x (/ (* (* y 2) z) (- (* (* z 2) z) (* y t)))))