#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Linear.Matrix:det44 from linear-1.19.1.3";

double f_if(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k, float y0, float y1, float y2, float y3, float y4, float y5) {
        float r16734 = x;
        float r16735 = y;
        float r16736 = r16734 * r16735;
        float r16737 = z;
        float r16738 = t;
        float r16739 = r16737 * r16738;
        float r16740 = r16736 - r16739;
        float r16741 = a;
        float r16742 = b;
        float r16743 = r16741 * r16742;
        float r16744 = c;
        float r16745 = i;
        float r16746 = r16744 * r16745;
        float r16747 = r16743 - r16746;
        float r16748 = r16740 * r16747;
        float r16749 = j;
        float r16750 = r16734 * r16749;
        float r16751 = k;
        float r16752 = r16737 * r16751;
        float r16753 = r16750 - r16752;
        float r16754 = y0;
        float r16755 = r16754 * r16742;
        float r16756 = y1;
        float r16757 = r16756 * r16745;
        float r16758 = r16755 - r16757;
        float r16759 = r16753 * r16758;
        float r16760 = r16748 - r16759;
        float r16761 = y2;
        float r16762 = r16734 * r16761;
        float r16763 = y3;
        float r16764 = r16737 * r16763;
        float r16765 = r16762 - r16764;
        float r16766 = r16754 * r16744;
        float r16767 = r16756 * r16741;
        float r16768 = r16766 - r16767;
        float r16769 = r16765 * r16768;
        float r16770 = r16760 + r16769;
        float r16771 = r16738 * r16749;
        float r16772 = r16735 * r16751;
        float r16773 = r16771 - r16772;
        float r16774 = y4;
        float r16775 = r16774 * r16742;
        float r16776 = y5;
        float r16777 = r16776 * r16745;
        float r16778 = r16775 - r16777;
        float r16779 = r16773 * r16778;
        float r16780 = r16770 + r16779;
        float r16781 = r16738 * r16761;
        float r16782 = r16735 * r16763;
        float r16783 = r16781 - r16782;
        float r16784 = r16774 * r16744;
        float r16785 = r16776 * r16741;
        float r16786 = r16784 - r16785;
        float r16787 = r16783 * r16786;
        float r16788 = r16780 - r16787;
        float r16789 = r16751 * r16761;
        float r16790 = r16749 * r16763;
        float r16791 = r16789 - r16790;
        float r16792 = r16774 * r16756;
        float r16793 = r16776 * r16754;
        float r16794 = r16792 - r16793;
        float r16795 = r16791 * r16794;
        float r16796 = r16788 + r16795;
        return r16796;
}

