\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 -3.4570970679820737 \cdot 10^{-29}:\\
\;\;\;\;\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}\;y0 \le -1.84084513179591304 \cdot 10^{-157}:\\
\;\;\;\;\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) + 0\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 -5.616093564077172 \cdot 10^{-292}:\\
\;\;\;\;\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(\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) + 0\\
\mathbf{elif}\;y0 \le 2.3597299977313244 \cdot 10^{-243}:\\
\;\;\;\;\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}\;y0 \le 2.58716098330626028 \cdot 10^{-129}:\\
\;\;\;\;\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(\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) + 0\\
\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(\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) - 0\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 r196355 = x;
double r196356 = y;
double r196357 = r196355 * r196356;
double r196358 = z;
double r196359 = t;
double r196360 = r196358 * r196359;
double r196361 = r196357 - r196360;
double r196362 = a;
double r196363 = b;
double r196364 = r196362 * r196363;
double r196365 = c;
double r196366 = i;
double r196367 = r196365 * r196366;
double r196368 = r196364 - r196367;
double r196369 = r196361 * r196368;
double r196370 = j;
double r196371 = r196355 * r196370;
double r196372 = k;
double r196373 = r196358 * r196372;
double r196374 = r196371 - r196373;
double r196375 = y0;
double r196376 = r196375 * r196363;
double r196377 = y1;
double r196378 = r196377 * r196366;
double r196379 = r196376 - r196378;
double r196380 = r196374 * r196379;
double r196381 = r196369 - r196380;
double r196382 = y2;
double r196383 = r196355 * r196382;
double r196384 = y3;
double r196385 = r196358 * r196384;
double r196386 = r196383 - r196385;
double r196387 = r196375 * r196365;
double r196388 = r196377 * r196362;
double r196389 = r196387 - r196388;
double r196390 = r196386 * r196389;
double r196391 = r196381 + r196390;
double r196392 = r196359 * r196370;
double r196393 = r196356 * r196372;
double r196394 = r196392 - r196393;
double r196395 = y4;
double r196396 = r196395 * r196363;
double r196397 = y5;
double r196398 = r196397 * r196366;
double r196399 = r196396 - r196398;
double r196400 = r196394 * r196399;
double r196401 = r196391 + r196400;
double r196402 = r196359 * r196382;
double r196403 = r196356 * r196384;
double r196404 = r196402 - r196403;
double r196405 = r196395 * r196365;
double r196406 = r196397 * r196362;
double r196407 = r196405 - r196406;
double r196408 = r196404 * r196407;
double r196409 = r196401 - r196408;
double r196410 = r196372 * r196382;
double r196411 = r196370 * r196384;
double r196412 = r196410 - r196411;
double r196413 = r196395 * r196377;
double r196414 = r196397 * r196375;
double r196415 = r196413 - r196414;
double r196416 = r196412 * r196415;
double r196417 = r196409 + r196416;
return r196417;
}
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 r196418 = y0;
double r196419 = -3.4570970679820737e-29;
bool r196420 = r196418 <= r196419;
double r196421 = x;
double r196422 = y;
double r196423 = r196421 * r196422;
double r196424 = z;
double r196425 = t;
double r196426 = r196424 * r196425;
double r196427 = r196423 - r196426;
double r196428 = a;
double r196429 = b;
double r196430 = r196428 * r196429;
double r196431 = c;
double r196432 = i;
double r196433 = r196431 * r196432;
double r196434 = r196430 - r196433;
double r196435 = r196427 * r196434;
double r196436 = j;
double r196437 = r196421 * r196436;
double r196438 = k;
double r196439 = r196424 * r196438;
double r196440 = r196437 - r196439;
double r196441 = r196418 * r196429;
double r196442 = y1;
double r196443 = r196442 * r196432;
double r196444 = r196441 - r196443;
double r196445 = r196440 * r196444;
double r196446 = r196435 - r196445;
double r196447 = y2;
double r196448 = r196421 * r196447;
double r196449 = y3;
double r196450 = r196424 * r196449;
double r196451 = r196448 - r196450;
double r196452 = r196418 * r196431;
double r196453 = r196442 * r196428;
double r196454 = r196452 - r196453;
double r196455 = r196451 * r196454;
double r196456 = r196446 + r196455;
double r196457 = r196425 * r196436;
double r196458 = r196422 * r196438;
double r196459 = r196457 - r196458;
double r196460 = y4;
double r196461 = r196460 * r196429;
double r196462 = y5;
double r196463 = r196462 * r196432;
double r196464 = r196461 - r196463;
double r196465 = r196459 * r196464;
double r196466 = r196456 + r196465;
double r196467 = r196425 * r196447;
double r196468 = r196422 * r196449;
double r196469 = r196467 - r196468;
double r196470 = r196460 * r196431;
double r196471 = r196462 * r196428;
double r196472 = r196470 - r196471;
double r196473 = r196469 * r196472;
double r196474 = r196466 - r196473;
double r196475 = r196436 * r196462;
double r196476 = r196449 * r196475;
double r196477 = r196418 * r196476;
double r196478 = r196438 * r196462;
double r196479 = r196447 * r196478;
double r196480 = r196418 * r196479;
double r196481 = r196436 * r196460;
double r196482 = r196449 * r196481;
double r196483 = r196442 * r196482;
double r196484 = r196480 + r196483;
double r196485 = r196477 - r196484;
double r196486 = r196474 + r196485;
double r196487 = -1.840845131795913e-157;
bool r196488 = r196418 <= r196487;
double r196489 = 0.0;
double r196490 = r196456 + r196489;
double r196491 = r196490 - r196473;
double r196492 = r196438 * r196447;
double r196493 = r196436 * r196449;
double r196494 = r196492 - r196493;
double r196495 = r196460 * r196442;
double r196496 = r196462 * r196418;
double r196497 = r196495 - r196496;
double r196498 = r196494 * r196497;
double r196499 = r196491 + r196498;
double r196500 = -5.616093564077172e-292;
bool r196501 = r196418 <= r196500;
double r196502 = cbrt(r196464);
double r196503 = r196502 * r196502;
double r196504 = r196459 * r196503;
double r196505 = r196504 * r196502;
double r196506 = r196456 + r196505;
double r196507 = r196506 - r196473;
double r196508 = r196507 + r196489;
double r196509 = 2.3597299977313244e-243;
bool r196510 = r196418 <= r196509;
double r196511 = r196424 * r196442;
double r196512 = r196432 * r196511;
double r196513 = r196438 * r196512;
double r196514 = r196442 * r196421;
double r196515 = r196436 * r196514;
double r196516 = r196432 * r196515;
double r196517 = r196438 * r196429;
double r196518 = r196424 * r196517;
double r196519 = r196418 * r196518;
double r196520 = r196516 + r196519;
double r196521 = r196513 - r196520;
double r196522 = r196435 - r196521;
double r196523 = r196522 + r196455;
double r196524 = r196523 + r196465;
double r196525 = r196524 - r196473;
double r196526 = r196525 + r196498;
double r196527 = 2.5871609833062603e-129;
bool r196528 = r196418 <= r196527;
double r196529 = r196506 - r196489;
double r196530 = r196529 + r196498;
double r196531 = r196528 ? r196508 : r196530;
double r196532 = r196510 ? r196526 : r196531;
double r196533 = r196501 ? r196508 : r196532;
double r196534 = r196488 ? r196499 : r196533;
double r196535 = r196420 ? r196486 : r196534;
return r196535;
}



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 < -3.4570970679820737e-29Initial program 26.9
Taylor expanded around inf 26.6
if -3.4570970679820737e-29 < y0 < -1.840845131795913e-157Initial program 25.8
Taylor expanded around 0 31.5
if -1.840845131795913e-157 < y0 < -5.616093564077172e-292 or 2.3597299977313244e-243 < y0 < 2.5871609833062603e-129Initial program 26.8
rmApplied add-cube-cbrt27.0
Applied associate-*r*27.0
Taylor expanded around 0 30.7
if -5.616093564077172e-292 < y0 < 2.3597299977313244e-243Initial program 28.7
Taylor expanded around inf 31.1
if 2.5871609833062603e-129 < y0 Initial program 27.7
rmApplied add-cube-cbrt27.7
Applied associate-*r*27.7
Taylor expanded around 0 31.4
Final simplification30.2
herbie shell --seed 2020062
(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)))))