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

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

double f_if(float a, float b, float c) {
        float r16280912 = b;
        float r16280913 = -r16280912;
        float r16280914 = r16280912 * r16280912;
        float r16280915 = 4;
        float r16280916 = a;
        float r16280917 = r16280915 * r16280916;
        float r16280918 = c;
        float r16280919 = r16280917 * r16280918;
        float r16280920 = r16280914 - r16280919;
        float r16280921 = sqrt(r16280920);
        float r16280922 = r16280913 + r16280921;
        float r16280923 = 2;
        float r16280924 = r16280923 * r16280916;
        float r16280925 = r16280922 / r16280924;
        return r16280925;
}

double f_id(double a, double b, double c) {
        double r16280926 = b;
        double r16280927 = -r16280926;
        double r16280928 = r16280926 * r16280926;
        double r16280929 = 4;
        double r16280930 = a;
        double r16280931 = r16280929 * r16280930;
        double r16280932 = c;
        double r16280933 = r16280931 * r16280932;
        double r16280934 = r16280928 - r16280933;
        double r16280935 = sqrt(r16280934);
        double r16280936 = r16280927 + r16280935;
        double r16280937 = 2;
        double r16280938 = r16280937 * r16280930;
        double r16280939 = r16280936 / r16280938;
        return r16280939;
}


double f_of(float a, float b, float c) {
        float r16280940 = b;
        float r16280941 = -r16280940;
        float r16280942 = -9.067749840561462e-73;
        bool r16280943 = r16280941 <= r16280942;
        float r16280944 = c;
        float r16280945 = r16280944 / r16280940;
        float r16280946 = -2;
        float r16280947 = 2;
        float r16280948 = r16280946 / r16280947;
        float r16280949 = r16280945 * r16280948;
        float r16280950 = 1.4354824809375124e+83;
        bool r16280951 = r16280941 <= r16280950;
        float r16280952 = r16280940 * r16280940;
        float r16280953 = 4;
        float r16280954 = a;
        float r16280955 = r16280953 * r16280954;
        float r16280956 = r16280955 * r16280944;
        float r16280957 = r16280952 - r16280956;
        float r16280958 = sqrt(r16280957);
        float r16280959 = r16280941 + r16280958;
        float r16280960 = r16280947 * r16280954;
        float r16280961 = r16280959 / r16280960;
        float r16280962 = 1;
        float r16280963 = r16280945 / r16280962;
        float r16280964 = r16280940 / r16280954;
        float r16280965 = r16280963 - r16280964;
        float r16280966 = r16280951 ? r16280961 : r16280965;
        float r16280967 = r16280943 ? r16280949 : r16280966;
        return r16280967;
}

double f_od(double a, double b, double c) {
        double r16280968 = b;
        double r16280969 = -r16280968;
        double r16280970 = -9.067749840561462e-73;
        bool r16280971 = r16280969 <= r16280970;
        double r16280972 = c;
        double r16280973 = r16280972 / r16280968;
        double r16280974 = -2;
        double r16280975 = 2;
        double r16280976 = r16280974 / r16280975;
        double r16280977 = r16280973 * r16280976;
        double r16280978 = 1.4354824809375124e+83;
        bool r16280979 = r16280969 <= r16280978;
        double r16280980 = r16280968 * r16280968;
        double r16280981 = 4;
        double r16280982 = a;
        double r16280983 = r16280981 * r16280982;
        double r16280984 = r16280983 * r16280972;
        double r16280985 = r16280980 - r16280984;
        double r16280986 = sqrt(r16280985);
        double r16280987 = r16280969 + r16280986;
        double r16280988 = r16280975 * r16280982;
        double r16280989 = r16280987 / r16280988;
        double r16280990 = 1;
        double r16280991 = r16280973 / r16280990;
        double r16280992 = r16280968 / r16280982;
        double r16280993 = r16280991 - r16280992;
        double r16280994 = r16280979 ? r16280989 : r16280993;
        double r16280995 = r16280971 ? r16280977 : r16280994;
        return r16280995;
}

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 r16280996, r16280997, r16280998, r16280999, r16281000, r16281001, r16281002, r16281003, r16281004, r16281005, r16281006, r16281007, r16281008, r16281009;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r16280996);
        mpfr_init(r16280997);
        mpfr_init(r16280998);
        mpfr_init_set_str(r16280999, "4", 10, MPFR_RNDN);
        mpfr_init(r16281000);
        mpfr_init(r16281001);
        mpfr_init(r16281002);
        mpfr_init(r16281003);
        mpfr_init(r16281004);
        mpfr_init(r16281005);
        mpfr_init(r16281006);
        mpfr_init_set_str(r16281007, "2", 10, MPFR_RNDN);
        mpfr_init(r16281008);
        mpfr_init(r16281009);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r16280996, b, MPFR_RNDN);
        mpfr_neg(r16280997, r16280996, MPFR_RNDN);
        mpfr_mul(r16280998, r16280996, r16280996, MPFR_RNDN);
        ;
        mpfr_set_d(r16281000, a, MPFR_RNDN);
        mpfr_mul(r16281001, r16280999, r16281000, MPFR_RNDN);
        mpfr_set_d(r16281002, c, MPFR_RNDN);
        mpfr_mul(r16281003, r16281001, r16281002, MPFR_RNDN);
        mpfr_sub(r16281004, r16280998, r16281003, MPFR_RNDN);
        mpfr_sqrt(r16281005, r16281004, MPFR_RNDN);
        mpfr_add(r16281006, r16280997, r16281005, MPFR_RNDN);
        ;
        mpfr_mul(r16281008, r16281007, r16281000, MPFR_RNDN);
        mpfr_div(r16281009, r16281006, r16281008, MPFR_RNDN);
        return mpfr_get_d(r16281009, MPFR_RNDN);
}

