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 r18406769 = x;
double r18406770 = y;
double r18406771 = 2.0;
double r18406772 = r18406770 * r18406771;
double r18406773 = z;
double r18406774 = r18406772 * r18406773;
double r18406775 = r18406773 * r18406771;
double r18406776 = r18406775 * r18406773;
double r18406777 = t;
double r18406778 = r18406770 * r18406777;
double r18406779 = r18406776 - r18406778;
double r18406780 = r18406774 / r18406779;
double r18406781 = r18406769 - r18406780;
return r18406781;
}
double f(double x, double y, double z, double t) {
double r18406782 = x;
double r18406783 = 1.0;
double r18406784 = z;
double r18406785 = y;
double r18406786 = r18406784 / r18406785;
double r18406787 = t;
double r18406788 = r18406787 / r18406784;
double r18406789 = 0.5;
double r18406790 = r18406788 * r18406789;
double r18406791 = r18406786 - r18406790;
double r18406792 = r18406783 / r18406791;
double r18406793 = r18406782 - r18406792;
return r18406793;
}




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 +o rules:numerics
(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)))))