double f_id(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 r16797 = x;
        double r16798 = y;
        double r16799 = r16797 * r16798;
        double r16800 = z;
        double r16801 = t;
        double r16802 = r16800 * r16801;
        double r16803 = r16799 - r16802;
        double r16804 = a;
        double r16805 = b;
        double r16806 = r16804 * r16805;
        double r16807 = c;
        double r16808 = i;
        double r16809 = r16807 * r16808;
        double r16810 = r16806 - r16809;
        double r16811 = r16803 * r16810;
        double r16812 = j;
        double r16813 = r16797 * r16812;
        double r16814 = k;
        double r16815 = r16800 * r16814;
        double r16816 = r16813 - r16815;
        double r16817 = y0;
        double r16818 = r16817 * r16805;
        double r16819 = y1;
        double r16820 = r16819 * r16808;
        double r16821 = r16818 - r16820;
        double r16822 = r16816 * r16821;
        double r16823 = r16811 - r16822;
        double r16824 = y2;
        double r16825 = r16797 * r16824;
        double r16826 = y3;
        double r16827 = r16800 * r16826;
        double r16828 = r16825 - r16827;
        double r16829 = r16817 * r16807;
        double r16830 = r16819 * r16804;
        double r16831 = r16829 - r16830;
        double r16832 = r16828 * r16831;
        double r16833 = r16823 + r16832;
        double r16834 = r16801 * r16812;
        double r16835 = r16798 * r16814;
        double r16836 = r16834 - r16835;
        double r16837 = y4;
        double r16838 = r16837 * r16805;
        double r16839 = y5;
        double r16840 = r16839 * r16808;
        double r16841 = r16838 - r16840;
        double r16842 = r16836 * r16841;
        double r16843 = r16833 + r16842;
        double r16844 = r16801 * r16824;
        double r16845 = r16798 * r16826;
        double r16846 = r16844 - r16845;
        double r16847 = r16837 * r16807;
        double r16848 = r16839 * r16804;
        double r16849 = r16847 - r16848;
        double r16850 = r16846 * r16849;
        double r16851 = r16843 - r16850;
        double r16852 = r16814 * r16824;
        double r16853 = r16812 * r16826;
        double r16854 = r16852 - r16853;
        double r16855 = r16837 * r16819;
        double r16856 = r16839 * r16817;
        double r16857 = r16855 - r16856;
        double r16858 = r16854 * r16857;
        double r16859 = r16851 + r16858;
        return r16859;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k, float y0, float y1, float y2, float y3, float y4, float y5) {
        float r16860 = y4;
        float r16861 = y1;
        float r16862 = r16860 * r16861;
        float r16863 = y0;
        float r16864 = y5;
        float r16865 = r16863 * r16864;
        float r16866 = r16862 - r16865;
        float r16867 = y2;
        float r16868 = k;
        float r16869 = r16867 * r16868;
        float r16870 = j;
        float r16871 = y3;
        float r16872 = r16870 * r16871;
        float r16873 = r16869 - r16872;
        float r16874 = t;
        float r16875 = r16870 * r16874;
        float r16876 = y;
        float r16877 = r16876 * r16868;
        float r16878 = r16875 - r16877;
        float r16879 = b;
        float r16880 = r16860 * r16879;
        float r16881 = i;
        float r16882 = r16881 * r16864;
        float r16883 = r16880 - r16882;
        float r16884 = x;
        float r16885 = r16884 * r16867;
        float r16886 = z;
        float r16887 = r16886 * r16871;
        float r16888 = r16885 - r16887;
        float r16889 = c;
        float r16890 = r16863 * r16889;
        float r16891 = a;
        float r16892 = r16891 * r16861;
        float r16893 = r16890 - r16892;
        float r16894 = r16888 * r16893;
        float r16895 = fma(r16878, r16883, r16894);
        float r16896 = fma(r16866, r16873, r16895);
        float r16897 = cbrt(r16896);
        float r16898 = r16897 * (r16897 * r16897);
        float r16899 = r16891 * r16879;
        float r16900 = r16881 * r16889;
        float r16901 = r16899 - r16900;
        float r16902 = r16876 * r16884;
        float r16903 = r16874 * r16886;
        float r16904 = r16902 - r16903;
        float r16905 = r16901 * r16904;
        float r16906 = r16870 * r16884;
        float r16907 = r16868 * r16886;
        float r16908 = r16906 - r16907;
        float r16909 = r16863 * r16879;
        float r16910 = r16861 * r16881;
        float r16911 = r16909 - r16910;
        float r16912 = r16874 * r16867;
        float r16913 = r16876 * r16871;
        float r16914 = r16912 - r16913;
        float r16915 = r16889 * r16860;
        float r16916 = r16891 * r16864;
        float r16917 = r16915 - r16916;
        float r16918 = r16914 * r16917;
        float r16919 = fma(r16908, r16911, r16918);
        float r16920 = r16905 - r16919;
        float r16921 = r16898 + r16920;
        return r16921;
}

