#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 r39681 = b;
        float r39682 = -r39681;
        float r39683 = r39681 * r39681;
        float r39684 = 4;
        float r39685 = a;
        float r39686 = r39684 * r39685;
        float r39687 = c;
        float r39688 = r39686 * r39687;
        float r39689 = r39683 - r39688;
        float r39690 = sqrt(r39689);
        float r39691 = r39682 + r39690;
        float r39692 = 2;
        float r39693 = r39692 * r39685;
        float r39694 = r39691 / r39693;
        return r39694;
}

double f_id(double a, double b, double c) {
        double r39695 = b;
        double r39696 = -r39695;
        double r39697 = r39695 * r39695;
        double r39698 = 4;
        double r39699 = a;
        double r39700 = r39698 * r39699;
        double r39701 = c;
        double r39702 = r39700 * r39701;
        double r39703 = r39697 - r39702;
        double r39704 = sqrt(r39703);
        double r39705 = r39696 + r39704;
        double r39706 = 2;
        double r39707 = r39706 * r39699;
        double r39708 = r39705 / r39707;
        return r39708;
}


double f_of(float a, float b, float c) {
        float r39709 = b;
        float r39710 = -7.833327672762858e+152;
        bool r39711 = r39709 <= r39710;
        float r39712 = -r39709;
        float r39713 = a;
        float r39714 = r39712 / r39713;
        float r39715 = 7.698366662298276e-138;
        bool r39716 = r39709 <= r39715;
        float r39717 = r39709 * r39709;
        float r39718 = 4;
        float r39719 = r39718 * r39713;
        float r39720 = c;
        float r39721 = r39719 * r39720;
        float r39722 = r39717 - r39721;
        float r39723 = sqrt(r39722);
        float r39724 = r39712 + r39723;
        float r39725 = 2;
        float r39726 = r39725 * r39713;
        float r39727 = r39724 / r39726;
        float r39728 = r39720 / r39709;
        float r39729 = -2;
        float r39730 = r39729 / r39725;
        float r39731 = r39728 * r39730;
        float r39732 = r39716 ? r39727 : r39731;
        float r39733 = r39711 ? r39714 : r39732;
        return r39733;
}

double f_od(double a, double b, double c) {
        double r39734 = b;
        double r39735 = -7.833327672762858e+152;
        bool r39736 = r39734 <= r39735;
        double r39737 = -r39734;
        double r39738 = a;
        double r39739 = r39737 / r39738;
        double r39740 = 7.698366662298276e-138;
        bool r39741 = r39734 <= r39740;
        double r39742 = r39734 * r39734;
        double r39743 = 4;
        double r39744 = r39743 * r39738;
        double r39745 = c;
        double r39746 = r39744 * r39745;
        double r39747 = r39742 - r39746;
        double r39748 = sqrt(r39747);
        double r39749 = r39737 + r39748;
        double r39750 = 2;
        double r39751 = r39750 * r39738;
        double r39752 = r39749 / r39751;
        double r39753 = r39745 / r39734;
        double r39754 = -2;
        double r39755 = r39754 / r39750;
        double r39756 = r39753 * r39755;
        double r39757 = r39741 ? r39752 : r39756;
        double r39758 = r39736 ? r39739 : r39757;
        return r39758;
}

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 r39759, r39760, r39761, r39762, r39763, r39764, r39765, r39766, r39767, r39768, r39769, r39770, r39771, r39772;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2960);
        mpfr_init(r39759);
        mpfr_init(r39760);
        mpfr_init(r39761);
        mpfr_init_set_str(r39762, "4", 10, MPFR_RNDN);
        mpfr_init(r39763);
        mpfr_init(r39764);
        mpfr_init(r39765);
        mpfr_init(r39766);
        mpfr_init(r39767);
        mpfr_init(r39768);
        mpfr_init(r39769);
        mpfr_init_set_str(r39770, "2", 10, MPFR_RNDN);
        mpfr_init(r39771);
        mpfr_init(r39772);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39759, b, MPFR_RNDN);
        mpfr_neg(r39760, r39759, MPFR_RNDN);
        mpfr_mul(r39761, r39759, r39759, MPFR_RNDN);
        ;
        mpfr_set_d(r39763, a, MPFR_RNDN);
        mpfr_mul(r39764, r39762, r39763, MPFR_RNDN);
        mpfr_set_d(r39765, c, MPFR_RNDN);
        mpfr_mul(r39766, r39764, r39765, MPFR_RNDN);
        mpfr_sub(r39767, r39761, r39766, MPFR_RNDN);
        mpfr_sqrt(r39768, r39767, MPFR_RNDN);
        mpfr_add(r39769, r39760, r39768, MPFR_RNDN);
        ;
        mpfr_mul(r39771, r39770, r39763, MPFR_RNDN);
        mpfr_div(r39772, r39769, r39771, MPFR_RNDN);
        return mpfr_get_d(r39772, MPFR_RNDN);
}

