x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{1}{\frac{z \cdot 2}{y} - \frac{t}{z}} \cdot 2double f(double x, double y, double z, double t) {
double r391912 = x;
double r391913 = y;
double r391914 = 2.0;
double r391915 = r391913 * r391914;
double r391916 = z;
double r391917 = r391915 * r391916;
double r391918 = r391916 * r391914;
double r391919 = r391918 * r391916;
double r391920 = t;
double r391921 = r391913 * r391920;
double r391922 = r391919 - r391921;
double r391923 = r391917 / r391922;
double r391924 = r391912 - r391923;
return r391924;
}
double f(double x, double y, double z, double t) {
double r391925 = x;
double r391926 = 1.0;
double r391927 = z;
double r391928 = 2.0;
double r391929 = r391927 * r391928;
double r391930 = y;
double r391931 = r391929 / r391930;
double r391932 = t;
double r391933 = r391932 / r391927;
double r391934 = r391931 - r391933;
double r391935 = r391926 / r391934;
double r391936 = r391935 * r391928;
double r391937 = r391925 - r391936;
return r391937;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 11.2
Simplified2.5
rmApplied clear-num2.5
Simplified2.1
Taylor expanded around 0 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019194
(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)))))