\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 \le -5.78947116530490396 \cdot 10^{-241}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(k \cdot \left(i \cdot \left(z \cdot y1\right)\right) - \left(i \cdot \left(j \cdot \left(y1 \cdot x\right)\right) + y0 \cdot \left(z \cdot \left(k \cdot b\right)\right)\right)\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)\\
\mathbf{elif}\;y4 \le 6.7251934755243073 \cdot 10^{-133}:\\
\;\;\;\;\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(k \cdot \left(i \cdot \left(y \cdot y5\right)\right) - \left(t \cdot \left(i \cdot \left(j \cdot y5\right)\right) + k \cdot \left(y4 \cdot \left(y \cdot b\right)\right)\right)\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}\;y4 \le 1.0410960937213773 \cdot 10^{-36}:\\
\;\;\;\;\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)\right) - \left(y0 \cdot \left(y2 \cdot \left(k \cdot y5\right)\right) + y1 \cdot \left(y3 \cdot \left(j \cdot y4\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(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + 0\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 r166914 = x;
double r166915 = y;
double r166916 = r166914 * r166915;
double r166917 = z;
double r166918 = t;
double r166919 = r166917 * r166918;
double r166920 = r166916 - r166919;
double r166921 = a;
double r166922 = b;
double r166923 = r166921 * r166922;
double r166924 = c;
double r166925 = i;
double r166926 = r166924 * r166925;
double r166927 = r166923 - r166926;
double r166928 = r166920 * r166927;
double r166929 = j;
double r166930 = r166914 * r166929;
double r166931 = k;
double r166932 = r166917 * r166931;
double r166933 = r166930 - r166932;
double r166934 = y0;
double r166935 = r166934 * r166922;
double r166936 = y1;
double r166937 = r166936 * r166925;
double r166938 = r166935 - r166937;
double r166939 = r166933 * r166938;
double r166940 = r166928 - r166939;
double r166941 = y2;
double r166942 = r166914 * r166941;
double r166943 = y3;
double r166944 = r166917 * r166943;
double r166945 = r166942 - r166944;
double r166946 = r166934 * r166924;
double r166947 = r166936 * r166921;
double r166948 = r166946 - r166947;
double r166949 = r166945 * r166948;
double r166950 = r166940 + r166949;
double r166951 = r166918 * r166929;
double r166952 = r166915 * r166931;
double r166953 = r166951 - r166952;
double r166954 = y4;
double r166955 = r166954 * r166922;
double r166956 = y5;
double r166957 = r166956 * r166925;
double r166958 = r166955 - r166957;
double r166959 = r166953 * r166958;
double r166960 = r166950 + r166959;
double r166961 = r166918 * r166941;
double r166962 = r166915 * r166943;
double r166963 = r166961 - r166962;
double r166964 = r166954 * r166924;
double r166965 = r166956 * r166921;
double r166966 = r166964 - r166965;
double r166967 = r166963 * r166966;
double r166968 = r166960 - r166967;
double r166969 = r166931 * r166941;
double r166970 = r166929 * r166943;
double r166971 = r166969 - r166970;
double r166972 = r166954 * r166936;
double r166973 = r166956 * r166934;
double r166974 = r166972 - r166973;
double r166975 = r166971 * r166974;
double r166976 = r166968 + r166975;
return r166976;
}
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 r166977 = y4;
double r166978 = -5.789471165304904e-241;
bool r166979 = r166977 <= r166978;
double r166980 = x;
double r166981 = y;
double r166982 = r166980 * r166981;
double r166983 = z;
double r166984 = t;
double r166985 = r166983 * r166984;
double r166986 = r166982 - r166985;
double r166987 = a;
double r166988 = b;
double r166989 = r166987 * r166988;
double r166990 = c;
double r166991 = i;
double r166992 = r166990 * r166991;
double r166993 = r166989 - r166992;
double r166994 = r166986 * r166993;
double r166995 = k;
double r166996 = y1;
double r166997 = r166983 * r166996;
double r166998 = r166991 * r166997;
double r166999 = r166995 * r166998;
double r167000 = j;
double r167001 = r166996 * r166980;
double r167002 = r167000 * r167001;
double r167003 = r166991 * r167002;
double r167004 = y0;
double r167005 = r166995 * r166988;
double r167006 = r166983 * r167005;
double r167007 = r167004 * r167006;
double r167008 = r167003 + r167007;
double r167009 = r166999 - r167008;
double r167010 = r166994 - r167009;
double r167011 = y2;
double r167012 = r166980 * r167011;
double r167013 = y3;
double r167014 = r166983 * r167013;
double r167015 = r167012 - r167014;
double r167016 = r167004 * r166990;
double r167017 = r166996 * r166987;
double r167018 = r167016 - r167017;
double r167019 = r167015 * r167018;
double r167020 = r167010 + r167019;
double r167021 = r166984 * r167000;
double r167022 = r166981 * r166995;
double r167023 = r167021 - r167022;
double r167024 = r166977 * r166988;
double r167025 = y5;
double r167026 = r167025 * r166991;
double r167027 = r167024 - r167026;
double r167028 = r167023 * r167027;
double r167029 = r167020 + r167028;
double r167030 = r166984 * r167011;
double r167031 = r166981 * r167013;
double r167032 = r167030 - r167031;
double r167033 = r166977 * r166990;
double r167034 = r167025 * r166987;
double r167035 = r167033 - r167034;
double r167036 = r167032 * r167035;
double r167037 = r167029 - r167036;
double r167038 = r166995 * r167011;
double r167039 = r167000 * r167013;
double r167040 = r167038 - r167039;
double r167041 = r166977 * r166996;
double r167042 = r167025 * r167004;
double r167043 = r167041 - r167042;
double r167044 = r167040 * r167043;
double r167045 = r167037 + r167044;
double r167046 = 6.725193475524307e-133;
bool r167047 = r166977 <= r167046;
double r167048 = r166980 * r167000;
double r167049 = r166983 * r166995;
double r167050 = r167048 - r167049;
double r167051 = r167004 * r166988;
double r167052 = r166996 * r166991;
double r167053 = r167051 - r167052;
double r167054 = r167050 * r167053;
double r167055 = r166994 - r167054;
double r167056 = r167055 + r167019;
double r167057 = r166981 * r167025;
double r167058 = r166991 * r167057;
double r167059 = r166995 * r167058;
double r167060 = r167000 * r167025;
double r167061 = r166991 * r167060;
double r167062 = r166984 * r167061;
double r167063 = r166981 * r166988;
double r167064 = r166977 * r167063;
double r167065 = r166995 * r167064;
double r167066 = r167062 + r167065;
double r167067 = r167059 - r167066;
double r167068 = r167056 + r167067;
double r167069 = r167068 - r167036;
double r167070 = r167069 + r167044;
double r167071 = 1.0410960937213773e-36;
bool r167072 = r166977 <= r167071;
double r167073 = r167056 + r167028;
double r167074 = r167073 - r167036;
double r167075 = r167013 * r167060;
double r167076 = r167004 * r167075;
double r167077 = r166995 * r167025;
double r167078 = r167011 * r167077;
double r167079 = r167004 * r167078;
double r167080 = r167000 * r166977;
double r167081 = r167013 * r167080;
double r167082 = r166996 * r167081;
double r167083 = r167079 + r167082;
double r167084 = r167076 - r167083;
double r167085 = r167074 + r167084;
double r167086 = 0.0;
double r167087 = r167055 + r167086;
double r167088 = r167087 + r167028;
double r167089 = r167088 - r167036;
double r167090 = r167089 + r167044;
double r167091 = r167072 ? r167085 : r167090;
double r167092 = r167047 ? r167070 : r167091;
double r167093 = r166979 ? r167045 : r167092;
return r167093;
}



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 y4 < -5.789471165304904e-241Initial program 26.8
Taylor expanded around inf 29.0
if -5.789471165304904e-241 < y4 < 6.725193475524307e-133Initial program 26.5
Taylor expanded around inf 27.9
if 6.725193475524307e-133 < y4 < 1.0410960937213773e-36Initial program 25.0
Taylor expanded around inf 27.5
if 1.0410960937213773e-36 < y4 Initial program 28.3
Taylor expanded around 0 30.9
Final simplification28.9
herbie shell --seed 2020047
(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)))))