#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 r16659 = x;
        float r16660 = y;
        float r16661 = r16659 * r16660;
        float r16662 = z;
        float r16663 = t;
        float r16664 = r16662 * r16663;
        float r16665 = r16661 - r16664;
        float r16666 = a;
        float r16667 = b;
        float r16668 = r16666 * r16667;
        float r16669 = c;
        float r16670 = i;
        float r16671 = r16669 * r16670;
        float r16672 = r16668 - r16671;
        float r16673 = r16665 * r16672;
        float r16674 = j;
        float r16675 = r16659 * r16674;
        float r16676 = k;
        float r16677 = r16662 * r16676;
        float r16678 = r16675 - r16677;
        float r16679 = y0;
        float r16680 = r16679 * r16667;
        float r16681 = y1;
        float r16682 = r16681 * r16670;
        float r16683 = r16680 - r16682;
        float r16684 = r16678 * r16683;
        float r16685 = r16673 - r16684;
        float r16686 = y2;
        float r16687 = r16659 * r16686;
        float r16688 = y3;
        float r16689 = r16662 * r16688;
        float r16690 = r16687 - r16689;
        float r16691 = r16679 * r16669;
        float r16692 = r16681 * r16666;
        float r16693 = r16691 - r16692;
        float r16694 = r16690 * r16693;
        float r16695 = r16685 + r16694;
        float r16696 = r16663 * r16674;
        float r16697 = r16660 * r16676;
        float r16698 = r16696 - r16697;
        float r16699 = y4;
        float r16700 = r16699 * r16667;
        float r16701 = y5;
        float r16702 = r16701 * r16670;
        float r16703 = r16700 - r16702;
        float r16704 = r16698 * r16703;
        float r16705 = r16695 + r16704;
        float r16706 = r16663 * r16686;
        float r16707 = r16660 * r16688;
        float r16708 = r16706 - r16707;
        float r16709 = r16699 * r16669;
        float r16710 = r16701 * r16666;
        float r16711 = r16709 - r16710;
        float r16712 = r16708 * r16711;
        float r16713 = r16705 - r16712;
        float r16714 = r16676 * r16686;
        float r16715 = r16674 * r16688;
        float r16716 = r16714 - r16715;
        float r16717 = r16699 * r16681;
        float r16718 = r16701 * r16679;
        float r16719 = r16717 - r16718;
        float r16720 = r16716 * r16719;
        float r16721 = r16713 + r16720;
        return r16721;
}

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 r16722 = x;
        double r16723 = y;
        double r16724 = r16722 * r16723;
        double r16725 = z;
        double r16726 = t;
        double r16727 = r16725 * r16726;
        double r16728 = r16724 - r16727;
        double r16729 = a;
        double r16730 = b;
        double r16731 = r16729 * r16730;
        double r16732 = c;
        double r16733 = i;
        double r16734 = r16732 * r16733;
        double r16735 = r16731 - r16734;
        double r16736 = r16728 * r16735;
        double r16737 = j;
        double r16738 = r16722 * r16737;
        double r16739 = k;
        double r16740 = r16725 * r16739;
        double r16741 = r16738 - r16740;
        double r16742 = y0;
        double r16743 = r16742 * r16730;
        double r16744 = y1;
        double r16745 = r16744 * r16733;
        double r16746 = r16743 - r16745;
        double r16747 = r16741 * r16746;
        double r16748 = r16736 - r16747;
        double r16749 = y2;
        double r16750 = r16722 * r16749;
        double r16751 = y3;
        double r16752 = r16725 * r16751;
        double r16753 = r16750 - r16752;
        double r16754 = r16742 * r16732;
        double r16755 = r16744 * r16729;
        double r16756 = r16754 - r16755;
        double r16757 = r16753 * r16756;
        double r16758 = r16748 + r16757;
        double r16759 = r16726 * r16737;
        double r16760 = r16723 * r16739;
        double r16761 = r16759 - r16760;
        double r16762 = y4;
        double r16763 = r16762 * r16730;
        double r16764 = y5;
        double r16765 = r16764 * r16733;
        double r16766 = r16763 - r16765;
        double r16767 = r16761 * r16766;
        double r16768 = r16758 + r16767;
        double r16769 = r16726 * r16749;
        double r16770 = r16723 * r16751;
        double r16771 = r16769 - r16770;
        double r16772 = r16762 * r16732;
        double r16773 = r16764 * r16729;
        double r16774 = r16772 - r16773;
        double r16775 = r16771 * r16774;
        double r16776 = r16768 - r16775;
        double r16777 = r16739 * r16749;
        double r16778 = r16737 * r16751;
        double r16779 = r16777 - r16778;
        double r16780 = r16762 * r16744;
        double r16781 = r16764 * r16742;
        double r16782 = r16780 - r16781;
        double r16783 = r16779 * r16782;
        double r16784 = r16776 + r16783;
        return r16784;
}


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 r16785 = x;
        float r16786 = y;
        float r16787 = r16785 * r16786;
        float r16788 = z;
        float r16789 = t;
        float r16790 = r16788 * r16789;
        float r16791 = r16787 - r16790;
        float r16792 = a;
        float r16793 = b;
        float r16794 = r16792 * r16793;
        float r16795 = c;
        float r16796 = i;
        float r16797 = r16795 * r16796;
        float r16798 = r16794 - r16797;
        float r16799 = r16791 * r16798;
        float r16800 = j;
        float r16801 = r16785 * r16800;
        float r16802 = k;
        float r16803 = r16788 * r16802;
        float r16804 = r16801 - r16803;
        float r16805 = y0;
        float r16806 = r16805 * r16793;
        float r16807 = y1;
        float r16808 = r16807 * r16796;
        float r16809 = r16806 - r16808;
        float r16810 = r16804 * r16809;
        float r16811 = r16799 - r16810;
        float r16812 = y2;
        float r16813 = r16785 * r16812;
        float r16814 = y3;
        float r16815 = r16788 * r16814;
        float r16816 = r16813 - r16815;
        float r16817 = r16805 * r16795;
        float r16818 = r16807 * r16792;
        float r16819 = r16817 - r16818;
        float r16820 = r16816 * r16819;
        float r16821 = r16811 + r16820;
        float r16822 = r16789 * r16800;
        float r16823 = r16786 * r16802;
        float r16824 = r16822 - r16823;
        float r16825 = y4;
        float r16826 = r16825 * r16793;
        float r16827 = y5;
        float r16828 = r16827 * r16796;
        float r16829 = r16826 - r16828;
        float r16830 = r16824 * r16829;
        float r16831 = r16821 + r16830;
        float r16832 = r16789 * r16812;
        float r16833 = r16786 * r16814;
        float r16834 = r16832 - r16833;
        float r16835 = r16825 * r16795;
        float r16836 = r16827 * r16792;
        float r16837 = r16835 - r16836;
        float r16838 = r16834 * r16837;
        float r16839 = cbrt(r16838);
        float r16840 = r16839 * (r16839 * r16839);
        float r16841 = r16831 - r16840;
        float r16842 = r16802 * r16812;
        float r16843 = r16800 * r16814;
        float r16844 = r16842 - r16843;
        float r16845 = r16825 * r16807;
        float r16846 = r16827 * r16805;
        float r16847 = r16845 - r16846;
        float r16848 = r16844 * r16847;
        float r16849 = r16841 + r16848;
        return r16849;
}

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 r16850 = x;
        double r16851 = y;
        double r16852 = r16850 * r16851;
        double r16853 = z;
        double r16854 = t;
        double r16855 = r16853 * r16854;
        double r16856 = r16852 - r16855;
        double r16857 = a;
        double r16858 = b;
        double r16859 = r16857 * r16858;
        double r16860 = c;
        double r16861 = i;
        double r16862 = r16860 * r16861;
        double r16863 = r16859 - r16862;
        double r16864 = r16856 * r16863;
        double r16865 = j;
        double r16866 = r16850 * r16865;
        double r16867 = k;
        double r16868 = r16853 * r16867;
        double r16869 = r16866 - r16868;
        double r16870 = y0;
        double r16871 = r16870 * r16858;
        double r16872 = y1;
        double r16873 = r16872 * r16861;
        double r16874 = r16871 - r16873;
        double r16875 = r16869 * r16874;
        double r16876 = r16864 - r16875;
        double r16877 = y2;
        double r16878 = r16850 * r16877;
        double r16879 = y3;
        double r16880 = r16853 * r16879;
        double r16881 = r16878 - r16880;
        double r16882 = r16870 * r16860;
        double r16883 = r16872 * r16857;
        double r16884 = r16882 - r16883;
        double r16885 = r16881 * r16884;
        double r16886 = r16876 + r16885;
        double r16887 = r16854 * r16865;
        double r16888 = r16851 * r16867;
        double r16889 = r16887 - r16888;
        double r16890 = y4;
        double r16891 = r16890 * r16858;
        double r16892 = y5;
        double r16893 = r16892 * r16861;
        double r16894 = r16891 - r16893;
        double r16895 = r16889 * r16894;
        double r16896 = r16886 + r16895;
        double r16897 = r16854 * r16877;
        double r16898 = r16851 * r16879;
        double r16899 = r16897 - r16898;
        double r16900 = r16890 * r16860;
        double r16901 = r16892 * r16857;
        double r16902 = r16900 - r16901;
        double r16903 = r16899 * r16902;
        double r16904 = cbrt(r16903);
        double r16905 = r16904 * (r16904 * r16904);
        double r16906 = r16896 - r16905;
        double r16907 = r16867 * r16877;
        double r16908 = r16865 * r16879;
        double r16909 = r16907 - r16908;
        double r16910 = r16890 * r16872;
        double r16911 = r16892 * r16870;
        double r16912 = r16910 - r16911;
        double r16913 = r16909 * r16912;
        double r16914 = r16906 + r16913;
        return r16914;
}

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 r16915, r16916, r16917, r16918, r16919, r16920, r16921, r16922, r16923, r16924, r16925, r16926, r16927, r16928, r16929, r16930, r16931, r16932, r16933, r16934, r16935, r16936, r16937, r16938, r16939, r16940, r16941, r16942, r16943, r16944, r16945, r16946, r16947, r16948, r16949, r16950, r16951, r16952, r16953, r16954, r16955, r16956, r16957, r16958, r16959, r16960, r16961, r16962, r16963, r16964, r16965, r16966, r16967, r16968, r16969, r16970, r16971, r16972, r16973, r16974, r16975, r16976, r16977;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r16915);
        mpfr_init(r16916);
        mpfr_init(r16917);
        mpfr_init(r16918);
        mpfr_init(r16919);
        mpfr_init(r16920);
        mpfr_init(r16921);
        mpfr_init(r16922);
        mpfr_init(r16923);
        mpfr_init(r16924);
        mpfr_init(r16925);
        mpfr_init(r16926);
        mpfr_init(r16927);
        mpfr_init(r16928);
        mpfr_init(r16929);
        mpfr_init(r16930);
        mpfr_init(r16931);
        mpfr_init(r16932);
        mpfr_init(r16933);
        mpfr_init(r16934);
        mpfr_init(r16935);
        mpfr_init(r16936);
        mpfr_init(r16937);
        mpfr_init(r16938);
        mpfr_init(r16939);
        mpfr_init(r16940);
        mpfr_init(r16941);
        mpfr_init(r16942);
        mpfr_init(r16943);
        mpfr_init(r16944);
        mpfr_init(r16945);
        mpfr_init(r16946);
        mpfr_init(r16947);
        mpfr_init(r16948);
        mpfr_init(r16949);
        mpfr_init(r16950);
        mpfr_init(r16951);
        mpfr_init(r16952);
        mpfr_init(r16953);
        mpfr_init(r16954);
        mpfr_init(r16955);
        mpfr_init(r16956);
        mpfr_init(r16957);
        mpfr_init(r16958);
        mpfr_init(r16959);
        mpfr_init(r16960);
        mpfr_init(r16961);
        mpfr_init(r16962);
        mpfr_init(r16963);
        mpfr_init(r16964);
        mpfr_init(r16965);
        mpfr_init(r16966);
        mpfr_init(r16967);
        mpfr_init(r16968);
        mpfr_init(r16969);
        mpfr_init(r16970);
        mpfr_init(r16971);
        mpfr_init(r16972);
        mpfr_init(r16973);
        mpfr_init(r16974);
        mpfr_init(r16975);
        mpfr_init(r16976);
        mpfr_init(r16977);
}

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(r16915, x, MPFR_RNDN);
        mpfr_set_d(r16916, y, MPFR_RNDN);
        mpfr_mul(r16917, r16915, r16916, MPFR_RNDN);
        mpfr_set_d(r16918, z, MPFR_RNDN);
        mpfr_set_d(r16919, t, MPFR_RNDN);
        mpfr_mul(r16920, r16918, r16919, MPFR_RNDN);
        mpfr_sub(r16921, r16917, r16920, MPFR_RNDN);
        mpfr_set_d(r16922, a, MPFR_RNDN);
        mpfr_set_d(r16923, b, MPFR_RNDN);
        mpfr_mul(r16924, r16922, r16923, MPFR_RNDN);
        mpfr_set_d(r16925, c, MPFR_RNDN);
        mpfr_set_d(r16926, i, MPFR_RNDN);
        mpfr_mul(r16927, r16925, r16926, MPFR_RNDN);
        mpfr_sub(r16928, r16924, r16927, MPFR_RNDN);
        mpfr_mul(r16929, r16921, r16928, MPFR_RNDN);
        mpfr_set_d(r16930, j, MPFR_RNDN);
        mpfr_mul(r16931, r16915, r16930, MPFR_RNDN);
        mpfr_set_d(r16932, k, MPFR_RNDN);
        mpfr_mul(r16933, r16918, r16932, MPFR_RNDN);
        mpfr_sub(r16934, r16931, r16933, MPFR_RNDN);
        mpfr_set_d(r16935, y0, MPFR_RNDN);
        mpfr_mul(r16936, r16935, r16923, MPFR_RNDN);
        mpfr_set_d(r16937, y1, MPFR_RNDN);
        mpfr_mul(r16938, r16937, r16926, MPFR_RNDN);
        mpfr_sub(r16939, r16936, r16938, MPFR_RNDN);
        mpfr_mul(r16940, r16934, r16939, MPFR_RNDN);
        mpfr_sub(r16941, r16929, r16940, MPFR_RNDN);
        mpfr_set_d(r16942, y2, MPFR_RNDN);
        mpfr_mul(r16943, r16915, r16942, MPFR_RNDN);
        mpfr_set_d(r16944, y3, MPFR_RNDN);
        mpfr_mul(r16945, r16918, r16944, MPFR_RNDN);
        mpfr_sub(r16946, r16943, r16945, MPFR_RNDN);
        mpfr_mul(r16947, r16935, r16925, MPFR_RNDN);
        mpfr_mul(r16948, r16937, r16922, MPFR_RNDN);
        mpfr_sub(r16949, r16947, r16948, MPFR_RNDN);
        mpfr_mul(r16950, r16946, r16949, MPFR_RNDN);
        mpfr_add(r16951, r16941, r16950, MPFR_RNDN);
        mpfr_mul(r16952, r16919, r16930, MPFR_RNDN);
        mpfr_mul(r16953, r16916, r16932, MPFR_RNDN);
        mpfr_sub(r16954, r16952, r16953, MPFR_RNDN);
        mpfr_set_d(r16955, y4, MPFR_RNDN);
        mpfr_mul(r16956, r16955, r16923, MPFR_RNDN);
        mpfr_set_d(r16957, y5, MPFR_RNDN);
        mpfr_mul(r16958, r16957, r16926, MPFR_RNDN);
        mpfr_sub(r16959, r16956, r16958, MPFR_RNDN);
        mpfr_mul(r16960, r16954, r16959, MPFR_RNDN);
        mpfr_add(r16961, r16951, r16960, MPFR_RNDN);
        mpfr_mul(r16962, r16919, r16942, MPFR_RNDN);
        mpfr_mul(r16963, r16916, r16944, MPFR_RNDN);
        mpfr_sub(r16964, r16962, r16963, MPFR_RNDN);
        mpfr_mul(r16965, r16955, r16925, MPFR_RNDN);
        mpfr_mul(r16966, r16957, r16922, MPFR_RNDN);
        mpfr_sub(r16967, r16965, r16966, MPFR_RNDN);
        mpfr_mul(r16968, r16964, r16967, MPFR_RNDN);
        mpfr_sub(r16969, r16961, r16968, MPFR_RNDN);
        mpfr_mul(r16970, r16932, r16942, MPFR_RNDN);
        mpfr_mul(r16971, r16930, r16944, MPFR_RNDN);
        mpfr_sub(r16972, r16970, r16971, MPFR_RNDN);
        mpfr_mul(r16973, r16955, r16937, MPFR_RNDN);
        mpfr_mul(r16974, r16957, r16935, MPFR_RNDN);
        mpfr_sub(r16975, r16973, r16974, MPFR_RNDN);
        mpfr_mul(r16976, r16972, r16975, MPFR_RNDN);
        mpfr_add(r16977, r16969, r16976, MPFR_RNDN);
        return mpfr_get_d(r16977, MPFR_RNDN);
}

static mpfr_t r16978, r16979, r16980, r16981, r16982, r16983, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r16978);
        mpfr_init(r16979);
        mpfr_init(r16980);
        mpfr_init(r16981);
        mpfr_init(r16982);
        mpfr_init(r16983);
        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);
}

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

static mpfr_t r17043, r17044, r17045, r17046, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17043);
        mpfr_init(r17044);
        mpfr_init(r17045);
        mpfr_init(r17046);
        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);
}

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