double f_od(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 r16922 = y4;
        double r16923 = y1;
        double r16924 = r16922 * r16923;
        double r16925 = y0;
        double r16926 = y5;
        double r16927 = r16925 * r16926;
        double r16928 = r16924 - r16927;
        double r16929 = y2;
        double r16930 = k;
        double r16931 = r16929 * r16930;
        double r16932 = j;
        double r16933 = y3;
        double r16934 = r16932 * r16933;
        double r16935 = r16931 - r16934;
        double r16936 = t;
        double r16937 = r16932 * r16936;
        double r16938 = y;
        double r16939 = r16938 * r16930;
        double r16940 = r16937 - r16939;
        double r16941 = b;
        double r16942 = r16922 * r16941;
        double r16943 = i;
        double r16944 = r16943 * r16926;
        double r16945 = r16942 - r16944;
        double r16946 = x;
        double r16947 = r16946 * r16929;
        double r16948 = z;
        double r16949 = r16948 * r16933;
        double r16950 = r16947 - r16949;
        double r16951 = c;
        double r16952 = r16925 * r16951;
        double r16953 = a;
        double r16954 = r16953 * r16923;
        double r16955 = r16952 - r16954;
        double r16956 = r16950 * r16955;
        double r16957 = fma(r16940, r16945, r16956);
        double r16958 = fma(r16928, r16935, r16957);
        double r16959 = cbrt(r16958);
        double r16960 = r16959 * (r16959 * r16959);
        double r16961 = r16953 * r16941;
        double r16962 = r16943 * r16951;
        double r16963 = r16961 - r16962;
        double r16964 = r16938 * r16946;
        double r16965 = r16936 * r16948;
        double r16966 = r16964 - r16965;
        double r16967 = r16963 * r16966;
        double r16968 = r16932 * r16946;
        double r16969 = r16930 * r16948;
        double r16970 = r16968 - r16969;
        double r16971 = r16925 * r16941;
        double r16972 = r16923 * r16943;
        double r16973 = r16971 - r16972;
        double r16974 = r16936 * r16929;
        double r16975 = r16938 * r16933;
        double r16976 = r16974 - r16975;
        double r16977 = r16951 * r16922;
        double r16978 = r16953 * r16926;
        double r16979 = r16977 - r16978;
        double r16980 = r16976 * r16979;
        double r16981 = fma(r16970, r16973, r16980);
        double r16982 = r16967 - r16981;
        double r16983 = r16960 + r16982;
        return r16983;
}

void mpfr_fmod2(mpfr_t r, mpfr_t n, mpfr_t d, mpfr_rnd_t rmd) {
        mpfr_fmod(r, n, d, rmd);
        if (mpfr_cmp_ui(r, 0) < 0) mpfr_add(r, r, d, rmd);
}


static mpfr_t r16984, r16985, r16986, r16987, r16988, r16989, r16990, r16991, r16992, r16993, r16994, r16995, r16996, r16997, r16998, r16999, r17000, r17001, r17002, r17003, r17004, r17005, r17006, r17007, r17008, r17009, r17010, r17011, r17012, r17013, r17014, r17015, r17016, r17017, r17018, r17019, r17020, r17021, r17022, r17023, r17024, r17025, r17026, r17027, r17028, r17029, r17030, r17031, r17032, r17033, r17034, r17035, r17036, r17037, r17038, r17039, r17040, r17041, r17042, r17043, r17044, r17045, r17046;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r16984);
        mpfr_init(r16985);
        mpfr_init(r16986);
        mpfr_init(r16987);
        mpfr_init(r16988);
        mpfr_init(r16989);
        mpfr_init(r16990);
        mpfr_init(r16991);
        mpfr_init(r16992);
        mpfr_init(r16993);
        mpfr_init(r16994);
        mpfr_init(r16995);
        mpfr_init(r16996);
        mpfr_init(r16997);
        mpfr_init(r16998);
        mpfr_init(r16999);
        mpfr_init(r17000);
        mpfr_init(r17001);
        mpfr_init(r17002);
        mpfr_init(r17003);
        mpfr_init(r17004);
        mpfr_init(r17005);
        mpfr_init(r17006);
        mpfr_init(r17007);
        mpfr_init(r17008);
        mpfr_init(r17009);
        mpfr_init(r17010);
        mpfr_init(r17011);
        mpfr_init(r17012);
        mpfr_init(r17013);
        mpfr_init(r17014);
        mpfr_init(r17015);
        mpfr_init(r17016);
        mpfr_init(r17017);
        mpfr_init(r17018);
        mpfr_init(r17019);
        mpfr_init(r17020);
        mpfr_init(r17021);
        mpfr_init(r17022);
        mpfr_init(r17023);
        mpfr_init(r17024);
        mpfr_init(r17025);
        mpfr_init(r17026);
        mpfr_init(r17027);
        mpfr_init(r17028);
        mpfr_init(r17029);
        mpfr_init(r17030);
        mpfr_init(r17031);
        mpfr_init(r17032);
        mpfr_init(r17033);
        mpfr_init(r17034);
        mpfr_init(r17035);
        mpfr_init(r17036);
        mpfr_init(r17037);
        mpfr_init(r17038);
        mpfr_init(r17039);
        mpfr_init(r17040);
        mpfr_init(r17041);
        mpfr_init(r17042);
        mpfr_init(r17043);
        mpfr_init(r17044);
        mpfr_init(r17045);
        mpfr_init(r17046);
}

