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

char *name = "The quadratic formula (r2)";

double f_if(float a, float b, float c) {
        float r39829 = b;
        float r39830 = -r39829;
        float r39831 = r39829 * r39829;
        float r39832 = 4;
        float r39833 = a;
        float r39834 = c;
        float r39835 = r39833 * r39834;
        float r39836 = r39832 * r39835;
        float r39837 = r39831 - r39836;
        float r39838 = sqrt(r39837);
        float r39839 = r39830 - r39838;
        float r39840 = 2;
        float r39841 = r39840 * r39833;
        float r39842 = r39839 / r39841;
        return r39842;
}

double f_id(double a, double b, double c) {
        double r39843 = b;
        double r39844 = -r39843;
        double r39845 = r39843 * r39843;
        double r39846 = 4;
        double r39847 = a;
        double r39848 = c;
        double r39849 = r39847 * r39848;
        double r39850 = r39846 * r39849;
        double r39851 = r39845 - r39850;
        double r39852 = sqrt(r39851);
        double r39853 = r39844 - r39852;
        double r39854 = 2;
        double r39855 = r39854 * r39847;
        double r39856 = r39853 / r39855;
        return r39856;
}


double f_of(float a, float b, float c) {
        float r39857 = b;
        float r39858 = -5.018034098196628e+28;
        bool r39859 = r39857 <= r39858;
        float r39860 = -r39857;
        float r39861 = r39860 + r39857;
        float r39862 = a;
        float r39863 = r39862 + r39862;
        float r39864 = r39861 / r39863;
        float r39865 = c;
        float r39866 = r39865 / r39857;
        float r39867 = r39864 - r39866;
        float r39868 = -1.992853954034314e-66;
        bool r39869 = r39857 <= r39868;
        float r39870 = r39865 * r39862;
        float r39871 = 4;
        float r39872 = r39870 * r39871;
        float r39873 = r39857 * r39857;
        float r39874 = r39862 * r39865;
        float r39875 = r39871 * r39874;
        float r39876 = r39873 - r39875;
        float r39877 = sqrt(r39876);
        float r39878 = r39860 + r39877;
        float r39879 = r39872 / r39878;
        float r39880 = 2;
        float r39881 = r39880 * r39862;
        float r39882 = r39879 / r39881;
        float r39883 = -5.3589749776329416e-108;
        bool r39884 = r39857 <= r39883;
        float r39885 = 1.7007616628281973e+81;
        bool r39886 = r39857 <= r39885;
        float r39887 = r39871 * r39862;
        float r39888 = r39887 * r39865;
        float r39889 = r39873 - r39888;
        float r39890 = sqrt(r39889);
        float r39891 = r39860 - r39890;
        float r39892 = r39891 / r39881;
        float r39893 = r39860 / r39862;
        float r39894 = r39886 ? r39892 : r39893;
        float r39895 = r39884 ? r39867 : r39894;
        float r39896 = r39869 ? r39882 : r39895;
        float r39897 = r39859 ? r39867 : r39896;
        return r39897;
}

