\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}\;z \le -3.2649420662695442 \cdot 10^{-224}:\\
\;\;\;\;\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{elif}\;z \le 2.85563530538145874 \cdot 10^{-168}:\\
\;\;\;\;\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(\left(t \cdot j - y \cdot k\right) \cdot \left(\sqrt[3]{y4 \cdot b - y5 \cdot i} \cdot \sqrt[3]{y4 \cdot b - y5 \cdot i}\right)\right) \cdot \sqrt[3]{y4 \cdot b - y5 \cdot i}\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(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(\left(t \cdot y2 - y \cdot y3\right) \cdot \left(\sqrt[3]{y4 \cdot c - y5 \cdot a} \cdot \sqrt[3]{y4 \cdot c - y5 \cdot a}\right)\right) \cdot \sqrt[3]{y4 \cdot c - y5 \cdot a}\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 r233227 = x;
double r233228 = y;
double r233229 = r233227 * r233228;
double r233230 = z;
double r233231 = t;
double r233232 = r233230 * r233231;
double r233233 = r233229 - r233232;
double r233234 = a;
double r233235 = b;
double r233236 = r233234 * r233235;
double r233237 = c;
double r233238 = i;
double r233239 = r233237 * r233238;
double r233240 = r233236 - r233239;
double r233241 = r233233 * r233240;
double r233242 = j;
double r233243 = r233227 * r233242;
double r233244 = k;
double r233245 = r233230 * r233244;
double r233246 = r233243 - r233245;
double r233247 = y0;
double r233248 = r233247 * r233235;
double r233249 = y1;
double r233250 = r233249 * r233238;
double r233251 = r233248 - r233250;
double r233252 = r233246 * r233251;
double r233253 = r233241 - r233252;
double r233254 = y2;
double r233255 = r233227 * r233254;
double r233256 = y3;
double r233257 = r233230 * r233256;
double r233258 = r233255 - r233257;
double r233259 = r233247 * r233237;
double r233260 = r233249 * r233234;
double r233261 = r233259 - r233260;
double r233262 = r233258 * r233261;
double r233263 = r233253 + r233262;
double r233264 = r233231 * r233242;
double r233265 = r233228 * r233244;
double r233266 = r233264 - r233265;
double r233267 = y4;
double r233268 = r233267 * r233235;
double r233269 = y5;
double r233270 = r233269 * r233238;
double r233271 = r233268 - r233270;
double r233272 = r233266 * r233271;
double r233273 = r233263 + r233272;
double r233274 = r233231 * r233254;
double r233275 = r233228 * r233256;
double r233276 = r233274 - r233275;
double r233277 = r233267 * r233237;
double r233278 = r233269 * r233234;
double r233279 = r233277 - r233278;
double r233280 = r233276 * r233279;
double r233281 = r233273 - r233280;
double r233282 = r233244 * r233254;
double r233283 = r233242 * r233256;
double r233284 = r233282 - r233283;
double r233285 = r233267 * r233249;
double r233286 = r233269 * r233247;
double r233287 = r233285 - r233286;
double r233288 = r233284 * r233287;
double r233289 = r233281 + r233288;
return r233289;
}
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 r233290 = z;
double r233291 = -3.264942066269544e-224;
bool r233292 = r233290 <= r233291;
double r233293 = x;
double r233294 = y;
double r233295 = r233293 * r233294;
double r233296 = t;
double r233297 = r233290 * r233296;
double r233298 = r233295 - r233297;
double r233299 = a;
double r233300 = b;
double r233301 = r233299 * r233300;
double r233302 = c;
double r233303 = i;
double r233304 = r233302 * r233303;
double r233305 = r233301 - r233304;
double r233306 = r233298 * r233305;
double r233307 = j;
double r233308 = r233293 * r233307;
double r233309 = k;
double r233310 = r233290 * r233309;
double r233311 = r233308 - r233310;
double r233312 = y0;
double r233313 = r233312 * r233300;
double r233314 = y1;
double r233315 = r233314 * r233303;
double r233316 = r233313 - r233315;
double r233317 = r233311 * r233316;
double r233318 = r233306 - r233317;
double r233319 = y3;
double r233320 = r233314 * r233290;
double r233321 = r233319 * r233320;
double r233322 = r233299 * r233321;
double r233323 = r233319 * r233302;
double r233324 = r233290 * r233323;
double r233325 = r233312 * r233324;
double r233326 = y2;
double r233327 = r233326 * r233314;
double r233328 = r233293 * r233327;
double r233329 = r233299 * r233328;
double r233330 = r233325 + r233329;
double r233331 = r233322 - r233330;
double r233332 = r233318 + r233331;
double r233333 = r233296 * r233307;
double r233334 = r233294 * r233309;
double r233335 = r233333 - r233334;
double r233336 = y4;
double r233337 = r233336 * r233300;
double r233338 = y5;
double r233339 = r233338 * r233303;
double r233340 = r233337 - r233339;
double r233341 = r233335 * r233340;
double r233342 = r233332 + r233341;
double r233343 = r233296 * r233326;
double r233344 = r233294 * r233319;
double r233345 = r233343 - r233344;
double r233346 = r233336 * r233302;
double r233347 = r233338 * r233299;
double r233348 = r233346 - r233347;
double r233349 = r233345 * r233348;
double r233350 = r233342 - r233349;
double r233351 = r233309 * r233326;
double r233352 = r233307 * r233319;
double r233353 = r233351 - r233352;
double r233354 = r233336 * r233314;
double r233355 = r233338 * r233312;
double r233356 = r233354 - r233355;
double r233357 = r233353 * r233356;
double r233358 = r233350 + r233357;
double r233359 = 2.8556353053814587e-168;
bool r233360 = r233290 <= r233359;
double r233361 = r233290 * r233302;
double r233362 = r233303 * r233361;
double r233363 = r233296 * r233362;
double r233364 = r233294 * r233293;
double r233365 = r233302 * r233364;
double r233366 = r233303 * r233365;
double r233367 = r233290 * r233300;
double r233368 = r233296 * r233367;
double r233369 = r233299 * r233368;
double r233370 = r233366 + r233369;
double r233371 = r233363 - r233370;
double r233372 = r233371 - r233317;
double r233373 = r233293 * r233326;
double r233374 = r233290 * r233319;
double r233375 = r233373 - r233374;
double r233376 = r233312 * r233302;
double r233377 = r233314 * r233299;
double r233378 = r233376 - r233377;
double r233379 = r233375 * r233378;
double r233380 = r233372 + r233379;
double r233381 = cbrt(r233340);
double r233382 = r233381 * r233381;
double r233383 = r233335 * r233382;
double r233384 = r233383 * r233381;
double r233385 = r233380 + r233384;
double r233386 = r233385 - r233349;
double r233387 = r233386 + r233357;
double r233388 = r233318 + r233379;
double r233389 = r233388 + r233341;
double r233390 = cbrt(r233348);
double r233391 = r233390 * r233390;
double r233392 = r233345 * r233391;
double r233393 = r233392 * r233390;
double r233394 = r233389 - r233393;
double r233395 = r233394 + r233357;
double r233396 = r233360 ? r233387 : r233395;
double r233397 = r233292 ? r233358 : r233396;
return r233397;
}



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 z < -3.264942066269544e-224Initial program 27.3
Taylor expanded around inf 30.3
if -3.264942066269544e-224 < z < 2.8556353053814587e-168Initial program 27.2
rmApplied add-cube-cbrt27.4
Applied associate-*r*27.4
Taylor expanded around inf 27.6
if 2.8556353053814587e-168 < z Initial program 26.9
rmApplied add-cube-cbrt26.9
Applied associate-*r*26.9
Final simplification28.5
herbie shell --seed 2020046
(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)))))