\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}\;y5 \le -6.22615300455259295 \cdot 10^{-308}:\\
\;\;\;\;\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(\left(t \cdot y2 - y \cdot y3\right) \cdot \left(\sqrt[3]{y4 \cdot c - y5 \cdot a} \cdot \sqrt[3]{y4 \cdot c - y5 \cdot a}\right)\right) \cdot \sqrt[3]{y4 \cdot c - y5 \cdot a}\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\
\mathbf{elif}\;y5 \le 1.22216142288095444 \cdot 10^{-160}:\\
\;\;\;\;\left(\left(\left(\left(\left(t \cdot \left(i \cdot \left(z \cdot c\right)\right) - \mathsf{fma}\left(i, c \cdot \left(y \cdot x\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}\;y5 \le 1.5332229864222716 \cdot 10^{-27}:\\
\;\;\;\;\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) - \mathsf{fma}\left(y0, z \cdot \left(y3 \cdot c\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 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 r212651 = x;
double r212652 = y;
double r212653 = r212651 * r212652;
double r212654 = z;
double r212655 = t;
double r212656 = r212654 * r212655;
double r212657 = r212653 - r212656;
double r212658 = a;
double r212659 = b;
double r212660 = r212658 * r212659;
double r212661 = c;
double r212662 = i;
double r212663 = r212661 * r212662;
double r212664 = r212660 - r212663;
double r212665 = r212657 * r212664;
double r212666 = j;
double r212667 = r212651 * r212666;
double r212668 = k;
double r212669 = r212654 * r212668;
double r212670 = r212667 - r212669;
double r212671 = y0;
double r212672 = r212671 * r212659;
double r212673 = y1;
double r212674 = r212673 * r212662;
double r212675 = r212672 - r212674;
double r212676 = r212670 * r212675;
double r212677 = r212665 - r212676;
double r212678 = y2;
double r212679 = r212651 * r212678;
double r212680 = y3;
double r212681 = r212654 * r212680;
double r212682 = r212679 - r212681;
double r212683 = r212671 * r212661;
double r212684 = r212673 * r212658;
double r212685 = r212683 - r212684;
double r212686 = r212682 * r212685;
double r212687 = r212677 + r212686;
double r212688 = r212655 * r212666;
double r212689 = r212652 * r212668;
double r212690 = r212688 - r212689;
double r212691 = y4;
double r212692 = r212691 * r212659;
double r212693 = y5;
double r212694 = r212693 * r212662;
double r212695 = r212692 - r212694;
double r212696 = r212690 * r212695;
double r212697 = r212687 + r212696;
double r212698 = r212655 * r212678;
double r212699 = r212652 * r212680;
double r212700 = r212698 - r212699;
double r212701 = r212691 * r212661;
double r212702 = r212693 * r212658;
double r212703 = r212701 - r212702;
double r212704 = r212700 * r212703;
double r212705 = r212697 - r212704;
double r212706 = r212668 * r212678;
double r212707 = r212666 * r212680;
double r212708 = r212706 - r212707;
double r212709 = r212691 * r212673;
double r212710 = r212693 * r212671;
double r212711 = r212709 - r212710;
double r212712 = r212708 * r212711;
double r212713 = r212705 + r212712;
return r212713;
}
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 r212714 = y5;
double r212715 = -6.226153004552593e-308;
bool r212716 = r212714 <= r212715;
double r212717 = x;
double r212718 = y;
double r212719 = r212717 * r212718;
double r212720 = z;
double r212721 = t;
double r212722 = r212720 * r212721;
double r212723 = r212719 - r212722;
double r212724 = a;
double r212725 = b;
double r212726 = r212724 * r212725;
double r212727 = c;
double r212728 = i;
double r212729 = r212727 * r212728;
double r212730 = r212726 - r212729;
double r212731 = r212723 * r212730;
double r212732 = j;
double r212733 = r212717 * r212732;
double r212734 = k;
double r212735 = r212720 * r212734;
double r212736 = r212733 - r212735;
double r212737 = y0;
double r212738 = r212737 * r212725;
double r212739 = y1;
double r212740 = r212739 * r212728;
double r212741 = r212738 - r212740;
double r212742 = r212736 * r212741;
double r212743 = r212731 - r212742;
double r212744 = y2;
double r212745 = r212717 * r212744;
double r212746 = y3;
double r212747 = r212720 * r212746;
double r212748 = r212745 - r212747;
double r212749 = r212737 * r212727;
double r212750 = r212739 * r212724;
double r212751 = r212749 - r212750;
double r212752 = r212748 * r212751;
double r212753 = r212743 + r212752;
double r212754 = r212721 * r212732;
double r212755 = r212718 * r212734;
double r212756 = r212754 - r212755;
double r212757 = y4;
double r212758 = r212757 * r212725;
double r212759 = r212714 * r212728;
double r212760 = r212758 - r212759;
double r212761 = r212756 * r212760;
double r212762 = r212753 + r212761;
double r212763 = r212721 * r212744;
double r212764 = r212718 * r212746;
double r212765 = r212763 - r212764;
double r212766 = r212757 * r212727;
double r212767 = r212714 * r212724;
double r212768 = r212766 - r212767;
double r212769 = cbrt(r212768);
double r212770 = r212769 * r212769;
double r212771 = r212765 * r212770;
double r212772 = r212771 * r212769;
double r212773 = r212762 - r212772;
double r212774 = r212734 * r212744;
double r212775 = r212732 * r212746;
double r212776 = r212774 - r212775;
double r212777 = r212757 * r212739;
double r212778 = r212714 * r212737;
double r212779 = r212777 - r212778;
double r212780 = r212776 * r212779;
double r212781 = r212773 + r212780;
double r212782 = 1.2221614228809544e-160;
bool r212783 = r212714 <= r212782;
double r212784 = r212720 * r212727;
double r212785 = r212728 * r212784;
double r212786 = r212721 * r212785;
double r212787 = r212718 * r212717;
double r212788 = r212727 * r212787;
double r212789 = r212720 * r212725;
double r212790 = r212721 * r212789;
double r212791 = r212724 * r212790;
double r212792 = fma(r212728, r212788, r212791);
double r212793 = r212786 - r212792;
double r212794 = r212793 - r212742;
double r212795 = r212794 + r212752;
double r212796 = r212795 + r212761;
double r212797 = r212765 * r212768;
double r212798 = r212796 - r212797;
double r212799 = r212798 + r212780;
double r212800 = 1.5332229864222716e-27;
bool r212801 = r212714 <= r212800;
double r212802 = r212739 * r212720;
double r212803 = r212746 * r212802;
double r212804 = r212724 * r212803;
double r212805 = r212746 * r212727;
double r212806 = r212720 * r212805;
double r212807 = r212744 * r212739;
double r212808 = r212717 * r212807;
double r212809 = r212724 * r212808;
double r212810 = fma(r212737, r212806, r212809);
double r212811 = r212804 - r212810;
double r212812 = r212743 + r212811;
double r212813 = r212812 + r212761;
double r212814 = r212813 - r212797;
double r212815 = r212814 + r212780;
double r212816 = -r212742;
double r212817 = r212816 + r212752;
double r212818 = r212817 + r212761;
double r212819 = r212818 - r212797;
double r212820 = r212819 + r212780;
double r212821 = r212801 ? r212815 : r212820;
double r212822 = r212783 ? r212799 : r212821;
double r212823 = r212716 ? r212781 : r212822;
return r212823;
}



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
if y5 < -6.226153004552593e-308Initial program 26.4
rmApplied add-cube-cbrt26.5
Applied associate-*r*26.5
if -6.226153004552593e-308 < y5 < 1.2221614228809544e-160Initial program 26.2
Taylor expanded around inf 28.8
Simplified28.8
if 1.2221614228809544e-160 < y5 < 1.5332229864222716e-27Initial program 26.7
Taylor expanded around inf 29.2
Simplified29.2
if 1.5332229864222716e-27 < y5 Initial program 28.4
Taylor expanded around 0 30.3
Final simplification28.0
herbie shell --seed 2020043 +o rules:numerics
(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)))))