double f_im(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) {
        mpfr_set_d(r16984, x, MPFR_RNDN);
        mpfr_set_d(r16985, y, MPFR_RNDN);
        mpfr_mul(r16986, r16984, r16985, MPFR_RNDN);
        mpfr_set_d(r16987, z, MPFR_RNDN);
        mpfr_set_d(r16988, t, MPFR_RNDN);
        mpfr_mul(r16989, r16987, r16988, MPFR_RNDN);
        mpfr_sub(r16990, r16986, r16989, MPFR_RNDN);
        mpfr_set_d(r16991, a, MPFR_RNDN);
        mpfr_set_d(r16992, b, MPFR_RNDN);
        mpfr_mul(r16993, r16991, r16992, MPFR_RNDN);
        mpfr_set_d(r16994, c, MPFR_RNDN);
        mpfr_set_d(r16995, i, MPFR_RNDN);
        mpfr_mul(r16996, r16994, r16995, MPFR_RNDN);
        mpfr_sub(r16997, r16993, r16996, MPFR_RNDN);
        mpfr_mul(r16998, r16990, r16997, MPFR_RNDN);
        mpfr_set_d(r16999, j, MPFR_RNDN);
        mpfr_mul(r17000, r16984, r16999, MPFR_RNDN);
        mpfr_set_d(r17001, k, MPFR_RNDN);
        mpfr_mul(r17002, r16987, r17001, MPFR_RNDN);
        mpfr_sub(r17003, r17000, r17002, MPFR_RNDN);
        mpfr_set_d(r17004, y0, MPFR_RNDN);
        mpfr_mul(r17005, r17004, r16992, MPFR_RNDN);
        mpfr_set_d(r17006, y1, MPFR_RNDN);
        mpfr_mul(r17007, r17006, r16995, MPFR_RNDN);
        mpfr_sub(r17008, r17005, r17007, MPFR_RNDN);
        mpfr_mul(r17009, r17003, r17008, MPFR_RNDN);
        mpfr_sub(r17010, r16998, r17009, MPFR_RNDN);
        mpfr_set_d(r17011, y2, MPFR_RNDN);
        mpfr_mul(r17012, r16984, r17011, MPFR_RNDN);
        mpfr_set_d(r17013, y3, MPFR_RNDN);
        mpfr_mul(r17014, r16987, r17013, MPFR_RNDN);
        mpfr_sub(r17015, r17012, r17014, MPFR_RNDN);
        mpfr_mul(r17016, r17004, r16994, MPFR_RNDN);
        mpfr_mul(r17017, r17006, r16991, MPFR_RNDN);
        mpfr_sub(r17018, r17016, r17017, MPFR_RNDN);
        mpfr_mul(r17019, r17015, r17018, MPFR_RNDN);
        mpfr_add(r17020, r17010, r17019, MPFR_RNDN);
        mpfr_mul(r17021, r16988, r16999, MPFR_RNDN);
        mpfr_mul(r17022, r16985, r17001, MPFR_RNDN);
        mpfr_sub(r17023, r17021, r17022, MPFR_RNDN);
        mpfr_set_d(r17024, y4, MPFR_RNDN);
        mpfr_mul(r17025, r17024, r16992, MPFR_RNDN);
        mpfr_set_d(r17026, y5, MPFR_RNDN);
        mpfr_mul(r17027, r17026, r16995, MPFR_RNDN);
        mpfr_sub(r17028, r17025, r17027, MPFR_RNDN);
        mpfr_mul(r17029, r17023, r17028, MPFR_RNDN);
        mpfr_add(r17030, r17020, r17029, MPFR_RNDN);
        mpfr_mul(r17031, r16988, r17011, MPFR_RNDN);
        mpfr_mul(r17032, r16985, r17013, MPFR_RNDN);
        mpfr_sub(r17033, r17031, r17032, MPFR_RNDN);
        mpfr_mul(r17034, r17024, r16994, MPFR_RNDN);
        mpfr_mul(r17035, r17026, r16991, MPFR_RNDN);
        mpfr_sub(r17036, r17034, r17035, MPFR_RNDN);
        mpfr_mul(r17037, r17033, r17036, MPFR_RNDN);
        mpfr_sub(r17038, r17030, r17037, MPFR_RNDN);
        mpfr_mul(r17039, r17001, r17011, MPFR_RNDN);
        mpfr_mul(r17040, r16999, r17013, MPFR_RNDN);
        mpfr_sub(r17041, r17039, r17040, MPFR_RNDN);
        mpfr_mul(r17042, r17024, r17006, MPFR_RNDN);
        mpfr_mul(r17043, r17026, r17004, MPFR_RNDN);
        mpfr_sub(r17044, r17042, r17043, MPFR_RNDN);
        mpfr_mul(r17045, r17041, r17044, MPFR_RNDN);
        mpfr_add(r17046, r17038, r17045, MPFR_RNDN);
        return mpfr_get_d(r17046, MPFR_RNDN);
}

