x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{y}{\frac{2 \cdot z - \frac{t}{z} \cdot y}{2}}double f(double x, double y, double z, double t) {
double r453429 = x;
double r453430 = y;
double r453431 = 2.0;
double r453432 = r453430 * r453431;
double r453433 = z;
double r453434 = r453432 * r453433;
double r453435 = r453433 * r453431;
double r453436 = r453435 * r453433;
double r453437 = t;
double r453438 = r453430 * r453437;
double r453439 = r453436 - r453438;
double r453440 = r453434 / r453439;
double r453441 = r453429 - r453440;
return r453441;
}
double f(double x, double y, double z, double t) {
double r453442 = x;
double r453443 = y;
double r453444 = 2.0;
double r453445 = z;
double r453446 = r453444 * r453445;
double r453447 = t;
double r453448 = r453447 / r453445;
double r453449 = r453448 * r453443;
double r453450 = r453446 - r453449;
double r453451 = r453450 / r453444;
double r453452 = r453443 / r453451;
double r453453 = r453442 - r453452;
return r453453;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.5 |
|---|---|
| Target | 0.1 |
| Herbie | 1.1 |
Initial program 11.5
rmApplied associate-/l*6.9
rmApplied associate-/l*6.9
Simplified2.8
rmApplied associate-/l*2.3
rmApplied associate-/r/1.1
Final simplification1.1
herbie shell --seed 2019298
(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)))))