#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 r25655 = b;
        float r25656 = -r25655;
        float r25657 = r25655 * r25655;
        float r25658 = 4;
        float r25659 = a;
        float r25660 = r25658 * r25659;
        float r25661 = c;
        float r25662 = r25660 * r25661;
        float r25663 = r25657 - r25662;
        float r25664 = sqrt(r25663);
        float r25665 = r25656 + r25664;
        float r25666 = 2;
        float r25667 = r25666 * r25659;
        float r25668 = r25665 / r25667;
        return r25668;
}

double f_id(double a, double b, double c) {
        double r25669 = b;
        double r25670 = -r25669;
        double r25671 = r25669 * r25669;
        double r25672 = 4;
        double r25673 = a;
        double r25674 = r25672 * r25673;
        double r25675 = c;
        double r25676 = r25674 * r25675;
        double r25677 = r25671 - r25676;
        double r25678 = sqrt(r25677);
        double r25679 = r25670 + r25678;
        double r25680 = 2;
        double r25681 = r25680 * r25673;
        double r25682 = r25679 / r25681;
        return r25682;
}


double f_of(float a, float b, float c) {
        float r25683 = b;
        float r25684 = -2.1248584161419818e+107;
        bool r25685 = r25683 <= r25684;
        float r25686 = c;
        float r25687 = r25686 / r25683;
        float r25688 = r25683 + r25683;
        float r25689 = 2;
        float r25690 = a;
        float r25691 = r25689 * r25690;
        float r25692 = r25688 / r25691;
        float r25693 = r25687 - r25692;
        float r25694 = 2.627876373965592e-84;
        bool r25695 = r25683 <= r25694;
        float r25696 = -r25683;
        float r25697 = r25683 * r25683;
        float r25698 = 4;
        float r25699 = r25698 * r25690;
        float r25700 = r25686 * r25699;
        float r25701 = r25697 - r25700;
        float r25702 = sqrt(r25701);
        float r25703 = r25696 + r25702;
        float r25704 = r25703 / r25691;
        float r25705 = -r25686;
        float r25706 = r25705 / r25683;
        float r25707 = r25695 ? r25704 : r25706;
        float r25708 = r25685 ? r25693 : r25707;
        return r25708;
}

double f_od(double a, double b, double c) {
        double r25709 = b;
        double r25710 = -2.1248584161419818e+107;
        bool r25711 = r25709 <= r25710;
        double r25712 = c;
        double r25713 = r25712 / r25709;
        double r25714 = r25709 + r25709;
        double r25715 = 2;
        double r25716 = a;
        double r25717 = r25715 * r25716;
        double r25718 = r25714 / r25717;
        double r25719 = r25713 - r25718;
        double r25720 = 2.627876373965592e-84;
        bool r25721 = r25709 <= r25720;
        double r25722 = -r25709;
        double r25723 = r25709 * r25709;
        double r25724 = 4;
        double r25725 = r25724 * r25716;
        double r25726 = r25712 * r25725;
        double r25727 = r25723 - r25726;
        double r25728 = sqrt(r25727);
        double r25729 = r25722 + r25728;
        double r25730 = r25729 / r25717;
        double r25731 = -r25712;
        double r25732 = r25731 / r25709;
        double r25733 = r25721 ? r25730 : r25732;
        double r25734 = r25711 ? r25719 : r25733;
        return r25734;
}

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 r25735, r25736, r25737, r25738, r25739, r25740, r25741, r25742, r25743, r25744, r25745, r25746, r25747, r25748;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25735);
        mpfr_init(r25736);
        mpfr_init(r25737);
        mpfr_init_set_str(r25738, "4", 10, MPFR_RNDN);
        mpfr_init(r25739);
        mpfr_init(r25740);
        mpfr_init(r25741);
        mpfr_init(r25742);
        mpfr_init(r25743);
        mpfr_init(r25744);
        mpfr_init(r25745);
        mpfr_init_set_str(r25746, "2", 10, MPFR_RNDN);
        mpfr_init(r25747);
        mpfr_init(r25748);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r25735, b, MPFR_RNDN);
        mpfr_neg(r25736, r25735, MPFR_RNDN);
        mpfr_mul(r25737, r25735, r25735, MPFR_RNDN);
        ;
        mpfr_set_d(r25739, a, MPFR_RNDN);
        mpfr_mul(r25740, r25738, r25739, MPFR_RNDN);
        mpfr_set_d(r25741, c, MPFR_RNDN);
        mpfr_mul(r25742, r25740, r25741, MPFR_RNDN);
        mpfr_sub(r25743, r25737, r25742, MPFR_RNDN);
        mpfr_sqrt(r25744, r25743, MPFR_RNDN);
        mpfr_add(r25745, r25736, r25744, MPFR_RNDN);
        ;
        mpfr_mul(r25747, r25746, r25739, MPFR_RNDN);
        mpfr_div(r25748, r25745, r25747, MPFR_RNDN);
        return mpfr_get_d(r25748, MPFR_RNDN);
}

