\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}\;a \le -8.716495062710197380337340256062361731892 \cdot 10^{-5}:\\
\;\;\;\;\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(\sqrt[3]{t \cdot j - y \cdot k} \cdot \sqrt[3]{t \cdot j - y \cdot k}\right) \cdot \left(\sqrt[3]{t \cdot j - y \cdot k} \cdot \left(y4 \cdot b - y5 \cdot i\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}\;a \le 2.024773376015832971330485951675493156674 \cdot 10^{-180}:\\
\;\;\;\;\left(\left(\left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right) + \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)\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(\sqrt[3]{\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right)} \cdot \sqrt[3]{\left(\left(x \cdot y - z \cdot t\right) \cdot \left(\sqrt[3]{a \cdot b - c \cdot i} \cdot \sqrt[3]{a \cdot b - c \cdot i}\right)\right) \cdot \sqrt[3]{a \cdot b - c \cdot i}}\right) \cdot \sqrt[3]{\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)\\
\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 r124457 = x;
double r124458 = y;
double r124459 = r124457 * r124458;
double r124460 = z;
double r124461 = t;
double r124462 = r124460 * r124461;
double r124463 = r124459 - r124462;
double r124464 = a;
double r124465 = b;
double r124466 = r124464 * r124465;
double r124467 = c;
double r124468 = i;
double r124469 = r124467 * r124468;
double r124470 = r124466 - r124469;
double r124471 = r124463 * r124470;
double r124472 = j;
double r124473 = r124457 * r124472;
double r124474 = k;
double r124475 = r124460 * r124474;
double r124476 = r124473 - r124475;
double r124477 = y0;
double r124478 = r124477 * r124465;
double r124479 = y1;
double r124480 = r124479 * r124468;
double r124481 = r124478 - r124480;
double r124482 = r124476 * r124481;
double r124483 = r124471 - r124482;
double r124484 = y2;
double r124485 = r124457 * r124484;
double r124486 = y3;
double r124487 = r124460 * r124486;
double r124488 = r124485 - r124487;
double r124489 = r124477 * r124467;
double r124490 = r124479 * r124464;
double r124491 = r124489 - r124490;
double r124492 = r124488 * r124491;
double r124493 = r124483 + r124492;
double r124494 = r124461 * r124472;
double r124495 = r124458 * r124474;
double r124496 = r124494 - r124495;
double r124497 = y4;
double r124498 = r124497 * r124465;
double r124499 = y5;
double r124500 = r124499 * r124468;
double r124501 = r124498 - r124500;
double r124502 = r124496 * r124501;
double r124503 = r124493 + r124502;
double r124504 = r124461 * r124484;
double r124505 = r124458 * r124486;
double r124506 = r124504 - r124505;
double r124507 = r124497 * r124467;
double r124508 = r124499 * r124464;
double r124509 = r124507 - r124508;
double r124510 = r124506 * r124509;
double r124511 = r124503 - r124510;
double r124512 = r124474 * r124484;
double r124513 = r124472 * r124486;
double r124514 = r124512 - r124513;
double r124515 = r124497 * r124479;
double r124516 = r124499 * r124477;
double r124517 = r124515 - r124516;
double r124518 = r124514 * r124517;
double r124519 = r124511 + r124518;
return r124519;
}
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 r124520 = a;
double r124521 = -8.716495062710197e-05;
bool r124522 = r124520 <= r124521;
double r124523 = x;
double r124524 = y;
double r124525 = r124523 * r124524;
double r124526 = z;
double r124527 = t;
double r124528 = r124526 * r124527;
double r124529 = r124525 - r124528;
double r124530 = b;
double r124531 = r124520 * r124530;
double r124532 = c;
double r124533 = i;
double r124534 = r124532 * r124533;
double r124535 = r124531 - r124534;
double r124536 = r124529 * r124535;
double r124537 = k;
double r124538 = y1;
double r124539 = r124526 * r124538;
double r124540 = r124533 * r124539;
double r124541 = r124537 * r124540;
double r124542 = j;
double r124543 = r124538 * r124523;
double r124544 = r124542 * r124543;
double r124545 = r124533 * r124544;
double r124546 = y0;
double r124547 = r124537 * r124530;
double r124548 = r124526 * r124547;
double r124549 = r124546 * r124548;
double r124550 = r124545 + r124549;
double r124551 = r124541 - r124550;
double r124552 = r124536 - r124551;
double r124553 = y2;
double r124554 = r124523 * r124553;
double r124555 = y3;
double r124556 = r124526 * r124555;
double r124557 = r124554 - r124556;
double r124558 = r124546 * r124532;
double r124559 = r124538 * r124520;
double r124560 = r124558 - r124559;
double r124561 = r124557 * r124560;
double r124562 = r124552 + r124561;
double r124563 = r124527 * r124542;
double r124564 = r124524 * r124537;
double r124565 = r124563 - r124564;
double r124566 = cbrt(r124565);
double r124567 = r124566 * r124566;
double r124568 = y4;
double r124569 = r124568 * r124530;
double r124570 = y5;
double r124571 = r124570 * r124533;
double r124572 = r124569 - r124571;
double r124573 = r124566 * r124572;
double r124574 = r124567 * r124573;
double r124575 = r124562 + r124574;
double r124576 = r124527 * r124553;
double r124577 = r124524 * r124555;
double r124578 = r124576 - r124577;
double r124579 = r124568 * r124532;
double r124580 = r124570 * r124520;
double r124581 = r124579 - r124580;
double r124582 = r124578 * r124581;
double r124583 = r124575 - r124582;
double r124584 = r124537 * r124553;
double r124585 = r124542 * r124555;
double r124586 = r124584 - r124585;
double r124587 = r124568 * r124538;
double r124588 = r124570 * r124546;
double r124589 = r124587 - r124588;
double r124590 = r124586 * r124589;
double r124591 = r124583 + r124590;
double r124592 = 2.024773376015833e-180;
bool r124593 = r124520 <= r124592;
double r124594 = r124565 * r124572;
double r124595 = r124523 * r124542;
double r124596 = r124526 * r124537;
double r124597 = r124595 - r124596;
double r124598 = r124546 * r124530;
double r124599 = r124538 * r124533;
double r124600 = r124598 - r124599;
double r124601 = r124597 * r124600;
double r124602 = r124536 - r124601;
double r124603 = r124594 + r124602;
double r124604 = r124603 - r124582;
double r124605 = r124604 + r124590;
double r124606 = cbrt(r124536);
double r124607 = cbrt(r124535);
double r124608 = r124607 * r124607;
double r124609 = r124529 * r124608;
double r124610 = r124609 * r124607;
double r124611 = cbrt(r124610);
double r124612 = r124606 * r124611;
double r124613 = r124612 * r124606;
double r124614 = r124613 - r124601;
double r124615 = r124614 + r124561;
double r124616 = r124615 + r124594;
double r124617 = r124616 - r124582;
double r124618 = r124617 + r124590;
double r124619 = r124593 ? r124605 : r124618;
double r124620 = r124522 ? r124591 : r124619;
return r124620;
}



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 a < -8.716495062710197e-05Initial program 29.2
rmApplied add-cube-cbrt29.2
Applied associate-*l*29.2
Taylor expanded around inf 29.8
if -8.716495062710197e-05 < a < 2.024773376015833e-180Initial program 26.6
Taylor expanded around 0 30.4
if 2.024773376015833e-180 < a Initial program 26.6
rmApplied add-cube-cbrt26.7
rmApplied add-cube-cbrt26.7
Applied associate-*r*26.7
Final simplification29.0
herbie shell --seed 2019306
(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)))))