x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{z}{\frac{z}{\frac{y}{z}} - \frac{t}{2}}double f(double x, double y, double z, double t) {
double r350746 = x;
double r350747 = y;
double r350748 = 2.0;
double r350749 = r350747 * r350748;
double r350750 = z;
double r350751 = r350749 * r350750;
double r350752 = r350750 * r350748;
double r350753 = r350752 * r350750;
double r350754 = t;
double r350755 = r350747 * r350754;
double r350756 = r350753 - r350755;
double r350757 = r350751 / r350756;
double r350758 = r350746 - r350757;
return r350758;
}
double f(double x, double y, double z, double t) {
double r350759 = x;
double r350760 = z;
double r350761 = y;
double r350762 = r350761 / r350760;
double r350763 = r350760 / r350762;
double r350764 = t;
double r350765 = 2.0;
double r350766 = r350764 / r350765;
double r350767 = r350763 - r350766;
double r350768 = r350760 / r350767;
double r350769 = r350759 - r350768;
return r350769;
}




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.3 |
Initial program 11.6
Simplified3.5
rmApplied associate-/l*1.3
Final simplification1.3
herbie shell --seed 2019323
(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)))))