x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{2}{\frac{z \cdot 2}{y} - \frac{t}{z}}double f(double x, double y, double z, double t) {
double r649411 = x;
double r649412 = y;
double r649413 = 2.0;
double r649414 = r649412 * r649413;
double r649415 = z;
double r649416 = r649414 * r649415;
double r649417 = r649415 * r649413;
double r649418 = r649417 * r649415;
double r649419 = t;
double r649420 = r649412 * r649419;
double r649421 = r649418 - r649420;
double r649422 = r649416 / r649421;
double r649423 = r649411 - r649422;
return r649423;
}
double f(double x, double y, double z, double t) {
double r649424 = x;
double r649425 = 2.0;
double r649426 = z;
double r649427 = r649426 * r649425;
double r649428 = y;
double r649429 = r649427 / r649428;
double r649430 = t;
double r649431 = r649430 / r649426;
double r649432 = r649429 - r649431;
double r649433 = r649425 / r649432;
double r649434 = r649424 - r649433;
return r649434;
}




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.1 |
Initial program 11.6
Simplified0.1
Final simplification0.1
herbie shell --seed 2020043 +o rules:numerics
(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)))))