\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}\;y0 \le -45934632227187393514277965708495159296:\\
\;\;\;\;\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]{\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)} \cdot \sqrt[3]{\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)}\right) \cdot \sqrt[3]{\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) - y2 \cdot \left(k \cdot y5\right)\right) - y1 \cdot \left(y3 \cdot \left(j \cdot y4\right)\right)\right)\\
\mathbf{elif}\;y0 \le -5.002975753531874998386914109954505586025 \cdot 10^{-285}:\\
\;\;\;\;\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(k \cdot \left(i \cdot \left(y \cdot y5\right)\right) - \left(t \cdot \left(i \cdot \left(j \cdot y5\right)\right) + k \cdot \left(y4 \cdot \left(y \cdot b\right)\right)\right)\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}\;y0 \le 2702305498117941905514113658454529550582000:\\
\;\;\;\;\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(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(\sqrt[3]{y0 \cdot c - y1 \cdot a} \cdot \sqrt[3]{y0 \cdot c - y1 \cdot a}\right)\right) \cdot \sqrt[3]{y0 \cdot c - y1 \cdot a}\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(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)\\
\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 r135331 = x;
double r135332 = y;
double r135333 = r135331 * r135332;
double r135334 = z;
double r135335 = t;
double r135336 = r135334 * r135335;
double r135337 = r135333 - r135336;
double r135338 = a;
double r135339 = b;
double r135340 = r135338 * r135339;
double r135341 = c;
double r135342 = i;
double r135343 = r135341 * r135342;
double r135344 = r135340 - r135343;
double r135345 = r135337 * r135344;
double r135346 = j;
double r135347 = r135331 * r135346;
double r135348 = k;
double r135349 = r135334 * r135348;
double r135350 = r135347 - r135349;
double r135351 = y0;
double r135352 = r135351 * r135339;
double r135353 = y1;
double r135354 = r135353 * r135342;
double r135355 = r135352 - r135354;
double r135356 = r135350 * r135355;
double r135357 = r135345 - r135356;
double r135358 = y2;
double r135359 = r135331 * r135358;
double r135360 = y3;
double r135361 = r135334 * r135360;
double r135362 = r135359 - r135361;
double r135363 = r135351 * r135341;
double r135364 = r135353 * r135338;
double r135365 = r135363 - r135364;
double r135366 = r135362 * r135365;
double r135367 = r135357 + r135366;
double r135368 = r135335 * r135346;
double r135369 = r135332 * r135348;
double r135370 = r135368 - r135369;
double r135371 = y4;
double r135372 = r135371 * r135339;
double r135373 = y5;
double r135374 = r135373 * r135342;
double r135375 = r135372 - r135374;
double r135376 = r135370 * r135375;
double r135377 = r135367 + r135376;
double r135378 = r135335 * r135358;
double r135379 = r135332 * r135360;
double r135380 = r135378 - r135379;
double r135381 = r135371 * r135341;
double r135382 = r135373 * r135338;
double r135383 = r135381 - r135382;
double r135384 = r135380 * r135383;
double r135385 = r135377 - r135384;
double r135386 = r135348 * r135358;
double r135387 = r135346 * r135360;
double r135388 = r135386 - r135387;
double r135389 = r135371 * r135353;
double r135390 = r135373 * r135351;
double r135391 = r135389 - r135390;
double r135392 = r135388 * r135391;
double r135393 = r135385 + r135392;
return r135393;
}
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 r135394 = y0;
double r135395 = -4.593463222718739e+37;
bool r135396 = r135394 <= r135395;
double r135397 = x;
double r135398 = y;
double r135399 = r135397 * r135398;
double r135400 = z;
double r135401 = t;
double r135402 = r135400 * r135401;
double r135403 = r135399 - r135402;
double r135404 = a;
double r135405 = b;
double r135406 = r135404 * r135405;
double r135407 = c;
double r135408 = i;
double r135409 = r135407 * r135408;
double r135410 = r135406 - r135409;
double r135411 = r135403 * r135410;
double r135412 = j;
double r135413 = r135397 * r135412;
double r135414 = k;
double r135415 = r135400 * r135414;
double r135416 = r135413 - r135415;
double r135417 = r135394 * r135405;
double r135418 = y1;
double r135419 = r135418 * r135408;
double r135420 = r135417 - r135419;
double r135421 = r135416 * r135420;
double r135422 = r135411 - r135421;
double r135423 = y2;
double r135424 = r135397 * r135423;
double r135425 = y3;
double r135426 = r135400 * r135425;
double r135427 = r135424 - r135426;
double r135428 = r135394 * r135407;
double r135429 = r135418 * r135404;
double r135430 = r135428 - r135429;
double r135431 = r135427 * r135430;
double r135432 = cbrt(r135431);
double r135433 = r135432 * r135432;
double r135434 = r135433 * r135432;
double r135435 = r135422 + r135434;
double r135436 = r135401 * r135412;
double r135437 = r135398 * r135414;
double r135438 = r135436 - r135437;
double r135439 = y4;
double r135440 = r135439 * r135405;
double r135441 = y5;
double r135442 = r135441 * r135408;
double r135443 = r135440 - r135442;
double r135444 = r135438 * r135443;
double r135445 = r135435 + r135444;
double r135446 = r135401 * r135423;
double r135447 = r135398 * r135425;
double r135448 = r135446 - r135447;
double r135449 = r135439 * r135407;
double r135450 = r135441 * r135404;
double r135451 = r135449 - r135450;
double r135452 = r135448 * r135451;
double r135453 = r135445 - r135452;
double r135454 = r135412 * r135441;
double r135455 = r135425 * r135454;
double r135456 = r135414 * r135441;
double r135457 = r135423 * r135456;
double r135458 = r135455 - r135457;
double r135459 = r135394 * r135458;
double r135460 = r135412 * r135439;
double r135461 = r135425 * r135460;
double r135462 = r135418 * r135461;
double r135463 = r135459 - r135462;
double r135464 = r135453 + r135463;
double r135465 = -5.002975753531875e-285;
bool r135466 = r135394 <= r135465;
double r135467 = r135422 + r135431;
double r135468 = r135398 * r135441;
double r135469 = r135408 * r135468;
double r135470 = r135414 * r135469;
double r135471 = r135408 * r135454;
double r135472 = r135401 * r135471;
double r135473 = r135398 * r135405;
double r135474 = r135439 * r135473;
double r135475 = r135414 * r135474;
double r135476 = r135472 + r135475;
double r135477 = r135470 - r135476;
double r135478 = r135467 + r135477;
double r135479 = r135478 - r135452;
double r135480 = r135414 * r135423;
double r135481 = r135412 * r135425;
double r135482 = r135480 - r135481;
double r135483 = r135439 * r135418;
double r135484 = r135441 * r135394;
double r135485 = r135483 - r135484;
double r135486 = r135482 * r135485;
double r135487 = r135479 + r135486;
double r135488 = 2.702305498117942e+42;
bool r135489 = r135394 <= r135488;
double r135490 = cbrt(r135430);
double r135491 = r135490 * r135490;
double r135492 = r135427 * r135491;
double r135493 = r135492 * r135490;
double r135494 = r135422 + r135493;
double r135495 = r135494 + r135444;
double r135496 = r135495 - r135452;
double r135497 = r135496 + r135486;
double r135498 = r135400 * r135418;
double r135499 = r135408 * r135498;
double r135500 = r135414 * r135499;
double r135501 = r135418 * r135397;
double r135502 = r135412 * r135501;
double r135503 = r135408 * r135502;
double r135504 = r135414 * r135405;
double r135505 = r135400 * r135504;
double r135506 = r135394 * r135505;
double r135507 = r135503 + r135506;
double r135508 = r135500 - r135507;
double r135509 = r135411 - r135508;
double r135510 = r135509 + r135431;
double r135511 = r135510 + r135444;
double r135512 = r135511 - r135452;
double r135513 = r135512 + r135486;
double r135514 = r135489 ? r135497 : r135513;
double r135515 = r135466 ? r135487 : r135514;
double r135516 = r135396 ? r135464 : r135515;
return r135516;
}



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 y0 < -4.593463222718739e+37Initial program 28.5
rmApplied add-cube-cbrt28.6
Taylor expanded around inf 27.6
Simplified27.6
if -4.593463222718739e+37 < y0 < -5.002975753531875e-285Initial program 26.7
Taylor expanded around inf 29.6
if -5.002975753531875e-285 < y0 < 2.702305498117942e+42Initial program 26.3
rmApplied add-cube-cbrt26.3
Applied associate-*r*26.3
if 2.702305498117942e+42 < y0 Initial program 29.9
Taylor expanded around inf 32.2
Final simplification28.4
herbie shell --seed 2019325
(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)))))