#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 r35627 = b;
        float r35628 = -r35627;
        float r35629 = r35627 * r35627;
        float r35630 = 4.0f;
        float r35631 = a;
        float r35632 = r35630 * r35631;
        float r35633 = c;
        float r35634 = r35632 * r35633;
        float r35635 = r35629 - r35634;
        float r35636 = sqrt(r35635);
        float r35637 = r35628 + r35636;
        float r35638 = 2.0f;
        float r35639 = r35638 * r35631;
        float r35640 = r35637 / r35639;
        return r35640;
}

double f_id(double a, double b, double c) {
        double r35641 = b;
        double r35642 = -r35641;
        double r35643 = r35641 * r35641;
        double r35644 = 4.0;
        double r35645 = a;
        double r35646 = r35644 * r35645;
        double r35647 = c;
        double r35648 = r35646 * r35647;
        double r35649 = r35643 - r35648;
        double r35650 = sqrt(r35649);
        double r35651 = r35642 + r35650;
        double r35652 = 2.0;
        double r35653 = r35652 * r35645;
        double r35654 = r35651 / r35653;
        return r35654;
}


double f_of(float a, float b, float c) {
        float r35655 = b;
        float r35656 = -4.319226994044875e+67f;
        bool r35657 = r35655 <= r35656;
        float r35658 = -r35655;
        float r35659 = a;
        float r35660 = r35658 / r35659;
        float r35661 = 1.3254506382963175e-308f;
        bool r35662 = r35655 <= r35661;
        float r35663 = 1.0f;
        float r35664 = 2.0f;
        float r35665 = r35664 * r35659;
        float r35666 = r35655 * r35655;
        float r35667 = 4.0f;
        float r35668 = r35667 * r35659;
        float r35669 = c;
        float r35670 = r35668 * r35669;
        float r35671 = r35666 - r35670;
        float r35672 = sqrt(r35671);
        float r35673 = r35658 + r35672;
        float r35674 = r35665 / r35673;
        float r35675 = r35663 / r35674;
        float r35676 = 1.0905893076356243e+100f;
        bool r35677 = r35655 <= r35676;
        float r35678 = r35667 / r35664;
        float r35679 = r35655 * r35655;
        float r35680 = r35659 * r35667;
        float r35681 = r35669 * r35680;
        float r35682 = r35679 - r35681;
        float r35683 = sqrt(r35682);
        float r35684 = r35658 - r35683;
        float r35685 = r35669 / r35684;
        float r35686 = r35678 * r35685;
        float r35687 = r35655 + r35658;
        float r35688 = r35659 + r35659;
        float r35689 = r35687 / r35688;
        float r35690 = r35669 / r35655;
        float r35691 = r35689 - r35690;
        float r35692 = r35677 ? r35686 : r35691;
        float r35693 = r35662 ? r35675 : r35692;
        float r35694 = r35657 ? r35660 : r35693;
        return r35694;
}