static mpfr_t r16281010, r16281011, r16281012, r16281013, r16281014, r16281015, r16281016, r16281017, r16281018, r16281019, r16281020, r16281021, r16281022, r16281023, r16281024, r16281025, r16281026, r16281027, r16281028, r16281029, r16281030, r16281031, r16281032, r16281033, r16281034, r16281035, r16281036, r16281037;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r16281010);
        mpfr_init(r16281011);
        mpfr_init_set_str(r16281012, "-9.067749840561462e-73", 10, MPFR_RNDN);
        mpfr_init(r16281013);
        mpfr_init(r16281014);
        mpfr_init(r16281015);
        mpfr_init_set_str(r16281016, "-2", 10, MPFR_RNDN);
        mpfr_init_set_str(r16281017, "2", 10, MPFR_RNDN);
        mpfr_init(r16281018);
        mpfr_init(r16281019);
        mpfr_init_set_str(r16281020, "1.4354824809375124e+83", 10, MPFR_RNDN);
        mpfr_init(r16281021);
        mpfr_init(r16281022);
        mpfr_init_set_str(r16281023, "4", 10, MPFR_RNDN);
        mpfr_init(r16281024);
        mpfr_init(r16281025);
        mpfr_init(r16281026);
        mpfr_init(r16281027);
        mpfr_init(r16281028);
        mpfr_init(r16281029);
        mpfr_init(r16281030);
        mpfr_init(r16281031);
        mpfr_init_set_str(r16281032, "1", 10, MPFR_RNDN);
        mpfr_init(r16281033);
        mpfr_init(r16281034);
        mpfr_init(r16281035);
        mpfr_init(r16281036);
        mpfr_init(r16281037);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r16281010, b, MPFR_RNDN);
        mpfr_neg(r16281011, r16281010, MPFR_RNDN);
        ;
        mpfr_set_si(r16281013, mpfr_cmp(r16281011, r16281012) <= 0, MPFR_RNDN);
        mpfr_set_d(r16281014, c, MPFR_RNDN);
        mpfr_div(r16281015, r16281014, r16281010, MPFR_RNDN);
        ;
        ;
        mpfr_div(r16281018, r16281016, r16281017, MPFR_RNDN);
        mpfr_mul(r16281019, r16281015, r16281018, MPFR_RNDN);
        ;
        mpfr_set_si(r16281021, mpfr_cmp(r16281011, r16281020) <= 0, MPFR_RNDN);
        mpfr_mul(r16281022, r16281010, r16281010, MPFR_RNDN);
        ;
        mpfr_set_d(r16281024, a, MPFR_RNDN);
        mpfr_mul(r16281025, r16281023, r16281024, MPFR_RNDN);
        mpfr_mul(r16281026, r16281025, r16281014, MPFR_RNDN);
        mpfr_sub(r16281027, r16281022, r16281026, MPFR_RNDN);
        mpfr_sqrt(r16281028, r16281027, MPFR_RNDN);
        mpfr_add(r16281029, r16281011, r16281028, MPFR_RNDN);
        mpfr_mul(r16281030, r16281017, r16281024, MPFR_RNDN);
        mpfr_div(r16281031, r16281029, r16281030, MPFR_RNDN);
        ;
        mpfr_div(r16281033, r16281015, r16281032, MPFR_RNDN);
        mpfr_div(r16281034, r16281010, r16281024, MPFR_RNDN);
        mpfr_sub(r16281035, r16281033, r16281034, MPFR_RNDN);
        if (mpfr_get_si(r16281021, MPFR_RNDN)) { mpfr_set(r16281036, r16281031, MPFR_RNDN); } else { mpfr_set(r16281036, r16281035, MPFR_RNDN); };
        if (mpfr_get_si(r16281013, MPFR_RNDN)) { mpfr_set(r16281037, r16281019, MPFR_RNDN); } else { mpfr_set(r16281037, r16281036, MPFR_RNDN); };
        return mpfr_get_d(r16281037, MPFR_RNDN);
}

