x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{y}{\frac{2 \cdot z - \frac{t \cdot y}{z}}{2}}double f(double x, double y, double z, double t) {
double r495339 = x;
double r495340 = y;
double r495341 = 2.0;
double r495342 = r495340 * r495341;
double r495343 = z;
double r495344 = r495342 * r495343;
double r495345 = r495343 * r495341;
double r495346 = r495345 * r495343;
double r495347 = t;
double r495348 = r495340 * r495347;
double r495349 = r495346 - r495348;
double r495350 = r495344 / r495349;
double r495351 = r495339 - r495350;
return r495351;
}
double f(double x, double y, double z, double t) {
double r495352 = x;
double r495353 = y;
double r495354 = 2.0;
double r495355 = z;
double r495356 = r495354 * r495355;
double r495357 = t;
double r495358 = r495357 * r495353;
double r495359 = r495358 / r495355;
double r495360 = r495356 - r495359;
double r495361 = r495360 / r495354;
double r495362 = r495353 / r495361;
double r495363 = r495352 - r495362;
return r495363;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.9 |
|---|---|
| Target | 0.1 |
| Herbie | 2.8 |
Initial program 11.9
rmApplied associate-/l*6.8
rmApplied associate-/l*6.8
Simplified2.8
Final simplification2.8
herbie shell --seed 2020024
(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)))))