x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{z}{\frac{z}{\frac{y}{z}} - \frac{t}{2}}double f(double x, double y, double z, double t) {
double r563924 = x;
double r563925 = y;
double r563926 = 2.0;
double r563927 = r563925 * r563926;
double r563928 = z;
double r563929 = r563927 * r563928;
double r563930 = r563928 * r563926;
double r563931 = r563930 * r563928;
double r563932 = t;
double r563933 = r563925 * r563932;
double r563934 = r563931 - r563933;
double r563935 = r563929 / r563934;
double r563936 = r563924 - r563935;
return r563936;
}
double f(double x, double y, double z, double t) {
double r563937 = x;
double r563938 = z;
double r563939 = y;
double r563940 = r563939 / r563938;
double r563941 = r563938 / r563940;
double r563942 = t;
double r563943 = 2.0;
double r563944 = r563942 / r563943;
double r563945 = r563941 - r563944;
double r563946 = r563938 / r563945;
double r563947 = r563937 - r563946;
return r563947;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.4 |
|---|---|
| Target | 0.1 |
| Herbie | 1.1 |
Initial program 11.4
Simplified3.5
rmApplied associate-/l*1.1
Final simplification1.1
herbie shell --seed 2020047 +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)))))