\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}\;y4 \le -5.251989081102843998303817495533040824814 \cdot 10^{-102}:\\
\;\;\;\;\left(\left(\left(\left(\left(\left(y \cdot x - z \cdot t\right) \cdot \left(c \cdot \left(-i\right)\right) + \left(\left(y \cdot x - z \cdot t\right) \cdot b\right) \cdot a\right) - \left(b \cdot y0 - i \cdot y1\right) \cdot \left(x \cdot j - k \cdot z\right)\right) + \left(\left(-\left(a \cdot y1\right) \cdot \left(y2 \cdot x - y3 \cdot z\right)\right) + c \cdot \left(\left(y2 \cdot x - y3 \cdot z\right) \cdot y0\right)\right)\right) + \left(\left(y5 \cdot \left(j \cdot t - k \cdot y\right)\right) \cdot \left(-i\right) + y4 \cdot \left(b \cdot \left(j \cdot t - k \cdot y\right)\right)\right)\right) - \left(y4 \cdot \left(\left(y2 \cdot t - y3 \cdot y\right) \cdot c\right) + \left(\left(-y5\right) \cdot a\right) \cdot \left(y2 \cdot t - y3 \cdot y\right)\right)\right) + \left(y1 \cdot y4 - y0 \cdot y5\right) \cdot \left(k \cdot y2 - y3 \cdot j\right)\\
\mathbf{elif}\;y4 \le -1.928340879078260545478042674485809270234 \cdot 10^{-260}:\\
\;\;\;\;\left(y1 \cdot y4 - y0 \cdot y5\right) \cdot \left(k \cdot y2 - y3 \cdot j\right) + \left(\left(\left(\left(\left(y \cdot x - z \cdot t\right) \cdot \left(c \cdot \left(-i\right)\right) + \left(\left(y \cdot x - z \cdot t\right) \cdot b\right) \cdot a\right) - \left(b \cdot y0 - i \cdot y1\right) \cdot \left(x \cdot j - k \cdot z\right)\right) + \left(\left(-\left(a \cdot y1\right) \cdot \left(y2 \cdot x - y3 \cdot z\right)\right) + c \cdot \left(\left(y2 \cdot x - y3 \cdot z\right) \cdot y0\right)\right)\right) + \left(b \cdot y4 - i \cdot y5\right) \cdot \left(j \cdot t - k \cdot y\right)\right)\\
\mathbf{elif}\;y4 \le 1.006085650983031288358764710016604798395 \cdot 10^{-180}:\\
\;\;\;\;\left(y1 \cdot y4 - y0 \cdot y5\right) \cdot \left(k \cdot y2 - y3 \cdot j\right) + \left(\left(\left(\left(\left(y5 \cdot k\right) \cdot i\right) \cdot y - \left(\left(b \cdot y4\right) \cdot \left(k \cdot y\right) + \left(i \cdot j\right) \cdot \left(y5 \cdot t\right)\right)\right) + \left(\left(\left(\left(y \cdot x - z \cdot t\right) \cdot \left(c \cdot \left(-i\right)\right) + \left(\left(y \cdot x - z \cdot t\right) \cdot b\right) \cdot a\right) - \left(b \cdot y0 - i \cdot y1\right) \cdot \left(x \cdot j - k \cdot z\right)\right) + \left(\left(-\left(a \cdot y1\right) \cdot \left(y2 \cdot x - y3 \cdot z\right)\right) + c \cdot \left(\left(y2 \cdot x - y3 \cdot z\right) \cdot y0\right)\right)\right)\right) - \left(y2 \cdot t - y3 \cdot y\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(-\left(a \cdot y1\right) \cdot \left(y2 \cdot x - y3 \cdot z\right)\right) + c \cdot \left(\left(y2 \cdot x - y3 \cdot z\right) \cdot y0\right)\right) + \left(\left(\left(\left(y \cdot x - z \cdot t\right) \cdot \left(-i\right)\right) \cdot c + \left(\left(y \cdot x - z \cdot t\right) \cdot b\right) \cdot a\right) - \left(b \cdot y0 - i \cdot y1\right) \cdot \left(x \cdot j - k \cdot z\right)\right)\right) + \left(b \cdot y4 - i \cdot y5\right) \cdot \left(j \cdot t - k \cdot y\right)\right) - \left(y4 \cdot \left(\left(y2 \cdot t - y3 \cdot y\right) \cdot c\right) + \left(\left(-y5\right) \cdot a\right) \cdot \left(y2 \cdot t - y3 \cdot y\right)\right)\right) + \left(y1 \cdot y4 - y0 \cdot y5\right) \cdot \left(k \cdot y2 - y3 \cdot j\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 r143789 = x;
double r143790 = y;
double r143791 = r143789 * r143790;
double r143792 = z;
double r143793 = t;
double r143794 = r143792 * r143793;
double r143795 = r143791 - r143794;
double r143796 = a;
double r143797 = b;
double r143798 = r143796 * r143797;
double r143799 = c;
double r143800 = i;
double r143801 = r143799 * r143800;
double r143802 = r143798 - r143801;
double r143803 = r143795 * r143802;
double r143804 = j;
double r143805 = r143789 * r143804;
double r143806 = k;
double r143807 = r143792 * r143806;
double r143808 = r143805 - r143807;
double r143809 = y0;
double r143810 = r143809 * r143797;
double r143811 = y1;
double r143812 = r143811 * r143800;
double r143813 = r143810 - r143812;
double r143814 = r143808 * r143813;
double r143815 = r143803 - r143814;
double r143816 = y2;
double r143817 = r143789 * r143816;
double r143818 = y3;
double r143819 = r143792 * r143818;
double r143820 = r143817 - r143819;
double r143821 = r143809 * r143799;
double r143822 = r143811 * r143796;
double r143823 = r143821 - r143822;
double r143824 = r143820 * r143823;
double r143825 = r143815 + r143824;
double r143826 = r143793 * r143804;
double r143827 = r143790 * r143806;
double r143828 = r143826 - r143827;
double r143829 = y4;
double r143830 = r143829 * r143797;
double r143831 = y5;
double r143832 = r143831 * r143800;
double r143833 = r143830 - r143832;
double r143834 = r143828 * r143833;
double r143835 = r143825 + r143834;
double r143836 = r143793 * r143816;
double r143837 = r143790 * r143818;
double r143838 = r143836 - r143837;
double r143839 = r143829 * r143799;
double r143840 = r143831 * r143796;
double r143841 = r143839 - r143840;
double r143842 = r143838 * r143841;
double r143843 = r143835 - r143842;
double r143844 = r143806 * r143816;
double r143845 = r143804 * r143818;
double r143846 = r143844 - r143845;
double r143847 = r143829 * r143811;
double r143848 = r143831 * r143809;
double r143849 = r143847 - r143848;
double r143850 = r143846 * r143849;
double r143851 = r143843 + r143850;
return r143851;
}
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 r143852 = y4;
double r143853 = -5.251989081102844e-102;
bool r143854 = r143852 <= r143853;
double r143855 = y;
double r143856 = x;
double r143857 = r143855 * r143856;
double r143858 = z;
double r143859 = t;
double r143860 = r143858 * r143859;
double r143861 = r143857 - r143860;
double r143862 = c;
double r143863 = i;
double r143864 = -r143863;
double r143865 = r143862 * r143864;
double r143866 = r143861 * r143865;
double r143867 = b;
double r143868 = r143861 * r143867;
double r143869 = a;
double r143870 = r143868 * r143869;
double r143871 = r143866 + r143870;
double r143872 = y0;
double r143873 = r143867 * r143872;
double r143874 = y1;
double r143875 = r143863 * r143874;
double r143876 = r143873 - r143875;
double r143877 = j;
double r143878 = r143856 * r143877;
double r143879 = k;
double r143880 = r143879 * r143858;
double r143881 = r143878 - r143880;
double r143882 = r143876 * r143881;
double r143883 = r143871 - r143882;
double r143884 = r143869 * r143874;
double r143885 = y2;
double r143886 = r143885 * r143856;
double r143887 = y3;
double r143888 = r143887 * r143858;
double r143889 = r143886 - r143888;
double r143890 = r143884 * r143889;
double r143891 = -r143890;
double r143892 = r143889 * r143872;
double r143893 = r143862 * r143892;
double r143894 = r143891 + r143893;
double r143895 = r143883 + r143894;
double r143896 = y5;
double r143897 = r143877 * r143859;
double r143898 = r143879 * r143855;
double r143899 = r143897 - r143898;
double r143900 = r143896 * r143899;
double r143901 = r143900 * r143864;
double r143902 = r143867 * r143899;
double r143903 = r143852 * r143902;
double r143904 = r143901 + r143903;
double r143905 = r143895 + r143904;
double r143906 = r143885 * r143859;
double r143907 = r143887 * r143855;
double r143908 = r143906 - r143907;
double r143909 = r143908 * r143862;
double r143910 = r143852 * r143909;
double r143911 = -r143896;
double r143912 = r143911 * r143869;
double r143913 = r143912 * r143908;
double r143914 = r143910 + r143913;
double r143915 = r143905 - r143914;
double r143916 = r143874 * r143852;
double r143917 = r143872 * r143896;
double r143918 = r143916 - r143917;
double r143919 = r143879 * r143885;
double r143920 = r143887 * r143877;
double r143921 = r143919 - r143920;
double r143922 = r143918 * r143921;
double r143923 = r143915 + r143922;
double r143924 = -1.9283408790782605e-260;
bool r143925 = r143852 <= r143924;
double r143926 = r143867 * r143852;
double r143927 = r143863 * r143896;
double r143928 = r143926 - r143927;
double r143929 = r143928 * r143899;
double r143930 = r143895 + r143929;
double r143931 = r143922 + r143930;
double r143932 = 1.0060856509830313e-180;
bool r143933 = r143852 <= r143932;
double r143934 = r143896 * r143879;
double r143935 = r143934 * r143863;
double r143936 = r143935 * r143855;
double r143937 = r143926 * r143898;
double r143938 = r143863 * r143877;
double r143939 = r143896 * r143859;
double r143940 = r143938 * r143939;
double r143941 = r143937 + r143940;
double r143942 = r143936 - r143941;
double r143943 = r143942 + r143895;
double r143944 = r143852 * r143862;
double r143945 = r143896 * r143869;
double r143946 = r143944 - r143945;
double r143947 = r143908 * r143946;
double r143948 = r143943 - r143947;
double r143949 = r143922 + r143948;
double r143950 = r143861 * r143864;
double r143951 = r143950 * r143862;
double r143952 = r143951 + r143870;
double r143953 = r143952 - r143882;
double r143954 = r143894 + r143953;
double r143955 = r143954 + r143929;
double r143956 = r143955 - r143914;
double r143957 = r143956 + r143922;
double r143958 = r143933 ? r143949 : r143957;
double r143959 = r143925 ? r143931 : r143958;
double r143960 = r143854 ? r143923 : r143959;
return r143960;
}



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 y4 < -5.251989081102844e-102Initial program 26.7
rmApplied sub-neg26.7
Applied distribute-lft-in26.7
Simplified27.3
Simplified27.3
rmApplied sub-neg27.3
Applied distribute-lft-in27.3
Simplified27.4
Simplified27.4
rmApplied sub-neg27.4
Applied distribute-lft-in27.4
Simplified26.5
Simplified26.5
rmApplied sub-neg26.5
Applied distribute-lft-in26.5
Simplified25.4
Simplified25.3
if -5.251989081102844e-102 < y4 < -1.9283408790782605e-260Initial program 27.0
rmApplied sub-neg27.0
Applied distribute-lft-in27.0
Simplified26.9
Simplified26.9
rmApplied sub-neg26.9
Applied distribute-lft-in26.9
Simplified27.3
Simplified27.3
Taylor expanded around 0 31.3
if -1.9283408790782605e-260 < y4 < 1.0060856509830313e-180Initial program 27.8
rmApplied sub-neg27.8
Applied distribute-lft-in27.8
Simplified27.8
Simplified27.8
rmApplied sub-neg27.8
Applied distribute-lft-in27.8
Simplified28.7
Simplified28.7
Taylor expanded around inf 29.2
Simplified30.2
if 1.0060856509830313e-180 < y4 Initial program 27.3
rmApplied sub-neg27.3
Applied distribute-lft-in27.3
Simplified27.7
Simplified27.7
rmApplied sub-neg27.7
Applied distribute-lft-in27.7
Simplified28.1
Simplified28.1
rmApplied sub-neg28.1
Applied distribute-lft-in28.1
Simplified27.6
Simplified27.6
rmApplied associate-*l*27.0
Simplified27.0
Final simplification27.9
herbie shell --seed 2019196
(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"
(+ (- (+ (+ (- (* (- (* 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)))))