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{0.5}{\frac{z}{t}}}double f(double x, double y, double z, double t) {
double r23898112 = x;
double r23898113 = y;
double r23898114 = 2.0;
double r23898115 = r23898113 * r23898114;
double r23898116 = z;
double r23898117 = r23898115 * r23898116;
double r23898118 = r23898116 * r23898114;
double r23898119 = r23898118 * r23898116;
double r23898120 = t;
double r23898121 = r23898113 * r23898120;
double r23898122 = r23898119 - r23898121;
double r23898123 = r23898117 / r23898122;
double r23898124 = r23898112 - r23898123;
return r23898124;
}
double f(double x, double y, double z, double t) {
double r23898125 = x;
double r23898126 = 1.0;
double r23898127 = z;
double r23898128 = y;
double r23898129 = r23898127 / r23898128;
double r23898130 = 0.5;
double r23898131 = t;
double r23898132 = r23898127 / r23898131;
double r23898133 = r23898130 / r23898132;
double r23898134 = r23898129 - r23898133;
double r23898135 = r23898126 / r23898134;
double r23898136 = r23898125 - r23898135;
return r23898136;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 11.6
Simplified1.0
rmApplied clear-num1.0
Taylor expanded around 0 0.1
rmApplied clear-num0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019163 +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)))))