#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "The quadratic formula (r2)";

double f_if(float a, float b, float c) {
        float r25596 = b;
        float r25597 = -r25596;
        float r25598 = r25596 * r25596;
        float r25599 = 4;
        float r25600 = a;
        float r25601 = c;
        float r25602 = r25600 * r25601;
        float r25603 = r25599 * r25602;
        float r25604 = r25598 - r25603;
        float r25605 = sqrt(r25604);
        float r25606 = r25597 - r25605;
        float r25607 = 2;
        float r25608 = r25607 * r25600;
        float r25609 = r25606 / r25608;
        return r25609;
}

double f_id(double a, double b, double c) {
        double r25610 = b;
        double r25611 = -r25610;
        double r25612 = r25610 * r25610;
        double r25613 = 4;
        double r25614 = a;
        double r25615 = c;
        double r25616 = r25614 * r25615;
        double r25617 = r25613 * r25616;
        double r25618 = r25612 - r25617;
        double r25619 = sqrt(r25618);
        double r25620 = r25611 - r25619;
        double r25621 = 2;
        double r25622 = r25621 * r25614;
        double r25623 = r25620 / r25622;
        return r25623;
}


double f_of(float a, float b, float c) {
        float r25624 = b;
        float r25625 = -9.364913351832592e+42;
        bool r25626 = r25624 <= r25625;
        float r25627 = c;
        float r25628 = -r25627;
        float r25629 = r25628 / r25624;
        float r25630 = -4.0236143021571356e-284;
        bool r25631 = r25624 <= r25630;
        float r25632 = 4;
        float r25633 = a;
        float r25634 = r25633 * r25627;
        float r25635 = r25632 * r25634;
        float r25636 = r25624 * r25624;
        float r25637 = r25632 * r25627;
        float r25638 = r25633 * r25637;
        float r25639 = r25636 - r25638;
        float r25640 = sqrt(r25639);
        float r25641 = r25640 - r25624;
        float r25642 = r25635 / r25641;
        float r25643 = 2;
        float r25644 = r25643 * r25633;
        float r25645 = r25642 / r25644;
        float r25646 = 5.3178790154367943e+67;
        bool r25647 = r25624 <= r25646;
        float r25648 = -r25624;
        float r25649 = r25636 - r25635;
        float r25650 = sqrt(r25649);
        float r25651 = sqrt(r25650);
        float r25652 = r25651 * r25651;
        float r25653 = r25648 - r25652;
        float r25654 = r25653 / r25644;
        float r25655 = r25627 / r25624;
        float r25656 = r25624 / r25633;
        float r25657 = r25655 - r25656;
        float r25658 = r25647 ? r25654 : r25657;
        float r25659 = r25631 ? r25645 : r25658;
        float r25660 = r25626 ? r25629 : r25659;
        return r25660;
}

double f_od(double a, double b, double c) {
        double r25661 = b;
        double r25662 = -9.364913351832592e+42;
        bool r25663 = r25661 <= r25662;
        double r25664 = c;
        double r25665 = -r25664;
        double r25666 = r25665 / r25661;
        double r25667 = -4.0236143021571356e-284;
        bool r25668 = r25661 <= r25667;
        double r25669 = 4;
        double r25670 = a;
        double r25671 = r25670 * r25664;
        double r25672 = r25669 * r25671;
        double r25673 = r25661 * r25661;
        double r25674 = r25669 * r25664;
        double r25675 = r25670 * r25674;
        double r25676 = r25673 - r25675;
        double r25677 = sqrt(r25676);
        double r25678 = r25677 - r25661;
        double r25679 = r25672 / r25678;
        double r25680 = 2;
        double r25681 = r25680 * r25670;
        double r25682 = r25679 / r25681;
        double r25683 = 5.3178790154367943e+67;
        bool r25684 = r25661 <= r25683;
        double r25685 = -r25661;
        double r25686 = r25673 - r25672;
        double r25687 = sqrt(r25686);
        double r25688 = sqrt(r25687);
        double r25689 = r25688 * r25688;
        double r25690 = r25685 - r25689;
        double r25691 = r25690 / r25681;
        double r25692 = r25664 / r25661;
        double r25693 = r25661 / r25670;
        double r25694 = r25692 - r25693;
        double r25695 = r25684 ? r25691 : r25694;
        double r25696 = r25668 ? r25682 : r25695;
        double r25697 = r25663 ? r25666 : r25696;
        return r25697;
}

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 r25698, r25699, r25700, r25701, r25702, r25703, r25704, r25705, r25706, r25707, r25708, r25709, r25710, r25711;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25698);
        mpfr_init(r25699);
        mpfr_init(r25700);
        mpfr_init_set_str(r25701, "4", 10, MPFR_RNDN);
        mpfr_init(r25702);
        mpfr_init(r25703);
        mpfr_init(r25704);
        mpfr_init(r25705);
        mpfr_init(r25706);
        mpfr_init(r25707);
        mpfr_init(r25708);
        mpfr_init_set_str(r25709, "2", 10, MPFR_RNDN);
        mpfr_init(r25710);
        mpfr_init(r25711);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r25698, b, MPFR_RNDN);
        mpfr_neg(r25699, r25698, MPFR_RNDN);
        mpfr_mul(r25700, r25698, r25698, MPFR_RNDN);
        ;
        mpfr_set_d(r25702, a, MPFR_RNDN);
        mpfr_set_d(r25703, c, MPFR_RNDN);
        mpfr_mul(r25704, r25702, r25703, MPFR_RNDN);
        mpfr_mul(r25705, r25701, r25704, MPFR_RNDN);
        mpfr_sub(r25706, r25700, r25705, MPFR_RNDN);
        mpfr_sqrt(r25707, r25706, MPFR_RNDN);
        mpfr_sub(r25708, r25699, r25707, MPFR_RNDN);
        ;
        mpfr_mul(r25710, r25709, r25702, MPFR_RNDN);
        mpfr_div(r25711, r25708, r25710, MPFR_RNDN);
        return mpfr_get_d(r25711, MPFR_RNDN);
}

