x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{y}{z - \frac{\frac{y}{\frac{z}{t}}}{2}}double f(double x, double y, double z, double t) {
double r322374 = x;
double r322375 = y;
double r322376 = 2.0;
double r322377 = r322375 * r322376;
double r322378 = z;
double r322379 = r322377 * r322378;
double r322380 = r322378 * r322376;
double r322381 = r322380 * r322378;
double r322382 = t;
double r322383 = r322375 * r322382;
double r322384 = r322381 - r322383;
double r322385 = r322379 / r322384;
double r322386 = r322374 - r322385;
return r322386;
}
double f(double x, double y, double z, double t) {
double r322387 = x;
double r322388 = y;
double r322389 = z;
double r322390 = t;
double r322391 = r322389 / r322390;
double r322392 = r322388 / r322391;
double r322393 = 2.0;
double r322394 = r322392 / r322393;
double r322395 = r322389 - r322394;
double r322396 = r322388 / r322395;
double r322397 = r322387 - r322396;
return r322397;
}




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.0 |
Initial program 11.6
Simplified2.9
rmApplied associate-/l*1.0
Final simplification1.0
herbie shell --seed 2019235
(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)))))