double f_od(double a, double b, double c) {
        double r39898 = b;
        double r39899 = -5.018034098196628e+28;
        bool r39900 = r39898 <= r39899;
        double r39901 = -r39898;
        double r39902 = r39901 + r39898;
        double r39903 = a;
        double r39904 = r39903 + r39903;
        double r39905 = r39902 / r39904;
        double r39906 = c;
        double r39907 = r39906 / r39898;
        double r39908 = r39905 - r39907;
        double r39909 = -1.992853954034314e-66;
        bool r39910 = r39898 <= r39909;
        double r39911 = r39906 * r39903;
        double r39912 = 4;
        double r39913 = r39911 * r39912;
        double r39914 = r39898 * r39898;
        double r39915 = r39903 * r39906;
        double r39916 = r39912 * r39915;
        double r39917 = r39914 - r39916;
        double r39918 = sqrt(r39917);
        double r39919 = r39901 + r39918;
        double r39920 = r39913 / r39919;
        double r39921 = 2;
        double r39922 = r39921 * r39903;
        double r39923 = r39920 / r39922;
        double r39924 = -5.3589749776329416e-108;
        bool r39925 = r39898 <= r39924;
        double r39926 = 1.7007616628281973e+81;
        bool r39927 = r39898 <= r39926;
        double r39928 = r39912 * r39903;
        double r39929 = r39928 * r39906;
        double r39930 = r39914 - r39929;
        double r39931 = sqrt(r39930);
        double r39932 = r39901 - r39931;
        double r39933 = r39932 / r39922;
        double r39934 = r39901 / r39903;
        double r39935 = r39927 ? r39933 : r39934;
        double r39936 = r39925 ? r39908 : r39935;
        double r39937 = r39910 ? r39923 : r39936;
        double r39938 = r39900 ? r39908 : r39937;
        return r39938;
}

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 r39939, r39940, r39941, r39942, r39943, r39944, r39945, r39946, r39947, r39948, r39949, r39950, r39951, r39952;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2704);
        mpfr_init(r39939);
        mpfr_init(r39940);
        mpfr_init(r39941);
        mpfr_init_set_str(r39942, "4", 10, MPFR_RNDN);
        mpfr_init(r39943);
        mpfr_init(r39944);
        mpfr_init(r39945);
        mpfr_init(r39946);
        mpfr_init(r39947);
        mpfr_init(r39948);
        mpfr_init(r39949);
        mpfr_init_set_str(r39950, "2", 10, MPFR_RNDN);
        mpfr_init(r39951);
        mpfr_init(r39952);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39939, b, MPFR_RNDN);
        mpfr_neg(r39940, r39939, MPFR_RNDN);
        mpfr_mul(r39941, r39939, r39939, MPFR_RNDN);
        ;
        mpfr_set_d(r39943, a, MPFR_RNDN);
        mpfr_set_d(r39944, c, MPFR_RNDN);
        mpfr_mul(r39945, r39943, r39944, MPFR_RNDN);
        mpfr_mul(r39946, r39942, r39945, MPFR_RNDN);
        mpfr_sub(r39947, r39941, r39946, MPFR_RNDN);
        mpfr_sqrt(r39948, r39947, MPFR_RNDN);
        mpfr_sub(r39949, r39940, r39948, MPFR_RNDN);
        ;
        mpfr_mul(r39951, r39950, r39943, MPFR_RNDN);
        mpfr_div(r39952, r39949, r39951, MPFR_RNDN);
        return mpfr_get_d(r39952, MPFR_RNDN);
}

