\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b
\begin{array}{l}
\mathbf{if}\;\left(\left(y \cdot 9\right) \cdot z\right) \cdot t = -\infty:\\
\;\;\;\;\left(x \cdot 2 - \left(y \cdot 9\right) \cdot \left(t \cdot z\right)\right) + 27 \cdot \left(a \cdot b\right)\\
\mathbf{elif}\;\left(\left(y \cdot 9\right) \cdot z\right) \cdot t \le 1.437837201800553727574191608164660843078 \cdot 10^{298}:\\
\;\;\;\;\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + a \cdot \left(27 \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot t\right) \cdot z\right) + \left(a \cdot 27\right) \cdot b\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r494453 = x;
double r494454 = 2.0;
double r494455 = r494453 * r494454;
double r494456 = y;
double r494457 = 9.0;
double r494458 = r494456 * r494457;
double r494459 = z;
double r494460 = r494458 * r494459;
double r494461 = t;
double r494462 = r494460 * r494461;
double r494463 = r494455 - r494462;
double r494464 = a;
double r494465 = 27.0;
double r494466 = r494464 * r494465;
double r494467 = b;
double r494468 = r494466 * r494467;
double r494469 = r494463 + r494468;
return r494469;
}
double f(double x, double y, double z, double t, double a, double b) {
double r494470 = y;
double r494471 = 9.0;
double r494472 = r494470 * r494471;
double r494473 = z;
double r494474 = r494472 * r494473;
double r494475 = t;
double r494476 = r494474 * r494475;
double r494477 = -inf.0;
bool r494478 = r494476 <= r494477;
double r494479 = x;
double r494480 = 2.0;
double r494481 = r494479 * r494480;
double r494482 = r494475 * r494473;
double r494483 = r494472 * r494482;
double r494484 = r494481 - r494483;
double r494485 = 27.0;
double r494486 = a;
double r494487 = b;
double r494488 = r494486 * r494487;
double r494489 = r494485 * r494488;
double r494490 = r494484 + r494489;
double r494491 = 1.4378372018005537e+298;
bool r494492 = r494476 <= r494491;
double r494493 = r494481 - r494476;
double r494494 = r494485 * r494487;
double r494495 = r494486 * r494494;
double r494496 = r494493 + r494495;
double r494497 = r494472 * r494475;
double r494498 = r494497 * r494473;
double r494499 = r494481 - r494498;
double r494500 = r494486 * r494485;
double r494501 = r494500 * r494487;
double r494502 = r494499 + r494501;
double r494503 = r494492 ? r494496 : r494502;
double r494504 = r494478 ? r494490 : r494503;
return r494504;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 4.0 |
|---|---|
| Target | 2.7 |
| Herbie | 0.6 |
if (* (* (* y 9.0) z) t) < -inf.0Initial program 64.0
rmApplied associate-*l*1.9
Simplified1.9
Taylor expanded around 0 1.9
if -inf.0 < (* (* (* y 9.0) z) t) < 1.4378372018005537e+298Initial program 0.5
rmApplied associate-*l*0.5
if 1.4378372018005537e+298 < (* (* (* y 9.0) z) t) Initial program 56.6
rmApplied associate-*l*3.3
Simplified3.3
rmApplied associate-*r*2.4
Final simplification0.6
herbie shell --seed 2019322
(FPCore (x y z t a b)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, A"
:precision binary64
:herbie-target
(if (< y 7.590524218811189e-161) (+ (- (* x 2) (* (* (* y 9) z) t)) (* a (* 27 b))) (+ (- (* x 2) (* 9 (* y (* t z)))) (* (* a 27) b)))
(+ (- (* x 2) (* (* (* y 9) z) t)) (* (* a 27) b)))