double f_od(double a, double b, double c) {
        double r35695 = b;
        double r35696 = -4.319226994044875e+67;
        bool r35697 = r35695 <= r35696;
        double r35698 = -r35695;
        double r35699 = a;
        double r35700 = r35698 / r35699;
        double r35701 = 1.3254506382963175e-308;
        bool r35702 = r35695 <= r35701;
        double r35703 = 1.0;
        double r35704 = 2.0;
        double r35705 = r35704 * r35699;
        double r35706 = r35695 * r35695;
        double r35707 = 4.0;
        double r35708 = r35707 * r35699;
        double r35709 = c;
        double r35710 = r35708 * r35709;
        double r35711 = r35706 - r35710;
        double r35712 = sqrt(r35711);
        double r35713 = r35698 + r35712;
        double r35714 = r35705 / r35713;
        double r35715 = r35703 / r35714;
        double r35716 = 1.0905893076356243e+100;
        bool r35717 = r35695 <= r35716;
        double r35718 = r35707 / r35704;
        double r35719 = r35695 * r35695;
        double r35720 = r35699 * r35707;
        double r35721 = r35709 * r35720;
        double r35722 = r35719 - r35721;
        double r35723 = sqrt(r35722);
        double r35724 = r35698 - r35723;
        double r35725 = r35709 / r35724;
        double r35726 = r35718 * r35725;
        double r35727 = r35695 + r35698;
        double r35728 = r35699 + r35699;
        double r35729 = r35727 / r35728;
        double r35730 = r35709 / r35695;
        double r35731 = r35729 - r35730;
        double r35732 = r35717 ? r35726 : r35731;
        double r35733 = r35702 ? r35715 : r35732;
        double r35734 = r35697 ? r35700 : r35733;
        return r35734;
}

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 r35735, r35736, r35737, r35738, r35739, r35740, r35741, r35742, r35743, r35744, r35745, r35746, r35747, r35748;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r35735);
        mpfr_init(r35736);
        mpfr_init(r35737);
        mpfr_init_set_str(r35738, "4", 10, MPFR_RNDN);
        mpfr_init(r35739);
        mpfr_init(r35740);
        mpfr_init(r35741);
        mpfr_init(r35742);
        mpfr_init(r35743);
        mpfr_init(r35744);
        mpfr_init(r35745);
        mpfr_init_set_str(r35746, "2", 10, MPFR_RNDN);
        mpfr_init(r35747);
        mpfr_init(r35748);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r35735, b, MPFR_RNDN);
        mpfr_neg(r35736, r35735, MPFR_RNDN);
        mpfr_sqr(r35737, r35735, MPFR_RNDN);
        ;
        mpfr_set_d(r35739, a, MPFR_RNDN);
        mpfr_mul(r35740, r35738, r35739, MPFR_RNDN);
        mpfr_set_d(r35741, c, MPFR_RNDN);
        mpfr_mul(r35742, r35740, r35741, MPFR_RNDN);
        mpfr_sub(r35743, r35737, r35742, MPFR_RNDN);
        mpfr_sqrt(r35744, r35743, MPFR_RNDN);
        mpfr_add(r35745, r35736, r35744, MPFR_RNDN);
        ;
        mpfr_mul(r35747, r35746, r35739, MPFR_RNDN);
        mpfr_div(r35748, r35745, r35747, MPFR_RNDN);
        return mpfr_get_d(r35748, MPFR_RNDN);
}

