#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 r39710 = b;
        float r39711 = -r39710;
        float r39712 = r39710 * r39710;
        float r39713 = 4;
        float r39714 = a;
        float r39715 = r39713 * r39714;
        float r39716 = c;
        float r39717 = r39715 * r39716;
        float r39718 = r39712 - r39717;
        float r39719 = sqrt(r39718);
        float r39720 = r39711 + r39719;
        float r39721 = 2;
        float r39722 = r39721 * r39714;
        float r39723 = r39720 / r39722;
        return r39723;
}

double f_id(double a, double b, double c) {
        double r39724 = b;
        double r39725 = -r39724;
        double r39726 = r39724 * r39724;
        double r39727 = 4;
        double r39728 = a;
        double r39729 = r39727 * r39728;
        double r39730 = c;
        double r39731 = r39729 * r39730;
        double r39732 = r39726 - r39731;
        double r39733 = sqrt(r39732);
        double r39734 = r39725 + r39733;
        double r39735 = 2;
        double r39736 = r39735 * r39728;
        double r39737 = r39734 / r39736;
        return r39737;
}


double f_of(float a, float b, float c) {
        float r39738 = b;
        float r39739 = -2.788370916558726e+153;
        bool r39740 = r39738 <= r39739;
        float r39741 = -r39738;
        float r39742 = a;
        float r39743 = r39741 / r39742;
        float r39744 = 7.580412743766101e-138;
        bool r39745 = r39738 <= r39744;
        float r39746 = r39738 * r39738;
        float r39747 = 4;
        float r39748 = r39747 * r39742;
        float r39749 = c;
        float r39750 = r39748 * r39749;
        float r39751 = r39746 - r39750;
        float r39752 = sqrt(r39751);
        float r39753 = r39741 + r39752;
        float r39754 = 2;
        float r39755 = r39754 * r39742;
        float r39756 = r39753 / r39755;
        float r39757 = r39749 / r39738;
        float r39758 = -2;
        float r39759 = r39758 / r39754;
        float r39760 = r39757 * r39759;
        float r39761 = r39745 ? r39756 : r39760;
        float r39762 = r39740 ? r39743 : r39761;
        return r39762;
}

double f_od(double a, double b, double c) {
        double r39763 = b;
        double r39764 = -2.788370916558726e+153;
        bool r39765 = r39763 <= r39764;
        double r39766 = -r39763;
        double r39767 = a;
        double r39768 = r39766 / r39767;
        double r39769 = 7.580412743766101e-138;
        bool r39770 = r39763 <= r39769;
        double r39771 = r39763 * r39763;
        double r39772 = 4;
        double r39773 = r39772 * r39767;
        double r39774 = c;
        double r39775 = r39773 * r39774;
        double r39776 = r39771 - r39775;
        double r39777 = sqrt(r39776);
        double r39778 = r39766 + r39777;
        double r39779 = 2;
        double r39780 = r39779 * r39767;
        double r39781 = r39778 / r39780;
        double r39782 = r39774 / r39763;
        double r39783 = -2;
        double r39784 = r39783 / r39779;
        double r39785 = r39782 * r39784;
        double r39786 = r39770 ? r39781 : r39785;
        double r39787 = r39765 ? r39768 : r39786;
        return r39787;
}

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 r39788, r39789, r39790, r39791, r39792, r39793, r39794, r39795, r39796, r39797, r39798, r39799, r39800, r39801;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39788);
        mpfr_init(r39789);
        mpfr_init(r39790);
        mpfr_init_set_str(r39791, "4", 10, MPFR_RNDN);
        mpfr_init(r39792);
        mpfr_init(r39793);
        mpfr_init(r39794);
        mpfr_init(r39795);
        mpfr_init(r39796);
        mpfr_init(r39797);
        mpfr_init(r39798);
        mpfr_init_set_str(r39799, "2", 10, MPFR_RNDN);
        mpfr_init(r39800);
        mpfr_init(r39801);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39788, b, MPFR_RNDN);
        mpfr_neg(r39789, r39788, MPFR_RNDN);
        mpfr_mul(r39790, r39788, r39788, MPFR_RNDN);
        ;
        mpfr_set_d(r39792, a, MPFR_RNDN);
        mpfr_mul(r39793, r39791, r39792, MPFR_RNDN);
        mpfr_set_d(r39794, c, MPFR_RNDN);
        mpfr_mul(r39795, r39793, r39794, MPFR_RNDN);
        mpfr_sub(r39796, r39790, r39795, MPFR_RNDN);
        mpfr_sqrt(r39797, r39796, MPFR_RNDN);
        mpfr_add(r39798, r39789, r39797, MPFR_RNDN);
        ;
        mpfr_mul(r39800, r39799, r39792, MPFR_RNDN);
        mpfr_div(r39801, r39798, r39800, MPFR_RNDN);
        return mpfr_get_d(r39801, MPFR_RNDN);
}

