\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}\;k \le -2.4973614115640612 \cdot 10^{158}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - 0\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}\;k \le -4.57225965511364384 \cdot 10^{-200}:\\
\;\;\;\;\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(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(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(\sqrt[3]{x \cdot j - z \cdot k} \cdot \sqrt[3]{x \cdot j - z \cdot k}\right) \cdot \left(\left(\sqrt[3]{\sqrt[3]{x \cdot j - z \cdot k} \cdot \sqrt[3]{x \cdot j - z \cdot k}} \cdot \sqrt[3]{\sqrt[3]{x \cdot j - z \cdot k}}\right) \cdot \left(y0 \cdot b - y1 \cdot i\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)\\
\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 r180096 = x;
double r180097 = y;
double r180098 = r180096 * r180097;
double r180099 = z;
double r180100 = t;
double r180101 = r180099 * r180100;
double r180102 = r180098 - r180101;
double r180103 = a;
double r180104 = b;
double r180105 = r180103 * r180104;
double r180106 = c;
double r180107 = i;
double r180108 = r180106 * r180107;
double r180109 = r180105 - r180108;
double r180110 = r180102 * r180109;
double r180111 = j;
double r180112 = r180096 * r180111;
double r180113 = k;
double r180114 = r180099 * r180113;
double r180115 = r180112 - r180114;
double r180116 = y0;
double r180117 = r180116 * r180104;
double r180118 = y1;
double r180119 = r180118 * r180107;
double r180120 = r180117 - r180119;
double r180121 = r180115 * r180120;
double r180122 = r180110 - r180121;
double r180123 = y2;
double r180124 = r180096 * r180123;
double r180125 = y3;
double r180126 = r180099 * r180125;
double r180127 = r180124 - r180126;
double r180128 = r180116 * r180106;
double r180129 = r180118 * r180103;
double r180130 = r180128 - r180129;
double r180131 = r180127 * r180130;
double r180132 = r180122 + r180131;
double r180133 = r180100 * r180111;
double r180134 = r180097 * r180113;
double r180135 = r180133 - r180134;
double r180136 = y4;
double r180137 = r180136 * r180104;
double r180138 = y5;
double r180139 = r180138 * r180107;
double r180140 = r180137 - r180139;
double r180141 = r180135 * r180140;
double r180142 = r180132 + r180141;
double r180143 = r180100 * r180123;
double r180144 = r180097 * r180125;
double r180145 = r180143 - r180144;
double r180146 = r180136 * r180106;
double r180147 = r180138 * r180103;
double r180148 = r180146 - r180147;
double r180149 = r180145 * r180148;
double r180150 = r180142 - r180149;
double r180151 = r180113 * r180123;
double r180152 = r180111 * r180125;
double r180153 = r180151 - r180152;
double r180154 = r180136 * r180118;
double r180155 = r180138 * r180116;
double r180156 = r180154 - r180155;
double r180157 = r180153 * r180156;
double r180158 = r180150 + r180157;
return r180158;
}
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 r180159 = k;
double r180160 = -2.497361411564061e+158;
bool r180161 = r180159 <= r180160;
double r180162 = x;
double r180163 = y;
double r180164 = r180162 * r180163;
double r180165 = z;
double r180166 = t;
double r180167 = r180165 * r180166;
double r180168 = r180164 - r180167;
double r180169 = a;
double r180170 = b;
double r180171 = r180169 * r180170;
double r180172 = c;
double r180173 = i;
double r180174 = r180172 * r180173;
double r180175 = r180171 - r180174;
double r180176 = r180168 * r180175;
double r180177 = 0.0;
double r180178 = r180176 - r180177;
double r180179 = y2;
double r180180 = r180162 * r180179;
double r180181 = y3;
double r180182 = r180165 * r180181;
double r180183 = r180180 - r180182;
double r180184 = y0;
double r180185 = r180184 * r180172;
double r180186 = y1;
double r180187 = r180186 * r180169;
double r180188 = r180185 - r180187;
double r180189 = r180183 * r180188;
double r180190 = r180178 + r180189;
double r180191 = j;
double r180192 = r180166 * r180191;
double r180193 = r180163 * r180159;
double r180194 = r180192 - r180193;
double r180195 = y4;
double r180196 = r180195 * r180170;
double r180197 = y5;
double r180198 = r180197 * r180173;
double r180199 = r180196 - r180198;
double r180200 = r180194 * r180199;
double r180201 = r180190 + r180200;
double r180202 = r180166 * r180179;
double r180203 = r180163 * r180181;
double r180204 = r180202 - r180203;
double r180205 = r180195 * r180172;
double r180206 = r180197 * r180169;
double r180207 = r180205 - r180206;
double r180208 = r180204 * r180207;
double r180209 = r180201 - r180208;
double r180210 = r180159 * r180179;
double r180211 = r180191 * r180181;
double r180212 = r180210 - r180211;
double r180213 = r180195 * r180186;
double r180214 = r180197 * r180184;
double r180215 = r180213 - r180214;
double r180216 = r180212 * r180215;
double r180217 = r180209 + r180216;
double r180218 = -4.572259655113644e-200;
bool r180219 = r180159 <= r180218;
double r180220 = r180165 * r180172;
double r180221 = r180173 * r180220;
double r180222 = r180166 * r180221;
double r180223 = r180163 * r180162;
double r180224 = r180172 * r180223;
double r180225 = r180173 * r180224;
double r180226 = r180165 * r180170;
double r180227 = r180166 * r180226;
double r180228 = r180169 * r180227;
double r180229 = r180225 + r180228;
double r180230 = r180222 - r180229;
double r180231 = r180162 * r180191;
double r180232 = r180165 * r180159;
double r180233 = r180231 - r180232;
double r180234 = r180184 * r180170;
double r180235 = r180186 * r180173;
double r180236 = r180234 - r180235;
double r180237 = r180233 * r180236;
double r180238 = r180230 - r180237;
double r180239 = r180238 + r180189;
double r180240 = r180239 + r180200;
double r180241 = r180240 - r180208;
double r180242 = r180241 + r180216;
double r180243 = cbrt(r180233);
double r180244 = r180243 * r180243;
double r180245 = cbrt(r180244);
double r180246 = cbrt(r180243);
double r180247 = r180245 * r180246;
double r180248 = r180247 * r180236;
double r180249 = r180244 * r180248;
double r180250 = r180176 - r180249;
double r180251 = r180250 + r180189;
double r180252 = r180251 + r180200;
double r180253 = r180252 - r180208;
double r180254 = r180253 + r180216;
double r180255 = r180219 ? r180242 : r180254;
double r180256 = r180161 ? r180217 : r180255;
return r180256;
}



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 k < -2.497361411564061e+158Initial program 34.8
Taylor expanded around 0 38.4
if -2.497361411564061e+158 < k < -4.572259655113644e-200Initial program 24.5
Taylor expanded around inf 27.9
if -4.572259655113644e-200 < k Initial program 26.8
rmApplied add-cube-cbrt26.9
Applied associate-*l*26.9
rmApplied add-cube-cbrt26.9
Applied cbrt-prod26.9
Final simplification27.9
herbie shell --seed 2020033
(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)))))