\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k
\begin{array}{l}
\mathbf{if}\;t \le -2.35973034078404779 \cdot 10^{-109}:\\
\;\;\;\;\mathsf{fma}\left(t, \left(z \cdot y\right) \cdot \left(x \cdot 18\right) - a \cdot 4, \mathsf{fma}\left(b, c, -\mathsf{fma}\left(x, 4 \cdot i, j \cdot \left(27 \cdot k\right)\right)\right)\right)\\
\mathbf{elif}\;t \le 6.2161625191812012 \cdot 10^{-206}:\\
\;\;\;\;\mathsf{fma}\left(t, 0 - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, j \cdot \left(27 \cdot k\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(t, \left(\left(\left(x \cdot 18\right) \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right)\right) \cdot \sqrt[3]{y}\right) \cdot z - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, j \cdot \left(27 \cdot k\right)\right)\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r185561 = x;
double r185562 = 18.0;
double r185563 = r185561 * r185562;
double r185564 = y;
double r185565 = r185563 * r185564;
double r185566 = z;
double r185567 = r185565 * r185566;
double r185568 = t;
double r185569 = r185567 * r185568;
double r185570 = a;
double r185571 = 4.0;
double r185572 = r185570 * r185571;
double r185573 = r185572 * r185568;
double r185574 = r185569 - r185573;
double r185575 = b;
double r185576 = c;
double r185577 = r185575 * r185576;
double r185578 = r185574 + r185577;
double r185579 = r185561 * r185571;
double r185580 = i;
double r185581 = r185579 * r185580;
double r185582 = r185578 - r185581;
double r185583 = j;
double r185584 = 27.0;
double r185585 = r185583 * r185584;
double r185586 = k;
double r185587 = r185585 * r185586;
double r185588 = r185582 - r185587;
return r185588;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r185589 = t;
double r185590 = -2.359730340784048e-109;
bool r185591 = r185589 <= r185590;
double r185592 = z;
double r185593 = y;
double r185594 = r185592 * r185593;
double r185595 = x;
double r185596 = 18.0;
double r185597 = r185595 * r185596;
double r185598 = r185594 * r185597;
double r185599 = a;
double r185600 = 4.0;
double r185601 = r185599 * r185600;
double r185602 = r185598 - r185601;
double r185603 = b;
double r185604 = c;
double r185605 = i;
double r185606 = r185600 * r185605;
double r185607 = j;
double r185608 = 27.0;
double r185609 = k;
double r185610 = r185608 * r185609;
double r185611 = r185607 * r185610;
double r185612 = fma(r185595, r185606, r185611);
double r185613 = -r185612;
double r185614 = fma(r185603, r185604, r185613);
double r185615 = fma(r185589, r185602, r185614);
double r185616 = 6.216162519181201e-206;
bool r185617 = r185589 <= r185616;
double r185618 = 0.0;
double r185619 = r185618 - r185601;
double r185620 = r185603 * r185604;
double r185621 = r185620 - r185612;
double r185622 = fma(r185589, r185619, r185621);
double r185623 = cbrt(r185593);
double r185624 = r185623 * r185623;
double r185625 = r185597 * r185624;
double r185626 = r185625 * r185623;
double r185627 = r185626 * r185592;
double r185628 = r185627 - r185601;
double r185629 = fma(r185589, r185628, r185621);
double r185630 = r185617 ? r185622 : r185629;
double r185631 = r185591 ? r185615 : r185630;
return r185631;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b



Bits error versus c



Bits error versus i



Bits error versus j



Bits error versus k
if t < -2.359730340784048e-109Initial program 3.2
Simplified3.3
rmApplied associate-*l*3.4
rmApplied add-cube-cbrt3.5
Applied associate-*r*3.5
Taylor expanded around inf 3.4
Simplified3.4
rmApplied fma-neg3.4
if -2.359730340784048e-109 < t < 6.216162519181201e-206Initial program 9.6
Simplified9.6
rmApplied associate-*l*9.7
Taylor expanded around 0 6.2
if 6.216162519181201e-206 < t Initial program 4.2
Simplified4.2
rmApplied associate-*l*4.3
rmApplied add-cube-cbrt4.4
Applied associate-*r*4.4
Final simplification4.7
herbie shell --seed 2020035 +o rules:numerics
(FPCore (x y z t a b c i j k)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1"
:precision binary64
(- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))