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{t}{z \cdot 2}}double f(double x, double y, double z, double t) {
double r61203252 = x;
double r61203253 = y;
double r61203254 = 2.0;
double r61203255 = r61203253 * r61203254;
double r61203256 = z;
double r61203257 = r61203255 * r61203256;
double r61203258 = r61203256 * r61203254;
double r61203259 = r61203258 * r61203256;
double r61203260 = t;
double r61203261 = r61203253 * r61203260;
double r61203262 = r61203259 - r61203261;
double r61203263 = r61203257 / r61203262;
double r61203264 = r61203252 - r61203263;
return r61203264;
}
double f(double x, double y, double z, double t) {
double r61203265 = x;
double r61203266 = 1.0;
double r61203267 = z;
double r61203268 = y;
double r61203269 = r61203267 / r61203268;
double r61203270 = t;
double r61203271 = 2.0;
double r61203272 = r61203267 * r61203271;
double r61203273 = r61203270 / r61203272;
double r61203274 = r61203269 - r61203273;
double r61203275 = r61203266 / r61203274;
double r61203276 = r61203265 - r61203275;
return r61203276;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 11.8
rmApplied clear-num11.8
Simplified0.1
Final simplification0.1
herbie shell --seed 2019173 +o rules:numerics
(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)))))