\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}\;y1 \le -3.3506910298792809 \cdot 10^{-74}:\\
\;\;\;\;\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}\;y1 \le -3.5201604887001222 \cdot 10^{-217}:\\
\;\;\;\;\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(\sqrt[3]{x \cdot j - z \cdot k} \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(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}\;y1 \le 3.584673582248427 \cdot 10^{-257}:\\
\;\;\;\;\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}\;y1 \le 2.29505183355715006 \cdot 10^{-221}:\\
\;\;\;\;\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{elif}\;y1 \le 3.37474929350029324 \cdot 10^{98}:\\
\;\;\;\;\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{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(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)\\
\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 r157452 = x;
double r157453 = y;
double r157454 = r157452 * r157453;
double r157455 = z;
double r157456 = t;
double r157457 = r157455 * r157456;
double r157458 = r157454 - r157457;
double r157459 = a;
double r157460 = b;
double r157461 = r157459 * r157460;
double r157462 = c;
double r157463 = i;
double r157464 = r157462 * r157463;
double r157465 = r157461 - r157464;
double r157466 = r157458 * r157465;
double r157467 = j;
double r157468 = r157452 * r157467;
double r157469 = k;
double r157470 = r157455 * r157469;
double r157471 = r157468 - r157470;
double r157472 = y0;
double r157473 = r157472 * r157460;
double r157474 = y1;
double r157475 = r157474 * r157463;
double r157476 = r157473 - r157475;
double r157477 = r157471 * r157476;
double r157478 = r157466 - r157477;
double r157479 = y2;
double r157480 = r157452 * r157479;
double r157481 = y3;
double r157482 = r157455 * r157481;
double r157483 = r157480 - r157482;
double r157484 = r157472 * r157462;
double r157485 = r157474 * r157459;
double r157486 = r157484 - r157485;
double r157487 = r157483 * r157486;
double r157488 = r157478 + r157487;
double r157489 = r157456 * r157467;
double r157490 = r157453 * r157469;
double r157491 = r157489 - r157490;
double r157492 = y4;
double r157493 = r157492 * r157460;
double r157494 = y5;
double r157495 = r157494 * r157463;
double r157496 = r157493 - r157495;
double r157497 = r157491 * r157496;
double r157498 = r157488 + r157497;
double r157499 = r157456 * r157479;
double r157500 = r157453 * r157481;
double r157501 = r157499 - r157500;
double r157502 = r157492 * r157462;
double r157503 = r157494 * r157459;
double r157504 = r157502 - r157503;
double r157505 = r157501 * r157504;
double r157506 = r157498 - r157505;
double r157507 = r157469 * r157479;
double r157508 = r157467 * r157481;
double r157509 = r157507 - r157508;
double r157510 = r157492 * r157474;
double r157511 = r157494 * r157472;
double r157512 = r157510 - r157511;
double r157513 = r157509 * r157512;
double r157514 = r157506 + r157513;
return r157514;
}
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 r157515 = y1;
double r157516 = -3.350691029879281e-74;
bool r157517 = r157515 <= r157516;
double r157518 = x;
double r157519 = y;
double r157520 = r157518 * r157519;
double r157521 = z;
double r157522 = t;
double r157523 = r157521 * r157522;
double r157524 = r157520 - r157523;
double r157525 = a;
double r157526 = b;
double r157527 = r157525 * r157526;
double r157528 = c;
double r157529 = i;
double r157530 = r157528 * r157529;
double r157531 = r157527 - r157530;
double r157532 = r157524 * r157531;
double r157533 = j;
double r157534 = r157518 * r157533;
double r157535 = k;
double r157536 = r157521 * r157535;
double r157537 = r157534 - r157536;
double r157538 = y0;
double r157539 = r157538 * r157526;
double r157540 = r157515 * r157529;
double r157541 = r157539 - r157540;
double r157542 = r157537 * r157541;
double r157543 = r157532 - r157542;
double r157544 = y2;
double r157545 = r157518 * r157544;
double r157546 = y3;
double r157547 = r157521 * r157546;
double r157548 = r157545 - r157547;
double r157549 = r157538 * r157528;
double r157550 = r157515 * r157525;
double r157551 = r157549 - r157550;
double r157552 = r157548 * r157551;
double r157553 = r157543 + r157552;
double r157554 = r157522 * r157533;
double r157555 = r157519 * r157535;
double r157556 = r157554 - r157555;
double r157557 = y4;
double r157558 = r157557 * r157526;
double r157559 = y5;
double r157560 = r157559 * r157529;
double r157561 = r157558 - r157560;
double r157562 = r157556 * r157561;
double r157563 = r157553 + r157562;
double r157564 = r157522 * r157544;
double r157565 = r157519 * r157546;
double r157566 = r157564 - r157565;
double r157567 = r157557 * r157528;
double r157568 = r157559 * r157525;
double r157569 = r157567 - r157568;
double r157570 = r157566 * r157569;
double r157571 = r157563 - r157570;
double r157572 = r157533 * r157559;
double r157573 = r157546 * r157572;
double r157574 = r157538 * r157573;
double r157575 = r157535 * r157559;
double r157576 = r157544 * r157575;
double r157577 = r157538 * r157576;
double r157578 = r157533 * r157557;
double r157579 = r157546 * r157578;
double r157580 = r157515 * r157579;
double r157581 = r157577 + r157580;
double r157582 = r157574 - r157581;
double r157583 = r157571 + r157582;
double r157584 = -3.5201604887001222e-217;
bool r157585 = r157515 <= r157584;
double r157586 = cbrt(r157537);
double r157587 = r157586 * r157586;
double r157588 = r157586 * r157541;
double r157589 = r157587 * r157588;
double r157590 = r157532 - r157589;
double r157591 = r157590 + r157552;
double r157592 = r157519 * r157559;
double r157593 = r157529 * r157592;
double r157594 = r157535 * r157593;
double r157595 = r157529 * r157572;
double r157596 = r157522 * r157595;
double r157597 = r157519 * r157526;
double r157598 = r157557 * r157597;
double r157599 = r157535 * r157598;
double r157600 = r157596 + r157599;
double r157601 = r157594 - r157600;
double r157602 = r157591 + r157601;
double r157603 = r157602 - r157570;
double r157604 = r157535 * r157544;
double r157605 = r157533 * r157546;
double r157606 = r157604 - r157605;
double r157607 = r157557 * r157515;
double r157608 = r157559 * r157538;
double r157609 = r157607 - r157608;
double r157610 = r157606 * r157609;
double r157611 = r157603 + r157610;
double r157612 = 3.584673582248427e-257;
bool r157613 = r157515 <= r157612;
double r157614 = r157521 * r157515;
double r157615 = r157529 * r157614;
double r157616 = r157535 * r157615;
double r157617 = r157515 * r157518;
double r157618 = r157533 * r157617;
double r157619 = r157529 * r157618;
double r157620 = r157535 * r157526;
double r157621 = r157521 * r157620;
double r157622 = r157538 * r157621;
double r157623 = r157619 + r157622;
double r157624 = r157616 - r157623;
double r157625 = r157532 - r157624;
double r157626 = r157625 + r157552;
double r157627 = r157626 + r157562;
double r157628 = r157627 - r157570;
double r157629 = r157628 + r157610;
double r157630 = 2.29505183355715e-221;
bool r157631 = r157515 <= r157630;
double r157632 = r157521 * r157528;
double r157633 = r157529 * r157632;
double r157634 = r157522 * r157633;
double r157635 = r157519 * r157518;
double r157636 = r157528 * r157635;
double r157637 = r157529 * r157636;
double r157638 = r157521 * r157526;
double r157639 = r157522 * r157638;
double r157640 = r157525 * r157639;
double r157641 = r157637 + r157640;
double r157642 = r157634 - r157641;
double r157643 = r157642 - r157542;
double r157644 = r157643 + r157552;
double r157645 = r157644 + r157562;
double r157646 = r157645 - r157570;
double r157647 = r157646 + r157610;
double r157648 = 3.374749293500293e+98;
bool r157649 = r157515 <= r157648;
double r157650 = r157515 * r157521;
double r157651 = r157546 * r157650;
double r157652 = r157525 * r157651;
double r157653 = r157546 * r157528;
double r157654 = r157521 * r157653;
double r157655 = r157538 * r157654;
double r157656 = r157544 * r157515;
double r157657 = r157518 * r157656;
double r157658 = r157525 * r157657;
double r157659 = r157655 + r157658;
double r157660 = r157652 - r157659;
double r157661 = r157543 + r157660;
double r157662 = r157661 + r157562;
double r157663 = r157662 - r157570;
double r157664 = r157663 + r157610;
double r157665 = r157649 ? r157664 : r157583;
double r157666 = r157631 ? r157647 : r157665;
double r157667 = r157613 ? r157629 : r157666;
double r157668 = r157585 ? r157611 : r157667;
double r157669 = r157517 ? r157583 : r157668;
return r157669;
}



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 y1 < -3.350691029879281e-74 or 3.374749293500293e+98 < y1 Initial program 29.9
Taylor expanded around inf 32.3
if -3.350691029879281e-74 < y1 < -3.5201604887001222e-217Initial program 26.7
rmApplied add-cube-cbrt26.8
Applied associate-*l*26.8
Taylor expanded around inf 29.7
if -3.5201604887001222e-217 < y1 < 3.584673582248427e-257Initial program 26.5
Taylor expanded around inf 28.1
if 3.584673582248427e-257 < y1 < 2.29505183355715e-221Initial program 26.0
Taylor expanded around inf 27.8
if 2.29505183355715e-221 < y1 < 3.374749293500293e+98Initial program 25.7
Taylor expanded around inf 27.5
Final simplification29.6
herbie shell --seed 2020036
(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)))))