static mpfr_t r25749, r25750, r25751, r25752, r25753, r25754, r25755, r25756, r25757, r25758, r25759, r25760, r25761, r25762, r25763, r25764, r25765, r25766, r25767, r25768, r25769, r25770, r25771, r25772, r25773, r25774;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25749);
        mpfr_init_set_str(r25750, "-2.1248584161419818e+107", 10, MPFR_RNDN);
        mpfr_init(r25751);
        mpfr_init(r25752);
        mpfr_init(r25753);
        mpfr_init(r25754);
        mpfr_init_set_str(r25755, "2", 10, MPFR_RNDN);
        mpfr_init(r25756);
        mpfr_init(r25757);
        mpfr_init(r25758);
        mpfr_init(r25759);
        mpfr_init_set_str(r25760, "2.627876373965592e-84", 10, MPFR_RNDN);
        mpfr_init(r25761);
        mpfr_init(r25762);
        mpfr_init(r25763);
        mpfr_init_set_str(r25764, "4", 10, MPFR_RNDN);
        mpfr_init(r25765);
        mpfr_init(r25766);
        mpfr_init(r25767);
        mpfr_init(r25768);
        mpfr_init(r25769);
        mpfr_init(r25770);
        mpfr_init(r25771);
        mpfr_init(r25772);
        mpfr_init(r25773);
        mpfr_init(r25774);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r25749, b, MPFR_RNDN);
        ;
        mpfr_set_si(r25751, mpfr_cmp(r25749, r25750) <= 0, MPFR_RNDN);
        mpfr_set_d(r25752, c, MPFR_RNDN);
        mpfr_div(r25753, r25752, r25749, MPFR_RNDN);
        mpfr_add(r25754, r25749, r25749, MPFR_RNDN);
        ;
        mpfr_set_d(r25756, a, MPFR_RNDN);
        mpfr_mul(r25757, r25755, r25756, MPFR_RNDN);
        mpfr_div(r25758, r25754, r25757, MPFR_RNDN);
        mpfr_sub(r25759, r25753, r25758, MPFR_RNDN);
        ;
        mpfr_set_si(r25761, mpfr_cmp(r25749, r25760) <= 0, MPFR_RNDN);
        mpfr_neg(r25762, r25749, MPFR_RNDN);
        mpfr_mul(r25763, r25749, r25749, MPFR_RNDN);
        ;
        mpfr_mul(r25765, r25764, r25756, MPFR_RNDN);
        mpfr_mul(r25766, r25752, r25765, MPFR_RNDN);
        mpfr_sub(r25767, r25763, r25766, MPFR_RNDN);
        mpfr_sqrt(r25768, r25767, MPFR_RNDN);
        mpfr_add(r25769, r25762, r25768, MPFR_RNDN);
        mpfr_div(r25770, r25769, r25757, MPFR_RNDN);
        mpfr_neg(r25771, r25752, MPFR_RNDN);
        mpfr_div(r25772, r25771, r25749, MPFR_RNDN);
        if (mpfr_get_si(r25761, MPFR_RNDN)) { mpfr_set(r25773, r25770, MPFR_RNDN); } else { mpfr_set(r25773, r25772, MPFR_RNDN); };
        if (mpfr_get_si(r25751, MPFR_RNDN)) { mpfr_set(r25774, r25759, MPFR_RNDN); } else { mpfr_set(r25774, r25773, MPFR_RNDN); };
        return mpfr_get_d(r25774, MPFR_RNDN);
}

