\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}\;y4 \leq -2.2758267721941825 \cdot 10^{+67}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) + \left(\left(j \cdot \left(i \cdot \left(x \cdot y1\right)\right) + z \cdot \left(\left(b \cdot k\right) \cdot y0\right)\right) - k \cdot \left(z \cdot \left(i \cdot y1\right)\right)\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(c \cdot y0 - a \cdot y1\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - i \cdot y5\right)\right) + \left(t \cdot y2 - y \cdot y3\right) \cdot \left(a \cdot y5 - y4 \cdot c\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\right)\\
\mathbf{elif}\;y4 \leq -7.620746606333377 \cdot 10^{-61}:\\
\;\;\;\;\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\right) + \left(\left(\left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - i \cdot y5\right) + \left(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(c \cdot y0 - a \cdot y1\right) + \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(i \cdot y1 - b \cdot y0\right)\right)\right)\right) + \left(y5 \cdot \left(a \cdot \left(t \cdot y2 - y \cdot y3\right)\right) + c \cdot \left(y4 \cdot \left(y \cdot y3 - t \cdot y2\right)\right)\right)\right)\\
\mathbf{elif}\;y4 \leq -7.858119179104603 \cdot 10^{-193}:\\
\;\;\;\;\left(\left(\left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - i \cdot y5\right) + \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(i \cdot y1 - b \cdot y0\right)\right) + \left(z \cdot \left(a \cdot \left(y1 \cdot y3\right) - y0 \cdot \left(c \cdot y3\right)\right) - x \cdot \left(a \cdot \left(y1 \cdot y2\right)\right)\right)\right)\right) + \left(t \cdot y2 - y \cdot y3\right) \cdot \left(a \cdot y5 - y4 \cdot c\right)\right) + \sqrt[3]{\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\right)} \cdot \left(\sqrt[3]{\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\right)} \cdot \sqrt[3]{\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\right)}\right)\\
\mathbf{elif}\;y4 \leq -1.1996019517981854 \cdot 10^{-240}:\\
\;\;\;\;\left(\left(\left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - i \cdot y5\right) + \left(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(c \cdot y0 - a \cdot y1\right) + \left(\left(a \cdot \left(\left(x \cdot y - z \cdot t\right) \cdot b\right) + c \cdot \left(i \cdot \left(z \cdot t - x \cdot y\right)\right)\right) + \left(x \cdot j - z \cdot k\right) \cdot \left(i \cdot y1 - b \cdot y0\right)\right)\right)\right) + \left(t \cdot y2 - y \cdot y3\right) \cdot \left(a \cdot y5 - y4 \cdot c\right)\right) + \sqrt[3]{y4 \cdot y1 - y0 \cdot y5} \cdot \left(\left(k \cdot y2 - j \cdot y3\right) \cdot \left(\sqrt[3]{y4 \cdot y1 - y0 \cdot y5} \cdot \sqrt[3]{y4 \cdot y1 - y0 \cdot y5}\right)\right)\\
\mathbf{elif}\;y4 \leq 8.204752686724832 \cdot 10^{-249}:\\
\;\;\;\;\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\right) + \left(\left(\left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - i \cdot y5\right) + \left(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(c \cdot y0 - a \cdot y1\right) + \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(i \cdot y1 - b \cdot y0\right)\right)\right)\right) + \left(y5 \cdot \left(a \cdot \left(t \cdot y2 - y \cdot y3\right)\right) + c \cdot \left(y4 \cdot \left(y \cdot y3 - t \cdot y2\right)\right)\right)\right)\\
\mathbf{elif}\;y4 \leq 4.834660023196514 \cdot 10^{+30}:\\
\;\;\;\;\left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\right) + \left(\left(\left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - i \cdot y5\right) + \left(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(c \cdot y0 - a \cdot y1\right) + \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(i \cdot y1 - b \cdot y0\right)\right)\right)\right) + \left(\left(y3 \cdot \left(y \cdot \left(y4 \cdot c\right)\right) + a \cdot \left(y5 \cdot \left(t \cdot y2\right)\right)\right) - y3 \cdot \left(a \cdot \left(y \cdot y5\right)\right)\right)\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(\left(j \cdot \left(i \cdot \left(x \cdot y1\right)\right) + z \cdot \left(\left(b \cdot k\right) \cdot y0\right)\right) - k \cdot \left(z \cdot \left(i \cdot y1\right)\right)\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(c \cdot y0 - a \cdot y1\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - i \cdot y5\right)\right) + \left(t \cdot y2 - y \cdot y3\right) \cdot \left(a \cdot y5 - y4 \cdot c\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y0 \cdot y5\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 ((y4 <= -2.2758267721941825e+67)) {
VAR = ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (x * y)) - ((double) (z * t)))) * ((double) (((double) (a * b)) - ((double) (c * i)))))) + ((double) (((double) (((double) (j * ((double) (i * ((double) (x * y1)))))) + ((double) (z * ((double) (((double) (b * k)) * y0)))))) - ((double) (k * ((double) (z * ((double) (i * y1)))))))))) + ((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (c * y0)) - ((double) (a * y1)))))))) + ((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (i * y5)))))))) + ((double) (((double) (((double) (t * y2)) - ((double) (y * y3)))) * ((double) (((double) (a * y5)) - ((double) (y4 * c)))))))) + ((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y0 * y5))))))));
} else {
double VAR_1;
if ((y4 <= -7.620746606333377e-61)) {
VAR_1 = ((double) (((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y0 * y5)))))) + ((double) (((double) (((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (i * y5)))))) + ((double) (((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (c * y0)) - ((double) (a * y1)))))) + ((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) (i * y1)) - ((double) (b * y0)))))))))))) + ((double) (((double) (y5 * ((double) (a * ((double) (((double) (t * y2)) - ((double) (y * y3)))))))) + ((double) (c * ((double) (y4 * ((double) (((double) (y * y3)) - ((double) (t * y2))))))))))))));
} else {
double VAR_2;
if ((y4 <= -7.858119179104603e-193)) {
VAR_2 = ((double) (((double) (((double) (((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (i * y5)))))) + ((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) (i * y1)) - ((double) (b * y0)))))))) + ((double) (((double) (z * ((double) (((double) (a * ((double) (y1 * y3)))) - ((double) (y0 * ((double) (c * y3)))))))) - ((double) (x * ((double) (a * ((double) (y1 * y2)))))))))))) + ((double) (((double) (((double) (t * y2)) - ((double) (y * y3)))) * ((double) (((double) (a * y5)) - ((double) (y4 * c)))))))) + ((double) (((double) cbrt(((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y0 * y5)))))))) * ((double) (((double) cbrt(((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y0 * y5)))))))) * ((double) cbrt(((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y0 * y5))))))))))))));
} else {
double VAR_3;
if ((y4 <= -1.1996019517981854e-240)) {
VAR_3 = ((double) (((double) (((double) (((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (i * y5)))))) + ((double) (((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (c * y0)) - ((double) (a * y1)))))) + ((double) (((double) (((double) (a * ((double) (((double) (((double) (x * y)) - ((double) (z * t)))) * b)))) + ((double) (c * ((double) (i * ((double) (((double) (z * t)) - ((double) (x * y)))))))))) + ((double) (((double) (((double) (x * j)) - ((double) (z * k)))) * ((double) (((double) (i * y1)) - ((double) (b * y0)))))))))))) + ((double) (((double) (((double) (t * y2)) - ((double) (y * y3)))) * ((double) (((double) (a * y5)) - ((double) (y4 * c)))))))) + ((double) (((double) cbrt(((double) (((double) (y4 * y1)) - ((double) (y0 * y5)))))) * ((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) cbrt(((double) (((double) (y4 * y1)) - ((double) (y0 * y5)))))) * ((double) cbrt(((double) (((double) (y4 * y1)) - ((double) (y0 * y5))))))))))))));
} else {
double VAR_4;
if ((y4 <= 8.204752686724832e-249)) {
VAR_4 = ((double) (((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y0 * y5)))))) + ((double) (((double) (((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (i * y5)))))) + ((double) (((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (c * y0)) - ((double) (a * y1)))))) + ((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) (i * y1)) - ((double) (b * y0)))))))))))) + ((double) (((double) (y5 * ((double) (a * ((double) (((double) (t * y2)) - ((double) (y * y3)))))))) + ((double) (c * ((double) (y4 * ((double) (((double) (y * y3)) - ((double) (t * y2))))))))))))));
} else {
double VAR_5;
if ((y4 <= 4.834660023196514e+30)) {
VAR_5 = ((double) (((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y0 * y5)))))) + ((double) (((double) (((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (i * y5)))))) + ((double) (((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (c * y0)) - ((double) (a * y1)))))) + ((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) (i * y1)) - ((double) (b * y0)))))))))))) + ((double) (((double) (((double) (y3 * ((double) (y * ((double) (y4 * c)))))) + ((double) (a * ((double) (y5 * ((double) (t * y2)))))))) - ((double) (y3 * ((double) (a * ((double) (y * y5))))))))))));
} else {
VAR_5 = ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (x * y)) - ((double) (z * t)))) * ((double) (((double) (a * b)) - ((double) (c * i)))))) + ((double) (((double) (((double) (j * ((double) (i * ((double) (x * y1)))))) + ((double) (z * ((double) (((double) (b * k)) * y0)))))) - ((double) (k * ((double) (z * ((double) (i * y1)))))))))) + ((double) (((double) (((double) (x * y2)) - ((double) (z * y3)))) * ((double) (((double) (c * y0)) - ((double) (a * y1)))))))) + ((double) (((double) (((double) (t * j)) - ((double) (y * k)))) * ((double) (((double) (y4 * b)) - ((double) (i * y5)))))))) + ((double) (((double) (((double) (t * y2)) - ((double) (y * y3)))) * ((double) (((double) (a * y5)) - ((double) (y4 * c)))))))) + ((double) (((double) (((double) (k * y2)) - ((double) (j * y3)))) * ((double) (((double) (y4 * y1)) - ((double) (y0 * y5))))))));
}
VAR_4 = VAR_5;
}
VAR_3 = VAR_4;
}
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
| Original | 26.9 |
|---|---|
| Target | 30.5 |
| Herbie | 28.2 |
if y4 < -2.2758267721941825e67 or 4.83466002319651388e30 < y4 Initial program 30.1
Taylor expanded around inf 31.3
Simplified31.5
if -2.2758267721941825e67 < y4 < -7.6207466063333771e-61 or -1.1996019517981854e-240 < y4 < 8.2047526867248317e-249Initial program 25.5
rmApplied sub-neg25.5
Applied distribute-lft-in25.5
Simplified25.5
Simplified25.6
if -7.6207466063333771e-61 < y4 < -7.8581191791046033e-193Initial program 26.0
rmApplied add-cube-cbrt26.1
Simplified26.1
Simplified26.1
Taylor expanded around inf 29.4
Simplified28.8
if -7.8581191791046033e-193 < y4 < -1.1996019517981854e-240Initial program 26.7
rmApplied add-cube-cbrt26.8
Applied associate-*r*26.8
Simplified26.8
rmApplied sub-neg26.8
Applied distribute-lft-in26.8
Simplified27.1
Simplified27.8
if 8.2047526867248317e-249 < y4 < 4.83466002319651388e30Initial program 25.8
Taylor expanded around inf 28.0
Simplified27.4
Final simplification28.2
herbie shell --seed 2020199
(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
:herbie-target
(if (< y4 -7.206256231996481e+60) (- (- (* (- (* b a) (* i c)) (- (* y x) (* t z))) (- (* (- (* j x) (* k z)) (- (* y0 b) (* i y1))) (* (- (* j t) (* k y)) (- (* y4 b) (* y5 i))))) (- (/ (- (* y2 t) (* y3 y)) (/ 1.0 (- (* y4 c) (* y5 a)))) (* (- (* y2 k) (* y3 j)) (- (* y4 y1) (* y5 y0))))) (if (< y4 -3.364603505246317e-66) (+ (- (- (- (* (* t c) (* i z)) (* (* a t) (* b z))) (* (* y c) (* i x))) (* (- (* b y0) (* i y1)) (- (* j x) (* k z)))) (- (* (- (* y0 c) (* a y1)) (- (* x y2) (* z y3))) (- (* (- (* t y2) (* y y3)) (- (* y4 c) (* a y5))) (* (- (* y1 y4) (* y5 y0)) (- (* k y2) (* j y3)))))) (if (< y4 -1.2000065055686116e-105) (+ (+ (- (* (- (* j t) (* k y)) (- (* y4 b) (* y5 i))) (* (* y3 y) (- (* y5 a) (* y4 c)))) (+ (* (* y5 a) (* t y2)) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0))))) (- (* (- (* x y2) (* z y3)) (- (* c y0) (* a y1))) (- (* (- (* b y0) (* i y1)) (- (* j x) (* k z))) (* (- (* y x) (* z t)) (- (* b a) (* i c)))))) (if (< y4 6.718963124057495e-279) (+ (- (- (- (* (* k y) (* y5 i)) (* (* y b) (* y4 k))) (* (* y5 t) (* i j))) (- (* (- (* y2 t) (* y3 y)) (- (* y4 c) (* y5 a))) (* (- (* y2 k) (* y3 j)) (- (* y4 y1) (* y5 y0))))) (- (* (- (* b a) (* i c)) (- (* y x) (* t z))) (- (* (- (* j x) (* k z)) (- (* y0 b) (* i y1))) (* (- (* y2 x) (* y3 z)) (- (* c y0) (* y1 a)))))) (if (< y4 4.77962681403792e-222) (+ (+ (- (* (- (* j t) (* k y)) (- (* y4 b) (* y5 i))) (* (* y3 y) (- (* y5 a) (* y4 c)))) (+ (* (* y5 a) (* t y2)) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0))))) (- (* (- (* x y2) (* z y3)) (- (* c y0) (* a y1))) (- (* (- (* b y0) (* i y1)) (- (* j x) (* k z))) (* (- (* y x) (* z t)) (- (* b a) (* i c)))))) (if (< y4 2.2852241541266835e-175) (+ (- (- (- (* (* k y) (* y5 i)) (* (* y b) (* y4 k))) (* (* y5 t) (* i j))) (- (* (- (* y2 t) (* y3 y)) (- (* y4 c) (* y5 a))) (* (- (* y2 k) (* y3 j)) (- (* y4 y1) (* y5 y0))))) (- (* (- (* b a) (* i c)) (- (* y x) (* t z))) (- (* (- (* j x) (* k z)) (- (* y0 b) (* i y1))) (* (- (* y2 x) (* y3 z)) (- (* c y0) (* y1 a)))))) (+ (- (+ (+ (- (* (- (* x y) (* z t)) (- (* a b) (* c i))) (- (* k (* i (* z y1))) (+ (* j (* i (* x y1))) (* y0 (* k (* z b)))))) (- (* z (* y3 (* a y1))) (+ (* y2 (* x (* a y1))) (* y0 (* z (* c y3)))))) (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i)))) (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a)))) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0))))))))))
(+ (- (+ (+ (- (* (- (* 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)))))