\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}\;b \le -8.58198075515020159 \cdot 10^{-119}:\\
\;\;\;\;\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(a \cdot \left(y3 \cdot \left(y1 \cdot z\right)\right) - \left(y0 \cdot \left(z \cdot \left(y3 \cdot c\right)\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}\;b \le 7.027026353257974 \cdot 10^{-32}:\\
\;\;\;\;\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(y0 \cdot \left(y3 \cdot \left(j \cdot y5\right) - y2 \cdot \left(k \cdot y5\right)\right) - y1 \cdot \left(y3 \cdot \left(j \cdot y4\right)\right)\right)\\
\mathbf{elif}\;b \le 9.3413417779978113 \cdot 10^{101}:\\
\;\;\;\;\left(\left(\left(\left(\sqrt[3]{\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right)} \cdot \sqrt[3]{\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right)}\right) \cdot \sqrt[3]{\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(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}\;b \le 1.5943958207630799 \cdot 10^{186}:\\
\;\;\;\;\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(y0 \cdot \left(y3 \cdot \left(j \cdot y5\right) - y2 \cdot \left(k \cdot y5\right)\right) - y1 \cdot \left(y3 \cdot \left(j \cdot y4\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(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(\sqrt[3]{\left(\sqrt[3]{x \cdot y2 - z \cdot y3} \cdot \sqrt[3]{x \cdot y2 - z \cdot y3}\right) \cdot \left(\sqrt[3]{x \cdot y2 - z \cdot y3} \cdot \left(y0 \cdot c - y1 \cdot a\right)\right)} \cdot \sqrt[3]{\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)}\right) \cdot \sqrt[3]{\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)\\
\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 r178877 = x;
double r178878 = y;
double r178879 = r178877 * r178878;
double r178880 = z;
double r178881 = t;
double r178882 = r178880 * r178881;
double r178883 = r178879 - r178882;
double r178884 = a;
double r178885 = b;
double r178886 = r178884 * r178885;
double r178887 = c;
double r178888 = i;
double r178889 = r178887 * r178888;
double r178890 = r178886 - r178889;
double r178891 = r178883 * r178890;
double r178892 = j;
double r178893 = r178877 * r178892;
double r178894 = k;
double r178895 = r178880 * r178894;
double r178896 = r178893 - r178895;
double r178897 = y0;
double r178898 = r178897 * r178885;
double r178899 = y1;
double r178900 = r178899 * r178888;
double r178901 = r178898 - r178900;
double r178902 = r178896 * r178901;
double r178903 = r178891 - r178902;
double r178904 = y2;
double r178905 = r178877 * r178904;
double r178906 = y3;
double r178907 = r178880 * r178906;
double r178908 = r178905 - r178907;
double r178909 = r178897 * r178887;
double r178910 = r178899 * r178884;
double r178911 = r178909 - r178910;
double r178912 = r178908 * r178911;
double r178913 = r178903 + r178912;
double r178914 = r178881 * r178892;
double r178915 = r178878 * r178894;
double r178916 = r178914 - r178915;
double r178917 = y4;
double r178918 = r178917 * r178885;
double r178919 = y5;
double r178920 = r178919 * r178888;
double r178921 = r178918 - r178920;
double r178922 = r178916 * r178921;
double r178923 = r178913 + r178922;
double r178924 = r178881 * r178904;
double r178925 = r178878 * r178906;
double r178926 = r178924 - r178925;
double r178927 = r178917 * r178887;
double r178928 = r178919 * r178884;
double r178929 = r178927 - r178928;
double r178930 = r178926 * r178929;
double r178931 = r178923 - r178930;
double r178932 = r178894 * r178904;
double r178933 = r178892 * r178906;
double r178934 = r178932 - r178933;
double r178935 = r178917 * r178899;
double r178936 = r178919 * r178897;
double r178937 = r178935 - r178936;
double r178938 = r178934 * r178937;
double r178939 = r178931 + r178938;
return r178939;
}
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 r178940 = b;
double r178941 = -8.581980755150202e-119;
bool r178942 = r178940 <= r178941;
double r178943 = x;
double r178944 = y;
double r178945 = r178943 * r178944;
double r178946 = z;
double r178947 = t;
double r178948 = r178946 * r178947;
double r178949 = r178945 - r178948;
double r178950 = a;
double r178951 = r178950 * r178940;
double r178952 = c;
double r178953 = i;
double r178954 = r178952 * r178953;
double r178955 = r178951 - r178954;
double r178956 = r178949 * r178955;
double r178957 = j;
double r178958 = r178943 * r178957;
double r178959 = k;
double r178960 = r178946 * r178959;
double r178961 = r178958 - r178960;
double r178962 = y0;
double r178963 = r178962 * r178940;
double r178964 = y1;
double r178965 = r178964 * r178953;
double r178966 = r178963 - r178965;
double r178967 = r178961 * r178966;
double r178968 = r178956 - r178967;
double r178969 = y3;
double r178970 = r178964 * r178946;
double r178971 = r178969 * r178970;
double r178972 = r178950 * r178971;
double r178973 = r178969 * r178952;
double r178974 = r178946 * r178973;
double r178975 = r178962 * r178974;
double r178976 = y2;
double r178977 = r178976 * r178964;
double r178978 = r178943 * r178977;
double r178979 = r178950 * r178978;
double r178980 = r178975 + r178979;
double r178981 = r178972 - r178980;
double r178982 = r178968 + r178981;
double r178983 = r178947 * r178957;
double r178984 = r178944 * r178959;
double r178985 = r178983 - r178984;
double r178986 = y4;
double r178987 = r178986 * r178940;
double r178988 = y5;
double r178989 = r178988 * r178953;
double r178990 = r178987 - r178989;
double r178991 = r178985 * r178990;
double r178992 = r178982 + r178991;
double r178993 = r178947 * r178976;
double r178994 = r178944 * r178969;
double r178995 = r178993 - r178994;
double r178996 = r178986 * r178952;
double r178997 = r178988 * r178950;
double r178998 = r178996 - r178997;
double r178999 = r178995 * r178998;
double r179000 = r178992 - r178999;
double r179001 = r178959 * r178976;
double r179002 = r178957 * r178969;
double r179003 = r179001 - r179002;
double r179004 = r178986 * r178964;
double r179005 = r178988 * r178962;
double r179006 = r179004 - r179005;
double r179007 = r179003 * r179006;
double r179008 = r179000 + r179007;
double r179009 = 7.027026353257974e-32;
bool r179010 = r178940 <= r179009;
double r179011 = r178943 * r178976;
double r179012 = r178946 * r178969;
double r179013 = r179011 - r179012;
double r179014 = r178962 * r178952;
double r179015 = r178964 * r178950;
double r179016 = r179014 - r179015;
double r179017 = r179013 * r179016;
double r179018 = r178968 + r179017;
double r179019 = r179018 + r178991;
double r179020 = r179019 - r178999;
double r179021 = r178957 * r178988;
double r179022 = r178969 * r179021;
double r179023 = r178959 * r178988;
double r179024 = r178976 * r179023;
double r179025 = r179022 - r179024;
double r179026 = r178962 * r179025;
double r179027 = r178957 * r178986;
double r179028 = r178969 * r179027;
double r179029 = r178964 * r179028;
double r179030 = r179026 - r179029;
double r179031 = r179020 + r179030;
double r179032 = 9.341341777997811e+101;
bool r179033 = r178940 <= r179032;
double r179034 = cbrt(r178956);
double r179035 = r179034 * r179034;
double r179036 = r179035 * r179034;
double r179037 = r179036 - r178967;
double r179038 = r179037 + r178991;
double r179039 = r179038 - r178999;
double r179040 = r179039 + r179007;
double r179041 = 1.59439582076308e+186;
bool r179042 = r178940 <= r179041;
double r179043 = cbrt(r179013);
double r179044 = r179043 * r179043;
double r179045 = r179043 * r179016;
double r179046 = r179044 * r179045;
double r179047 = cbrt(r179046);
double r179048 = cbrt(r179017);
double r179049 = r179047 * r179048;
double r179050 = r179049 * r179048;
double r179051 = r178968 + r179050;
double r179052 = r179051 + r178991;
double r179053 = r179052 - r178999;
double r179054 = r179053 + r179007;
double r179055 = r179042 ? r179031 : r179054;
double r179056 = r179033 ? r179040 : r179055;
double r179057 = r179010 ? r179031 : r179056;
double r179058 = r178942 ? r179008 : r179057;
return r179058;
}



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 b < -8.581980755150202e-119Initial program 26.9
Taylor expanded around inf 29.6
if -8.581980755150202e-119 < b < 7.027026353257974e-32 or 9.341341777997811e+101 < b < 1.59439582076308e+186Initial program 27.0
Taylor expanded around inf 30.1
Simplified30.1
if 7.027026353257974e-32 < b < 9.341341777997811e+101Initial program 25.5
rmApplied add-cube-cbrt25.6
Taylor expanded around 0 30.0
if 1.59439582076308e+186 < b Initial program 34.7
rmApplied add-cube-cbrt34.7
rmApplied add-cube-cbrt34.7
Applied associate-*l*34.7
Final simplification30.1
herbie shell --seed 2020042
(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)))))