static mpfr_t r35749, r35750, r35751, r35752, r35753, r35754, r35755, r35756, r35757, r35758, r35759, r35760, r35761, r35762, r35763, r35764, r35765, r35766, r35767, r35768, r35769, r35770, r35771, r35772, r35773, r35774, r35775, r35776, r35777, r35778, r35779, r35780, r35781, r35782, r35783, r35784, r35785, r35786, r35787, r35788;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r35749);
        mpfr_init_set_str(r35750, "-4.319226994044875e+67", 10, MPFR_RNDN);
        mpfr_init(r35751);
        mpfr_init(r35752);
        mpfr_init(r35753);
        mpfr_init(r35754);
        mpfr_init_set_str(r35755, "1.3254506382963175e-308", 10, MPFR_RNDN);
        mpfr_init(r35756);
        mpfr_init_set_str(r35757, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r35758, "2", 10, MPFR_RNDN);
        mpfr_init(r35759);
        mpfr_init(r35760);
        mpfr_init_set_str(r35761, "4", 10, MPFR_RNDN);
        mpfr_init(r35762);
        mpfr_init(r35763);
        mpfr_init(r35764);
        mpfr_init(r35765);
        mpfr_init(r35766);
        mpfr_init(r35767);
        mpfr_init(r35768);
        mpfr_init(r35769);
        mpfr_init_set_str(r35770, "1.0905893076356243e+100", 10, MPFR_RNDN);
        mpfr_init(r35771);
        mpfr_init(r35772);
        mpfr_init(r35773);
        mpfr_init(r35774);
        mpfr_init(r35775);
        mpfr_init(r35776);
        mpfr_init(r35777);
        mpfr_init(r35778);
        mpfr_init(r35779);
        mpfr_init(r35780);
        mpfr_init(r35781);
        mpfr_init(r35782);
        mpfr_init(r35783);
        mpfr_init(r35784);
        mpfr_init(r35785);
        mpfr_init(r35786);
        mpfr_init(r35787);
        mpfr_init(r35788);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r35749, b, MPFR_RNDN);
        ;
        mpfr_set_si(r35751, mpfr_cmp(r35749, r35750) <= 0, MPFR_RNDN);
        mpfr_neg(r35752, r35749, MPFR_RNDN);
        mpfr_set_d(r35753, a, MPFR_RNDN);
        mpfr_div(r35754, r35752, r35753, MPFR_RNDN);
        ;
        mpfr_set_si(r35756, mpfr_cmp(r35749, r35755) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r35759, r35758, r35753, MPFR_RNDN);
        mpfr_sqr(r35760, r35749, MPFR_RNDN);
        ;
        mpfr_mul(r35762, r35761, r35753, MPFR_RNDN);
        mpfr_set_d(r35763, c, MPFR_RNDN);
        mpfr_mul(r35764, r35762, r35763, MPFR_RNDN);
        mpfr_sub(r35765, r35760, r35764, MPFR_RNDN);
        mpfr_sqrt(r35766, r35765, MPFR_RNDN);
        mpfr_add(r35767, r35752, r35766, MPFR_RNDN);
        mpfr_div(r35768, r35759, r35767, MPFR_RNDN);
        mpfr_div(r35769, r35757, r35768, MPFR_RNDN);
        ;
        mpfr_set_si(r35771, mpfr_cmp(r35749, r35770) <= 0, MPFR_RNDN);
        mpfr_div(r35772, r35761, r35758, MPFR_RNDN);
        mpfr_mul(r35773, r35749, r35749, MPFR_RNDN);
        mpfr_mul(r35774, r35753, r35761, MPFR_RNDN);
        mpfr_mul(r35775, r35763, r35774, MPFR_RNDN);
        mpfr_sub(r35776, r35773, r35775, MPFR_RNDN);
        mpfr_sqrt(r35777, r35776, MPFR_RNDN);
        mpfr_sub(r35778, r35752, r35777, MPFR_RNDN);
        mpfr_div(r35779, r35763, r35778, MPFR_RNDN);
        mpfr_mul(r35780, r35772, r35779, MPFR_RNDN);
        mpfr_add(r35781, r35749, r35752, MPFR_RNDN);
        mpfr_add(r35782, r35753, r35753, MPFR_RNDN);
        mpfr_div(r35783, r35781, r35782, MPFR_RNDN);
        mpfr_div(r35784, r35763, r35749, MPFR_RNDN);
        mpfr_sub(r35785, r35783, r35784, MPFR_RNDN);
        if (mpfr_get_si(r35771, MPFR_RNDN)) { mpfr_set(r35786, r35780, MPFR_RNDN); } else { mpfr_set(r35786, r35785, MPFR_RNDN); };
        if (mpfr_get_si(r35756, MPFR_RNDN)) { mpfr_set(r35787, r35769, MPFR_RNDN); } else { mpfr_set(r35787, r35786, MPFR_RNDN); };
        if (mpfr_get_si(r35751, MPFR_RNDN)) { mpfr_set(r35788, r35754, MPFR_RNDN); } else { mpfr_set(r35788, r35787, MPFR_RNDN); };
        return mpfr_get_d(r35788, MPFR_RNDN);
}