static mpfr_t r39953, r39954, r39955, r39956, r39957, r39958, r39959, r39960, r39961, r39962, r39963, r39964, r39965, r39966, r39967, r39968, r39969, r39970, r39971, r39972, r39973, r39974, r39975, r39976, r39977, r39978, r39979, r39980, r39981, r39982, r39983, r39984, r39985, r39986, r39987, r39988, r39989, r39990, r39991, r39992, r39993;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2704);
        mpfr_init(r39953);
        mpfr_init_set_str(r39954, "-5.018034098196628e+28", 10, MPFR_RNDN);
        mpfr_init(r39955);
        mpfr_init(r39956);
        mpfr_init(r39957);
        mpfr_init(r39958);
        mpfr_init(r39959);
        mpfr_init(r39960);
        mpfr_init(r39961);
        mpfr_init(r39962);
        mpfr_init(r39963);
        mpfr_init_set_str(r39964, "-1.992853954034314e-66", 10, MPFR_RNDN);
        mpfr_init(r39965);
        mpfr_init(r39966);
        mpfr_init_set_str(r39967, "4", 10, MPFR_RNDN);
        mpfr_init(r39968);
        mpfr_init(r39969);
        mpfr_init(r39970);
        mpfr_init(r39971);
        mpfr_init(r39972);
        mpfr_init(r39973);
        mpfr_init(r39974);
        mpfr_init(r39975);
        mpfr_init_set_str(r39976, "2", 10, MPFR_RNDN);
        mpfr_init(r39977);
        mpfr_init(r39978);
        mpfr_init_set_str(r39979, "-5.3589749776329416e-108", 10, MPFR_RNDN);
        mpfr_init(r39980);
        mpfr_init_set_str(r39981, "1.7007616628281973e+81", 10, MPFR_RNDN);
        mpfr_init(r39982);
        mpfr_init(r39983);
        mpfr_init(r39984);
        mpfr_init(r39985);
        mpfr_init(r39986);
        mpfr_init(r39987);
        mpfr_init(r39988);
        mpfr_init(r39989);
        mpfr_init(r39990);
        mpfr_init(r39991);
        mpfr_init(r39992);
        mpfr_init(r39993);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r39953, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39955, mpfr_cmp(r39953, r39954) <= 0, MPFR_RNDN);
        mpfr_neg(r39956, r39953, MPFR_RNDN);
        mpfr_add(r39957, r39956, r39953, MPFR_RNDN);
        mpfr_set_d(r39958, a, MPFR_RNDN);
        mpfr_add(r39959, r39958, r39958, MPFR_RNDN);
        mpfr_div(r39960, r39957, r39959, MPFR_RNDN);
        mpfr_set_d(r39961, c, MPFR_RNDN);
        mpfr_div(r39962, r39961, r39953, MPFR_RNDN);
        mpfr_sub(r39963, r39960, r39962, MPFR_RNDN);
        ;
        mpfr_set_si(r39965, mpfr_cmp(r39953, r39964) <= 0, MPFR_RNDN);
        mpfr_mul(r39966, r39961, r39958, MPFR_RNDN);
        ;
        mpfr_mul(r39968, r39966, r39967, MPFR_RNDN);
        mpfr_mul(r39969, r39953, r39953, MPFR_RNDN);
        mpfr_mul(r39970, r39958, r39961, MPFR_RNDN);
        mpfr_mul(r39971, r39967, r39970, MPFR_RNDN);
        mpfr_sub(r39972, r39969, r39971, MPFR_RNDN);
        mpfr_sqrt(r39973, r39972, MPFR_RNDN);
        mpfr_add(r39974, r39956, r39973, MPFR_RNDN);
        mpfr_div(r39975, r39968, r39974, MPFR_RNDN);
        ;
        mpfr_mul(r39977, r39976, r39958, MPFR_RNDN);
        mpfr_div(r39978, r39975, r39977, MPFR_RNDN);
        ;
        mpfr_set_si(r39980, mpfr_cmp(r39953, r39979) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r39982, mpfr_cmp(r39953, r39981) <= 0, MPFR_RNDN);
        mpfr_mul(r39983, r39967, r39958, MPFR_RNDN);
        mpfr_mul(r39984, r39983, r39961, MPFR_RNDN);
        mpfr_sub(r39985, r39969, r39984, MPFR_RNDN);
        mpfr_sqrt(r39986, r39985, MPFR_RNDN);
        mpfr_sub(r39987, r39956, r39986, MPFR_RNDN);
        mpfr_div(r39988, r39987, r39977, MPFR_RNDN);
        mpfr_div(r39989, r39956, r39958, MPFR_RNDN);
        if (mpfr_get_si(r39982, MPFR_RNDN)) { mpfr_set(r39990, r39988, MPFR_RNDN); } else { mpfr_set(r39990, r39989, MPFR_RNDN); };
        if (mpfr_get_si(r39980, MPFR_RNDN)) { mpfr_set(r39991, r39963, MPFR_RNDN); } else { mpfr_set(r39991, r39990, MPFR_RNDN); };
        if (mpfr_get_si(r39965, MPFR_RNDN)) { mpfr_set(r39992, r39978, MPFR_RNDN); } else { mpfr_set(r39992, r39991, MPFR_RNDN); };
        if (mpfr_get_si(r39955, MPFR_RNDN)) { mpfr_set(r39993, r39963, MPFR_RNDN); } else { mpfr_set(r39993, r39992, MPFR_RNDN); };
        return mpfr_get_d(r39993, MPFR_RNDN);
}

