\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 -3288986673738299426122743563600321839104:\\
\;\;\;\;\left(y2 \cdot k - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right) + \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(y5 \cdot \left(\left(y3 \cdot a\right) \cdot y\right) - \mathsf{fma}\left(a, \left(y5 \cdot t\right) \cdot y2, \left(y3 \cdot \left(y \cdot c\right)\right) \cdot y4\right)\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(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) - \sqrt[3]{\left(y4 \cdot c - a \cdot y5\right) \cdot \left(t \cdot y2 - y \cdot y3\right)} \cdot \left(\sqrt[3]{\left(y4 \cdot c - a \cdot y5\right) \cdot \left(t \cdot y2 - y \cdot y3\right)} \cdot \sqrt[3]{\sqrt[3]{y4 \cdot c - a \cdot y5} \cdot \left(\left(\sqrt[3]{y4 \cdot c - a \cdot y5} \cdot \sqrt[3]{y4 \cdot c - a \cdot y5}\right) \cdot \left(t \cdot y2 - y \cdot y3\right)\right)}\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 r5499946 = x;
double r5499947 = y;
double r5499948 = r5499946 * r5499947;
double r5499949 = z;
double r5499950 = t;
double r5499951 = r5499949 * r5499950;
double r5499952 = r5499948 - r5499951;
double r5499953 = a;
double r5499954 = b;
double r5499955 = r5499953 * r5499954;
double r5499956 = c;
double r5499957 = i;
double r5499958 = r5499956 * r5499957;
double r5499959 = r5499955 - r5499958;
double r5499960 = r5499952 * r5499959;
double r5499961 = j;
double r5499962 = r5499946 * r5499961;
double r5499963 = k;
double r5499964 = r5499949 * r5499963;
double r5499965 = r5499962 - r5499964;
double r5499966 = y0;
double r5499967 = r5499966 * r5499954;
double r5499968 = y1;
double r5499969 = r5499968 * r5499957;
double r5499970 = r5499967 - r5499969;
double r5499971 = r5499965 * r5499970;
double r5499972 = r5499960 - r5499971;
double r5499973 = y2;
double r5499974 = r5499946 * r5499973;
double r5499975 = y3;
double r5499976 = r5499949 * r5499975;
double r5499977 = r5499974 - r5499976;
double r5499978 = r5499966 * r5499956;
double r5499979 = r5499968 * r5499953;
double r5499980 = r5499978 - r5499979;
double r5499981 = r5499977 * r5499980;
double r5499982 = r5499972 + r5499981;
double r5499983 = r5499950 * r5499961;
double r5499984 = r5499947 * r5499963;
double r5499985 = r5499983 - r5499984;
double r5499986 = y4;
double r5499987 = r5499986 * r5499954;
double r5499988 = y5;
double r5499989 = r5499988 * r5499957;
double r5499990 = r5499987 - r5499989;
double r5499991 = r5499985 * r5499990;
double r5499992 = r5499982 + r5499991;
double r5499993 = r5499950 * r5499973;
double r5499994 = r5499947 * r5499975;
double r5499995 = r5499993 - r5499994;
double r5499996 = r5499986 * r5499956;
double r5499997 = r5499988 * r5499953;
double r5499998 = r5499996 - r5499997;
double r5499999 = r5499995 * r5499998;
double r5500000 = r5499992 - r5499999;
double r5500001 = r5499963 * r5499973;
double r5500002 = r5499961 * r5499975;
double r5500003 = r5500001 - r5500002;
double r5500004 = r5499986 * r5499968;
double r5500005 = r5499988 * r5499966;
double r5500006 = r5500004 - r5500005;
double r5500007 = r5500003 * r5500006;
double r5500008 = r5500000 + r5500007;
return r5500008;
}
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 r5500009 = a;
double r5500010 = -3.2889866737382994e+39;
bool r5500011 = r5500009 <= r5500010;
double r5500012 = y2;
double r5500013 = k;
double r5500014 = r5500012 * r5500013;
double r5500015 = j;
double r5500016 = y3;
double r5500017 = r5500015 * r5500016;
double r5500018 = r5500014 - r5500017;
double r5500019 = y4;
double r5500020 = y1;
double r5500021 = r5500019 * r5500020;
double r5500022 = y5;
double r5500023 = y0;
double r5500024 = r5500022 * r5500023;
double r5500025 = r5500021 - r5500024;
double r5500026 = r5500018 * r5500025;
double r5500027 = c;
double r5500028 = r5500027 * r5500023;
double r5500029 = r5500009 * r5500020;
double r5500030 = r5500028 - r5500029;
double r5500031 = x;
double r5500032 = r5500031 * r5500012;
double r5500033 = z;
double r5500034 = r5500033 * r5500016;
double r5500035 = r5500032 - r5500034;
double r5500036 = r5500030 * r5500035;
double r5500037 = y;
double r5500038 = r5500031 * r5500037;
double r5500039 = t;
double r5500040 = r5500039 * r5500033;
double r5500041 = r5500038 - r5500040;
double r5500042 = b;
double r5500043 = r5500009 * r5500042;
double r5500044 = i;
double r5500045 = r5500044 * r5500027;
double r5500046 = r5500043 - r5500045;
double r5500047 = r5500041 * r5500046;
double r5500048 = r5500031 * r5500015;
double r5500049 = r5500033 * r5500013;
double r5500050 = r5500048 - r5500049;
double r5500051 = r5500042 * r5500023;
double r5500052 = r5500044 * r5500020;
double r5500053 = r5500051 - r5500052;
double r5500054 = r5500050 * r5500053;
double r5500055 = r5500047 - r5500054;
double r5500056 = r5500036 + r5500055;
double r5500057 = r5500015 * r5500039;
double r5500058 = r5500037 * r5500013;
double r5500059 = r5500057 - r5500058;
double r5500060 = r5500019 * r5500042;
double r5500061 = r5500044 * r5500022;
double r5500062 = r5500060 - r5500061;
double r5500063 = r5500059 * r5500062;
double r5500064 = r5500056 + r5500063;
double r5500065 = r5500016 * r5500009;
double r5500066 = r5500065 * r5500037;
double r5500067 = r5500022 * r5500066;
double r5500068 = r5500022 * r5500039;
double r5500069 = r5500068 * r5500012;
double r5500070 = r5500037 * r5500027;
double r5500071 = r5500016 * r5500070;
double r5500072 = r5500071 * r5500019;
double r5500073 = fma(r5500009, r5500069, r5500072);
double r5500074 = r5500067 - r5500073;
double r5500075 = r5500064 - r5500074;
double r5500076 = r5500026 + r5500075;
double r5500077 = r5500019 * r5500027;
double r5500078 = r5500009 * r5500022;
double r5500079 = r5500077 - r5500078;
double r5500080 = r5500039 * r5500012;
double r5500081 = r5500037 * r5500016;
double r5500082 = r5500080 - r5500081;
double r5500083 = r5500079 * r5500082;
double r5500084 = cbrt(r5500083);
double r5500085 = cbrt(r5500079);
double r5500086 = r5500085 * r5500085;
double r5500087 = r5500086 * r5500082;
double r5500088 = r5500085 * r5500087;
double r5500089 = cbrt(r5500088);
double r5500090 = r5500084 * r5500089;
double r5500091 = r5500084 * r5500090;
double r5500092 = r5500064 - r5500091;
double r5500093 = r5500026 + r5500092;
double r5500094 = r5500011 ? r5500076 : r5500093;
return r5500094;
}



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
if a < -3.2889866737382994e+39Initial program 28.0
Taylor expanded around inf 27.7
Simplified30.6
if -3.2889866737382994e+39 < a Initial program 26.1
rmApplied add-cube-cbrt26.2
rmApplied add-cube-cbrt26.2
Applied associate-*r*26.2
Final simplification26.8
herbie shell --seed 2019170 +o rules:numerics
(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)))))