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

char *name = "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1";

double f_if(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r26786 = x;
        float r26787 = 18.0;
        float r26788 = r26786 * r26787;
        float r26789 = y;
        float r26790 = r26788 * r26789;
        float r26791 = z;
        float r26792 = r26790 * r26791;
        float r26793 = t;
        float r26794 = r26792 * r26793;
        float r26795 = a;
        float r26796 = 4.0;
        float r26797 = r26795 * r26796;
        float r26798 = r26797 * r26793;
        float r26799 = r26794 - r26798;
        float r26800 = b;
        float r26801 = c;
        float r26802 = r26800 * r26801;
        float r26803 = r26799 + r26802;
        float r26804 = r26786 * r26796;
        float r26805 = i;
        float r26806 = r26804 * r26805;
        float r26807 = r26803 - r26806;
        float r26808 = j;
        float r26809 = 27.0;
        float r26810 = r26808 * r26809;
        float r26811 = k;
        float r26812 = r26810 * r26811;
        float r26813 = r26807 - r26812;
        return r26813;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r26814 = x;
        double r26815 = 18.0;
        double r26816 = r26814 * r26815;
        double r26817 = y;
        double r26818 = r26816 * r26817;
        double r26819 = z;
        double r26820 = r26818 * r26819;
        double r26821 = t;
        double r26822 = r26820 * r26821;
        double r26823 = a;
        double r26824 = 4.0;
        double r26825 = r26823 * r26824;
        double r26826 = r26825 * r26821;
        double r26827 = r26822 - r26826;
        double r26828 = b;
        double r26829 = c;
        double r26830 = r26828 * r26829;
        double r26831 = r26827 + r26830;
        double r26832 = r26814 * r26824;
        double r26833 = i;
        double r26834 = r26832 * r26833;
        double r26835 = r26831 - r26834;
        double r26836 = j;
        double r26837 = 27.0;
        double r26838 = r26836 * r26837;
        double r26839 = k;
        double r26840 = r26838 * r26839;
        double r26841 = r26835 - r26840;
        return r26841;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j, float k) {
        float r26842 = x;
        float r26843 = 18.0;
        float r26844 = r26842 * r26843;
        float r26845 = y;
        float r26846 = r26844 * r26845;
        float r26847 = z;
        float r26848 = r26846 * r26847;
        float r26849 = t;
        float r26850 = r26848 * r26849;
        float r26851 = a;
        float r26852 = 4.0;
        float r26853 = r26851 * r26852;
        float r26854 = r26853 * r26849;
        float r26855 = r26850 - r26854;
        float r26856 = b;
        float r26857 = c;
        float r26858 = r26856 * r26857;
        float r26859 = r26855 + r26858;
        float r26860 = r26842 * r26852;
        float r26861 = i;
        float r26862 = r26860 * r26861;
        float r26863 = r26859 - r26862;
        float r26864 = -2.65140423170711e+306;
        bool r26865 = r26863 <= r26864;
        float r26866 = r26857 * r26856;
        float r26867 = k;
        float r26868 = 27.0;
        float r26869 = j;
        float r26870 = r26868 * r26869;
        float r26871 = r26867 * r26870;
        float r26872 = r26866 - r26871;
        float r26873 = r26861 * r26852;
        float r26874 = r26849 * r26845;
        float r26875 = r26847 * r26843;
        float r26876 = r26874 * r26875;
        float r26877 = r26873 - r26876;
        float r26878 = r26842 * r26877;
        float r26879 = r26872 - r26878;
        float r26880 = r26852 * r26851;
        float r26881 = -r26880;
        float r26882 = r26881 * r26849;
        float r26883 = r26879 + r26882;
        float r26884 = 3.487406365038652e+295;
        bool r26885 = r26863 <= r26884;
        float r26886 = r26869 * r26868;
        float r26887 = r26886 * r26867;
        float r26888 = r26863 - r26887;
        float r26889 = r26885 ? r26888 : r26883;
        float r26890 = r26865 ? r26883 : r26889;
        return r26890;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r26891 = x;
        double r26892 = 18.0;
        double r26893 = r26891 * r26892;
        double r26894 = y;
        double r26895 = r26893 * r26894;
        double r26896 = z;
        double r26897 = r26895 * r26896;
        double r26898 = t;
        double r26899 = r26897 * r26898;
        double r26900 = a;
        double r26901 = 4.0;
        double r26902 = r26900 * r26901;
        double r26903 = r26902 * r26898;
        double r26904 = r26899 - r26903;
        double r26905 = b;
        double r26906 = c;
        double r26907 = r26905 * r26906;
        double r26908 = r26904 + r26907;
        double r26909 = r26891 * r26901;
        double r26910 = i;
        double r26911 = r26909 * r26910;
        double r26912 = r26908 - r26911;
        double r26913 = -2.65140423170711e+306;
        bool r26914 = r26912 <= r26913;
        double r26915 = r26906 * r26905;
        double r26916 = k;
        double r26917 = 27.0;
        double r26918 = j;
        double r26919 = r26917 * r26918;
        double r26920 = r26916 * r26919;
        double r26921 = r26915 - r26920;
        double r26922 = r26910 * r26901;
        double r26923 = r26898 * r26894;
        double r26924 = r26896 * r26892;
        double r26925 = r26923 * r26924;
        double r26926 = r26922 - r26925;
        double r26927 = r26891 * r26926;
        double r26928 = r26921 - r26927;
        double r26929 = r26901 * r26900;
        double r26930 = -r26929;
        double r26931 = r26930 * r26898;
        double r26932 = r26928 + r26931;
        double r26933 = 3.487406365038652e+295;
        bool r26934 = r26912 <= r26933;
        double r26935 = r26918 * r26917;
        double r26936 = r26935 * r26916;
        double r26937 = r26912 - r26936;
        double r26938 = r26934 ? r26937 : r26932;
        double r26939 = r26914 ? r26932 : r26938;
        return r26939;
}

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 r26940, r26941, r26942, r26943, r26944, r26945, r26946, r26947, r26948, r26949, r26950, r26951, r26952, r26953, r26954, r26955, r26956, r26957, r26958, r26959, r26960, r26961, r26962, r26963, r26964, r26965, r26966, r26967;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26940);
        mpfr_init_set_str(r26941, "18.0", 10, MPFR_RNDN);
        mpfr_init(r26942);
        mpfr_init(r26943);
        mpfr_init(r26944);
        mpfr_init(r26945);
        mpfr_init(r26946);
        mpfr_init(r26947);
        mpfr_init(r26948);
        mpfr_init(r26949);
        mpfr_init_set_str(r26950, "4.0", 10, MPFR_RNDN);
        mpfr_init(r26951);
        mpfr_init(r26952);
        mpfr_init(r26953);
        mpfr_init(r26954);
        mpfr_init(r26955);
        mpfr_init(r26956);
        mpfr_init(r26957);
        mpfr_init(r26958);
        mpfr_init(r26959);
        mpfr_init(r26960);
        mpfr_init(r26961);
        mpfr_init(r26962);
        mpfr_init_set_str(r26963, "27.0", 10, MPFR_RNDN);
        mpfr_init(r26964);
        mpfr_init(r26965);
        mpfr_init(r26966);
        mpfr_init(r26967);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        mpfr_set_d(r26940, x, MPFR_RNDN);
        ;
        mpfr_mul(r26942, r26940, r26941, MPFR_RNDN);
        mpfr_set_d(r26943, y, MPFR_RNDN);
        mpfr_mul(r26944, r26942, r26943, MPFR_RNDN);
        mpfr_set_d(r26945, z, MPFR_RNDN);
        mpfr_mul(r26946, r26944, r26945, MPFR_RNDN);
        mpfr_set_d(r26947, t, MPFR_RNDN);
        mpfr_mul(r26948, r26946, r26947, MPFR_RNDN);
        mpfr_set_d(r26949, a, MPFR_RNDN);
        ;
        mpfr_mul(r26951, r26949, r26950, MPFR_RNDN);
        mpfr_mul(r26952, r26951, r26947, MPFR_RNDN);
        mpfr_sub(r26953, r26948, r26952, MPFR_RNDN);
        mpfr_set_d(r26954, b, MPFR_RNDN);
        mpfr_set_d(r26955, c, MPFR_RNDN);
        mpfr_mul(r26956, r26954, r26955, MPFR_RNDN);
        mpfr_add(r26957, r26953, r26956, MPFR_RNDN);
        mpfr_mul(r26958, r26940, r26950, MPFR_RNDN);
        mpfr_set_d(r26959, i, MPFR_RNDN);
        mpfr_mul(r26960, r26958, r26959, MPFR_RNDN);
        mpfr_sub(r26961, r26957, r26960, MPFR_RNDN);
        mpfr_set_d(r26962, j, MPFR_RNDN);
        ;
        mpfr_mul(r26964, r26962, r26963, MPFR_RNDN);
        mpfr_set_d(r26965, k, MPFR_RNDN);
        mpfr_mul(r26966, r26964, r26965, MPFR_RNDN);
        mpfr_sub(r26967, r26961, r26966, MPFR_RNDN);
        return mpfr_get_d(r26967, MPFR_RNDN);
}

