\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 r196455 = x;
double r196456 = y;
double r196457 = r196455 * r196456;
double r196458 = z;
double r196459 = t;
double r196460 = r196458 * r196459;
double r196461 = r196457 - r196460;
double r196462 = a;
double r196463 = b;
double r196464 = r196462 * r196463;
double r196465 = c;
double r196466 = i;
double r196467 = r196465 * r196466;
double r196468 = r196464 - r196467;
double r196469 = r196461 * r196468;
double r196470 = j;
double r196471 = r196455 * r196470;
double r196472 = k;
double r196473 = r196458 * r196472;
double r196474 = r196471 - r196473;
double r196475 = y0;
double r196476 = r196475 * r196463;
double r196477 = y1;
double r196478 = r196477 * r196466;
double r196479 = r196476 - r196478;
double r196480 = r196474 * r196479;
double r196481 = r196469 - r196480;
double r196482 = y2;
double r196483 = r196455 * r196482;
double r196484 = y3;
double r196485 = r196458 * r196484;
double r196486 = r196483 - r196485;
double r196487 = r196475 * r196465;
double r196488 = r196477 * r196462;
double r196489 = r196487 - r196488;
double r196490 = r196486 * r196489;
double r196491 = r196481 + r196490;
double r196492 = r196459 * r196470;
double r196493 = r196456 * r196472;
double r196494 = r196492 - r196493;
double r196495 = y4;
double r196496 = r196495 * r196463;
double r196497 = y5;
double r196498 = r196497 * r196466;
double r196499 = r196496 - r196498;
double r196500 = r196494 * r196499;
double r196501 = r196491 + r196500;
double r196502 = r196459 * r196482;
double r196503 = r196456 * r196484;
double r196504 = r196502 - r196503;
double r196505 = r196495 * r196465;
double r196506 = r196497 * r196462;
double r196507 = r196505 - r196506;
double r196508 = r196504 * r196507;
double r196509 = r196501 - r196508;
double r196510 = r196472 * r196482;
double r196511 = r196470 * r196484;
double r196512 = r196510 - r196511;
double r196513 = r196495 * r196477;
double r196514 = r196497 * r196475;
double r196515 = r196513 - r196514;
double r196516 = r196512 * r196515;
double r196517 = r196509 + r196516;
return r196517;
}
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 r196518 = y0;
double r196519 = -3.4570970679820737e-29;
bool r196520 = r196518 <= r196519;
double r196521 = x;
double r196522 = y;
double r196523 = r196521 * r196522;
double r196524 = z;
double r196525 = t;
double r196526 = r196524 * r196525;
double r196527 = r196523 - r196526;
double r196528 = a;
double r196529 = b;
double r196530 = r196528 * r196529;
double r196531 = c;
double r196532 = i;
double r196533 = r196531 * r196532;
double r196534 = r196530 - r196533;
double r196535 = r196527 * r196534;
double r196536 = j;
double r196537 = r196521 * r196536;
double r196538 = k;
double r196539 = r196524 * r196538;
double r196540 = r196537 - r196539;
double r196541 = r196518 * r196529;
double r196542 = y1;
double r196543 = r196542 * r196532;
double r196544 = r196541 - r196543;
double r196545 = r196540 * r196544;
double r196546 = r196535 - r196545;
double r196547 = y2;
double r196548 = r196521 * r196547;
double r196549 = y3;
double r196550 = r196524 * r196549;
double r196551 = r196548 - r196550;
double r196552 = r196518 * r196531;
double r196553 = r196542 * r196528;
double r196554 = r196552 - r196553;
double r196555 = r196551 * r196554;
double r196556 = r196546 + r196555;
double r196557 = r196525 * r196536;
double r196558 = r196522 * r196538;
double r196559 = r196557 - r196558;
double r196560 = y4;
double r196561 = r196560 * r196529;
double r196562 = y5;
double r196563 = r196562 * r196532;
double r196564 = r196561 - r196563;
double r196565 = r196559 * r196564;
double r196566 = r196556 + r196565;
double r196567 = r196525 * r196547;
double r196568 = r196522 * r196549;
double r196569 = r196567 - r196568;
double r196570 = r196560 * r196531;
double r196571 = r196562 * r196528;
double r196572 = r196570 - r196571;
double r196573 = r196569 * r196572;
double r196574 = r196566 - r196573;
double r196575 = r196536 * r196562;
double r196576 = r196549 * r196575;
double r196577 = r196518 * r196576;
double r196578 = r196538 * r196562;
double r196579 = r196547 * r196578;
double r196580 = r196518 * r196579;
double r196581 = r196536 * r196560;
double r196582 = r196549 * r196581;
double r196583 = r196542 * r196582;
double r196584 = r196580 + r196583;
double r196585 = r196577 - r196584;
double r196586 = r196574 + r196585;
double r196587 = -1.840845131795913e-157;
bool r196588 = r196518 <= r196587;
double r196589 = 0.0;
double r196590 = r196556 + r196589;
double r196591 = r196590 - r196573;
double r196592 = r196538 * r196547;
double r196593 = r196536 * r196549;
double r196594 = r196592 - r196593;
double r196595 = r196560 * r196542;
double r196596 = r196562 * r196518;
double r196597 = r196595 - r196596;
double r196598 = r196594 * r196597;
double r196599 = r196591 + r196598;
double r196600 = -5.616093564077172e-292;
bool r196601 = r196518 <= r196600;
double r196602 = cbrt(r196564);
double r196603 = r196602 * r196602;
double r196604 = r196559 * r196603;
double r196605 = r196604 * r196602;
double r196606 = r196556 + r196605;
double r196607 = r196606 - r196573;
double r196608 = r196607 + r196589;
double r196609 = 2.3597299977313244e-243;
bool r196610 = r196518 <= r196609;
double r196611 = r196524 * r196542;
double r196612 = r196532 * r196611;
double r196613 = r196538 * r196612;
double r196614 = r196542 * r196521;
double r196615 = r196536 * r196614;
double r196616 = r196532 * r196615;
double r196617 = r196538 * r196529;
double r196618 = r196524 * r196617;
double r196619 = r196518 * r196618;
double r196620 = r196616 + r196619;
double r196621 = r196613 - r196620;
double r196622 = r196535 - r196621;
double r196623 = r196622 + r196555;
double r196624 = r196623 + r196565;
double r196625 = r196624 - r196573;
double r196626 = r196625 + r196598;
double r196627 = 2.5871609833062603e-129;
bool r196628 = r196518 <= r196627;
double r196629 = r196606 - r196589;
double r196630 = r196629 + r196598;
double r196631 = r196628 ? r196608 : r196630;
double r196632 = r196610 ? r196626 : r196631;
double r196633 = r196601 ? r196608 : r196632;
double r196634 = r196588 ? r196599 : r196633;
double r196635 = r196520 ? r196586 : r196634;
return r196635;
}



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)))))