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} - \frac{\frac{t}{2}}{z}}double f(double x, double y, double z, double t) {
double r330127 = x;
double r330128 = y;
double r330129 = 2.0;
double r330130 = r330128 * r330129;
double r330131 = z;
double r330132 = r330130 * r330131;
double r330133 = r330131 * r330129;
double r330134 = r330133 * r330131;
double r330135 = t;
double r330136 = r330128 * r330135;
double r330137 = r330134 - r330136;
double r330138 = r330132 / r330137;
double r330139 = r330127 - r330138;
return r330139;
}
double f(double x, double y, double z, double t) {
double r330140 = x;
double r330141 = 1.0;
double r330142 = z;
double r330143 = y;
double r330144 = r330142 / r330143;
double r330145 = t;
double r330146 = 2.0;
double r330147 = r330145 / r330146;
double r330148 = r330147 / r330142;
double r330149 = r330144 - r330148;
double r330150 = r330141 / r330149;
double r330151 = r330140 - r330150;
return r330151;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 11.7
Simplified3.6
rmApplied clear-num3.6
Simplified0.1
Final simplification0.1
herbie shell --seed 2019304
(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)))))