static mpfr_t r35789, r35790, r35791, r35792, r35793, r35794, r35795, r35796, r35797, r35798, r35799, r35800, r35801, r35802, r35803, r35804, r35805, r35806, r35807, r35808, r35809, r35810, r35811, r35812, r35813, r35814, r35815, r35816, r35817, r35818, r35819, r35820, r35821, r35822, r35823, r35824, r35825, r35826, r35827, r35828;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r35789);
        mpfr_init_set_str(r35790, "-4.319226994044875e+67", 10, MPFR_RNDN);
        mpfr_init(r35791);
        mpfr_init(r35792);
        mpfr_init(r35793);
        mpfr_init(r35794);
        mpfr_init_set_str(r35795, "1.3254506382963175e-308", 10, MPFR_RNDN);
        mpfr_init(r35796);
        mpfr_init_set_str(r35797, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r35798, "2", 10, MPFR_RNDN);
        mpfr_init(r35799);
        mpfr_init(r35800);
        mpfr_init_set_str(r35801, "4", 10, MPFR_RNDN);
        mpfr_init(r35802);
        mpfr_init(r35803);
        mpfr_init(r35804);
        mpfr_init(r35805);
        mpfr_init(r35806);
        mpfr_init(r35807);
        mpfr_init(r35808);
        mpfr_init(r35809);
        mpfr_init_set_str(r35810, "1.0905893076356243e+100", 10, MPFR_RNDN);
        mpfr_init(r35811);
        mpfr_init(r35812);
        mpfr_init(r35813);
        mpfr_init(r35814);
        mpfr_init(r35815);
        mpfr_init(r35816);
        mpfr_init(r35817);
        mpfr_init(r35818);
        mpfr_init(r35819);
        mpfr_init(r35820);
        mpfr_init(r35821);
        mpfr_init(r35822);
        mpfr_init(r35823);
        mpfr_init(r35824);
        mpfr_init(r35825);
        mpfr_init(r35826);
        mpfr_init(r35827);
        mpfr_init(r35828);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r35789, b, MPFR_RNDN);
        ;
        mpfr_set_si(r35791, mpfr_cmp(r35789, r35790) <= 0, MPFR_RNDN);
        mpfr_neg(r35792, r35789, MPFR_RNDN);
        mpfr_set_d(r35793, a, MPFR_RNDN);
        mpfr_div(r35794, r35792, r35793, MPFR_RNDN);
        ;
        mpfr_set_si(r35796, mpfr_cmp(r35789, r35795) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r35799, r35798, r35793, MPFR_RNDN);
        mpfr_sqr(r35800, r35789, MPFR_RNDN);
        ;
        mpfr_mul(r35802, r35801, r35793, MPFR_RNDN);
        mpfr_set_d(r35803, c, MPFR_RNDN);
        mpfr_mul(r35804, r35802, r35803, MPFR_RNDN);
        mpfr_sub(r35805, r35800, r35804, MPFR_RNDN);
        mpfr_sqrt(r35806, r35805, MPFR_RNDN);
        mpfr_add(r35807, r35792, r35806, MPFR_RNDN);
        mpfr_div(r35808, r35799, r35807, MPFR_RNDN);
        mpfr_div(r35809, r35797, r35808, MPFR_RNDN);
        ;
        mpfr_set_si(r35811, mpfr_cmp(r35789, r35810) <= 0, MPFR_RNDN);
        mpfr_div(r35812, r35801, r35798, MPFR_RNDN);
        mpfr_mul(r35813, r35789, r35789, MPFR_RNDN);
        mpfr_mul(r35814, r35793, r35801, MPFR_RNDN);
        mpfr_mul(r35815, r35803, r35814, MPFR_RNDN);
        mpfr_sub(r35816, r35813, r35815, MPFR_RNDN);
        mpfr_sqrt(r35817, r35816, MPFR_RNDN);
        mpfr_sub(r35818, r35792, r35817, MPFR_RNDN);
        mpfr_div(r35819, r35803, r35818, MPFR_RNDN);
        mpfr_mul(r35820, r35812, r35819, MPFR_RNDN);
        mpfr_add(r35821, r35789, r35792, MPFR_RNDN);
        mpfr_add(r35822, r35793, r35793, MPFR_RNDN);
        mpfr_div(r35823, r35821, r35822, MPFR_RNDN);
        mpfr_div(r35824, r35803, r35789, MPFR_RNDN);
        mpfr_sub(r35825, r35823, r35824, MPFR_RNDN);
        if (mpfr_get_si(r35811, MPFR_RNDN)) { mpfr_set(r35826, r35820, MPFR_RNDN); } else { mpfr_set(r35826, r35825, MPFR_RNDN); };
        if (mpfr_get_si(r35796, MPFR_RNDN)) { mpfr_set(r35827, r35809, MPFR_RNDN); } else { mpfr_set(r35827, r35826, MPFR_RNDN); };
        if (mpfr_get_si(r35791, MPFR_RNDN)) { mpfr_set(r35828, r35794, MPFR_RNDN); } else { mpfr_set(r35828, r35827, MPFR_RNDN); };
        return mpfr_get_d(r35828, MPFR_RNDN);
}

