x - \frac{\left(y \cdot 2.0\right) \cdot z}{\left(z \cdot 2.0\right) \cdot z - y \cdot t}x - \frac{1}{\frac{z}{y} - \frac{t}{z} \cdot 0.5}double f(double x, double y, double z, double t) {
double r22364998 = x;
double r22364999 = y;
double r22365000 = 2.0;
double r22365001 = r22364999 * r22365000;
double r22365002 = z;
double r22365003 = r22365001 * r22365002;
double r22365004 = r22365002 * r22365000;
double r22365005 = r22365004 * r22365002;
double r22365006 = t;
double r22365007 = r22364999 * r22365006;
double r22365008 = r22365005 - r22365007;
double r22365009 = r22365003 / r22365008;
double r22365010 = r22364998 - r22365009;
return r22365010;
}
double f(double x, double y, double z, double t) {
double r22365011 = x;
double r22365012 = 1.0;
double r22365013 = z;
double r22365014 = y;
double r22365015 = r22365013 / r22365014;
double r22365016 = t;
double r22365017 = r22365016 / r22365013;
double r22365018 = 0.5;
double r22365019 = r22365017 * r22365018;
double r22365020 = r22365015 - r22365019;
double r22365021 = r22365012 / r22365020;
double r22365022 = r22365011 - r22365021;
return r22365022;
}




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
Simplified1.0
rmApplied clear-num1.0
Taylor expanded around 0 0.1
Final simplification0.1
herbie shell --seed 2019163
(FPCore (x y z t)
:name "Numeric.AD.Rank1.Halley:findZero from ad-4.2.4"
:herbie-target
(- x (/ 1 (- (/ z y) (/ (/ t 2.0) z))))
(- x (/ (* (* y 2.0) z) (- (* (* z 2.0) z) (* y t)))))