\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}\;z \le -1.389845984472355 \cdot 10^{-180} \lor \neg \left(z \le 7.2826596415879573 \cdot 10^{-47}\right):\\
\;\;\;\;\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(\left(\left(t \cdot y2 - y \cdot y3\right) \cdot y4\right) \cdot c + \left(y5 \cdot \left(y \cdot y3 - t \cdot y2\right)\right) \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(t \cdot \left(i \cdot \left(z \cdot c\right)\right) - \left(i \cdot \left(c \cdot \left(y \cdot x\right)\right) + a \cdot \left(t \cdot \left(z \cdot b\right)\right)\right)\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(\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c\right) + \left(t \cdot y2 - y \cdot y3\right) \cdot \left(-y5 \cdot a\right)\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 r144869 = x;
double r144870 = y;
double r144871 = r144869 * r144870;
double r144872 = z;
double r144873 = t;
double r144874 = r144872 * r144873;
double r144875 = r144871 - r144874;
double r144876 = a;
double r144877 = b;
double r144878 = r144876 * r144877;
double r144879 = c;
double r144880 = i;
double r144881 = r144879 * r144880;
double r144882 = r144878 - r144881;
double r144883 = r144875 * r144882;
double r144884 = j;
double r144885 = r144869 * r144884;
double r144886 = k;
double r144887 = r144872 * r144886;
double r144888 = r144885 - r144887;
double r144889 = y0;
double r144890 = r144889 * r144877;
double r144891 = y1;
double r144892 = r144891 * r144880;
double r144893 = r144890 - r144892;
double r144894 = r144888 * r144893;
double r144895 = r144883 - r144894;
double r144896 = y2;
double r144897 = r144869 * r144896;
double r144898 = y3;
double r144899 = r144872 * r144898;
double r144900 = r144897 - r144899;
double r144901 = r144889 * r144879;
double r144902 = r144891 * r144876;
double r144903 = r144901 - r144902;
double r144904 = r144900 * r144903;
double r144905 = r144895 + r144904;
double r144906 = r144873 * r144884;
double r144907 = r144870 * r144886;
double r144908 = r144906 - r144907;
double r144909 = y4;
double r144910 = r144909 * r144877;
double r144911 = y5;
double r144912 = r144911 * r144880;
double r144913 = r144910 - r144912;
double r144914 = r144908 * r144913;
double r144915 = r144905 + r144914;
double r144916 = r144873 * r144896;
double r144917 = r144870 * r144898;
double r144918 = r144916 - r144917;
double r144919 = r144909 * r144879;
double r144920 = r144911 * r144876;
double r144921 = r144919 - r144920;
double r144922 = r144918 * r144921;
double r144923 = r144915 - r144922;
double r144924 = r144886 * r144896;
double r144925 = r144884 * r144898;
double r144926 = r144924 - r144925;
double r144927 = r144909 * r144891;
double r144928 = r144911 * r144889;
double r144929 = r144927 - r144928;
double r144930 = r144926 * r144929;
double r144931 = r144923 + r144930;
return r144931;
}
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 r144932 = z;
double r144933 = -1.389845984472355e-180;
bool r144934 = r144932 <= r144933;
double r144935 = 7.282659641587957e-47;
bool r144936 = r144932 <= r144935;
double r144937 = !r144936;
bool r144938 = r144934 || r144937;
double r144939 = x;
double r144940 = y;
double r144941 = r144939 * r144940;
double r144942 = t;
double r144943 = r144932 * r144942;
double r144944 = r144941 - r144943;
double r144945 = a;
double r144946 = b;
double r144947 = r144945 * r144946;
double r144948 = c;
double r144949 = i;
double r144950 = r144948 * r144949;
double r144951 = r144947 - r144950;
double r144952 = r144944 * r144951;
double r144953 = j;
double r144954 = r144939 * r144953;
double r144955 = k;
double r144956 = r144932 * r144955;
double r144957 = r144954 - r144956;
double r144958 = y0;
double r144959 = r144958 * r144946;
double r144960 = y1;
double r144961 = r144960 * r144949;
double r144962 = r144959 - r144961;
double r144963 = r144957 * r144962;
double r144964 = r144952 - r144963;
double r144965 = y2;
double r144966 = r144939 * r144965;
double r144967 = y3;
double r144968 = r144932 * r144967;
double r144969 = r144966 - r144968;
double r144970 = r144958 * r144948;
double r144971 = r144960 * r144945;
double r144972 = r144970 - r144971;
double r144973 = r144969 * r144972;
double r144974 = r144964 + r144973;
double r144975 = r144942 * r144953;
double r144976 = r144940 * r144955;
double r144977 = r144975 - r144976;
double r144978 = y4;
double r144979 = r144978 * r144946;
double r144980 = y5;
double r144981 = r144980 * r144949;
double r144982 = r144979 - r144981;
double r144983 = r144977 * r144982;
double r144984 = r144974 + r144983;
double r144985 = r144942 * r144965;
double r144986 = r144940 * r144967;
double r144987 = r144985 - r144986;
double r144988 = r144987 * r144978;
double r144989 = r144988 * r144948;
double r144990 = r144986 - r144985;
double r144991 = r144980 * r144990;
double r144992 = r144991 * r144945;
double r144993 = r144989 + r144992;
double r144994 = r144984 - r144993;
double r144995 = r144955 * r144965;
double r144996 = r144953 * r144967;
double r144997 = r144995 - r144996;
double r144998 = r144978 * r144960;
double r144999 = r144980 * r144958;
double r145000 = r144998 - r144999;
double r145001 = r144997 * r145000;
double r145002 = r144994 + r145001;
double r145003 = r144932 * r144948;
double r145004 = r144949 * r145003;
double r145005 = r144942 * r145004;
double r145006 = r144940 * r144939;
double r145007 = r144948 * r145006;
double r145008 = r144949 * r145007;
double r145009 = r144932 * r144946;
double r145010 = r144942 * r145009;
double r145011 = r144945 * r145010;
double r145012 = r145008 + r145011;
double r145013 = r145005 - r145012;
double r145014 = r145013 - r144963;
double r145015 = r145014 + r144973;
double r145016 = r145015 + r144983;
double r145017 = r144978 * r144948;
double r145018 = r144987 * r145017;
double r145019 = r144980 * r144945;
double r145020 = -r145019;
double r145021 = r144987 * r145020;
double r145022 = r145018 + r145021;
double r145023 = r145016 - r145022;
double r145024 = r145023 + r145001;
double r145025 = r144938 ? r145002 : r145024;
return r145025;
}



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 z < -1.389845984472355e-180 or 7.282659641587957e-47 < z Initial program 27.8
rmApplied sub-neg27.8
Applied distribute-lft-in27.8
rmApplied associate-*r*28.3
Taylor expanded around inf 29.7
Simplified28.5
if -1.389845984472355e-180 < z < 7.282659641587957e-47Initial program 26.7
rmApplied sub-neg26.7
Applied distribute-lft-in26.7
Taylor expanded around inf 27.6
Final simplification28.1
herbie shell --seed 2020081
(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)))))