static mpfr_t r39802, r39803, r39804, r39805, r39806, r39807, r39808, r39809, r39810, r39811, r39812, r39813, r39814, r39815, r39816, r39817, r39818, r39819, r39820, r39821, r39822, r39823, r39824, r39825, r39826;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39802);
        mpfr_init_set_str(r39803, "-2.788370916558726e+153", 10, MPFR_RNDN);
        mpfr_init(r39804);
        mpfr_init(r39805);
        mpfr_init(r39806);
        mpfr_init(r39807);
        mpfr_init_set_str(r39808, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r39809);
        mpfr_init(r39810);
        mpfr_init_set_str(r39811, "4", 10, MPFR_RNDN);
        mpfr_init(r39812);
        mpfr_init(r39813);
        mpfr_init(r39814);
        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_set_str(r39822, "-2", 10, MPFR_RNDN);
        mpfr_init(r39823);
        mpfr_init(r39824);
        mpfr_init(r39825);
        mpfr_init(r39826);
}

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

static mpfr_t r39827, r39828, r39829, r39830, r39831, r39832, r39833, r39834, r39835, r39836, r39837, r39838, r39839, r39840, r39841, r39842, r39843, r39844, r39845, r39846, r39847, r39848, r39849, r39850, r39851;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39827);
        mpfr_init_set_str(r39828, "-2.788370916558726e+153", 10, MPFR_RNDN);
        mpfr_init(r39829);
        mpfr_init(r39830);
        mpfr_init(r39831);
        mpfr_init(r39832);
        mpfr_init_set_str(r39833, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r39834);
        mpfr_init(r39835);
        mpfr_init_set_str(r39836, "4", 10, MPFR_RNDN);
        mpfr_init(r39837);
        mpfr_init(r39838);
        mpfr_init(r39839);
        mpfr_init(r39840);
        mpfr_init(r39841);
        mpfr_init(r39842);
        mpfr_init_set_str(r39843, "2", 10, MPFR_RNDN);
        mpfr_init(r39844);
        mpfr_init(r39845);
        mpfr_init(r39846);
        mpfr_init_set_str(r39847, "-2", 10, MPFR_RNDN);
        mpfr_init(r39848);
        mpfr_init(r39849);
        mpfr_init(r39850);
        mpfr_init(r39851);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39827, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39829, mpfr_cmp(r39827, r39828) <= 0, MPFR_RNDN);
        mpfr_neg(r39830, r39827, MPFR_RNDN);
        mpfr_set_d(r39831, a, MPFR_RNDN);
        mpfr_div(r39832, r39830, r39831, MPFR_RNDN);
        ;
        mpfr_set_si(r39834, mpfr_cmp(r39827, r39833) <= 0, MPFR_RNDN);
        mpfr_mul(r39835, r39827, r39827, MPFR_RNDN);
        ;
        mpfr_mul(r39837, r39836, r39831, MPFR_RNDN);
        mpfr_set_d(r39838, c, MPFR_RNDN);
        mpfr_mul(r39839, r39837, r39838, MPFR_RNDN);
        mpfr_sub(r39840, r39835, r39839, MPFR_RNDN);
        mpfr_sqrt(r39841, r39840, MPFR_RNDN);
        mpfr_add(r39842, r39830, r39841, MPFR_RNDN);
        ;
        mpfr_mul(r39844, r39843, r39831, MPFR_RNDN);
        mpfr_div(r39845, r39842, r39844, MPFR_RNDN);
        mpfr_div(r39846, r39838, r39827, MPFR_RNDN);
        ;
        mpfr_div(r39848, r39847, r39843, MPFR_RNDN);
        mpfr_mul(r39849, r39846, r39848, MPFR_RNDN);
        if (mpfr_get_si(r39834, MPFR_RNDN)) { mpfr_set(r39850, r39845, MPFR_RNDN); } else { mpfr_set(r39850, r39849, MPFR_RNDN); };
        if (mpfr_get_si(r39829, MPFR_RNDN)) { mpfr_set(r39851, r39832, MPFR_RNDN); } else { mpfr_set(r39851, r39850, MPFR_RNDN); };
        return mpfr_get_d(r39851, MPFR_RNDN);
}

