x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - y \cdot \frac{-1}{\frac{t}{z} \cdot \frac{y}{2} - z}double f(double x, double y, double z, double t) {
double r298858 = x;
double r298859 = y;
double r298860 = 2.0;
double r298861 = r298859 * r298860;
double r298862 = z;
double r298863 = r298861 * r298862;
double r298864 = r298862 * r298860;
double r298865 = r298864 * r298862;
double r298866 = t;
double r298867 = r298859 * r298866;
double r298868 = r298865 - r298867;
double r298869 = r298863 / r298868;
double r298870 = r298858 - r298869;
return r298870;
}
double f(double x, double y, double z, double t) {
double r298871 = x;
double r298872 = y;
double r298873 = -1.0;
double r298874 = t;
double r298875 = z;
double r298876 = r298874 / r298875;
double r298877 = 2.0;
double r298878 = r298872 / r298877;
double r298879 = r298876 * r298878;
double r298880 = r298879 - r298875;
double r298881 = r298873 / r298880;
double r298882 = r298872 * r298881;
double r298883 = r298871 - r298882;
return r298883;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.6 |
|---|---|
| Target | 0.1 |
| Herbie | 1.2 |
Initial program 11.6
Simplified1.1
rmApplied div-inv1.2
rmApplied frac-2neg1.2
Simplified1.2
Simplified1.2
Final simplification1.2
herbie shell --seed 2019323 +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)))))