\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 -45934632227187393514277965708495159296:\\
\;\;\;\;\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) - y2 \cdot \left(k \cdot y5\right)\right) - y1 \cdot \left(y3 \cdot \left(j \cdot y4\right)\right)\right)\\
\mathbf{elif}\;y0 \le -5.002975753531874998386914109954505586025 \cdot 10^{-285}:\\
\;\;\;\;\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)\\
\mathbf{elif}\;y0 \le 2702305498117941905514113658454529550582000:\\
\;\;\;\;\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(\left(x \cdot y2 - z \cdot y3\right) \cdot \left(\sqrt[3]{y0 \cdot c - y1 \cdot a} \cdot \sqrt[3]{y0 \cdot c - y1 \cdot a}\right)\right) \cdot \sqrt[3]{y0 \cdot c - y1 \cdot a}\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(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)\\
\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 r136769 = x;
double r136770 = y;
double r136771 = r136769 * r136770;
double r136772 = z;
double r136773 = t;
double r136774 = r136772 * r136773;
double r136775 = r136771 - r136774;
double r136776 = a;
double r136777 = b;
double r136778 = r136776 * r136777;
double r136779 = c;
double r136780 = i;
double r136781 = r136779 * r136780;
double r136782 = r136778 - r136781;
double r136783 = r136775 * r136782;
double r136784 = j;
double r136785 = r136769 * r136784;
double r136786 = k;
double r136787 = r136772 * r136786;
double r136788 = r136785 - r136787;
double r136789 = y0;
double r136790 = r136789 * r136777;
double r136791 = y1;
double r136792 = r136791 * r136780;
double r136793 = r136790 - r136792;
double r136794 = r136788 * r136793;
double r136795 = r136783 - r136794;
double r136796 = y2;
double r136797 = r136769 * r136796;
double r136798 = y3;
double r136799 = r136772 * r136798;
double r136800 = r136797 - r136799;
double r136801 = r136789 * r136779;
double r136802 = r136791 * r136776;
double r136803 = r136801 - r136802;
double r136804 = r136800 * r136803;
double r136805 = r136795 + r136804;
double r136806 = r136773 * r136784;
double r136807 = r136770 * r136786;
double r136808 = r136806 - r136807;
double r136809 = y4;
double r136810 = r136809 * r136777;
double r136811 = y5;
double r136812 = r136811 * r136780;
double r136813 = r136810 - r136812;
double r136814 = r136808 * r136813;
double r136815 = r136805 + r136814;
double r136816 = r136773 * r136796;
double r136817 = r136770 * r136798;
double r136818 = r136816 - r136817;
double r136819 = r136809 * r136779;
double r136820 = r136811 * r136776;
double r136821 = r136819 - r136820;
double r136822 = r136818 * r136821;
double r136823 = r136815 - r136822;
double r136824 = r136786 * r136796;
double r136825 = r136784 * r136798;
double r136826 = r136824 - r136825;
double r136827 = r136809 * r136791;
double r136828 = r136811 * r136789;
double r136829 = r136827 - r136828;
double r136830 = r136826 * r136829;
double r136831 = r136823 + r136830;
return r136831;
}
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 r136832 = y0;
double r136833 = -4.593463222718739e+37;
bool r136834 = r136832 <= r136833;
double r136835 = x;
double r136836 = y;
double r136837 = r136835 * r136836;
double r136838 = z;
double r136839 = t;
double r136840 = r136838 * r136839;
double r136841 = r136837 - r136840;
double r136842 = a;
double r136843 = b;
double r136844 = r136842 * r136843;
double r136845 = c;
double r136846 = i;
double r136847 = r136845 * r136846;
double r136848 = r136844 - r136847;
double r136849 = r136841 * r136848;
double r136850 = j;
double r136851 = r136835 * r136850;
double r136852 = k;
double r136853 = r136838 * r136852;
double r136854 = r136851 - r136853;
double r136855 = r136832 * r136843;
double r136856 = y1;
double r136857 = r136856 * r136846;
double r136858 = r136855 - r136857;
double r136859 = r136854 * r136858;
double r136860 = r136849 - r136859;
double r136861 = y2;
double r136862 = r136835 * r136861;
double r136863 = y3;
double r136864 = r136838 * r136863;
double r136865 = r136862 - r136864;
double r136866 = r136832 * r136845;
double r136867 = r136856 * r136842;
double r136868 = r136866 - r136867;
double r136869 = r136865 * r136868;
double r136870 = r136860 + r136869;
double r136871 = r136839 * r136850;
double r136872 = r136836 * r136852;
double r136873 = r136871 - r136872;
double r136874 = y4;
double r136875 = r136874 * r136843;
double r136876 = y5;
double r136877 = r136876 * r136846;
double r136878 = r136875 - r136877;
double r136879 = r136873 * r136878;
double r136880 = r136870 + r136879;
double r136881 = r136839 * r136861;
double r136882 = r136836 * r136863;
double r136883 = r136881 - r136882;
double r136884 = r136874 * r136845;
double r136885 = r136876 * r136842;
double r136886 = r136884 - r136885;
double r136887 = r136883 * r136886;
double r136888 = r136880 - r136887;
double r136889 = r136850 * r136876;
double r136890 = r136863 * r136889;
double r136891 = r136852 * r136876;
double r136892 = r136861 * r136891;
double r136893 = r136890 - r136892;
double r136894 = r136832 * r136893;
double r136895 = r136850 * r136874;
double r136896 = r136863 * r136895;
double r136897 = r136856 * r136896;
double r136898 = r136894 - r136897;
double r136899 = r136888 + r136898;
double r136900 = -5.002975753531875e-285;
bool r136901 = r136832 <= r136900;
double r136902 = r136836 * r136876;
double r136903 = r136846 * r136902;
double r136904 = r136852 * r136903;
double r136905 = r136846 * r136889;
double r136906 = r136839 * r136905;
double r136907 = r136836 * r136843;
double r136908 = r136874 * r136907;
double r136909 = r136852 * r136908;
double r136910 = r136906 + r136909;
double r136911 = r136904 - r136910;
double r136912 = r136870 + r136911;
double r136913 = r136912 - r136887;
double r136914 = r136852 * r136861;
double r136915 = r136850 * r136863;
double r136916 = r136914 - r136915;
double r136917 = r136874 * r136856;
double r136918 = r136876 * r136832;
double r136919 = r136917 - r136918;
double r136920 = r136916 * r136919;
double r136921 = r136913 + r136920;
double r136922 = 2.702305498117942e+42;
bool r136923 = r136832 <= r136922;
double r136924 = cbrt(r136868);
double r136925 = r136924 * r136924;
double r136926 = r136865 * r136925;
double r136927 = r136926 * r136924;
double r136928 = r136860 + r136927;
double r136929 = r136928 + r136879;
double r136930 = r136929 - r136887;
double r136931 = r136930 + r136920;
double r136932 = r136838 * r136856;
double r136933 = r136846 * r136932;
double r136934 = r136852 * r136933;
double r136935 = r136856 * r136835;
double r136936 = r136850 * r136935;
double r136937 = r136846 * r136936;
double r136938 = r136852 * r136843;
double r136939 = r136838 * r136938;
double r136940 = r136832 * r136939;
double r136941 = r136937 + r136940;
double r136942 = r136934 - r136941;
double r136943 = r136849 - r136942;
double r136944 = r136943 + r136869;
double r136945 = r136944 + r136879;
double r136946 = r136945 - r136887;
double r136947 = r136946 + r136920;
double r136948 = r136923 ? r136931 : r136947;
double r136949 = r136901 ? r136921 : r136948;
double r136950 = r136834 ? r136899 : r136949;
return r136950;
}



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 < -4.593463222718739e+37Initial program 28.5
Taylor expanded around inf 27.5
Simplified27.5
if -4.593463222718739e+37 < y0 < -5.002975753531875e-285Initial program 26.7
Taylor expanded around inf 29.6
if -5.002975753531875e-285 < y0 < 2.702305498117942e+42Initial program 26.3
rmApplied add-cube-cbrt26.3
Applied associate-*r*26.3
if 2.702305498117942e+42 < y0 Initial program 29.9
Taylor expanded around inf 32.2
Final simplification28.4
herbie shell --seed 2019325
(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)))))