static mpfr_t r16281038, r16281039, r16281040, r16281041, r16281042, r16281043, r16281044, r16281045, r16281046, r16281047, r16281048, r16281049, r16281050, r16281051, r16281052, r16281053, r16281054, r16281055, r16281056, r16281057, r16281058, r16281059, r16281060, r16281061, r16281062, r16281063, r16281064, r16281065;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r16281038);
        mpfr_init(r16281039);
        mpfr_init_set_str(r16281040, "-9.067749840561462e-73", 10, MPFR_RNDN);
        mpfr_init(r16281041);
        mpfr_init(r16281042);
        mpfr_init(r16281043);
        mpfr_init_set_str(r16281044, "-2", 10, MPFR_RNDN);
        mpfr_init_set_str(r16281045, "2", 10, MPFR_RNDN);
        mpfr_init(r16281046);
        mpfr_init(r16281047);
        mpfr_init_set_str(r16281048, "1.4354824809375124e+83", 10, MPFR_RNDN);
        mpfr_init(r16281049);
        mpfr_init(r16281050);
        mpfr_init_set_str(r16281051, "4", 10, MPFR_RNDN);
        mpfr_init(r16281052);
        mpfr_init(r16281053);
        mpfr_init(r16281054);
        mpfr_init(r16281055);
        mpfr_init(r16281056);
        mpfr_init(r16281057);
        mpfr_init(r16281058);
        mpfr_init(r16281059);
        mpfr_init_set_str(r16281060, "1", 10, MPFR_RNDN);
        mpfr_init(r16281061);
        mpfr_init(r16281062);
        mpfr_init(r16281063);
        mpfr_init(r16281064);
        mpfr_init(r16281065);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r16281038, b, MPFR_RNDN);
        mpfr_neg(r16281039, r16281038, MPFR_RNDN);
        ;
        mpfr_set_si(r16281041, mpfr_cmp(r16281039, r16281040) <= 0, MPFR_RNDN);
        mpfr_set_d(r16281042, c, MPFR_RNDN);
        mpfr_div(r16281043, r16281042, r16281038, MPFR_RNDN);
        ;
        ;
        mpfr_div(r16281046, r16281044, r16281045, MPFR_RNDN);
        mpfr_mul(r16281047, r16281043, r16281046, MPFR_RNDN);
        ;
        mpfr_set_si(r16281049, mpfr_cmp(r16281039, r16281048) <= 0, MPFR_RNDN);
        mpfr_mul(r16281050, r16281038, r16281038, MPFR_RNDN);
        ;
        mpfr_set_d(r16281052, a, MPFR_RNDN);
        mpfr_mul(r16281053, r16281051, r16281052, MPFR_RNDN);
        mpfr_mul(r16281054, r16281053, r16281042, MPFR_RNDN);
        mpfr_sub(r16281055, r16281050, r16281054, MPFR_RNDN);
        mpfr_sqrt(r16281056, r16281055, MPFR_RNDN);
        mpfr_add(r16281057, r16281039, r16281056, MPFR_RNDN);
        mpfr_mul(r16281058, r16281045, r16281052, MPFR_RNDN);
        mpfr_div(r16281059, r16281057, r16281058, MPFR_RNDN);
        ;
        mpfr_div(r16281061, r16281043, r16281060, MPFR_RNDN);
        mpfr_div(r16281062, r16281038, r16281052, MPFR_RNDN);
        mpfr_sub(r16281063, r16281061, r16281062, MPFR_RNDN);
        if (mpfr_get_si(r16281049, MPFR_RNDN)) { mpfr_set(r16281064, r16281059, MPFR_RNDN); } else { mpfr_set(r16281064, r16281063, MPFR_RNDN); };
        if (mpfr_get_si(r16281041, MPFR_RNDN)) { mpfr_set(r16281065, r16281047, MPFR_RNDN); } else { mpfr_set(r16281065, r16281064, MPFR_RNDN); };
        return mpfr_get_d(r16281065, MPFR_RNDN);
}

