\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 -255859316532810110:\\
\;\;\;\;\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}\;a \le 2.3962185992380315 \cdot 10^{-76}:\\
\;\;\;\;\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(\sqrt[3]{\left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)} \cdot \sqrt[3]{\left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)}\right) \cdot \sqrt[3]{\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}\;a \le 3.1430073558397789 \cdot 10^{-17}:\\
\;\;\;\;\left(\left(\left(\left(\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} - 0\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{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(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)\\
\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 r162497 = x;
double r162498 = y;
double r162499 = r162497 * r162498;
double r162500 = z;
double r162501 = t;
double r162502 = r162500 * r162501;
double r162503 = r162499 - r162502;
double r162504 = a;
double r162505 = b;
double r162506 = r162504 * r162505;
double r162507 = c;
double r162508 = i;
double r162509 = r162507 * r162508;
double r162510 = r162506 - r162509;
double r162511 = r162503 * r162510;
double r162512 = j;
double r162513 = r162497 * r162512;
double r162514 = k;
double r162515 = r162500 * r162514;
double r162516 = r162513 - r162515;
double r162517 = y0;
double r162518 = r162517 * r162505;
double r162519 = y1;
double r162520 = r162519 * r162508;
double r162521 = r162518 - r162520;
double r162522 = r162516 * r162521;
double r162523 = r162511 - r162522;
double r162524 = y2;
double r162525 = r162497 * r162524;
double r162526 = y3;
double r162527 = r162500 * r162526;
double r162528 = r162525 - r162527;
double r162529 = r162517 * r162507;
double r162530 = r162519 * r162504;
double r162531 = r162529 - r162530;
double r162532 = r162528 * r162531;
double r162533 = r162523 + r162532;
double r162534 = r162501 * r162512;
double r162535 = r162498 * r162514;
double r162536 = r162534 - r162535;
double r162537 = y4;
double r162538 = r162537 * r162505;
double r162539 = y5;
double r162540 = r162539 * r162508;
double r162541 = r162538 - r162540;
double r162542 = r162536 * r162541;
double r162543 = r162533 + r162542;
double r162544 = r162501 * r162524;
double r162545 = r162498 * r162526;
double r162546 = r162544 - r162545;
double r162547 = r162537 * r162507;
double r162548 = r162539 * r162504;
double r162549 = r162547 - r162548;
double r162550 = r162546 * r162549;
double r162551 = r162543 - r162550;
double r162552 = r162514 * r162524;
double r162553 = r162512 * r162526;
double r162554 = r162552 - r162553;
double r162555 = r162537 * r162519;
double r162556 = r162539 * r162517;
double r162557 = r162555 - r162556;
double r162558 = r162554 * r162557;
double r162559 = r162551 + r162558;
return r162559;
}
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 r162560 = a;
double r162561 = -2.558593165328101e+17;
bool r162562 = r162560 <= r162561;
double r162563 = x;
double r162564 = y;
double r162565 = r162563 * r162564;
double r162566 = z;
double r162567 = t;
double r162568 = r162566 * r162567;
double r162569 = r162565 - r162568;
double r162570 = b;
double r162571 = r162560 * r162570;
double r162572 = c;
double r162573 = i;
double r162574 = r162572 * r162573;
double r162575 = r162571 - r162574;
double r162576 = r162569 * r162575;
double r162577 = k;
double r162578 = y1;
double r162579 = r162566 * r162578;
double r162580 = r162573 * r162579;
double r162581 = r162577 * r162580;
double r162582 = j;
double r162583 = r162578 * r162563;
double r162584 = r162582 * r162583;
double r162585 = r162573 * r162584;
double r162586 = y0;
double r162587 = r162577 * r162570;
double r162588 = r162566 * r162587;
double r162589 = r162586 * r162588;
double r162590 = r162585 + r162589;
double r162591 = r162581 - r162590;
double r162592 = r162576 - r162591;
double r162593 = y2;
double r162594 = r162563 * r162593;
double r162595 = y3;
double r162596 = r162566 * r162595;
double r162597 = r162594 - r162596;
double r162598 = r162586 * r162572;
double r162599 = r162578 * r162560;
double r162600 = r162598 - r162599;
double r162601 = r162597 * r162600;
double r162602 = r162592 + r162601;
double r162603 = r162567 * r162582;
double r162604 = r162564 * r162577;
double r162605 = r162603 - r162604;
double r162606 = y4;
double r162607 = r162606 * r162570;
double r162608 = y5;
double r162609 = r162608 * r162573;
double r162610 = r162607 - r162609;
double r162611 = r162605 * r162610;
double r162612 = r162602 + r162611;
double r162613 = r162567 * r162593;
double r162614 = r162564 * r162595;
double r162615 = r162613 - r162614;
double r162616 = r162606 * r162572;
double r162617 = r162608 * r162560;
double r162618 = r162616 - r162617;
double r162619 = r162615 * r162618;
double r162620 = r162612 - r162619;
double r162621 = r162577 * r162593;
double r162622 = r162582 * r162595;
double r162623 = r162621 - r162622;
double r162624 = r162606 * r162578;
double r162625 = r162608 * r162586;
double r162626 = r162624 - r162625;
double r162627 = r162623 * r162626;
double r162628 = r162620 + r162627;
double r162629 = 2.3962185992380315e-76;
bool r162630 = r162560 <= r162629;
double r162631 = r162563 * r162582;
double r162632 = r162566 * r162577;
double r162633 = r162631 - r162632;
double r162634 = r162586 * r162570;
double r162635 = r162578 * r162573;
double r162636 = r162634 - r162635;
double r162637 = r162633 * r162636;
double r162638 = r162576 - r162637;
double r162639 = r162638 + r162601;
double r162640 = cbrt(r162611);
double r162641 = r162640 * r162640;
double r162642 = r162641 * r162640;
double r162643 = r162639 + r162642;
double r162644 = r162643 - r162619;
double r162645 = r162644 + r162627;
double r162646 = 3.143007355839779e-17;
bool r162647 = r162560 <= r162646;
double r162648 = cbrt(r162575);
double r162649 = r162648 * r162648;
double r162650 = r162569 * r162649;
double r162651 = r162650 * r162648;
double r162652 = 0.0;
double r162653 = r162651 - r162652;
double r162654 = r162653 + r162601;
double r162655 = r162654 + r162611;
double r162656 = r162655 - r162619;
double r162657 = r162656 + r162627;
double r162658 = r162564 * r162608;
double r162659 = r162573 * r162658;
double r162660 = r162577 * r162659;
double r162661 = r162582 * r162608;
double r162662 = r162573 * r162661;
double r162663 = r162567 * r162662;
double r162664 = r162564 * r162570;
double r162665 = r162606 * r162664;
double r162666 = r162577 * r162665;
double r162667 = r162663 + r162666;
double r162668 = r162660 - r162667;
double r162669 = r162639 + r162668;
double r162670 = r162669 - r162619;
double r162671 = r162670 + r162627;
double r162672 = r162647 ? r162657 : r162671;
double r162673 = r162630 ? r162645 : r162672;
double r162674 = r162562 ? r162628 : r162673;
return r162674;
}



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 < -2.558593165328101e+17Initial program 28.4
Taylor expanded around inf 29.3
if -2.558593165328101e+17 < a < 2.3962185992380315e-76Initial program 25.6
rmApplied add-cube-cbrt25.7
if 2.3962185992380315e-76 < a < 3.143007355839779e-17Initial program 23.3
rmApplied add-cube-cbrt23.5
Applied associate-*r*23.5
Taylor expanded around 0 28.4
if 3.143007355839779e-17 < a Initial program 29.5
Taylor expanded around inf 30.3
Final simplification27.3
herbie shell --seed 2020057
(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)))))