\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}\;c \le -1.723146466331211 \cdot 10^{+168}:\\
\;\;\;\;\mathsf{fma}\left(y4 \cdot y1 - y5 \cdot y0, y2 \cdot k - y3 \cdot j, \mathsf{fma}\left(y2 \cdot x - y3 \cdot z, c \cdot y0 - a \cdot y1, \mathsf{fma}\left(y4 \cdot b - i \cdot y5, t \cdot j - y \cdot k, 0\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - i \cdot y1\right)\right) - \left(\left(\sqrt[3]{y4 \cdot c - a \cdot y5} \cdot \sqrt[3]{y4 \cdot c - a \cdot y5}\right) \cdot \left(y2 \cdot t - y3 \cdot y\right)\right) \cdot \sqrt[3]{y4 \cdot c - a \cdot y5}\right)\\
\mathbf{elif}\;c \le 5.240660058843463 \cdot 10^{-262}:\\
\;\;\;\;\mathsf{fma}\left(y4 \cdot y1 - y5 \cdot y0, y2 \cdot k - y3 \cdot j, \mathsf{fma}\left(y2 \cdot x - y3 \cdot z, c \cdot y0 - a \cdot y1, \mathsf{fma}\left(y4 \cdot b - i \cdot y5, t \cdot j - y \cdot k, t \cdot \left(\left(c \cdot z\right) \cdot i\right) - \mathsf{fma}\left(x \cdot i, c \cdot y, t \cdot \left(z \cdot \left(a \cdot b\right)\right)\right)\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - i \cdot y1\right)\right) - \left(y2 \cdot t - y3 \cdot y\right) \cdot \left(y4 \cdot c - a \cdot y5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(y4 \cdot y1 - y5 \cdot y0, y2 \cdot k - y3 \cdot j, \mathsf{fma}\left(y2 \cdot x - y3 \cdot z, c \cdot y0 - a \cdot y1, \mathsf{fma}\left(y4 \cdot b - i \cdot y5, t \cdot j - y \cdot k, \mathsf{fma}\left(-t, z, z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) + \left(y \cdot x - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right)\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - i \cdot y1\right)\right) - \left(y2 \cdot t - y3 \cdot y\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 r2198056 = x;
double r2198057 = y;
double r2198058 = r2198056 * r2198057;
double r2198059 = z;
double r2198060 = t;
double r2198061 = r2198059 * r2198060;
double r2198062 = r2198058 - r2198061;
double r2198063 = a;
double r2198064 = b;
double r2198065 = r2198063 * r2198064;
double r2198066 = c;
double r2198067 = i;
double r2198068 = r2198066 * r2198067;
double r2198069 = r2198065 - r2198068;
double r2198070 = r2198062 * r2198069;
double r2198071 = j;
double r2198072 = r2198056 * r2198071;
double r2198073 = k;
double r2198074 = r2198059 * r2198073;
double r2198075 = r2198072 - r2198074;
double r2198076 = y0;
double r2198077 = r2198076 * r2198064;
double r2198078 = y1;
double r2198079 = r2198078 * r2198067;
double r2198080 = r2198077 - r2198079;
double r2198081 = r2198075 * r2198080;
double r2198082 = r2198070 - r2198081;
double r2198083 = y2;
double r2198084 = r2198056 * r2198083;
double r2198085 = y3;
double r2198086 = r2198059 * r2198085;
double r2198087 = r2198084 - r2198086;
double r2198088 = r2198076 * r2198066;
double r2198089 = r2198078 * r2198063;
double r2198090 = r2198088 - r2198089;
double r2198091 = r2198087 * r2198090;
double r2198092 = r2198082 + r2198091;
double r2198093 = r2198060 * r2198071;
double r2198094 = r2198057 * r2198073;
double r2198095 = r2198093 - r2198094;
double r2198096 = y4;
double r2198097 = r2198096 * r2198064;
double r2198098 = y5;
double r2198099 = r2198098 * r2198067;
double r2198100 = r2198097 - r2198099;
double r2198101 = r2198095 * r2198100;
double r2198102 = r2198092 + r2198101;
double r2198103 = r2198060 * r2198083;
double r2198104 = r2198057 * r2198085;
double r2198105 = r2198103 - r2198104;
double r2198106 = r2198096 * r2198066;
double r2198107 = r2198098 * r2198063;
double r2198108 = r2198106 - r2198107;
double r2198109 = r2198105 * r2198108;
double r2198110 = r2198102 - r2198109;
double r2198111 = r2198073 * r2198083;
double r2198112 = r2198071 * r2198085;
double r2198113 = r2198111 - r2198112;
double r2198114 = r2198096 * r2198078;
double r2198115 = r2198098 * r2198076;
double r2198116 = r2198114 - r2198115;
double r2198117 = r2198113 * r2198116;
double r2198118 = r2198110 + r2198117;
return r2198118;
}
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 r2198119 = c;
double r2198120 = -1.723146466331211e+168;
bool r2198121 = r2198119 <= r2198120;
double r2198122 = y4;
double r2198123 = y1;
double r2198124 = r2198122 * r2198123;
double r2198125 = y5;
double r2198126 = y0;
double r2198127 = r2198125 * r2198126;
double r2198128 = r2198124 - r2198127;
double r2198129 = y2;
double r2198130 = k;
double r2198131 = r2198129 * r2198130;
double r2198132 = y3;
double r2198133 = j;
double r2198134 = r2198132 * r2198133;
double r2198135 = r2198131 - r2198134;
double r2198136 = x;
double r2198137 = r2198129 * r2198136;
double r2198138 = z;
double r2198139 = r2198132 * r2198138;
double r2198140 = r2198137 - r2198139;
double r2198141 = r2198119 * r2198126;
double r2198142 = a;
double r2198143 = r2198142 * r2198123;
double r2198144 = r2198141 - r2198143;
double r2198145 = b;
double r2198146 = r2198122 * r2198145;
double r2198147 = i;
double r2198148 = r2198147 * r2198125;
double r2198149 = r2198146 - r2198148;
double r2198150 = t;
double r2198151 = r2198150 * r2198133;
double r2198152 = y;
double r2198153 = r2198152 * r2198130;
double r2198154 = r2198151 - r2198153;
double r2198155 = 0.0;
double r2198156 = fma(r2198149, r2198154, r2198155);
double r2198157 = r2198136 * r2198133;
double r2198158 = r2198138 * r2198130;
double r2198159 = r2198157 - r2198158;
double r2198160 = r2198126 * r2198145;
double r2198161 = r2198147 * r2198123;
double r2198162 = r2198160 - r2198161;
double r2198163 = r2198159 * r2198162;
double r2198164 = r2198156 - r2198163;
double r2198165 = fma(r2198140, r2198144, r2198164);
double r2198166 = r2198122 * r2198119;
double r2198167 = r2198142 * r2198125;
double r2198168 = r2198166 - r2198167;
double r2198169 = cbrt(r2198168);
double r2198170 = r2198169 * r2198169;
double r2198171 = r2198129 * r2198150;
double r2198172 = r2198132 * r2198152;
double r2198173 = r2198171 - r2198172;
double r2198174 = r2198170 * r2198173;
double r2198175 = r2198174 * r2198169;
double r2198176 = r2198165 - r2198175;
double r2198177 = fma(r2198128, r2198135, r2198176);
double r2198178 = 5.240660058843463e-262;
bool r2198179 = r2198119 <= r2198178;
double r2198180 = r2198119 * r2198138;
double r2198181 = r2198180 * r2198147;
double r2198182 = r2198150 * r2198181;
double r2198183 = r2198136 * r2198147;
double r2198184 = r2198119 * r2198152;
double r2198185 = r2198142 * r2198145;
double r2198186 = r2198138 * r2198185;
double r2198187 = r2198150 * r2198186;
double r2198188 = fma(r2198183, r2198184, r2198187);
double r2198189 = r2198182 - r2198188;
double r2198190 = fma(r2198149, r2198154, r2198189);
double r2198191 = r2198190 - r2198163;
double r2198192 = fma(r2198140, r2198144, r2198191);
double r2198193 = r2198173 * r2198168;
double r2198194 = r2198192 - r2198193;
double r2198195 = fma(r2198128, r2198135, r2198194);
double r2198196 = -r2198150;
double r2198197 = r2198138 * r2198150;
double r2198198 = fma(r2198196, r2198138, r2198197);
double r2198199 = r2198119 * r2198147;
double r2198200 = r2198185 - r2198199;
double r2198201 = r2198198 * r2198200;
double r2198202 = r2198152 * r2198136;
double r2198203 = r2198202 - r2198197;
double r2198204 = r2198203 * r2198200;
double r2198205 = r2198201 + r2198204;
double r2198206 = fma(r2198149, r2198154, r2198205);
double r2198207 = r2198206 - r2198163;
double r2198208 = fma(r2198140, r2198144, r2198207);
double r2198209 = r2198208 - r2198193;
double r2198210 = fma(r2198128, r2198135, r2198209);
double r2198211 = r2198179 ? r2198195 : r2198210;
double r2198212 = r2198121 ? r2198177 : r2198211;
return r2198212;
}



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 c < -1.723146466331211e+168Initial program 31.9
Simplified31.9
rmApplied add-cube-cbrt32.0
Applied associate-*r*32.0
Taylor expanded around 0 38.8
if -1.723146466331211e+168 < c < 5.240660058843463e-262Initial program 25.3
Simplified25.3
Taylor expanded around inf 27.4
Simplified27.7
if 5.240660058843463e-262 < c Initial program 25.4
Simplified25.4
rmApplied prod-diff25.4
Applied distribute-rgt-in25.4
Simplified25.4
Final simplification27.3
herbie shell --seed 2019152 +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)))))