static mpfr_t r39994, r39995, r39996, r39997, r39998, r39999, r40000, r40001, r40002, r40003, r40004, r40005, r40006, r40007, r40008, r40009, r40010, r40011, r40012, r40013, r40014, r40015, r40016, r40017, r40018, r40019, r40020, r40021, r40022, r40023, r40024, r40025, r40026, r40027, r40028, r40029, r40030, r40031, r40032, r40033, r40034;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2704);
        mpfr_init(r39994);
        mpfr_init_set_str(r39995, "-5.018034098196628e+28", 10, MPFR_RNDN);
        mpfr_init(r39996);
        mpfr_init(r39997);
        mpfr_init(r39998);
        mpfr_init(r39999);
        mpfr_init(r40000);
        mpfr_init(r40001);
        mpfr_init(r40002);
        mpfr_init(r40003);
        mpfr_init(r40004);
        mpfr_init_set_str(r40005, "-1.992853954034314e-66", 10, MPFR_RNDN);
        mpfr_init(r40006);
        mpfr_init(r40007);
        mpfr_init_set_str(r40008, "4", 10, MPFR_RNDN);
        mpfr_init(r40009);
        mpfr_init(r40010);
        mpfr_init(r40011);
        mpfr_init(r40012);
        mpfr_init(r40013);
        mpfr_init(r40014);
        mpfr_init(r40015);
        mpfr_init(r40016);
        mpfr_init_set_str(r40017, "2", 10, MPFR_RNDN);
        mpfr_init(r40018);
        mpfr_init(r40019);
        mpfr_init_set_str(r40020, "-5.3589749776329416e-108", 10, MPFR_RNDN);
        mpfr_init(r40021);
        mpfr_init_set_str(r40022, "1.7007616628281973e+81", 10, MPFR_RNDN);
        mpfr_init(r40023);
        mpfr_init(r40024);
        mpfr_init(r40025);
        mpfr_init(r40026);
        mpfr_init(r40027);
        mpfr_init(r40028);
        mpfr_init(r40029);
        mpfr_init(r40030);
        mpfr_init(r40031);
        mpfr_init(r40032);
        mpfr_init(r40033);
        mpfr_init(r40034);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39994, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39996, mpfr_cmp(r39994, r39995) <= 0, MPFR_RNDN);
        mpfr_neg(r39997, r39994, MPFR_RNDN);
        mpfr_add(r39998, r39997, r39994, MPFR_RNDN);
        mpfr_set_d(r39999, a, MPFR_RNDN);
        mpfr_add(r40000, r39999, r39999, MPFR_RNDN);
        mpfr_div(r40001, r39998, r40000, MPFR_RNDN);
        mpfr_set_d(r40002, c, MPFR_RNDN);
        mpfr_div(r40003, r40002, r39994, MPFR_RNDN);
        mpfr_sub(r40004, r40001, r40003, MPFR_RNDN);
        ;
        mpfr_set_si(r40006, mpfr_cmp(r39994, r40005) <= 0, MPFR_RNDN);
        mpfr_mul(r40007, r40002, r39999, MPFR_RNDN);
        ;
        mpfr_mul(r40009, r40007, r40008, MPFR_RNDN);
        mpfr_mul(r40010, r39994, r39994, MPFR_RNDN);
        mpfr_mul(r40011, r39999, r40002, MPFR_RNDN);
        mpfr_mul(r40012, r40008, r40011, MPFR_RNDN);
        mpfr_sub(r40013, r40010, r40012, MPFR_RNDN);
        mpfr_sqrt(r40014, r40013, MPFR_RNDN);
        mpfr_add(r40015, r39997, r40014, MPFR_RNDN);
        mpfr_div(r40016, r40009, r40015, MPFR_RNDN);
        ;
        mpfr_mul(r40018, r40017, r39999, MPFR_RNDN);
        mpfr_div(r40019, r40016, r40018, MPFR_RNDN);
        ;
        mpfr_set_si(r40021, mpfr_cmp(r39994, r40020) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r40023, mpfr_cmp(r39994, r40022) <= 0, MPFR_RNDN);
        mpfr_mul(r40024, r40008, r39999, MPFR_RNDN);
        mpfr_mul(r40025, r40024, r40002, MPFR_RNDN);
        mpfr_sub(r40026, r40010, r40025, MPFR_RNDN);
        mpfr_sqrt(r40027, r40026, MPFR_RNDN);
        mpfr_sub(r40028, r39997, r40027, MPFR_RNDN);
        mpfr_div(r40029, r40028, r40018, MPFR_RNDN);
        mpfr_div(r40030, r39997, r39999, MPFR_RNDN);
        if (mpfr_get_si(r40023, MPFR_RNDN)) { mpfr_set(r40031, r40029, MPFR_RNDN); } else { mpfr_set(r40031, r40030, MPFR_RNDN); };
        if (mpfr_get_si(r40021, MPFR_RNDN)) { mpfr_set(r40032, r40004, MPFR_RNDN); } else { mpfr_set(r40032, r40031, MPFR_RNDN); };
        if (mpfr_get_si(r40006, MPFR_RNDN)) { mpfr_set(r40033, r40019, MPFR_RNDN); } else { mpfr_set(r40033, r40032, MPFR_RNDN); };
        if (mpfr_get_si(r39996, MPFR_RNDN)) { mpfr_set(r40034, r40004, MPFR_RNDN); } else { mpfr_set(r40034, r40033, MPFR_RNDN); };
        return mpfr_get_d(r40034, MPFR_RNDN);
}