static mpfr_t r39773, r39774, r39775, r39776, r39777, r39778, r39779, r39780, r39781, r39782, r39783, r39784, r39785, r39786, r39787, r39788, r39789, r39790, r39791, r39792, r39793, r39794, r39795, r39796, r39797;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r39773);
        mpfr_init_set_str(r39774, "-7.833327672762858e+152", 10, MPFR_RNDN);
        mpfr_init(r39775);
        mpfr_init(r39776);
        mpfr_init(r39777);
        mpfr_init(r39778);
        mpfr_init_set_str(r39779, "7.698366662298276e-138", 10, MPFR_RNDN);
        mpfr_init(r39780);
        mpfr_init(r39781);
        mpfr_init_set_str(r39782, "4", 10, MPFR_RNDN);
        mpfr_init(r39783);
        mpfr_init(r39784);
        mpfr_init(r39785);
        mpfr_init(r39786);
        mpfr_init(r39787);
        mpfr_init(r39788);
        mpfr_init_set_str(r39789, "2", 10, MPFR_RNDN);
        mpfr_init(r39790);
        mpfr_init(r39791);
        mpfr_init(r39792);
        mpfr_init_set_str(r39793, "-2", 10, MPFR_RNDN);
        mpfr_init(r39794);
        mpfr_init(r39795);
        mpfr_init(r39796);
        mpfr_init(r39797);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r39773, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39775, mpfr_cmp(r39773, r39774) <= 0, MPFR_RNDN);
        mpfr_neg(r39776, r39773, MPFR_RNDN);
        mpfr_set_d(r39777, a, MPFR_RNDN);
        mpfr_div(r39778, r39776, r39777, MPFR_RNDN);
        ;
        mpfr_set_si(r39780, mpfr_cmp(r39773, r39779) <= 0, MPFR_RNDN);
        mpfr_mul(r39781, r39773, r39773, MPFR_RNDN);
        ;
        mpfr_mul(r39783, r39782, r39777, MPFR_RNDN);
        mpfr_set_d(r39784, c, MPFR_RNDN);
        mpfr_mul(r39785, r39783, r39784, MPFR_RNDN);
        mpfr_sub(r39786, r39781, r39785, MPFR_RNDN);
        mpfr_sqrt(r39787, r39786, MPFR_RNDN);
        mpfr_add(r39788, r39776, r39787, MPFR_RNDN);
        ;
        mpfr_mul(r39790, r39789, r39777, MPFR_RNDN);
        mpfr_div(r39791, r39788, r39790, MPFR_RNDN);
        mpfr_div(r39792, r39784, r39773, MPFR_RNDN);
        ;
        mpfr_div(r39794, r39793, r39789, MPFR_RNDN);
        mpfr_mul(r39795, r39792, r39794, MPFR_RNDN);
        if (mpfr_get_si(r39780, MPFR_RNDN)) { mpfr_set(r39796, r39791, MPFR_RNDN); } else { mpfr_set(r39796, r39795, MPFR_RNDN); };
        if (mpfr_get_si(r39775, MPFR_RNDN)) { mpfr_set(r39797, r39778, MPFR_RNDN); } else { mpfr_set(r39797, r39796, MPFR_RNDN); };
        return mpfr_get_d(r39797, MPFR_RNDN);
}

static mpfr_t r39798, r39799, r39800, r39801, r39802, r39803, r39804, r39805, r39806, r39807, r39808, r39809, r39810, r39811, r39812, r39813, r39814, r39815, r39816, r39817, r39818, r39819, r39820, r39821, r39822;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r39798);
        mpfr_init_set_str(r39799, "-7.833327672762858e+152", 10, MPFR_RNDN);
        mpfr_init(r39800);
        mpfr_init(r39801);
        mpfr_init(r39802);
        mpfr_init(r39803);
        mpfr_init_set_str(r39804, "7.698366662298276e-138", 10, MPFR_RNDN);
        mpfr_init(r39805);
        mpfr_init(r39806);
        mpfr_init_set_str(r39807, "4", 10, MPFR_RNDN);
        mpfr_init(r39808);
        mpfr_init(r39809);
        mpfr_init(r39810);
        mpfr_init(r39811);
        mpfr_init(r39812);
        mpfr_init(r39813);
        mpfr_init_set_str(r39814, "2", 10, MPFR_RNDN);
        mpfr_init(r39815);
        mpfr_init(r39816);
        mpfr_init(r39817);
        mpfr_init_set_str(r39818, "-2", 10, MPFR_RNDN);
        mpfr_init(r39819);
        mpfr_init(r39820);
        mpfr_init(r39821);
        mpfr_init(r39822);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39798, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39800, mpfr_cmp(r39798, r39799) <= 0, MPFR_RNDN);
        mpfr_neg(r39801, r39798, MPFR_RNDN);
        mpfr_set_d(r39802, a, MPFR_RNDN);
        mpfr_div(r39803, r39801, r39802, MPFR_RNDN);
        ;
        mpfr_set_si(r39805, mpfr_cmp(r39798, r39804) <= 0, MPFR_RNDN);
        mpfr_mul(r39806, r39798, r39798, MPFR_RNDN);
        ;
        mpfr_mul(r39808, r39807, r39802, MPFR_RNDN);
        mpfr_set_d(r39809, c, MPFR_RNDN);
        mpfr_mul(r39810, r39808, r39809, MPFR_RNDN);
        mpfr_sub(r39811, r39806, r39810, MPFR_RNDN);
        mpfr_sqrt(r39812, r39811, MPFR_RNDN);
        mpfr_add(r39813, r39801, r39812, MPFR_RNDN);
        ;
        mpfr_mul(r39815, r39814, r39802, MPFR_RNDN);
        mpfr_div(r39816, r39813, r39815, MPFR_RNDN);
        mpfr_div(r39817, r39809, r39798, MPFR_RNDN);
        ;
        mpfr_div(r39819, r39818, r39814, MPFR_RNDN);
        mpfr_mul(r39820, r39817, r39819, MPFR_RNDN);
        if (mpfr_get_si(r39805, MPFR_RNDN)) { mpfr_set(r39821, r39816, MPFR_RNDN); } else { mpfr_set(r39821, r39820, MPFR_RNDN); };
        if (mpfr_get_si(r39800, MPFR_RNDN)) { mpfr_set(r39822, r39803, MPFR_RNDN); } else { mpfr_set(r39822, r39821, MPFR_RNDN); };
        return mpfr_get_d(r39822, MPFR_RNDN);
}

