\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}\;a \le -9.508672862527934269058292502931046392588 \cdot 10^{-18}:\\
\;\;\;\;\left(\left(\left(\left(c \cdot y0 - a \cdot y1\right) \cdot \left(x \cdot y2 - z \cdot y3\right) + \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(b \cdot y0 - i \cdot y1\right)\right)\right) + \left(j \cdot t - y \cdot k\right) \cdot \left(y4 \cdot b - i \cdot y5\right)\right) - \left(a \cdot \left(y3 \cdot \left(y \cdot y5\right)\right) - \left(a \cdot \left(\left(y5 \cdot t\right) \cdot y2\right) + y3 \cdot \left(\left(y \cdot c\right) \cdot y4\right)\right)\right)\right) + \left(y2 \cdot k - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;a \le 6458826144.91070652008056640625:\\
\;\;\;\;\left(y2 \cdot k - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right) + \left(\left(\left(\sqrt[3]{c \cdot y0 - a \cdot y1} \cdot \left(\left(\sqrt[3]{c \cdot y0 - a \cdot y1} \cdot \sqrt[3]{c \cdot y0 - a \cdot y1}\right) \cdot \left(x \cdot y2 - z \cdot y3\right)\right) + \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(b \cdot y0 - i \cdot y1\right)\right)\right) + \left(j \cdot t - y \cdot k\right) \cdot \left(y4 \cdot b - i \cdot y5\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - a \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(y2 \cdot k - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right) + \left(\left(\left(j \cdot t - y \cdot k\right) \cdot \left(y4 \cdot b - i \cdot y5\right) + \left(\left(\left(y3 \cdot \left(z \cdot y1\right) - x \cdot \left(y2 \cdot y1\right)\right) \cdot a - z \cdot \left(c \cdot \left(y3 \cdot y0\right)\right)\right) + \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(b \cdot y0 - i \cdot y1\right)\right)\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - a \cdot y5\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 r5627824 = x;
double r5627825 = y;
double r5627826 = r5627824 * r5627825;
double r5627827 = z;
double r5627828 = t;
double r5627829 = r5627827 * r5627828;
double r5627830 = r5627826 - r5627829;
double r5627831 = a;
double r5627832 = b;
double r5627833 = r5627831 * r5627832;
double r5627834 = c;
double r5627835 = i;
double r5627836 = r5627834 * r5627835;
double r5627837 = r5627833 - r5627836;
double r5627838 = r5627830 * r5627837;
double r5627839 = j;
double r5627840 = r5627824 * r5627839;
double r5627841 = k;
double r5627842 = r5627827 * r5627841;
double r5627843 = r5627840 - r5627842;
double r5627844 = y0;
double r5627845 = r5627844 * r5627832;
double r5627846 = y1;
double r5627847 = r5627846 * r5627835;
double r5627848 = r5627845 - r5627847;
double r5627849 = r5627843 * r5627848;
double r5627850 = r5627838 - r5627849;
double r5627851 = y2;
double r5627852 = r5627824 * r5627851;
double r5627853 = y3;
double r5627854 = r5627827 * r5627853;
double r5627855 = r5627852 - r5627854;
double r5627856 = r5627844 * r5627834;
double r5627857 = r5627846 * r5627831;
double r5627858 = r5627856 - r5627857;
double r5627859 = r5627855 * r5627858;
double r5627860 = r5627850 + r5627859;
double r5627861 = r5627828 * r5627839;
double r5627862 = r5627825 * r5627841;
double r5627863 = r5627861 - r5627862;
double r5627864 = y4;
double r5627865 = r5627864 * r5627832;
double r5627866 = y5;
double r5627867 = r5627866 * r5627835;
double r5627868 = r5627865 - r5627867;
double r5627869 = r5627863 * r5627868;
double r5627870 = r5627860 + r5627869;
double r5627871 = r5627828 * r5627851;
double r5627872 = r5627825 * r5627853;
double r5627873 = r5627871 - r5627872;
double r5627874 = r5627864 * r5627834;
double r5627875 = r5627866 * r5627831;
double r5627876 = r5627874 - r5627875;
double r5627877 = r5627873 * r5627876;
double r5627878 = r5627870 - r5627877;
double r5627879 = r5627841 * r5627851;
double r5627880 = r5627839 * r5627853;
double r5627881 = r5627879 - r5627880;
double r5627882 = r5627864 * r5627846;
double r5627883 = r5627866 * r5627844;
double r5627884 = r5627882 - r5627883;
double r5627885 = r5627881 * r5627884;
double r5627886 = r5627878 + r5627885;
return r5627886;
}
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 r5627887 = a;
double r5627888 = -9.508672862527934e-18;
bool r5627889 = r5627887 <= r5627888;
double r5627890 = c;
double r5627891 = y0;
double r5627892 = r5627890 * r5627891;
double r5627893 = y1;
double r5627894 = r5627887 * r5627893;
double r5627895 = r5627892 - r5627894;
double r5627896 = x;
double r5627897 = y2;
double r5627898 = r5627896 * r5627897;
double r5627899 = z;
double r5627900 = y3;
double r5627901 = r5627899 * r5627900;
double r5627902 = r5627898 - r5627901;
double r5627903 = r5627895 * r5627902;
double r5627904 = y;
double r5627905 = r5627896 * r5627904;
double r5627906 = t;
double r5627907 = r5627906 * r5627899;
double r5627908 = r5627905 - r5627907;
double r5627909 = b;
double r5627910 = r5627887 * r5627909;
double r5627911 = i;
double r5627912 = r5627911 * r5627890;
double r5627913 = r5627910 - r5627912;
double r5627914 = r5627908 * r5627913;
double r5627915 = j;
double r5627916 = r5627896 * r5627915;
double r5627917 = k;
double r5627918 = r5627899 * r5627917;
double r5627919 = r5627916 - r5627918;
double r5627920 = r5627909 * r5627891;
double r5627921 = r5627911 * r5627893;
double r5627922 = r5627920 - r5627921;
double r5627923 = r5627919 * r5627922;
double r5627924 = r5627914 - r5627923;
double r5627925 = r5627903 + r5627924;
double r5627926 = r5627915 * r5627906;
double r5627927 = r5627904 * r5627917;
double r5627928 = r5627926 - r5627927;
double r5627929 = y4;
double r5627930 = r5627929 * r5627909;
double r5627931 = y5;
double r5627932 = r5627911 * r5627931;
double r5627933 = r5627930 - r5627932;
double r5627934 = r5627928 * r5627933;
double r5627935 = r5627925 + r5627934;
double r5627936 = r5627904 * r5627931;
double r5627937 = r5627900 * r5627936;
double r5627938 = r5627887 * r5627937;
double r5627939 = r5627931 * r5627906;
double r5627940 = r5627939 * r5627897;
double r5627941 = r5627887 * r5627940;
double r5627942 = r5627904 * r5627890;
double r5627943 = r5627942 * r5627929;
double r5627944 = r5627900 * r5627943;
double r5627945 = r5627941 + r5627944;
double r5627946 = r5627938 - r5627945;
double r5627947 = r5627935 - r5627946;
double r5627948 = r5627897 * r5627917;
double r5627949 = r5627915 * r5627900;
double r5627950 = r5627948 - r5627949;
double r5627951 = r5627929 * r5627893;
double r5627952 = r5627931 * r5627891;
double r5627953 = r5627951 - r5627952;
double r5627954 = r5627950 * r5627953;
double r5627955 = r5627947 + r5627954;
double r5627956 = 6458826144.9107065;
bool r5627957 = r5627887 <= r5627956;
double r5627958 = cbrt(r5627895);
double r5627959 = r5627958 * r5627958;
double r5627960 = r5627959 * r5627902;
double r5627961 = r5627958 * r5627960;
double r5627962 = r5627961 + r5627924;
double r5627963 = r5627962 + r5627934;
double r5627964 = r5627906 * r5627897;
double r5627965 = r5627904 * r5627900;
double r5627966 = r5627964 - r5627965;
double r5627967 = r5627929 * r5627890;
double r5627968 = r5627887 * r5627931;
double r5627969 = r5627967 - r5627968;
double r5627970 = r5627966 * r5627969;
double r5627971 = r5627963 - r5627970;
double r5627972 = r5627954 + r5627971;
double r5627973 = r5627899 * r5627893;
double r5627974 = r5627900 * r5627973;
double r5627975 = r5627897 * r5627893;
double r5627976 = r5627896 * r5627975;
double r5627977 = r5627974 - r5627976;
double r5627978 = r5627977 * r5627887;
double r5627979 = r5627900 * r5627891;
double r5627980 = r5627890 * r5627979;
double r5627981 = r5627899 * r5627980;
double r5627982 = r5627978 - r5627981;
double r5627983 = r5627982 + r5627924;
double r5627984 = r5627934 + r5627983;
double r5627985 = r5627984 - r5627970;
double r5627986 = r5627954 + r5627985;
double r5627987 = r5627957 ? r5627972 : r5627986;
double r5627988 = r5627889 ? r5627955 : r5627987;
return r5627988;
}



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 a < -9.508672862527934e-18Initial program 26.5
Taylor expanded around inf 27.0
if -9.508672862527934e-18 < a < 6458826144.9107065Initial program 25.7
rmApplied add-cube-cbrt25.7
Applied associate-*r*25.7
if 6458826144.9107065 < a Initial program 29.1
Taylor expanded around inf 28.6
Simplified28.3
Final simplification26.4
herbie shell --seed 2019170
(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)))))