static mpfr_t r25712, r25713, r25714, r25715, r25716, r25717, r25718, r25719, r25720, r25721, r25722, r25723, r25724, r25725, r25726, r25727, r25728, r25729, r25730, r25731, r25732, r25733, r25734, r25735, r25736, r25737, r25738, r25739, r25740, r25741, r25742, r25743, r25744, r25745, r25746, r25747, r25748;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25712);
        mpfr_init_set_str(r25713, "-9.364913351832592e+42", 10, MPFR_RNDN);
        mpfr_init(r25714);
        mpfr_init(r25715);
        mpfr_init(r25716);
        mpfr_init(r25717);
        mpfr_init_set_str(r25718, "-4.0236143021571356e-284", 10, MPFR_RNDN);
        mpfr_init(r25719);
        mpfr_init_set_str(r25720, "4", 10, MPFR_RNDN);
        mpfr_init(r25721);
        mpfr_init(r25722);
        mpfr_init(r25723);
        mpfr_init(r25724);
        mpfr_init(r25725);
        mpfr_init(r25726);
        mpfr_init(r25727);
        mpfr_init(r25728);
        mpfr_init(r25729);
        mpfr_init(r25730);
        mpfr_init_set_str(r25731, "2", 10, MPFR_RNDN);
        mpfr_init(r25732);
        mpfr_init(r25733);
        mpfr_init_set_str(r25734, "5.3178790154367943e+67", 10, MPFR_RNDN);
        mpfr_init(r25735);
        mpfr_init(r25736);
        mpfr_init(r25737);
        mpfr_init(r25738);
        mpfr_init(r25739);
        mpfr_init(r25740);
        mpfr_init(r25741);
        mpfr_init(r25742);
        mpfr_init(r25743);
        mpfr_init(r25744);
        mpfr_init(r25745);
        mpfr_init(r25746);
        mpfr_init(r25747);
        mpfr_init(r25748);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r25712, b, MPFR_RNDN);
        ;
        mpfr_set_si(r25714, mpfr_cmp(r25712, r25713) <= 0, MPFR_RNDN);
        mpfr_set_d(r25715, c, MPFR_RNDN);
        mpfr_neg(r25716, r25715, MPFR_RNDN);
        mpfr_div(r25717, r25716, r25712, MPFR_RNDN);
        ;
        mpfr_set_si(r25719, mpfr_cmp(r25712, r25718) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r25721, a, MPFR_RNDN);
        mpfr_mul(r25722, r25721, r25715, MPFR_RNDN);
        mpfr_mul(r25723, r25720, r25722, MPFR_RNDN);
        mpfr_mul(r25724, r25712, r25712, MPFR_RNDN);
        mpfr_mul(r25725, r25720, r25715, MPFR_RNDN);
        mpfr_mul(r25726, r25721, r25725, MPFR_RNDN);
        mpfr_sub(r25727, r25724, r25726, MPFR_RNDN);
        mpfr_sqrt(r25728, r25727, MPFR_RNDN);
        mpfr_sub(r25729, r25728, r25712, MPFR_RNDN);
        mpfr_div(r25730, r25723, r25729, MPFR_RNDN);
        ;
        mpfr_mul(r25732, r25731, r25721, MPFR_RNDN);
        mpfr_div(r25733, r25730, r25732, MPFR_RNDN);
        ;
        mpfr_set_si(r25735, mpfr_cmp(r25712, r25734) <= 0, MPFR_RNDN);
        mpfr_neg(r25736, r25712, MPFR_RNDN);
        mpfr_sub(r25737, r25724, r25723, MPFR_RNDN);
        mpfr_sqrt(r25738, r25737, MPFR_RNDN);
        mpfr_sqrt(r25739, r25738, MPFR_RNDN);
        mpfr_mul(r25740, r25739, r25739, MPFR_RNDN);
        mpfr_sub(r25741, r25736, r25740, MPFR_RNDN);
        mpfr_div(r25742, r25741, r25732, MPFR_RNDN);
        mpfr_div(r25743, r25715, r25712, MPFR_RNDN);
        mpfr_div(r25744, r25712, r25721, MPFR_RNDN);
        mpfr_sub(r25745, r25743, r25744, MPFR_RNDN);
        if (mpfr_get_si(r25735, MPFR_RNDN)) { mpfr_set(r25746, r25742, MPFR_RNDN); } else { mpfr_set(r25746, r25745, MPFR_RNDN); };
        if (mpfr_get_si(r25719, MPFR_RNDN)) { mpfr_set(r25747, r25733, MPFR_RNDN); } else { mpfr_set(r25747, r25746, MPFR_RNDN); };
        if (mpfr_get_si(r25714, MPFR_RNDN)) { mpfr_set(r25748, r25717, MPFR_RNDN); } else { mpfr_set(r25748, 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, r25775, r25776, r25777, r25778, r25779, r25780, r25781, r25782, r25783, r25784, r25785;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25749);
        mpfr_init_set_str(r25750, "-9.364913351832592e+42", 10, MPFR_RNDN);
        mpfr_init(r25751);
        mpfr_init(r25752);
        mpfr_init(r25753);
        mpfr_init(r25754);
        mpfr_init_set_str(r25755, "-4.0236143021571356e-284", 10, MPFR_RNDN);
        mpfr_init(r25756);
        mpfr_init_set_str(r25757, "4", 10, MPFR_RNDN);
        mpfr_init(r25758);
        mpfr_init(r25759);
        mpfr_init(r25760);
        mpfr_init(r25761);
        mpfr_init(r25762);
        mpfr_init(r25763);
        mpfr_init(r25764);
        mpfr_init(r25765);
        mpfr_init(r25766);
        mpfr_init(r25767);
        mpfr_init_set_str(r25768, "2", 10, MPFR_RNDN);
        mpfr_init(r25769);
        mpfr_init(r25770);
        mpfr_init_set_str(r25771, "5.3178790154367943e+67", 10, MPFR_RNDN);
        mpfr_init(r25772);
        mpfr_init(r25773);
        mpfr_init(r25774);
        mpfr_init(r25775);
        mpfr_init(r25776);
        mpfr_init(r25777);
        mpfr_init(r25778);
        mpfr_init(r25779);
        mpfr_init(r25780);
        mpfr_init(r25781);
        mpfr_init(r25782);
        mpfr_init(r25783);
        mpfr_init(r25784);
        mpfr_init(r25785);
}

