x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x + \frac{-1}{\frac{z}{y} - 0.5 \cdot \frac{t}{z}}double f(double x, double y, double z, double t) {
double r280580 = x;
double r280581 = y;
double r280582 = 2.0;
double r280583 = r280581 * r280582;
double r280584 = z;
double r280585 = r280583 * r280584;
double r280586 = r280584 * r280582;
double r280587 = r280586 * r280584;
double r280588 = t;
double r280589 = r280581 * r280588;
double r280590 = r280587 - r280589;
double r280591 = r280585 / r280590;
double r280592 = r280580 - r280591;
return r280592;
}
double f(double x, double y, double z, double t) {
double r280593 = x;
double r280594 = -1.0;
double r280595 = z;
double r280596 = y;
double r280597 = r280595 / r280596;
double r280598 = 0.5;
double r280599 = t;
double r280600 = r280599 / r280595;
double r280601 = r280598 * r280600;
double r280602 = r280597 - r280601;
double r280603 = r280594 / r280602;
double r280604 = r280593 + r280603;
return r280604;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.5 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 11.5
Simplified1.0
rmApplied sub-neg1.0
Simplified1.0
rmApplied neg-mul-11.0
Applied associate-/l*1.0
Taylor expanded around 0 0.1
Final simplification0.1
herbie shell --seed 2019306 +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)))))