static mpfr_t r17047, r17048, r17049, r17050, r17051, r17052, r17053, r17054, r17055, r17056, r17057, r17058, r17059, r17060, r17061, r17062, r17063, r17064, r17065, r17066, r17067, r17068, r17069, r17070, r17071, r17072, r17073, r17074, r17075, r17076, r17077, r17078, r17079, r17080, r17081, r17082, r17083, r17084, r17085, r17086, r17087, r17088, r17089, r17090, r17091, r17092, r17093, r17094, r17095, r17096, r17097, r17098, r17099, r17100, r17101, r17102, r17103, r17104, r17105, r17106, r17107, r17108;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17047);
        mpfr_init(r17048);
        mpfr_init(r17049);
        mpfr_init(r17050);
        mpfr_init(r17051);
        mpfr_init(r17052);
        mpfr_init(r17053);
        mpfr_init(r17054);
        mpfr_init(r17055);
        mpfr_init(r17056);
        mpfr_init(r17057);
        mpfr_init(r17058);
        mpfr_init(r17059);
        mpfr_init(r17060);
        mpfr_init(r17061);
        mpfr_init(r17062);
        mpfr_init(r17063);
        mpfr_init(r17064);
        mpfr_init(r17065);
        mpfr_init(r17066);
        mpfr_init(r17067);
        mpfr_init(r17068);
        mpfr_init(r17069);
        mpfr_init(r17070);
        mpfr_init(r17071);
        mpfr_init(r17072);
        mpfr_init(r17073);
        mpfr_init(r17074);
        mpfr_init(r17075);
        mpfr_init(r17076);
        mpfr_init(r17077);
        mpfr_init(r17078);
        mpfr_init(r17079);
        mpfr_init(r17080);
        mpfr_init(r17081);
        mpfr_init(r17082);
        mpfr_init(r17083);
        mpfr_init(r17084);
        mpfr_init(r17085);
        mpfr_init(r17086);
        mpfr_init(r17087);
        mpfr_init(r17088);
        mpfr_init(r17089);
        mpfr_init(r17090);
        mpfr_init(r17091);
        mpfr_init(r17092);
        mpfr_init(r17093);
        mpfr_init(r17094);
        mpfr_init(r17095);
        mpfr_init(r17096);
        mpfr_init(r17097);
        mpfr_init(r17098);
        mpfr_init(r17099);
        mpfr_init(r17100);
        mpfr_init(r17101);
        mpfr_init(r17102);
        mpfr_init(r17103);
        mpfr_init(r17104);
        mpfr_init(r17105);
        mpfr_init(r17106);
        mpfr_init(r17107);
        mpfr_init(r17108);
}

