\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 -1.3170221203399503 \cdot 10^{-225}:\\
\;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(\mathsf{fma}\left(\sqrt[3]{i} \cdot \sqrt[3]{i}, \sqrt[3]{i} \cdot a, -c \cdot z\right), b, \mathsf{fma}\left(y, z, -t \cdot a\right) \cdot x\right)\right)\\
\mathbf{elif}\;b \le 2.9257973134496947 \cdot 10^{-167}:\\
\;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \left(x \cdot z\right) \cdot y - \mathsf{fma}\left(z, c \cdot b, \left(t \cdot a\right) \cdot x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(t \cdot c - y \cdot i, j, \mathsf{fma}\left(a \cdot i - c \cdot z, b, \left(z \cdot y\right) \cdot x - a \cdot \left(t \cdot x\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 r4278954 = x;
double r4278955 = y;
double r4278956 = z;
double r4278957 = r4278955 * r4278956;
double r4278958 = t;
double r4278959 = a;
double r4278960 = r4278958 * r4278959;
double r4278961 = r4278957 - r4278960;
double r4278962 = r4278954 * r4278961;
double r4278963 = b;
double r4278964 = c;
double r4278965 = r4278964 * r4278956;
double r4278966 = i;
double r4278967 = r4278966 * r4278959;
double r4278968 = r4278965 - r4278967;
double r4278969 = r4278963 * r4278968;
double r4278970 = r4278962 - r4278969;
double r4278971 = j;
double r4278972 = r4278964 * r4278958;
double r4278973 = r4278966 * r4278955;
double r4278974 = r4278972 - r4278973;
double r4278975 = r4278971 * r4278974;
double r4278976 = r4278970 + r4278975;
return r4278976;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r4278977 = b;
double r4278978 = -1.3170221203399503e-225;
bool r4278979 = r4278977 <= r4278978;
double r4278980 = t;
double r4278981 = c;
double r4278982 = r4278980 * r4278981;
double r4278983 = y;
double r4278984 = i;
double r4278985 = r4278983 * r4278984;
double r4278986 = r4278982 - r4278985;
double r4278987 = j;
double r4278988 = cbrt(r4278984);
double r4278989 = r4278988 * r4278988;
double r4278990 = a;
double r4278991 = r4278988 * r4278990;
double r4278992 = z;
double r4278993 = r4278981 * r4278992;
double r4278994 = -r4278993;
double r4278995 = fma(r4278989, r4278991, r4278994);
double r4278996 = r4278980 * r4278990;
double r4278997 = -r4278996;
double r4278998 = fma(r4278983, r4278992, r4278997);
double r4278999 = x;
double r4279000 = r4278998 * r4278999;
double r4279001 = fma(r4278995, r4278977, r4279000);
double r4279002 = fma(r4278986, r4278987, r4279001);
double r4279003 = 2.9257973134496947e-167;
bool r4279004 = r4278977 <= r4279003;
double r4279005 = r4278999 * r4278992;
double r4279006 = r4279005 * r4278983;
double r4279007 = r4278981 * r4278977;
double r4279008 = r4278996 * r4278999;
double r4279009 = fma(r4278992, r4279007, r4279008);
double r4279010 = r4279006 - r4279009;
double r4279011 = fma(r4278986, r4278987, r4279010);
double r4279012 = r4278990 * r4278984;
double r4279013 = r4279012 - r4278993;
double r4279014 = r4278992 * r4278983;
double r4279015 = r4279014 * r4278999;
double r4279016 = r4278980 * r4278999;
double r4279017 = r4278990 * r4279016;
double r4279018 = r4279015 - r4279017;
double r4279019 = fma(r4279013, r4278977, r4279018);
double r4279020 = fma(r4278986, r4278987, r4279019);
double r4279021 = r4279004 ? r4279011 : r4279020;
double r4279022 = r4278979 ? r4279002 : r4279021;
return r4279022;
}



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 < -1.3170221203399503e-225Initial program 10.3
Simplified10.3
rmApplied *-commutative10.3
Applied fma-neg10.3
rmApplied add-cube-cbrt10.5
Applied associate-*l*10.5
Applied fma-neg10.5
if -1.3170221203399503e-225 < b < 2.9257973134496947e-167Initial program 15.1
Simplified15.1
Taylor expanded around inf 13.8
Simplified13.2
if 2.9257973134496947e-167 < b Initial program 9.8
Simplified9.8
Taylor expanded around inf 10.4
Final simplification11.1
herbie shell --seed 2019158 +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)))))