\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}\;y3 \le -2.74061130979695651 \cdot 10^{28}:\\
\;\;\;\;\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) + \mathsf{fma}\left(k, i \cdot \left(y \cdot y5\right), -\mathsf{fma}\left(t, i \cdot \left(j \cdot y5\right), k \cdot \left(y4 \cdot \left(y \cdot b\right)\right)\right)\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}\;y3 \le -1.9358983427888362 \cdot 10^{-270}:\\
\;\;\;\;\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) + \mathsf{fma}\left(a, y3 \cdot \left(y1 \cdot z\right), -\mathsf{fma}\left(y0, z \cdot \left(y3 \cdot c\right), a \cdot \left(x \cdot \left(y2 \cdot y1\right)\right)\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}\;y3 \le -1.8933013525477929 \cdot 10^{-271}:\\
\;\;\;\;\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) + \mathsf{fma}\left(k, i \cdot \left(y \cdot y5\right), -\mathsf{fma}\left(t, i \cdot \left(j \cdot y5\right), k \cdot \left(y4 \cdot \left(y \cdot b\right)\right)\right)\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}\;y3 \le 1.37149318421121388 \cdot 10^{-184}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \mathsf{fma}\left(k, i \cdot \left(z \cdot y1\right), -\mathsf{fma}\left(i, j \cdot \left(y1 \cdot x\right), y0 \cdot \left(z \cdot \left(k \cdot b\right)\right)\right)\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)\\
\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(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) - \mathsf{fma}\left(a, y3 \cdot \left(y \cdot y5\right), -\mathsf{fma}\left(y, y3 \cdot \left(y4 \cdot c\right), y5 \cdot \left(a \cdot \left(y2 \cdot t\right)\right)\right)\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 ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (x * y)) - ((double) (z * t)))) * ((double) (((double) (a * b)) - ((double) (c * i)))))) - ((double) (((double) (((double) (x * j)) - ((double) (z * k)))) * ((double) (((double) (y0 * b)) - ((double) (y1 * i)))))))) + ((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (y0 * c)) - ((double) (y1 * a)))))))) + ((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (y5 * i)))))))) - ((double) (((double) (((double) (t * y2)) - ((double) (y * y3)))) * ((double) (((double) (y4 * c)) - ((double) (y5 * a)))))))) + ((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (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 VAR;
if ((y3 <= -2.7406113097969565e+28)) {
VAR = ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (x * y)) - ((double) (z * t)))) * ((double) (((double) (a * b)) - ((double) (c * i)))))) - ((double) (((double) (((double) (x * j)) - ((double) (z * k)))) * ((double) (((double) (y0 * b)) - ((double) (y1 * i)))))))) + ((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (y0 * c)) - ((double) (y1 * a)))))))) + ((double) fma(k, ((double) (i * ((double) (y * y5)))), ((double) -(((double) fma(t, ((double) (i * ((double) (j * y5)))), ((double) (k * ((double) (y4 * ((double) (y * b)))))))))))))) - ((double) (((double) (((double) (t * y2)) - ((double) (y * y3)))) * ((double) (((double) (y4 * c)) - ((double) (y5 * a)))))))) + ((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y5 * y0))))))));
} else {
double VAR_1;
if ((y3 <= -1.935898342788836e-270)) {
VAR_1 = ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (x * y)) - ((double) (z * t)))) * ((double) (((double) (a * b)) - ((double) (c * i)))))) - ((double) (((double) (((double) (x * j)) - ((double) (z * k)))) * ((double) (((double) (y0 * b)) - ((double) (y1 * i)))))))) + ((double) fma(a, ((double) (y3 * ((double) (y1 * z)))), ((double) -(((double) fma(y0, ((double) (z * ((double) (y3 * c)))), ((double) (a * ((double) (x * ((double) (y2 * y1)))))))))))))) + ((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (y5 * i)))))))) - ((double) (((double) (((double) (t * y2)) - ((double) (y * y3)))) * ((double) (((double) (y4 * c)) - ((double) (y5 * a)))))))) + ((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y5 * y0))))))));
} else {
double VAR_2;
if ((y3 <= -1.893301352547793e-271)) {
VAR_2 = ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (x * y)) - ((double) (z * t)))) * ((double) (((double) (a * b)) - ((double) (c * i)))))) - ((double) (((double) (((double) (x * j)) - ((double) (z * k)))) * ((double) (((double) (y0 * b)) - ((double) (y1 * i)))))))) + ((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (y0 * c)) - ((double) (y1 * a)))))))) + ((double) fma(k, ((double) (i * ((double) (y * y5)))), ((double) -(((double) fma(t, ((double) (i * ((double) (j * y5)))), ((double) (k * ((double) (y4 * ((double) (y * b)))))))))))))) - ((double) (((double) (((double) (t * y2)) - ((double) (y * y3)))) * ((double) (((double) (y4 * c)) - ((double) (y5 * a)))))))) + ((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y5 * y0))))))));
} else {
double VAR_3;
if ((y3 <= 1.371493184211214e-184)) {
VAR_3 = ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (x * y)) - ((double) (z * t)))) * ((double) (((double) (a * b)) - ((double) (c * i)))))) - ((double) fma(k, ((double) (i * ((double) (z * y1)))), ((double) -(((double) fma(i, ((double) (j * ((double) (y1 * x)))), ((double) (y0 * ((double) (z * ((double) (k * b)))))))))))))) + ((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (y0 * c)) - ((double) (y1 * a)))))))) + ((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (y5 * i)))))))) - ((double) (((double) (((double) (t * y2)) - ((double) (y * y3)))) * ((double) (((double) (y4 * c)) - ((double) (y5 * a)))))))) + ((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y5 * y0))))))));
} else {
VAR_3 = ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (x * y)) - ((double) (z * t)))) * ((double) (((double) (a * b)) - ((double) (c * i)))))) - ((double) (((double) (((double) (x * j)) - ((double) (z * k)))) * ((double) (((double) (y0 * b)) - ((double) (y1 * i)))))))) + ((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (y0 * c)) - ((double) (y1 * a)))))))) + ((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (y5 * i)))))))) - ((double) fma(a, ((double) (y3 * ((double) (y * y5)))), ((double) -(((double) fma(y, ((double) (y3 * ((double) (y4 * c)))), ((double) (y5 * ((double) (a * ((double) (y2 * t)))))))))))))) + ((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y5 * y0))))))));
}
VAR_2 = VAR_3;
}
VAR_1 = VAR_2;
}
VAR = VAR_1;
}
return VAR;
}



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 y3 < -2.7406113097969565e+28 or -1.935898342788836e-270 < y3 < -1.893301352547793e-271Initial program 29.5
Taylor expanded around inf 30.8
Simplified30.8
if -2.7406113097969565e+28 < y3 < -1.935898342788836e-270Initial program 26.7
Taylor expanded around inf 29.3
Simplified29.3
if -1.893301352547793e-271 < y3 < 1.371493184211214e-184Initial program 27.1
Taylor expanded around inf 30.6
Simplified30.6
if 1.371493184211214e-184 < y3 Initial program 26.4
Taylor expanded around inf 29.0
Simplified29.0
Final simplification29.7
herbie shell --seed 2020123 +o rules:numerics
(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)))))