x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{y}{z - \frac{\frac{t}{z}}{\sqrt{2}} \cdot \frac{y}{\sqrt{2}}}double f(double x, double y, double z, double t) {
double r25764924 = x;
double r25764925 = y;
double r25764926 = 2.0;
double r25764927 = r25764925 * r25764926;
double r25764928 = z;
double r25764929 = r25764927 * r25764928;
double r25764930 = r25764928 * r25764926;
double r25764931 = r25764930 * r25764928;
double r25764932 = t;
double r25764933 = r25764925 * r25764932;
double r25764934 = r25764931 - r25764933;
double r25764935 = r25764929 / r25764934;
double r25764936 = r25764924 - r25764935;
return r25764936;
}
double f(double x, double y, double z, double t) {
double r25764937 = x;
double r25764938 = y;
double r25764939 = z;
double r25764940 = t;
double r25764941 = r25764940 / r25764939;
double r25764942 = 2.0;
double r25764943 = sqrt(r25764942);
double r25764944 = r25764941 / r25764943;
double r25764945 = r25764938 / r25764943;
double r25764946 = r25764944 * r25764945;
double r25764947 = r25764939 - r25764946;
double r25764948 = r25764938 / r25764947;
double r25764949 = r25764937 - r25764948;
return r25764949;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 12.0 |
|---|---|
| Target | 0.1 |
| Herbie | 1.2 |
Initial program 12.0
Simplified1.1
rmApplied add-sqr-sqrt1.2
Applied times-frac1.2
Final simplification1.2
herbie shell --seed 2019171
(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)))))