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 - t \cdot \frac{y}{z}}{2}}double f(double x, double y, double z, double t) {
double r459876 = x;
double r459877 = y;
double r459878 = 2.0;
double r459879 = r459877 * r459878;
double r459880 = z;
double r459881 = r459879 * r459880;
double r459882 = r459880 * r459878;
double r459883 = r459882 * r459880;
double r459884 = t;
double r459885 = r459877 * r459884;
double r459886 = r459883 - r459885;
double r459887 = r459881 / r459886;
double r459888 = r459876 - r459887;
return r459888;
}
double f(double x, double y, double z, double t) {
double r459889 = x;
double r459890 = y;
double r459891 = 2.0;
double r459892 = z;
double r459893 = r459891 * r459892;
double r459894 = t;
double r459895 = r459890 / r459892;
double r459896 = r459894 * r459895;
double r459897 = r459893 - r459896;
double r459898 = r459897 / r459891;
double r459899 = r459890 / r459898;
double r459900 = r459889 - r459899;
return r459900;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.7 |
|---|---|
| Target | 0.1 |
| Herbie | 2.3 |
if t < -2.068625767123316e-285 or 1.4785505117285156e-17 < t Initial program 10.8
rmApplied associate-/l*6.3
rmApplied associate-/l*6.2
Simplified3.1
rmApplied *-un-lft-identity3.1
Applied times-frac1.8
Simplified1.8
if -2.068625767123316e-285 < t < 1.4785505117285156e-17Initial program 14.0
rmApplied associate-/l*7.9
rmApplied div-inv8.0
Applied associate-/r*7.5
Final simplification2.3
herbie shell --seed 2019304
(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)))))