static mpfr_t r25775, r25776, r25777, r25778, r25779, r25780, r25781, r25782, r25783, r25784, r25785, r25786, r25787, r25788, r25789, r25790, r25791, r25792, r25793, r25794, r25795, r25796, r25797, r25798, r25799, r25800;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25775);
        mpfr_init_set_str(r25776, "-2.1248584161419818e+107", 10, MPFR_RNDN);
        mpfr_init(r25777);
        mpfr_init(r25778);
        mpfr_init(r25779);
        mpfr_init(r25780);
        mpfr_init_set_str(r25781, "2", 10, MPFR_RNDN);
        mpfr_init(r25782);
        mpfr_init(r25783);
        mpfr_init(r25784);
        mpfr_init(r25785);
        mpfr_init_set_str(r25786, "2.627876373965592e-84", 10, MPFR_RNDN);
        mpfr_init(r25787);
        mpfr_init(r25788);
        mpfr_init(r25789);
        mpfr_init_set_str(r25790, "4", 10, MPFR_RNDN);
        mpfr_init(r25791);
        mpfr_init(r25792);
        mpfr_init(r25793);
        mpfr_init(r25794);
        mpfr_init(r25795);
        mpfr_init(r25796);
        mpfr_init(r25797);
        mpfr_init(r25798);
        mpfr_init(r25799);
        mpfr_init(r25800);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r25775, b, MPFR_RNDN);
        ;
        mpfr_set_si(r25777, mpfr_cmp(r25775, r25776) <= 0, MPFR_RNDN);
        mpfr_set_d(r25778, c, MPFR_RNDN);
        mpfr_div(r25779, r25778, r25775, MPFR_RNDN);
        mpfr_add(r25780, r25775, r25775, MPFR_RNDN);
        ;
        mpfr_set_d(r25782, a, MPFR_RNDN);
        mpfr_mul(r25783, r25781, r25782, MPFR_RNDN);
        mpfr_div(r25784, r25780, r25783, MPFR_RNDN);
        mpfr_sub(r25785, r25779, r25784, MPFR_RNDN);
        ;
        mpfr_set_si(r25787, mpfr_cmp(r25775, r25786) <= 0, MPFR_RNDN);
        mpfr_neg(r25788, r25775, MPFR_RNDN);
        mpfr_mul(r25789, r25775, r25775, MPFR_RNDN);
        ;
        mpfr_mul(r25791, r25790, r25782, MPFR_RNDN);
        mpfr_mul(r25792, r25778, r25791, MPFR_RNDN);
        mpfr_sub(r25793, r25789, r25792, MPFR_RNDN);
        mpfr_sqrt(r25794, r25793, MPFR_RNDN);
        mpfr_add(r25795, r25788, r25794, MPFR_RNDN);
        mpfr_div(r25796, r25795, r25783, MPFR_RNDN);
        mpfr_neg(r25797, r25778, MPFR_RNDN);
        mpfr_div(r25798, r25797, r25775, MPFR_RNDN);
        if (mpfr_get_si(r25787, MPFR_RNDN)) { mpfr_set(r25799, r25796, MPFR_RNDN); } else { mpfr_set(r25799, r25798, MPFR_RNDN); };
        if (mpfr_get_si(r25777, MPFR_RNDN)) { mpfr_set(r25800, r25785, MPFR_RNDN); } else { mpfr_set(r25800, r25799, MPFR_RNDN); };
        return mpfr_get_d(r25800, MPFR_RNDN);
}

