x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - 2 \cdot \frac{y}{2 \cdot z - \frac{y}{\frac{z}{t}}}double f(double x, double y, double z, double t) {
double r414411 = x;
double r414412 = y;
double r414413 = 2.0;
double r414414 = r414412 * r414413;
double r414415 = z;
double r414416 = r414414 * r414415;
double r414417 = r414415 * r414413;
double r414418 = r414417 * r414415;
double r414419 = t;
double r414420 = r414412 * r414419;
double r414421 = r414418 - r414420;
double r414422 = r414416 / r414421;
double r414423 = r414411 - r414422;
return r414423;
}
double f(double x, double y, double z, double t) {
double r414424 = x;
double r414425 = 2.0;
double r414426 = y;
double r414427 = z;
double r414428 = r414425 * r414427;
double r414429 = t;
double r414430 = r414427 / r414429;
double r414431 = r414426 / r414430;
double r414432 = r414428 - r414431;
double r414433 = r414426 / r414432;
double r414434 = r414425 * r414433;
double r414435 = r414424 - r414434;
return r414435;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.7 |
|---|---|
| Target | 0.1 |
| Herbie | 1.1 |
Initial program 11.7
Simplified2.8
rmApplied associate-/l*1.1
Final simplification1.1
herbie shell --seed 2019179
(FPCore (x y z t)
:name "Numeric.AD.Rank1.Halley:findZero from ad-4.2.4"
:herbie-target
(- x (/ 1.0 (- (/ z y) (/ (/ t 2.0) z))))
(- x (/ (* (* y 2.0) z) (- (* (* z 2.0) z) (* y t)))))