double f_fm(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) {
        mpfr_set_d(r17047, y4, MPFR_RNDN);
        mpfr_set_d(r17048, y1, MPFR_RNDN);
        mpfr_mul(r17049, r17047, r17048, MPFR_RNDN);
        mpfr_set_d(r17050, y0, MPFR_RNDN);
        mpfr_set_d(r17051, y5, MPFR_RNDN);
        mpfr_mul(r17052, r17050, r17051, MPFR_RNDN);
        mpfr_sub(r17053, r17049, r17052, MPFR_RNDN);
        mpfr_set_d(r17054, y2, MPFR_RNDN);
        mpfr_set_d(r17055, k, MPFR_RNDN);
        mpfr_mul(r17056, r17054, r17055, MPFR_RNDN);
        mpfr_set_d(r17057, j, MPFR_RNDN);
        mpfr_set_d(r17058, y3, MPFR_RNDN);
        mpfr_mul(r17059, r17057, r17058, MPFR_RNDN);
        mpfr_sub(r17060, r17056, r17059, MPFR_RNDN);
        mpfr_set_d(r17061, t, MPFR_RNDN);
        mpfr_mul(r17062, r17057, r17061, MPFR_RNDN);
        mpfr_set_d(r17063, y, MPFR_RNDN);
        mpfr_mul(r17064, r17063, r17055, MPFR_RNDN);
        mpfr_sub(r17065, r17062, r17064, MPFR_RNDN);
        mpfr_set_d(r17066, b, MPFR_RNDN);
        mpfr_mul(r17067, r17047, r17066, MPFR_RNDN);
        mpfr_set_d(r17068, i, MPFR_RNDN);
        mpfr_mul(r17069, r17068, r17051, MPFR_RNDN);
        mpfr_sub(r17070, r17067, r17069, MPFR_RNDN);
        mpfr_set_d(r17071, x, MPFR_RNDN);
        mpfr_mul(r17072, r17071, r17054, MPFR_RNDN);
        mpfr_set_d(r17073, z, MPFR_RNDN);
        mpfr_mul(r17074, r17073, r17058, MPFR_RNDN);
        mpfr_sub(r17075, r17072, r17074, MPFR_RNDN);
        mpfr_set_d(r17076, c, MPFR_RNDN);
        mpfr_mul(r17077, r17050, r17076, MPFR_RNDN);
        mpfr_set_d(r17078, a, MPFR_RNDN);
        mpfr_mul(r17079, r17078, r17048, MPFR_RNDN);
        mpfr_sub(r17080, r17077, r17079, MPFR_RNDN);
        mpfr_mul(r17081, r17075, r17080, MPFR_RNDN);
        mpfr_fma(r17082, r17065, r17070, r17081, MPFR_RNDN);
        mpfr_fma(r17083, r17053, r17060, r17082, MPFR_RNDN);
        mpfr_cbrt(r17084, r17083, MPFR_RNDN);
        mpfr_mul(r17085, r17084, r17084, MPFR_RNDN); mpfr_mul(r17085, r17085, r17084, MPFR_RNDN);
        mpfr_mul(r17086, r17078, r17066, MPFR_RNDN);
        mpfr_mul(r17087, r17068, r17076, MPFR_RNDN);
        mpfr_sub(r17088, r17086, r17087, MPFR_RNDN);
        mpfr_mul(r17089, r17063, r17071, MPFR_RNDN);
        mpfr_mul(r17090, r17061, r17073, MPFR_RNDN);
        mpfr_sub(r17091, r17089, r17090, MPFR_RNDN);
        mpfr_mul(r17092, r17088, r17091, MPFR_RNDN);
        mpfr_mul(r17093, r17057, r17071, MPFR_RNDN);
        mpfr_mul(r17094, r17055, r17073, MPFR_RNDN);
        mpfr_sub(r17095, r17093, r17094, MPFR_RNDN);
        mpfr_mul(r17096, r17050, r17066, MPFR_RNDN);
        mpfr_mul(r17097, r17048, r17068, MPFR_RNDN);
        mpfr_sub(r17098, r17096, r17097, MPFR_RNDN);
        mpfr_mul(r17099, r17061, r17054, MPFR_RNDN);
        mpfr_mul(r17100, r17063, r17058, MPFR_RNDN);
        mpfr_sub(r17101, r17099, r17100, MPFR_RNDN);
        mpfr_mul(r17102, r17076, r17047, MPFR_RNDN);
        mpfr_mul(r17103, r17078, r17051, MPFR_RNDN);
        mpfr_sub(r17104, r17102, r17103, MPFR_RNDN);
        mpfr_mul(r17105, r17101, r17104, MPFR_RNDN);
        mpfr_fma(r17106, r17095, r17098, r17105, MPFR_RNDN);
        mpfr_sub(r17107, r17092, r17106, MPFR_RNDN);
        mpfr_add(r17108, r17085, r17107, MPFR_RNDN);
        return mpfr_get_d(r17108, MPFR_RNDN);
}

