\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}\;y1 \le -1.535670846035978577143168647125770020726 \cdot 10^{58}:\\
\;\;\;\;\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]{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)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - 0\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y1 \le -1.692431909933194944949469964129339652268 \cdot 10^{-110}:\\
\;\;\;\;\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{elif}\;y1 \le -4.979829940632304851317284271866244283496 \cdot 10^{-214}:\\
\;\;\;\;\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}\;y1 \le 59479190780331473478152987016716877824:\\
\;\;\;\;\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{else}:\\
\;\;\;\;\left(\left(\left(\left(0 - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \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)\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 r163041 = x;
double r163042 = y;
double r163043 = r163041 * r163042;
double r163044 = z;
double r163045 = t;
double r163046 = r163044 * r163045;
double r163047 = r163043 - r163046;
double r163048 = a;
double r163049 = b;
double r163050 = r163048 * r163049;
double r163051 = c;
double r163052 = i;
double r163053 = r163051 * r163052;
double r163054 = r163050 - r163053;
double r163055 = r163047 * r163054;
double r163056 = j;
double r163057 = r163041 * r163056;
double r163058 = k;
double r163059 = r163044 * r163058;
double r163060 = r163057 - r163059;
double r163061 = y0;
double r163062 = r163061 * r163049;
double r163063 = y1;
double r163064 = r163063 * r163052;
double r163065 = r163062 - r163064;
double r163066 = r163060 * r163065;
double r163067 = r163055 - r163066;
double r163068 = y2;
double r163069 = r163041 * r163068;
double r163070 = y3;
double r163071 = r163044 * r163070;
double r163072 = r163069 - r163071;
double r163073 = r163061 * r163051;
double r163074 = r163063 * r163048;
double r163075 = r163073 - r163074;
double r163076 = r163072 * r163075;
double r163077 = r163067 + r163076;
double r163078 = r163045 * r163056;
double r163079 = r163042 * r163058;
double r163080 = r163078 - r163079;
double r163081 = y4;
double r163082 = r163081 * r163049;
double r163083 = y5;
double r163084 = r163083 * r163052;
double r163085 = r163082 - r163084;
double r163086 = r163080 * r163085;
double r163087 = r163077 + r163086;
double r163088 = r163045 * r163068;
double r163089 = r163042 * r163070;
double r163090 = r163088 - r163089;
double r163091 = r163081 * r163051;
double r163092 = r163083 * r163048;
double r163093 = r163091 - r163092;
double r163094 = r163090 * r163093;
double r163095 = r163087 - r163094;
double r163096 = r163058 * r163068;
double r163097 = r163056 * r163070;
double r163098 = r163096 - r163097;
double r163099 = r163081 * r163063;
double r163100 = r163083 * r163061;
double r163101 = r163099 - r163100;
double r163102 = r163098 * r163101;
double r163103 = r163095 + r163102;
return r163103;
}
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 r163104 = y1;
double r163105 = -1.5356708460359786e+58;
bool r163106 = r163104 <= r163105;
double r163107 = x;
double r163108 = y;
double r163109 = r163107 * r163108;
double r163110 = z;
double r163111 = t;
double r163112 = r163110 * r163111;
double r163113 = r163109 - r163112;
double r163114 = a;
double r163115 = b;
double r163116 = r163114 * r163115;
double r163117 = c;
double r163118 = i;
double r163119 = r163117 * r163118;
double r163120 = r163116 - r163119;
double r163121 = r163113 * r163120;
double r163122 = j;
double r163123 = r163107 * r163122;
double r163124 = k;
double r163125 = r163110 * r163124;
double r163126 = r163123 - r163125;
double r163127 = y0;
double r163128 = r163127 * r163115;
double r163129 = r163104 * r163118;
double r163130 = r163128 - r163129;
double r163131 = r163126 * r163130;
double r163132 = r163121 - r163131;
double r163133 = y2;
double r163134 = r163107 * r163133;
double r163135 = y3;
double r163136 = r163110 * r163135;
double r163137 = r163134 - r163136;
double r163138 = cbrt(r163137);
double r163139 = r163138 * r163138;
double r163140 = r163127 * r163117;
double r163141 = r163104 * r163114;
double r163142 = r163140 - r163141;
double r163143 = r163138 * r163142;
double r163144 = r163139 * r163143;
double r163145 = r163132 + r163144;
double r163146 = r163111 * r163122;
double r163147 = r163108 * r163124;
double r163148 = r163146 - r163147;
double r163149 = y4;
double r163150 = r163149 * r163115;
double r163151 = y5;
double r163152 = r163151 * r163118;
double r163153 = r163150 - r163152;
double r163154 = r163148 * r163153;
double r163155 = r163145 + r163154;
double r163156 = 0.0;
double r163157 = r163155 - r163156;
double r163158 = r163124 * r163133;
double r163159 = r163122 * r163135;
double r163160 = r163158 - r163159;
double r163161 = r163149 * r163104;
double r163162 = r163151 * r163127;
double r163163 = r163161 - r163162;
double r163164 = r163160 * r163163;
double r163165 = r163157 + r163164;
double r163166 = -1.692431909933195e-110;
bool r163167 = r163104 <= r163166;
double r163168 = r163137 * r163142;
double r163169 = r163132 + r163168;
double r163170 = r163169 + r163154;
double r163171 = r163111 * r163133;
double r163172 = r163108 * r163135;
double r163173 = r163171 - r163172;
double r163174 = r163149 * r163117;
double r163175 = r163151 * r163114;
double r163176 = r163174 - r163175;
double r163177 = r163173 * r163176;
double r163178 = r163170 - r163177;
double r163179 = r163122 * r163151;
double r163180 = r163135 * r163179;
double r163181 = r163127 * r163180;
double r163182 = r163124 * r163151;
double r163183 = r163133 * r163182;
double r163184 = r163127 * r163183;
double r163185 = r163122 * r163149;
double r163186 = r163135 * r163185;
double r163187 = r163104 * r163186;
double r163188 = r163184 + r163187;
double r163189 = r163181 - r163188;
double r163190 = r163178 + r163189;
double r163191 = -4.979829940632305e-214;
bool r163192 = r163104 <= r163191;
double r163193 = r163110 * r163104;
double r163194 = r163118 * r163193;
double r163195 = r163124 * r163194;
double r163196 = r163104 * r163107;
double r163197 = r163122 * r163196;
double r163198 = r163118 * r163197;
double r163199 = r163124 * r163115;
double r163200 = r163110 * r163199;
double r163201 = r163127 * r163200;
double r163202 = r163198 + r163201;
double r163203 = r163195 - r163202;
double r163204 = r163121 - r163203;
double r163205 = r163204 + r163168;
double r163206 = r163205 + r163154;
double r163207 = r163206 - r163177;
double r163208 = r163207 + r163164;
double r163209 = 5.947919078033147e+37;
bool r163210 = r163104 <= r163209;
double r163211 = r163104 * r163110;
double r163212 = r163135 * r163211;
double r163213 = r163114 * r163212;
double r163214 = r163135 * r163117;
double r163215 = r163110 * r163214;
double r163216 = r163127 * r163215;
double r163217 = r163133 * r163104;
double r163218 = r163107 * r163217;
double r163219 = r163114 * r163218;
double r163220 = r163216 + r163219;
double r163221 = r163213 - r163220;
double r163222 = r163132 + r163221;
double r163223 = r163222 + r163154;
double r163224 = r163223 - r163177;
double r163225 = r163224 + r163164;
double r163226 = r163156 - r163131;
double r163227 = r163226 + r163144;
double r163228 = r163227 + r163154;
double r163229 = r163228 - r163177;
double r163230 = r163229 + r163164;
double r163231 = r163210 ? r163225 : r163230;
double r163232 = r163192 ? r163208 : r163231;
double r163233 = r163167 ? r163190 : r163232;
double r163234 = r163106 ? r163165 : r163233;
return r163234;
}



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 y1 < -1.5356708460359786e+58Initial program 31.5
rmApplied add-cube-cbrt31.6
Applied associate-*l*31.6
Taylor expanded around 0 33.4
if -1.5356708460359786e+58 < y1 < -1.692431909933195e-110Initial program 25.1
Taylor expanded around inf 28.9
if -1.692431909933195e-110 < y1 < -4.979829940632305e-214Initial program 26.0
Taylor expanded around inf 27.4
if -4.979829940632305e-214 < y1 < 5.947919078033147e+37Initial program 26.5
Taylor expanded around inf 28.2
if 5.947919078033147e+37 < y1 Initial program 29.9
rmApplied add-cube-cbrt30.0
Applied associate-*l*30.0
Taylor expanded around 0 31.3
Final simplification29.3
herbie shell --seed 2019308
(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)))))