\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.4610883223292322 \cdot 10^{-185}:\\
\;\;\;\;\left(\left(\left(\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(x \cdot y2 - y3 \cdot z\right) + \left(\left(x \cdot y - t \cdot z\right) \cdot \left(a \cdot b - i \cdot c\right) - \left(i \cdot \left(z \cdot \left(y1 \cdot k\right)\right) - \left(k \cdot \left(\left(y0 \cdot b\right) \cdot z\right) + i \cdot \left(j \cdot \left(x \cdot y1\right)\right)\right)\right)\right)\right) + \left(b \cdot y4 - y5 \cdot i\right) \cdot \left(t \cdot j - y \cdot k\right)\right) - \left(c \cdot y4 - a \cdot y5\right) \cdot \left(t \cdot y2 - y3 \cdot y\right)\right) + \left(y2 \cdot k - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y2 \le 7.593057133489079 \cdot 10^{-63}:\\
\;\;\;\;\left(y2 \cdot k - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right) + \left(\left(\left(b \cdot y4 - y5 \cdot i\right) \cdot \left(t \cdot j - y \cdot k\right) + \left(\left(\left(x \cdot y - t \cdot z\right) \cdot \left(a \cdot b - i \cdot c\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - i \cdot y1\right)\right) + \left(a \cdot \left(z \cdot \left(y1 \cdot y3\right) - y2 \cdot \left(x \cdot y1\right)\right) - \left(\left(y0 \cdot y3\right) \cdot z\right) \cdot c\right)\right)\right) - \left(\sqrt[3]{t \cdot y2 - y3 \cdot y} \cdot \sqrt[3]{t \cdot y2 - y3 \cdot y}\right) \cdot \left(\left(c \cdot y4 - a \cdot y5\right) \cdot \sqrt[3]{t \cdot y2 - y3 \cdot y}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(y2 \cdot k - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right) + \left(\left(\left(\left(\sqrt[3]{\left(x \cdot y - t \cdot z\right) \cdot \left(a \cdot b - i \cdot c\right)} \cdot \left(\sqrt[3]{\left(x \cdot y - t \cdot z\right) \cdot \left(a \cdot b - i \cdot c\right)} \cdot \sqrt[3]{\left(x \cdot y - t \cdot z\right) \cdot \left(a \cdot b - i \cdot c\right)}\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - i \cdot y1\right)\right) + \left(y0 \cdot c - y1 \cdot a\right) \cdot \left(x \cdot y2 - y3 \cdot z\right)\right) + \left(b \cdot y4 - y5 \cdot i\right) \cdot \left(t \cdot j - y \cdot k\right)\right) - \left(c \cdot y4 - a \cdot y5\right) \cdot \left(t \cdot y2 - y3 \cdot y\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 k, double y0, double y1, double y2, double y3, double y4, double y5) {
double r3942862 = x;
double r3942863 = y;
double r3942864 = r3942862 * r3942863;
double r3942865 = z;
double r3942866 = t;
double r3942867 = r3942865 * r3942866;
double r3942868 = r3942864 - r3942867;
double r3942869 = a;
double r3942870 = b;
double r3942871 = r3942869 * r3942870;
double r3942872 = c;
double r3942873 = i;
double r3942874 = r3942872 * r3942873;
double r3942875 = r3942871 - r3942874;
double r3942876 = r3942868 * r3942875;
double r3942877 = j;
double r3942878 = r3942862 * r3942877;
double r3942879 = k;
double r3942880 = r3942865 * r3942879;
double r3942881 = r3942878 - r3942880;
double r3942882 = y0;
double r3942883 = r3942882 * r3942870;
double r3942884 = y1;
double r3942885 = r3942884 * r3942873;
double r3942886 = r3942883 - r3942885;
double r3942887 = r3942881 * r3942886;
double r3942888 = r3942876 - r3942887;
double r3942889 = y2;
double r3942890 = r3942862 * r3942889;
double r3942891 = y3;
double r3942892 = r3942865 * r3942891;
double r3942893 = r3942890 - r3942892;
double r3942894 = r3942882 * r3942872;
double r3942895 = r3942884 * r3942869;
double r3942896 = r3942894 - r3942895;
double r3942897 = r3942893 * r3942896;
double r3942898 = r3942888 + r3942897;
double r3942899 = r3942866 * r3942877;
double r3942900 = r3942863 * r3942879;
double r3942901 = r3942899 - r3942900;
double r3942902 = y4;
double r3942903 = r3942902 * r3942870;
double r3942904 = y5;
double r3942905 = r3942904 * r3942873;
double r3942906 = r3942903 - r3942905;
double r3942907 = r3942901 * r3942906;
double r3942908 = r3942898 + r3942907;
double r3942909 = r3942866 * r3942889;
double r3942910 = r3942863 * r3942891;
double r3942911 = r3942909 - r3942910;
double r3942912 = r3942902 * r3942872;
double r3942913 = r3942904 * r3942869;
double r3942914 = r3942912 - r3942913;
double r3942915 = r3942911 * r3942914;
double r3942916 = r3942908 - r3942915;
double r3942917 = r3942879 * r3942889;
double r3942918 = r3942877 * r3942891;
double r3942919 = r3942917 - r3942918;
double r3942920 = r3942902 * r3942884;
double r3942921 = r3942904 * r3942882;
double r3942922 = r3942920 - r3942921;
double r3942923 = r3942919 * r3942922;
double r3942924 = r3942916 + r3942923;
return r3942924;
}
double f(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 r3942925 = y2;
double r3942926 = -2.4610883223292322e-185;
bool r3942927 = r3942925 <= r3942926;
double r3942928 = y0;
double r3942929 = c;
double r3942930 = r3942928 * r3942929;
double r3942931 = y1;
double r3942932 = a;
double r3942933 = r3942931 * r3942932;
double r3942934 = r3942930 - r3942933;
double r3942935 = x;
double r3942936 = r3942935 * r3942925;
double r3942937 = y3;
double r3942938 = z;
double r3942939 = r3942937 * r3942938;
double r3942940 = r3942936 - r3942939;
double r3942941 = r3942934 * r3942940;
double r3942942 = y;
double r3942943 = r3942935 * r3942942;
double r3942944 = t;
double r3942945 = r3942944 * r3942938;
double r3942946 = r3942943 - r3942945;
double r3942947 = b;
double r3942948 = r3942932 * r3942947;
double r3942949 = i;
double r3942950 = r3942949 * r3942929;
double r3942951 = r3942948 - r3942950;
double r3942952 = r3942946 * r3942951;
double r3942953 = k;
double r3942954 = r3942931 * r3942953;
double r3942955 = r3942938 * r3942954;
double r3942956 = r3942949 * r3942955;
double r3942957 = r3942928 * r3942947;
double r3942958 = r3942957 * r3942938;
double r3942959 = r3942953 * r3942958;
double r3942960 = j;
double r3942961 = r3942935 * r3942931;
double r3942962 = r3942960 * r3942961;
double r3942963 = r3942949 * r3942962;
double r3942964 = r3942959 + r3942963;
double r3942965 = r3942956 - r3942964;
double r3942966 = r3942952 - r3942965;
double r3942967 = r3942941 + r3942966;
double r3942968 = y4;
double r3942969 = r3942947 * r3942968;
double r3942970 = y5;
double r3942971 = r3942970 * r3942949;
double r3942972 = r3942969 - r3942971;
double r3942973 = r3942944 * r3942960;
double r3942974 = r3942942 * r3942953;
double r3942975 = r3942973 - r3942974;
double r3942976 = r3942972 * r3942975;
double r3942977 = r3942967 + r3942976;
double r3942978 = r3942929 * r3942968;
double r3942979 = r3942932 * r3942970;
double r3942980 = r3942978 - r3942979;
double r3942981 = r3942944 * r3942925;
double r3942982 = r3942937 * r3942942;
double r3942983 = r3942981 - r3942982;
double r3942984 = r3942980 * r3942983;
double r3942985 = r3942977 - r3942984;
double r3942986 = r3942925 * r3942953;
double r3942987 = r3942960 * r3942937;
double r3942988 = r3942986 - r3942987;
double r3942989 = r3942968 * r3942931;
double r3942990 = r3942970 * r3942928;
double r3942991 = r3942989 - r3942990;
double r3942992 = r3942988 * r3942991;
double r3942993 = r3942985 + r3942992;
double r3942994 = 7.593057133489079e-63;
bool r3942995 = r3942925 <= r3942994;
double r3942996 = r3942935 * r3942960;
double r3942997 = r3942938 * r3942953;
double r3942998 = r3942996 - r3942997;
double r3942999 = r3942949 * r3942931;
double r3943000 = r3942957 - r3942999;
double r3943001 = r3942998 * r3943000;
double r3943002 = r3942952 - r3943001;
double r3943003 = r3942931 * r3942937;
double r3943004 = r3942938 * r3943003;
double r3943005 = r3942925 * r3942961;
double r3943006 = r3943004 - r3943005;
double r3943007 = r3942932 * r3943006;
double r3943008 = r3942928 * r3942937;
double r3943009 = r3943008 * r3942938;
double r3943010 = r3943009 * r3942929;
double r3943011 = r3943007 - r3943010;
double r3943012 = r3943002 + r3943011;
double r3943013 = r3942976 + r3943012;
double r3943014 = cbrt(r3942983);
double r3943015 = r3943014 * r3943014;
double r3943016 = r3942980 * r3943014;
double r3943017 = r3943015 * r3943016;
double r3943018 = r3943013 - r3943017;
double r3943019 = r3942992 + r3943018;
double r3943020 = cbrt(r3942952);
double r3943021 = r3943020 * r3943020;
double r3943022 = r3943020 * r3943021;
double r3943023 = r3943022 - r3943001;
double r3943024 = r3943023 + r3942941;
double r3943025 = r3943024 + r3942976;
double r3943026 = r3943025 - r3942984;
double r3943027 = r3942992 + r3943026;
double r3943028 = r3942995 ? r3943019 : r3943027;
double r3943029 = r3942927 ? r3942993 : r3943028;
return r3943029;
}



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.4610883223292322e-185Initial program 26.7
Taylor expanded around inf 28.3
if -2.4610883223292322e-185 < y2 < 7.593057133489079e-63Initial program 25.2
rmApplied add-cube-cbrt25.2
Applied associate-*l*25.2
Taylor expanded around -inf 26.8
Simplified27.6
if 7.593057133489079e-63 < y2 Initial program 26.0
rmApplied add-cube-cbrt26.1
Final simplification27.5
herbie shell --seed 2019130
(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"
(+ (- (+ (+ (- (* (- (* 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)))))