\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)
\begin{array}{l}
\mathbf{if}\;y2 \le -2.3176335415847983 \cdot 10^{-51}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c\right) + \left(\left(x \cdot y2 - z \cdot y3\right) \cdot y1\right) \cdot \left(-a\right)\right)\right) + 0\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y2 \le 1.6782448483270171 \cdot 10^{-308}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(\left(\left(x \cdot y2 - z \cdot y3\right) \cdot y0\right) \cdot c + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(-y1 \cdot a\right)\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y2 \le 3.3251422287170299 \cdot 10^{-80}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(k \cdot \left(i \cdot \left(z \cdot y1\right)\right) - \left(i \cdot \left(j \cdot \left(y1 \cdot x\right)\right) + y0 \cdot \left(z \cdot \left(k \cdot b\right)\right)\right)\right)\right) + \left(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c\right) + \left(\left(x \cdot y2 - z \cdot y3\right) \cdot y1\right) \cdot \left(-a\right)\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(-y1 \cdot a\right)\right)\right) + \left(\left(t \cdot j - y \cdot k\right) \cdot \left(\sqrt[3]{y4 \cdot b - y5 \cdot i} \cdot \sqrt[3]{y4 \cdot b - y5 \cdot i}\right)\right) \cdot \sqrt[3]{y4 \cdot b - y5 \cdot i}\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\end{array}double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
return ((((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((x * y2) - (z * y3)) * ((y0 * c) - (y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0))));
}
double code(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
double temp;
if ((y2 <= -2.3176335415847983e-51)) {
temp = ((((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + ((((x * y2) - (z * y3)) * (y0 * c)) + ((((x * y2) - (z * y3)) * y1) * -a))) + 0.0) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0))));
} else {
double temp_1;
if ((y2 <= 1.678244848327017e-308)) {
temp_1 = ((((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + (((((x * y2) - (z * y3)) * y0) * c) + (((x * y2) - (z * y3)) * -(y1 * a)))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0))));
} else {
double temp_2;
if ((y2 <= 3.32514222871703e-80)) {
temp_2 = ((((((((x * y) - (z * t)) * ((a * b) - (c * i))) - ((k * (i * (z * y1))) - ((i * (j * (y1 * x))) + (y0 * (z * (k * b)))))) + ((((x * y2) - (z * y3)) * (y0 * c)) + ((((x * y2) - (z * y3)) * y1) * -a))) + (((t * j) - (y * k)) * ((y4 * b) - (y5 * i)))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0))));
} else {
temp_2 = ((((((((x * y) - (z * t)) * ((a * b) - (c * i))) - (((x * j) - (z * k)) * ((y0 * b) - (y1 * i)))) + ((((x * y2) - (z * y3)) * (y0 * c)) + (((x * y2) - (z * y3)) * -(y1 * a)))) + ((((t * j) - (y * k)) * (cbrt(((y4 * b) - (y5 * i))) * cbrt(((y4 * b) - (y5 * i))))) * cbrt(((y4 * b) - (y5 * i))))) - (((t * y2) - (y * y3)) * ((y4 * c) - (y5 * a)))) + (((k * y2) - (j * y3)) * ((y4 * y1) - (y5 * y0))));
}
temp_1 = temp_2;
}
temp = temp_1;
}
return temp;
}



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



Bits error versus y0



Bits error versus y1



Bits error versus y2



Bits error versus y3



Bits error versus y4



Bits error versus y5
Results
if y2 < -2.3176335415847983e-51Initial program 27.2
rmApplied sub-neg27.2
Applied distribute-lft-in27.2
rmApplied distribute-rgt-neg-in27.2
Applied associate-*r*27.9
Taylor expanded around 0 30.6
if -2.3176335415847983e-51 < y2 < 1.678244848327017e-308Initial program 25.5
rmApplied sub-neg25.5
Applied distribute-lft-in25.5
rmApplied associate-*r*25.1
if 1.678244848327017e-308 < y2 < 3.32514222871703e-80Initial program 25.5
rmApplied sub-neg25.5
Applied distribute-lft-in25.5
rmApplied distribute-rgt-neg-in25.5
Applied associate-*r*25.7
Taylor expanded around inf 28.6
if 3.32514222871703e-80 < y2 Initial program 27.1
rmApplied sub-neg27.1
Applied distribute-lft-in27.1
rmApplied add-cube-cbrt27.2
Applied associate-*r*27.2
Final simplification27.7
herbie shell --seed 2020066
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:name "Linear.Matrix:det44 from linear-1.19.1.3"
:precision binary64
(+ (- (+ (+ (- (* (- (* x y) (* z t)) (- (* a b) (* c i))) (* (- (* x j) (* z k)) (- (* y0 b) (* y1 i)))) (* (- (* x y2) (* z y3)) (- (* y0 c) (* y1 a)))) (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i)))) (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a)))) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))