#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 r39852 = b;
        float r39853 = -r39852;
        float r39854 = r39852 * r39852;
        float r39855 = 4;
        float r39856 = a;
        float r39857 = r39855 * r39856;
        float r39858 = c;
        float r39859 = r39857 * r39858;
        float r39860 = r39854 - r39859;
        float r39861 = sqrt(r39860);
        float r39862 = r39853 + r39861;
        float r39863 = 2;
        float r39864 = r39863 * r39856;
        float r39865 = r39862 / r39864;
        return r39865;
}

double f_id(double a, double b, double c) {
        double r39866 = b;
        double r39867 = -r39866;
        double r39868 = r39866 * r39866;
        double r39869 = 4;
        double r39870 = a;
        double r39871 = r39869 * r39870;
        double r39872 = c;
        double r39873 = r39871 * r39872;
        double r39874 = r39868 - r39873;
        double r39875 = sqrt(r39874);
        double r39876 = r39867 + r39875;
        double r39877 = 2;
        double r39878 = r39877 * r39870;
        double r39879 = r39876 / r39878;
        return r39879;
}


double f_of(float a, float b, float c) {
        float r39880 = b;
        float r39881 = -2.788370916558726e+153;
        bool r39882 = r39880 <= r39881;
        float r39883 = -r39880;
        float r39884 = a;
        float r39885 = r39883 / r39884;
        float r39886 = 7.580412743766101e-138;
        bool r39887 = r39880 <= r39886;
        float r39888 = r39880 * r39880;
        float r39889 = 4;
        float r39890 = r39889 * r39884;
        float r39891 = c;
        float r39892 = r39890 * r39891;
        float r39893 = r39888 - r39892;
        float r39894 = sqrt(r39893);
        float r39895 = r39883 + r39894;
        float r39896 = 2;
        float r39897 = r39896 * r39884;
        float r39898 = r39895 / r39897;
        float r39899 = r39891 / r39880;
        float r39900 = -2;
        float r39901 = r39900 / r39896;
        float r39902 = r39899 * r39901;
        float r39903 = r39887 ? r39898 : r39902;
        float r39904 = r39882 ? r39885 : r39903;
        return r39904;
}

double f_od(double a, double b, double c) {
        double r39905 = b;
        double r39906 = -2.788370916558726e+153;
        bool r39907 = r39905 <= r39906;
        double r39908 = -r39905;
        double r39909 = a;
        double r39910 = r39908 / r39909;
        double r39911 = 7.580412743766101e-138;
        bool r39912 = r39905 <= r39911;
        double r39913 = r39905 * r39905;
        double r39914 = 4;
        double r39915 = r39914 * r39909;
        double r39916 = c;
        double r39917 = r39915 * r39916;
        double r39918 = r39913 - r39917;
        double r39919 = sqrt(r39918);
        double r39920 = r39908 + r39919;
        double r39921 = 2;
        double r39922 = r39921 * r39909;
        double r39923 = r39920 / r39922;
        double r39924 = r39916 / r39905;
        double r39925 = -2;
        double r39926 = r39925 / r39921;
        double r39927 = r39924 * r39926;
        double r39928 = r39912 ? r39923 : r39927;
        double r39929 = r39907 ? r39910 : r39928;
        return r39929;
}

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 r39930, r39931, r39932, r39933, r39934, r39935, r39936, r39937, r39938, r39939, r39940, r39941, r39942, r39943;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39930);
        mpfr_init(r39931);
        mpfr_init(r39932);
        mpfr_init_set_str(r39933, "4", 10, MPFR_RNDN);
        mpfr_init(r39934);
        mpfr_init(r39935);
        mpfr_init(r39936);
        mpfr_init(r39937);
        mpfr_init(r39938);
        mpfr_init(r39939);
        mpfr_init(r39940);
        mpfr_init_set_str(r39941, "2", 10, MPFR_RNDN);
        mpfr_init(r39942);
        mpfr_init(r39943);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39930, b, MPFR_RNDN);
        mpfr_neg(r39931, r39930, MPFR_RNDN);
        mpfr_mul(r39932, r39930, r39930, MPFR_RNDN);
        ;
        mpfr_set_d(r39934, a, MPFR_RNDN);
        mpfr_mul(r39935, r39933, r39934, MPFR_RNDN);
        mpfr_set_d(r39936, c, MPFR_RNDN);
        mpfr_mul(r39937, r39935, r39936, MPFR_RNDN);
        mpfr_sub(r39938, r39932, r39937, MPFR_RNDN);
        mpfr_sqrt(r39939, r39938, MPFR_RNDN);
        mpfr_add(r39940, r39931, r39939, MPFR_RNDN);
        ;
        mpfr_mul(r39942, r39941, r39934, MPFR_RNDN);
        mpfr_div(r39943, r39940, r39942, MPFR_RNDN);
        return mpfr_get_d(r39943, MPFR_RNDN);
}