static mpfr_t r26968, r26969, r26970, r26971, r26972, r26973, r26974, r26975, r26976, r26977, r26978, r26979, r26980, r26981, r26982, r26983, r26984, r26985, r26986, r26987, r26988, r26989, r26990, r26991, r26992, r26993, r26994, r26995, r26996, r26997, r26998, r26999, r27000, r27001, r27002, r27003, r27004, r27005, r27006, r27007, r27008, r27009, r27010, r27011, r27012, r27013, r27014, r27015, r27016;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26968);
        mpfr_init_set_str(r26969, "18.0", 10, MPFR_RNDN);
        mpfr_init(r26970);
        mpfr_init(r26971);
        mpfr_init(r26972);
        mpfr_init(r26973);
        mpfr_init(r26974);
        mpfr_init(r26975);
        mpfr_init(r26976);
        mpfr_init(r26977);
        mpfr_init_set_str(r26978, "4.0", 10, MPFR_RNDN);
        mpfr_init(r26979);
        mpfr_init(r26980);
        mpfr_init(r26981);
        mpfr_init(r26982);
        mpfr_init(r26983);
        mpfr_init(r26984);
        mpfr_init(r26985);
        mpfr_init(r26986);
        mpfr_init(r26987);
        mpfr_init(r26988);
        mpfr_init(r26989);
        mpfr_init_set_str(r26990, "-2.65140423170711e+306", 10, MPFR_RNDN);
        mpfr_init(r26991);
        mpfr_init(r26992);
        mpfr_init(r26993);
        mpfr_init_set_str(r26994, "27.0", 10, MPFR_RNDN);
        mpfr_init(r26995);
        mpfr_init(r26996);
        mpfr_init(r26997);
        mpfr_init(r26998);
        mpfr_init(r26999);
        mpfr_init(r27000);
        mpfr_init(r27001);
        mpfr_init(r27002);
        mpfr_init(r27003);
        mpfr_init(r27004);
        mpfr_init(r27005);
        mpfr_init(r27006);
        mpfr_init(r27007);
        mpfr_init(r27008);
        mpfr_init(r27009);
        mpfr_init_set_str(r27010, "3.487406365038652e+295", 10, MPFR_RNDN);
        mpfr_init(r27011);
        mpfr_init(r27012);
        mpfr_init(r27013);
        mpfr_init(r27014);
        mpfr_init(r27015);
        mpfr_init(r27016);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        mpfr_set_d(r26968, x, MPFR_RNDN);
        ;
        mpfr_mul(r26970, r26968, r26969, MPFR_RNDN);
        mpfr_set_d(r26971, y, MPFR_RNDN);
        mpfr_mul(r26972, r26970, r26971, MPFR_RNDN);
        mpfr_set_d(r26973, z, MPFR_RNDN);
        mpfr_mul(r26974, r26972, r26973, MPFR_RNDN);
        mpfr_set_d(r26975, t, MPFR_RNDN);
        mpfr_mul(r26976, r26974, r26975, MPFR_RNDN);
        mpfr_set_d(r26977, a, MPFR_RNDN);
        ;
        mpfr_mul(r26979, r26977, r26978, MPFR_RNDN);
        mpfr_mul(r26980, r26979, r26975, MPFR_RNDN);
        mpfr_sub(r26981, r26976, r26980, MPFR_RNDN);
        mpfr_set_d(r26982, b, MPFR_RNDN);
        mpfr_set_d(r26983, c, MPFR_RNDN);
        mpfr_mul(r26984, r26982, r26983, MPFR_RNDN);
        mpfr_add(r26985, r26981, r26984, MPFR_RNDN);
        mpfr_mul(r26986, r26968, r26978, MPFR_RNDN);
        mpfr_set_d(r26987, i, MPFR_RNDN);
        mpfr_mul(r26988, r26986, r26987, MPFR_RNDN);
        mpfr_sub(r26989, r26985, r26988, MPFR_RNDN);
        ;
        mpfr_set_si(r26991, mpfr_cmp(r26989, r26990) <= 0, MPFR_RNDN);
        mpfr_mul(r26992, r26983, r26982, MPFR_RNDN);
        mpfr_set_d(r26993, k, MPFR_RNDN);
        ;
        mpfr_set_d(r26995, j, MPFR_RNDN);
        mpfr_mul(r26996, r26994, r26995, MPFR_RNDN);
        mpfr_mul(r26997, r26993, r26996, MPFR_RNDN);
        mpfr_sub(r26998, r26992, r26997, MPFR_RNDN);
        mpfr_mul(r26999, r26987, r26978, MPFR_RNDN);
        mpfr_mul(r27000, r26975, r26971, MPFR_RNDN);
        mpfr_mul(r27001, r26973, r26969, MPFR_RNDN);
        mpfr_mul(r27002, r27000, r27001, MPFR_RNDN);
        mpfr_sub(r27003, r26999, r27002, MPFR_RNDN);
        mpfr_mul(r27004, r26968, r27003, MPFR_RNDN);
        mpfr_sub(r27005, r26998, r27004, MPFR_RNDN);
        mpfr_mul(r27006, r26978, r26977, MPFR_RNDN);
        mpfr_neg(r27007, r27006, MPFR_RNDN);
        mpfr_mul(r27008, r27007, r26975, MPFR_RNDN);
        mpfr_add(r27009, r27005, r27008, MPFR_RNDN);
        ;
        mpfr_set_si(r27011, mpfr_cmp(r26989, r27010) <= 0, MPFR_RNDN);
        mpfr_mul(r27012, r26995, r26994, MPFR_RNDN);
        mpfr_mul(r27013, r27012, r26993, MPFR_RNDN);
        mpfr_sub(r27014, r26989, r27013, MPFR_RNDN);
        if (mpfr_get_si(r27011, MPFR_RNDN)) { mpfr_set(r27015, r27014, MPFR_RNDN); } else { mpfr_set(r27015, r27009, MPFR_RNDN); };
        if (mpfr_get_si(r26991, MPFR_RNDN)) { mpfr_set(r27016, r27009, MPFR_RNDN); } else { mpfr_set(r27016, r27015, MPFR_RNDN); };
        return mpfr_get_d(r27016, MPFR_RNDN);
}

