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 r21778784 = x;
double r21778785 = y;
double r21778786 = 2.0;
double r21778787 = r21778785 * r21778786;
double r21778788 = z;
double r21778789 = r21778787 * r21778788;
double r21778790 = r21778788 * r21778786;
double r21778791 = r21778790 * r21778788;
double r21778792 = t;
double r21778793 = r21778785 * r21778792;
double r21778794 = r21778791 - r21778793;
double r21778795 = r21778789 / r21778794;
double r21778796 = r21778784 - r21778795;
return r21778796;
}
double f(double x, double y, double z, double t) {
double r21778797 = x;
double r21778798 = 1.0;
double r21778799 = z;
double r21778800 = y;
double r21778801 = r21778799 / r21778800;
double r21778802 = t;
double r21778803 = r21778802 / r21778799;
double r21778804 = 0.5;
double r21778805 = r21778803 * r21778804;
double r21778806 = r21778801 - r21778805;
double r21778807 = r21778798 / r21778806;
double r21778808 = r21778797 - r21778807;
return r21778808;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 11.1
Simplified1.2
rmApplied clear-num1.2
Taylor expanded around 0 0.1
Final simplification0.1
herbie shell --seed 2019164
(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)))))