double f_dm(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_neg(r25753, r25752, MPFR_RNDN);
        mpfr_div(r25754, r25753, r25749, MPFR_RNDN);
        ;
        mpfr_set_si(r25756, mpfr_cmp(r25749, r25755) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r25758, a, MPFR_RNDN);
        mpfr_mul(r25759, r25758, r25752, MPFR_RNDN);
        mpfr_mul(r25760, r25757, r25759, MPFR_RNDN);
        mpfr_mul(r25761, r25749, r25749, MPFR_RNDN);
        mpfr_mul(r25762, r25757, r25752, MPFR_RNDN);
        mpfr_mul(r25763, r25758, r25762, MPFR_RNDN);
        mpfr_sub(r25764, r25761, r25763, MPFR_RNDN);
        mpfr_sqrt(r25765, r25764, MPFR_RNDN);
        mpfr_sub(r25766, r25765, r25749, MPFR_RNDN);
        mpfr_div(r25767, r25760, r25766, MPFR_RNDN);
        ;
        mpfr_mul(r25769, r25768, r25758, MPFR_RNDN);
        mpfr_div(r25770, r25767, r25769, MPFR_RNDN);
        ;
        mpfr_set_si(r25772, mpfr_cmp(r25749, r25771) <= 0, MPFR_RNDN);
        mpfr_neg(r25773, r25749, MPFR_RNDN);
        mpfr_sub(r25774, r25761, r25760, MPFR_RNDN);
        mpfr_sqrt(r25775, r25774, MPFR_RNDN);
        mpfr_sqrt(r25776, r25775, MPFR_RNDN);
        mpfr_mul(r25777, r25776, r25776, MPFR_RNDN);
        mpfr_sub(r25778, r25773, r25777, MPFR_RNDN);
        mpfr_div(r25779, r25778, r25769, MPFR_RNDN);
        mpfr_div(r25780, r25752, r25749, MPFR_RNDN);
        mpfr_div(r25781, r25749, r25758, MPFR_RNDN);
        mpfr_sub(r25782, r25780, r25781, MPFR_RNDN);
        if (mpfr_get_si(r25772, MPFR_RNDN)) { mpfr_set(r25783, r25779, MPFR_RNDN); } else { mpfr_set(r25783, r25782, MPFR_RNDN); };
        if (mpfr_get_si(r25756, MPFR_RNDN)) { mpfr_set(r25784, r25770, MPFR_RNDN); } else { mpfr_set(r25784, r25783, MPFR_RNDN); };
        if (mpfr_get_si(r25751, MPFR_RNDN)) { mpfr_set(r25785, r25754, MPFR_RNDN); } else { mpfr_set(r25785, r25784, MPFR_RNDN); };
        return mpfr_get_d(r25785, MPFR_RNDN);
}