static mpfr_t r17109, r17110, r17111, r17112, r17113, r17114, r17115, r17116, r17117, r17118, r17119, r17120, r17121, r17122, r17123, r17124, r17125, r17126, r17127, r17128, r17129, r17130, r17131, r17132, r17133, r17134, r17135, r17136, r17137, r17138, r17139, r17140, r17141, r17142, r17143, r17144, r17145, r17146, r17147, r17148, r17149, r17150, r17151, r17152, r17153, r17154, r17155, r17156, r17157, r17158, r17159, r17160, r17161, r17162, r17163, r17164, r17165, r17166, r17167, r17168, r17169, r17170;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17109);
        mpfr_init(r17110);
        mpfr_init(r17111);
        mpfr_init(r17112);
        mpfr_init(r17113);
        mpfr_init(r17114);
        mpfr_init(r17115);
        mpfr_init(r17116);
        mpfr_init(r17117);
        mpfr_init(r17118);
        mpfr_init(r17119);
        mpfr_init(r17120);
        mpfr_init(r17121);
        mpfr_init(r17122);
        mpfr_init(r17123);
        mpfr_init(r17124);
        mpfr_init(r17125);
        mpfr_init(r17126);
        mpfr_init(r17127);
        mpfr_init(r17128);
        mpfr_init(r17129);
        mpfr_init(r17130);
        mpfr_init(r17131);
        mpfr_init(r17132);
        mpfr_init(r17133);
        mpfr_init(r17134);
        mpfr_init(r17135);
        mpfr_init(r17136);
        mpfr_init(r17137);
        mpfr_init(r17138);
        mpfr_init(r17139);
        mpfr_init(r17140);
        mpfr_init(r17141);
        mpfr_init(r17142);
        mpfr_init(r17143);
        mpfr_init(r17144);
        mpfr_init(r17145);
        mpfr_init(r17146);
        mpfr_init(r17147);
        mpfr_init(r17148);
        mpfr_init(r17149);
        mpfr_init(r17150);
        mpfr_init(r17151);
        mpfr_init(r17152);
        mpfr_init(r17153);
        mpfr_init(r17154);
        mpfr_init(r17155);
        mpfr_init(r17156);
        mpfr_init(r17157);
        mpfr_init(r17158);
        mpfr_init(r17159);
        mpfr_init(r17160);
        mpfr_init(r17161);
        mpfr_init(r17162);
        mpfr_init(r17163);
        mpfr_init(r17164);
        mpfr_init(r17165);
        mpfr_init(r17166);
        mpfr_init(r17167);
        mpfr_init(r17168);
        mpfr_init(r17169);
        mpfr_init(r17170);
}

