\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)
\begin{array}{l}
\mathbf{if}\;a \le -6.57397152397334623 \cdot 10^{81} \lor \neg \left(a \le 3.24175772778120092 \cdot 10^{143}\right):\\
\;\;\;\;\mathsf{fma}\left(a, i \cdot b, -\mathsf{fma}\left(z, b \cdot c, a \cdot \left(x \cdot t\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(c \cdot t - i \cdot y, j, \left(x \cdot \left(\sqrt[3]{y \cdot z - t \cdot a} \cdot \sqrt[3]{y \cdot z - t \cdot a}\right)\right) \cdot \sqrt[3]{y \cdot z - t \cdot a} - b \cdot \left(c \cdot z - i \cdot a\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 r103583 = x;
double r103584 = y;
double r103585 = z;
double r103586 = r103584 * r103585;
double r103587 = t;
double r103588 = a;
double r103589 = r103587 * r103588;
double r103590 = r103586 - r103589;
double r103591 = r103583 * r103590;
double r103592 = b;
double r103593 = c;
double r103594 = r103593 * r103585;
double r103595 = i;
double r103596 = r103595 * r103588;
double r103597 = r103594 - r103596;
double r103598 = r103592 * r103597;
double r103599 = r103591 - r103598;
double r103600 = j;
double r103601 = r103593 * r103587;
double r103602 = r103595 * r103584;
double r103603 = r103601 - r103602;
double r103604 = r103600 * r103603;
double r103605 = r103599 + r103604;
return r103605;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r103606 = a;
double r103607 = -6.573971523973346e+81;
bool r103608 = r103606 <= r103607;
double r103609 = 3.241757727781201e+143;
bool r103610 = r103606 <= r103609;
double r103611 = !r103610;
bool r103612 = r103608 || r103611;
double r103613 = i;
double r103614 = b;
double r103615 = r103613 * r103614;
double r103616 = z;
double r103617 = c;
double r103618 = r103614 * r103617;
double r103619 = x;
double r103620 = t;
double r103621 = r103619 * r103620;
double r103622 = r103606 * r103621;
double r103623 = fma(r103616, r103618, r103622);
double r103624 = -r103623;
double r103625 = fma(r103606, r103615, r103624);
double r103626 = r103617 * r103620;
double r103627 = y;
double r103628 = r103613 * r103627;
double r103629 = r103626 - r103628;
double r103630 = j;
double r103631 = r103627 * r103616;
double r103632 = r103620 * r103606;
double r103633 = r103631 - r103632;
double r103634 = cbrt(r103633);
double r103635 = r103634 * r103634;
double r103636 = r103619 * r103635;
double r103637 = r103636 * r103634;
double r103638 = r103617 * r103616;
double r103639 = r103613 * r103606;
double r103640 = r103638 - r103639;
double r103641 = r103614 * r103640;
double r103642 = r103637 - r103641;
double r103643 = fma(r103629, r103630, r103642);
double r103644 = r103612 ? r103625 : r103643;
return r103644;
}



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
if a < -6.573971523973346e+81 or 3.241757727781201e+143 < a Initial program 20.9
Simplified20.9
Taylor expanded around inf 22.2
Simplified22.2
if -6.573971523973346e+81 < a < 3.241757727781201e+143Initial program 9.6
Simplified9.6
rmApplied add-cube-cbrt9.9
Applied associate-*r*9.9
Final simplification12.6
herbie shell --seed 2020100 +o rules:numerics
(FPCore (x y z t a b c i j)
:name "Linear.Matrix:det33 from linear-1.19.1.3"
:precision binary64
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))