static mpfr_t r27017, r27018, r27019, r27020, r27021, r27022, r27023, r27024, r27025, r27026, r27027, r27028, r27029, r27030, r27031, r27032, r27033, r27034, r27035, r27036, r27037, r27038, r27039, r27040, r27041, r27042, r27043, r27044, r27045, r27046, r27047, r27048, r27049, r27050, r27051, r27052, r27053, r27054, r27055, r27056, r27057, r27058, r27059, r27060, r27061, r27062, r27063, r27064, r27065;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r27017);
        mpfr_init_set_str(r27018, "18.0", 10, MPFR_RNDN);
        mpfr_init(r27019);
        mpfr_init(r27020);
        mpfr_init(r27021);
        mpfr_init(r27022);
        mpfr_init(r27023);
        mpfr_init(r27024);
        mpfr_init(r27025);
        mpfr_init(r27026);
        mpfr_init_set_str(r27027, "4.0", 10, MPFR_RNDN);
        mpfr_init(r27028);
        mpfr_init(r27029);
        mpfr_init(r27030);
        mpfr_init(r27031);
        mpfr_init(r27032);
        mpfr_init(r27033);
        mpfr_init(r27034);
        mpfr_init(r27035);
        mpfr_init(r27036);
        mpfr_init(r27037);
        mpfr_init(r27038);
        mpfr_init_set_str(r27039, "-2.65140423170711e+306", 10, MPFR_RNDN);
        mpfr_init(r27040);
        mpfr_init(r27041);
        mpfr_init(r27042);
        mpfr_init_set_str(r27043, "27.0", 10, MPFR_RNDN);
        mpfr_init(r27044);
        mpfr_init(r27045);
        mpfr_init(r27046);
        mpfr_init(r27047);
        mpfr_init(r27048);
        mpfr_init(r27049);
        mpfr_init(r27050);
        mpfr_init(r27051);
        mpfr_init(r27052);
        mpfr_init(r27053);
        mpfr_init(r27054);
        mpfr_init(r27055);
        mpfr_init(r27056);
        mpfr_init(r27057);
        mpfr_init(r27058);
        mpfr_init_set_str(r27059, "3.487406365038652e+295", 10, MPFR_RNDN);
        mpfr_init(r27060);
        mpfr_init(r27061);
        mpfr_init(r27062);
        mpfr_init(r27063);
        mpfr_init(r27064);
        mpfr_init(r27065);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        mpfr_set_d(r27017, x, MPFR_RNDN);
        ;
        mpfr_mul(r27019, r27017, r27018, MPFR_RNDN);
        mpfr_set_d(r27020, y, MPFR_RNDN);
        mpfr_mul(r27021, r27019, r27020, MPFR_RNDN);
        mpfr_set_d(r27022, z, MPFR_RNDN);
        mpfr_mul(r27023, r27021, r27022, MPFR_RNDN);
        mpfr_set_d(r27024, t, MPFR_RNDN);
        mpfr_mul(r27025, r27023, r27024, MPFR_RNDN);
        mpfr_set_d(r27026, a, MPFR_RNDN);
        ;
        mpfr_mul(r27028, r27026, r27027, MPFR_RNDN);
        mpfr_mul(r27029, r27028, r27024, MPFR_RNDN);
        mpfr_sub(r27030, r27025, r27029, MPFR_RNDN);
        mpfr_set_d(r27031, b, MPFR_RNDN);
        mpfr_set_d(r27032, c, MPFR_RNDN);
        mpfr_mul(r27033, r27031, r27032, MPFR_RNDN);
        mpfr_add(r27034, r27030, r27033, MPFR_RNDN);
        mpfr_mul(r27035, r27017, r27027, MPFR_RNDN);
        mpfr_set_d(r27036, i, MPFR_RNDN);
        mpfr_mul(r27037, r27035, r27036, MPFR_RNDN);
        mpfr_sub(r27038, r27034, r27037, MPFR_RNDN);
        ;
        mpfr_set_si(r27040, mpfr_cmp(r27038, r27039) <= 0, MPFR_RNDN);
        mpfr_mul(r27041, r27032, r27031, MPFR_RNDN);
        mpfr_set_d(r27042, k, MPFR_RNDN);
        ;
        mpfr_set_d(r27044, j, MPFR_RNDN);
        mpfr_mul(r27045, r27043, r27044, MPFR_RNDN);
        mpfr_mul(r27046, r27042, r27045, MPFR_RNDN);
        mpfr_sub(r27047, r27041, r27046, MPFR_RNDN);
        mpfr_mul(r27048, r27036, r27027, MPFR_RNDN);
        mpfr_mul(r27049, r27024, r27020, MPFR_RNDN);
        mpfr_mul(r27050, r27022, r27018, MPFR_RNDN);
        mpfr_mul(r27051, r27049, r27050, MPFR_RNDN);
        mpfr_sub(r27052, r27048, r27051, MPFR_RNDN);
        mpfr_mul(r27053, r27017, r27052, MPFR_RNDN);
        mpfr_sub(r27054, r27047, r27053, MPFR_RNDN);
        mpfr_mul(r27055, r27027, r27026, MPFR_RNDN);
        mpfr_neg(r27056, r27055, MPFR_RNDN);
        mpfr_mul(r27057, r27056, r27024, MPFR_RNDN);
        mpfr_add(r27058, r27054, r27057, MPFR_RNDN);
        ;
        mpfr_set_si(r27060, mpfr_cmp(r27038, r27059) <= 0, MPFR_RNDN);
        mpfr_mul(r27061, r27044, r27043, MPFR_RNDN);
        mpfr_mul(r27062, r27061, r27042, MPFR_RNDN);
        mpfr_sub(r27063, r27038, r27062, MPFR_RNDN);
        if (mpfr_get_si(r27060, MPFR_RNDN)) { mpfr_set(r27064, r27063, MPFR_RNDN); } else { mpfr_set(r27064, r27058, MPFR_RNDN); };
        if (mpfr_get_si(r27040, MPFR_RNDN)) { mpfr_set(r27065, r27058, MPFR_RNDN); } else { mpfr_set(r27065, r27064, MPFR_RNDN); };
        return mpfr_get_d(r27065, MPFR_RNDN);
}

