\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}\;b \le -3.388397820042072 \cdot 10^{-90}:\\
\;\;\;\;\sqrt[3]{\mathsf{fma}\left(z \cdot y - a \cdot t, x, \sqrt[3]{\mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)} \cdot \sqrt[3]{\mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)}\right)\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(z \cdot y - a \cdot t, x, \mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(z \cdot y - a \cdot t, x, \mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)\right)}\right)\\
\mathbf{elif}\;b \le 8.771814504689122 \cdot 10^{-152}:\\
\;\;\;\;\mathsf{fma}\left(z \cdot y - a \cdot t, x, c \cdot \left(t \cdot j - z \cdot b\right) - \left(i \cdot y\right) \cdot j\right)\\
\mathbf{else}:\\
\;\;\;\;\sqrt[3]{\mathsf{fma}\left(z \cdot y - a \cdot t, x, \sqrt[3]{\mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)} \cdot \sqrt[3]{\mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)}\right)\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(z \cdot y - a \cdot t, x, \mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(z \cdot y - a \cdot t, x, \mathsf{fma}\left(b, i \cdot a - z \cdot c, \mathsf{fma}\left(t, c, -i \cdot y\right) \cdot j\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 r3916588 = x;
double r3916589 = y;
double r3916590 = z;
double r3916591 = r3916589 * r3916590;
double r3916592 = t;
double r3916593 = a;
double r3916594 = r3916592 * r3916593;
double r3916595 = r3916591 - r3916594;
double r3916596 = r3916588 * r3916595;
double r3916597 = b;
double r3916598 = c;
double r3916599 = r3916598 * r3916590;
double r3916600 = i;
double r3916601 = r3916600 * r3916593;
double r3916602 = r3916599 - r3916601;
double r3916603 = r3916597 * r3916602;
double r3916604 = r3916596 - r3916603;
double r3916605 = j;
double r3916606 = r3916598 * r3916592;
double r3916607 = r3916600 * r3916589;
double r3916608 = r3916606 - r3916607;
double r3916609 = r3916605 * r3916608;
double r3916610 = r3916604 + r3916609;
return r3916610;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r3916611 = b;
double r3916612 = -3.388397820042072e-90;
bool r3916613 = r3916611 <= r3916612;
double r3916614 = z;
double r3916615 = y;
double r3916616 = r3916614 * r3916615;
double r3916617 = a;
double r3916618 = t;
double r3916619 = r3916617 * r3916618;
double r3916620 = r3916616 - r3916619;
double r3916621 = x;
double r3916622 = i;
double r3916623 = r3916622 * r3916617;
double r3916624 = c;
double r3916625 = r3916614 * r3916624;
double r3916626 = r3916623 - r3916625;
double r3916627 = r3916622 * r3916615;
double r3916628 = -r3916627;
double r3916629 = fma(r3916618, r3916624, r3916628);
double r3916630 = j;
double r3916631 = r3916629 * r3916630;
double r3916632 = fma(r3916611, r3916626, r3916631);
double r3916633 = cbrt(r3916632);
double r3916634 = r3916633 * r3916633;
double r3916635 = r3916633 * r3916634;
double r3916636 = fma(r3916620, r3916621, r3916635);
double r3916637 = cbrt(r3916636);
double r3916638 = fma(r3916620, r3916621, r3916632);
double r3916639 = cbrt(r3916638);
double r3916640 = r3916639 * r3916639;
double r3916641 = r3916637 * r3916640;
double r3916642 = 8.771814504689122e-152;
bool r3916643 = r3916611 <= r3916642;
double r3916644 = r3916618 * r3916630;
double r3916645 = r3916614 * r3916611;
double r3916646 = r3916644 - r3916645;
double r3916647 = r3916624 * r3916646;
double r3916648 = r3916627 * r3916630;
double r3916649 = r3916647 - r3916648;
double r3916650 = fma(r3916620, r3916621, r3916649);
double r3916651 = r3916643 ? r3916650 : r3916641;
double r3916652 = r3916613 ? r3916641 : r3916651;
return r3916652;
}



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 b < -3.388397820042072e-90 or 8.771814504689122e-152 < b Initial program 9.3
Simplified9.3
rmApplied fma-neg9.3
rmApplied add-cube-cbrt10.2
rmApplied add-cube-cbrt10.2
if -3.388397820042072e-90 < b < 8.771814504689122e-152Initial program 15.5
Simplified15.5
Taylor expanded around -inf 13.9
Simplified12.9
Final simplification11.3
herbie shell --seed 2019144 +o rules:numerics
(FPCore (x y z t a b c i j)
:name "Linear.Matrix:det33 from linear-1.19.1.3"
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))