static mpfr_t r39944, r39945, r39946, r39947, r39948, r39949, r39950, r39951, r39952, r39953, r39954, r39955, r39956, r39957, r39958, r39959, r39960, r39961, r39962, r39963, r39964, r39965, r39966, r39967, r39968;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39944);
        mpfr_init_set_str(r39945, "-2.788370916558726e+153", 10, MPFR_RNDN);
        mpfr_init(r39946);
        mpfr_init(r39947);
        mpfr_init(r39948);
        mpfr_init(r39949);
        mpfr_init_set_str(r39950, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r39951);
        mpfr_init(r39952);
        mpfr_init_set_str(r39953, "4", 10, MPFR_RNDN);
        mpfr_init(r39954);
        mpfr_init(r39955);
        mpfr_init(r39956);
        mpfr_init(r39957);
        mpfr_init(r39958);
        mpfr_init(r39959);
        mpfr_init_set_str(r39960, "2", 10, MPFR_RNDN);
        mpfr_init(r39961);
        mpfr_init(r39962);
        mpfr_init(r39963);
        mpfr_init_set_str(r39964, "-2", 10, MPFR_RNDN);
        mpfr_init(r39965);
        mpfr_init(r39966);
        mpfr_init(r39967);
        mpfr_init(r39968);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r39944, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39946, mpfr_cmp(r39944, r39945) <= 0, MPFR_RNDN);
        mpfr_neg(r39947, r39944, MPFR_RNDN);
        mpfr_set_d(r39948, a, MPFR_RNDN);
        mpfr_div(r39949, r39947, r39948, MPFR_RNDN);
        ;
        mpfr_set_si(r39951, mpfr_cmp(r39944, r39950) <= 0, MPFR_RNDN);
        mpfr_mul(r39952, r39944, r39944, MPFR_RNDN);
        ;
        mpfr_mul(r39954, r39953, r39948, MPFR_RNDN);
        mpfr_set_d(r39955, c, MPFR_RNDN);
        mpfr_mul(r39956, r39954, r39955, MPFR_RNDN);
        mpfr_sub(r39957, r39952, r39956, MPFR_RNDN);
        mpfr_sqrt(r39958, r39957, MPFR_RNDN);
        mpfr_add(r39959, r39947, r39958, MPFR_RNDN);
        ;
        mpfr_mul(r39961, r39960, r39948, MPFR_RNDN);
        mpfr_div(r39962, r39959, r39961, MPFR_RNDN);
        mpfr_div(r39963, r39955, r39944, MPFR_RNDN);
        ;
        mpfr_div(r39965, r39964, r39960, MPFR_RNDN);
        mpfr_mul(r39966, r39963, r39965, MPFR_RNDN);
        if (mpfr_get_si(r39951, MPFR_RNDN)) { mpfr_set(r39967, r39962, MPFR_RNDN); } else { mpfr_set(r39967, r39966, MPFR_RNDN); };
        if (mpfr_get_si(r39946, MPFR_RNDN)) { mpfr_set(r39968, r39949, MPFR_RNDN); } else { mpfr_set(r39968, r39967, MPFR_RNDN); };
        return mpfr_get_d(r39968, MPFR_RNDN);
}

static mpfr_t 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_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39969);
        mpfr_init_set_str(r39970, "-2.788370916558726e+153", 10, MPFR_RNDN);
        mpfr_init(r39971);
        mpfr_init(r39972);
        mpfr_init(r39973);
        mpfr_init(r39974);
        mpfr_init_set_str(r39975, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r39976);
        mpfr_init(r39977);
        mpfr_init_set_str(r39978, "4", 10, MPFR_RNDN);
        mpfr_init(r39979);
        mpfr_init(r39980);
        mpfr_init(r39981);
        mpfr_init(r39982);
        mpfr_init(r39983);
        mpfr_init(r39984);
        mpfr_init_set_str(r39985, "2", 10, MPFR_RNDN);
        mpfr_init(r39986);
        mpfr_init(r39987);
        mpfr_init(r39988);
        mpfr_init_set_str(r39989, "-2", 10, MPFR_RNDN);
        mpfr_init(r39990);
        mpfr_init(r39991);
        mpfr_init(r39992);
        mpfr_init(r39993);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39969, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39971, mpfr_cmp(r39969, r39970) <= 0, MPFR_RNDN);
        mpfr_neg(r39972, r39969, MPFR_RNDN);
        mpfr_set_d(r39973, a, MPFR_RNDN);
        mpfr_div(r39974, r39972, r39973, MPFR_RNDN);
        ;
        mpfr_set_si(r39976, mpfr_cmp(r39969, r39975) <= 0, MPFR_RNDN);
        mpfr_mul(r39977, r39969, r39969, MPFR_RNDN);
        ;
        mpfr_mul(r39979, r39978, r39973, MPFR_RNDN);
        mpfr_set_d(r39980, c, MPFR_RNDN);
        mpfr_mul(r39981, r39979, r39980, MPFR_RNDN);
        mpfr_sub(r39982, r39977, r39981, MPFR_RNDN);
        mpfr_sqrt(r39983, r39982, MPFR_RNDN);
        mpfr_add(r39984, r39972, r39983, MPFR_RNDN);
        ;
        mpfr_mul(r39986, r39985, r39973, MPFR_RNDN);
        mpfr_div(r39987, r39984, r39986, MPFR_RNDN);
        mpfr_div(r39988, r39980, r39969, MPFR_RNDN);
        ;
        mpfr_div(r39990, r39989, r39985, MPFR_RNDN);
        mpfr_mul(r39991, r39988, r39990, MPFR_RNDN);
        if (mpfr_get_si(r39976, MPFR_RNDN)) { mpfr_set(r39992, r39987, MPFR_RNDN); } else { mpfr_set(r39992, r39991, MPFR_RNDN); };
        if (mpfr_get_si(r39971, MPFR_RNDN)) { mpfr_set(r39993, r39974, MPFR_RNDN); } else { mpfr_set(r39993, r39992, MPFR_RNDN); };
        return mpfr_get_d(r39993, MPFR_RNDN);
}