double f_dm(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) {
        mpfr_set_d(r17109, y4, MPFR_RNDN);
        mpfr_set_d(r17110, y1, MPFR_RNDN);
        mpfr_mul(r17111, r17109, r17110, MPFR_RNDN);
        mpfr_set_d(r17112, y0, MPFR_RNDN);
        mpfr_set_d(r17113, y5, MPFR_RNDN);
        mpfr_mul(r17114, r17112, r17113, MPFR_RNDN);
        mpfr_sub(r17115, r17111, r17114, MPFR_RNDN);
        mpfr_set_d(r17116, y2, MPFR_RNDN);
        mpfr_set_d(r17117, k, MPFR_RNDN);
        mpfr_mul(r17118, r17116, r17117, MPFR_RNDN);
        mpfr_set_d(r17119, j, MPFR_RNDN);
        mpfr_set_d(r17120, y3, MPFR_RNDN);
        mpfr_mul(r17121, r17119, r17120, MPFR_RNDN);
        mpfr_sub(r17122, r17118, r17121, MPFR_RNDN);
        mpfr_set_d(r17123, t, MPFR_RNDN);
        mpfr_mul(r17124, r17119, r17123, MPFR_RNDN);
        mpfr_set_d(r17125, y, MPFR_RNDN);
        mpfr_mul(r17126, r17125, r17117, MPFR_RNDN);
        mpfr_sub(r17127, r17124, r17126, MPFR_RNDN);
        mpfr_set_d(r17128, b, MPFR_RNDN);
        mpfr_mul(r17129, r17109, r17128, MPFR_RNDN);
        mpfr_set_d(r17130, i, MPFR_RNDN);
        mpfr_mul(r17131, r17130, r17113, MPFR_RNDN);
        mpfr_sub(r17132, r17129, r17131, MPFR_RNDN);
        mpfr_set_d(r17133, x, MPFR_RNDN);
        mpfr_mul(r17134, r17133, r17116, MPFR_RNDN);
        mpfr_set_d(r17135, z, MPFR_RNDN);
        mpfr_mul(r17136, r17135, r17120, MPFR_RNDN);
        mpfr_sub(r17137, r17134, r17136, MPFR_RNDN);
        mpfr_set_d(r17138, c, MPFR_RNDN);
        mpfr_mul(r17139, r17112, r17138, MPFR_RNDN);
        mpfr_set_d(r17140, a, MPFR_RNDN);
        mpfr_mul(r17141, r17140, r17110, MPFR_RNDN);
        mpfr_sub(r17142, r17139, r17141, MPFR_RNDN);
        mpfr_mul(r17143, r17137, r17142, MPFR_RNDN);
        mpfr_fma(r17144, r17127, r17132, r17143, MPFR_RNDN);
        mpfr_fma(r17145, r17115, r17122, r17144, MPFR_RNDN);
        mpfr_cbrt(r17146, r17145, MPFR_RNDN);
        mpfr_mul(r17147, r17146, r17146, MPFR_RNDN); mpfr_mul(r17147, r17147, r17146, MPFR_RNDN);
        mpfr_mul(r17148, r17140, r17128, MPFR_RNDN);
        mpfr_mul(r17149, r17130, r17138, MPFR_RNDN);
        mpfr_sub(r17150, r17148, r17149, MPFR_RNDN);
        mpfr_mul(r17151, r17125, r17133, MPFR_RNDN);
        mpfr_mul(r17152, r17123, r17135, MPFR_RNDN);
        mpfr_sub(r17153, r17151, r17152, MPFR_RNDN);
        mpfr_mul(r17154, r17150, r17153, MPFR_RNDN);
        mpfr_mul(r17155, r17119, r17133, MPFR_RNDN);
        mpfr_mul(r17156, r17117, r17135, MPFR_RNDN);
        mpfr_sub(r17157, r17155, r17156, MPFR_RNDN);
        mpfr_mul(r17158, r17112, r17128, MPFR_RNDN);
        mpfr_mul(r17159, r17110, r17130, MPFR_RNDN);
        mpfr_sub(r17160, r17158, r17159, MPFR_RNDN);
        mpfr_mul(r17161, r17123, r17116, MPFR_RNDN);
        mpfr_mul(r17162, r17125, r17120, MPFR_RNDN);
        mpfr_sub(r17163, r17161, r17162, MPFR_RNDN);
        mpfr_mul(r17164, r17138, r17109, MPFR_RNDN);
        mpfr_mul(r17165, r17140, r17113, MPFR_RNDN);
        mpfr_sub(r17166, r17164, r17165, MPFR_RNDN);
        mpfr_mul(r17167, r17163, r17166, MPFR_RNDN);
        mpfr_fma(r17168, r17157, r17160, r17167, MPFR_RNDN);
        mpfr_sub(r17169, r17154, r17168, MPFR_RNDN);
        mpfr_add(r17170, r17147, r17169, MPFR_RNDN);
        return mpfr_get_d(r17170, MPFR_RNDN);
}

