\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(y \cdot 9\right) \cdot z = -\infty:\\
\;\;\;\;\left(2 \cdot x - \left(\left(9 \cdot t\right) \cdot z\right) \cdot y\right) + {\left(27 \cdot \left(a \cdot b\right)\right)}^{1}\\
\mathbf{elif}\;\left(y \cdot 9\right) \cdot z \le 1.02554425151245149 \cdot 10^{166}:\\
\;\;\;\;\left(2 \cdot x - \left(9 \cdot t\right) \cdot \left(z \cdot y\right)\right) + {\left(27 \cdot \left(a \cdot b\right)\right)}^{1}\\
\mathbf{else}:\\
\;\;\;\;\left(x \cdot 2 - \left(y \cdot 9\right) \cdot \left(z \cdot t\right)\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 r796548 = x;
double r796549 = 2.0;
double r796550 = r796548 * r796549;
double r796551 = y;
double r796552 = 9.0;
double r796553 = r796551 * r796552;
double r796554 = z;
double r796555 = r796553 * r796554;
double r796556 = t;
double r796557 = r796555 * r796556;
double r796558 = r796550 - r796557;
double r796559 = a;
double r796560 = 27.0;
double r796561 = r796559 * r796560;
double r796562 = b;
double r796563 = r796561 * r796562;
double r796564 = r796558 + r796563;
return r796564;
}
double f(double x, double y, double z, double t, double a, double b) {
double r796565 = y;
double r796566 = 9.0;
double r796567 = r796565 * r796566;
double r796568 = z;
double r796569 = r796567 * r796568;
double r796570 = -inf.0;
bool r796571 = r796569 <= r796570;
double r796572 = 2.0;
double r796573 = x;
double r796574 = r796572 * r796573;
double r796575 = t;
double r796576 = r796566 * r796575;
double r796577 = r796576 * r796568;
double r796578 = r796577 * r796565;
double r796579 = r796574 - r796578;
double r796580 = 27.0;
double r796581 = a;
double r796582 = b;
double r796583 = r796581 * r796582;
double r796584 = r796580 * r796583;
double r796585 = 1.0;
double r796586 = pow(r796584, r796585);
double r796587 = r796579 + r796586;
double r796588 = 1.0255442515124515e+166;
bool r796589 = r796569 <= r796588;
double r796590 = r796568 * r796565;
double r796591 = r796576 * r796590;
double r796592 = r796574 - r796591;
double r796593 = r796592 + r796586;
double r796594 = r796573 * r796572;
double r796595 = r796568 * r796575;
double r796596 = r796567 * r796595;
double r796597 = r796594 - r796596;
double r796598 = r796581 * r796580;
double r796599 = r796598 * r796582;
double r796600 = r796597 + r796599;
double r796601 = r796589 ? r796593 : r796600;
double r796602 = r796571 ? r796587 : r796601;
return r796602;
}




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 | 3.6 |
|---|---|
| Target | 2.6 |
| Herbie | 0.5 |
if (* (* y 9.0) z) < -inf.0Initial program 64.0
rmApplied pow164.0
Applied pow164.0
Applied pow164.0
Applied pow-prod-down64.0
Applied pow-prod-down64.0
Simplified64.0
Taylor expanded around inf 61.8
rmApplied associate-*r*61.7
rmApplied associate-*r*0.3
if -inf.0 < (* (* y 9.0) z) < 1.0255442515124515e+166Initial program 0.4
rmApplied pow10.4
Applied pow10.4
Applied pow10.4
Applied pow-prod-down0.4
Applied pow-prod-down0.4
Simplified0.4
Taylor expanded around inf 0.4
rmApplied associate-*r*0.5
if 1.0255442515124515e+166 < (* (* y 9.0) z) Initial program 20.4
rmApplied associate-*l*1.3
Final simplification0.5
herbie shell --seed 2020100
(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)))