\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 -1.07100175506133208 \cdot 10^{-177}:\\
\;\;\;\;\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(\sqrt[3]{\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)} \cdot \sqrt[3]{\left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)}\right) \cdot \sqrt[3]{\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}\;y4 \le 9.59181376284859786 \cdot 10^{-89}:\\
\;\;\;\;\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(a \cdot \left(y3 \cdot \left(y \cdot y5\right)\right) - \left(y \cdot \left(y3 \cdot \left(y4 \cdot c\right)\right) + y5 \cdot \left(a \cdot \left(y2 \cdot t\right)\right)\right)\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(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)\\
\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 r179736 = x;
double r179737 = y;
double r179738 = r179736 * r179737;
double r179739 = z;
double r179740 = t;
double r179741 = r179739 * r179740;
double r179742 = r179738 - r179741;
double r179743 = a;
double r179744 = b;
double r179745 = r179743 * r179744;
double r179746 = c;
double r179747 = i;
double r179748 = r179746 * r179747;
double r179749 = r179745 - r179748;
double r179750 = r179742 * r179749;
double r179751 = j;
double r179752 = r179736 * r179751;
double r179753 = k;
double r179754 = r179739 * r179753;
double r179755 = r179752 - r179754;
double r179756 = y0;
double r179757 = r179756 * r179744;
double r179758 = y1;
double r179759 = r179758 * r179747;
double r179760 = r179757 - r179759;
double r179761 = r179755 * r179760;
double r179762 = r179750 - r179761;
double r179763 = y2;
double r179764 = r179736 * r179763;
double r179765 = y3;
double r179766 = r179739 * r179765;
double r179767 = r179764 - r179766;
double r179768 = r179756 * r179746;
double r179769 = r179758 * r179743;
double r179770 = r179768 - r179769;
double r179771 = r179767 * r179770;
double r179772 = r179762 + r179771;
double r179773 = r179740 * r179751;
double r179774 = r179737 * r179753;
double r179775 = r179773 - r179774;
double r179776 = y4;
double r179777 = r179776 * r179744;
double r179778 = y5;
double r179779 = r179778 * r179747;
double r179780 = r179777 - r179779;
double r179781 = r179775 * r179780;
double r179782 = r179772 + r179781;
double r179783 = r179740 * r179763;
double r179784 = r179737 * r179765;
double r179785 = r179783 - r179784;
double r179786 = r179776 * r179746;
double r179787 = r179778 * r179743;
double r179788 = r179786 - r179787;
double r179789 = r179785 * r179788;
double r179790 = r179782 - r179789;
double r179791 = r179753 * r179763;
double r179792 = r179751 * r179765;
double r179793 = r179791 - r179792;
double r179794 = r179776 * r179758;
double r179795 = r179778 * r179756;
double r179796 = r179794 - r179795;
double r179797 = r179793 * r179796;
double r179798 = r179790 + r179797;
return r179798;
}
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 r179799 = y4;
double r179800 = -1.071001755061332e-177;
bool r179801 = r179799 <= r179800;
double r179802 = x;
double r179803 = y;
double r179804 = r179802 * r179803;
double r179805 = z;
double r179806 = t;
double r179807 = r179805 * r179806;
double r179808 = r179804 - r179807;
double r179809 = a;
double r179810 = b;
double r179811 = r179809 * r179810;
double r179812 = c;
double r179813 = i;
double r179814 = r179812 * r179813;
double r179815 = r179811 - r179814;
double r179816 = r179808 * r179815;
double r179817 = j;
double r179818 = r179802 * r179817;
double r179819 = k;
double r179820 = r179805 * r179819;
double r179821 = r179818 - r179820;
double r179822 = y0;
double r179823 = r179822 * r179810;
double r179824 = y1;
double r179825 = r179824 * r179813;
double r179826 = r179823 - r179825;
double r179827 = r179821 * r179826;
double r179828 = r179816 - r179827;
double r179829 = y2;
double r179830 = r179802 * r179829;
double r179831 = y3;
double r179832 = r179805 * r179831;
double r179833 = r179830 - r179832;
double r179834 = r179822 * r179812;
double r179835 = r179824 * r179809;
double r179836 = r179834 - r179835;
double r179837 = r179833 * r179836;
double r179838 = cbrt(r179837);
double r179839 = r179838 * r179838;
double r179840 = r179839 * r179838;
double r179841 = r179828 + r179840;
double r179842 = r179806 * r179817;
double r179843 = r179803 * r179819;
double r179844 = r179842 - r179843;
double r179845 = r179799 * r179810;
double r179846 = y5;
double r179847 = r179846 * r179813;
double r179848 = r179845 - r179847;
double r179849 = r179844 * r179848;
double r179850 = r179841 + r179849;
double r179851 = r179806 * r179829;
double r179852 = r179803 * r179831;
double r179853 = r179851 - r179852;
double r179854 = r179799 * r179812;
double r179855 = r179846 * r179809;
double r179856 = r179854 - r179855;
double r179857 = r179853 * r179856;
double r179858 = r179850 - r179857;
double r179859 = r179819 * r179829;
double r179860 = r179817 * r179831;
double r179861 = r179859 - r179860;
double r179862 = r179799 * r179824;
double r179863 = r179846 * r179822;
double r179864 = r179862 - r179863;
double r179865 = r179861 * r179864;
double r179866 = r179858 + r179865;
double r179867 = 9.591813762848598e-89;
bool r179868 = r179799 <= r179867;
double r179869 = r179828 + r179837;
double r179870 = r179869 + r179849;
double r179871 = r179803 * r179846;
double r179872 = r179831 * r179871;
double r179873 = r179809 * r179872;
double r179874 = r179831 * r179854;
double r179875 = r179803 * r179874;
double r179876 = r179829 * r179806;
double r179877 = r179809 * r179876;
double r179878 = r179846 * r179877;
double r179879 = r179875 + r179878;
double r179880 = r179873 - r179879;
double r179881 = r179870 - r179880;
double r179882 = r179881 + r179865;
double r179883 = cbrt(r179856);
double r179884 = r179883 * r179883;
double r179885 = r179853 * r179884;
double r179886 = r179885 * r179883;
double r179887 = r179870 - r179886;
double r179888 = r179887 + r179865;
double r179889 = r179868 ? r179882 : r179888;
double r179890 = r179801 ? r179866 : r179889;
return r179890;
}



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 < -1.071001755061332e-177Initial program 27.5
rmApplied add-cube-cbrt27.5
if -1.071001755061332e-177 < y4 < 9.591813762848598e-89Initial program 26.7
Taylor expanded around inf 28.0
if 9.591813762848598e-89 < y4 Initial program 26.1
rmApplied add-cube-cbrt26.2
Applied associate-*r*26.2
Final simplification27.3
herbie shell --seed 2020056
(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)))))