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 r616005 = x;
double r616006 = y;
double r616007 = 2.0;
double r616008 = r616006 * r616007;
double r616009 = z;
double r616010 = r616008 * r616009;
double r616011 = r616009 * r616007;
double r616012 = r616011 * r616009;
double r616013 = t;
double r616014 = r616006 * r616013;
double r616015 = r616012 - r616014;
double r616016 = r616010 / r616015;
double r616017 = r616005 - r616016;
return r616017;
}
double f(double x, double y, double z, double t) {
double r616018 = x;
double r616019 = 2.0;
double r616020 = z;
double r616021 = r616020 * r616019;
double r616022 = y;
double r616023 = r616021 / r616022;
double r616024 = t;
double r616025 = r616024 / r616020;
double r616026 = r616023 - r616025;
double r616027 = r616019 / r616026;
double r616028 = r616018 - r616027;
return r616028;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 11.7
Simplified0.1
Final simplification0.1
herbie shell --seed 2020042
(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)))))