#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 r39593 = b;
        float r39594 = -r39593;
        float r39595 = r39593 * r39593;
        float r39596 = 4;
        float r39597 = a;
        float r39598 = c;
        float r39599 = r39597 * r39598;
        float r39600 = r39596 * r39599;
        float r39601 = r39595 - r39600;
        float r39602 = sqrt(r39601);
        float r39603 = r39594 - r39602;
        float r39604 = 2;
        float r39605 = r39604 * r39597;
        float r39606 = r39603 / r39605;
        return r39606;
}

double f_id(double a, double b, double c) {
        double r39607 = b;
        double r39608 = -r39607;
        double r39609 = r39607 * r39607;
        double r39610 = 4;
        double r39611 = a;
        double r39612 = c;
        double r39613 = r39611 * r39612;
        double r39614 = r39610 * r39613;
        double r39615 = r39609 - r39614;
        double r39616 = sqrt(r39615);
        double r39617 = r39608 - r39616;
        double r39618 = 2;
        double r39619 = r39618 * r39611;
        double r39620 = r39617 / r39619;
        return r39620;
}


double f_of(float a, float b, float c) {
        float r39621 = b;
        float r39622 = -5.018034098196628e+28;
        bool r39623 = r39621 <= r39622;
        float r39624 = -r39621;
        float r39625 = r39624 + r39621;
        float r39626 = a;
        float r39627 = r39626 + r39626;
        float r39628 = r39625 / r39627;
        float r39629 = c;
        float r39630 = r39629 / r39621;
        float r39631 = r39628 - r39630;
        float r39632 = -3.546490195958238e-104;
        bool r39633 = r39621 <= r39632;
        float r39634 = r39629 * r39626;
        float r39635 = 4;
        float r39636 = r39634 * r39635;
        float r39637 = r39621 * r39621;
        float r39638 = r39626 * r39629;
        float r39639 = r39635 * r39638;
        float r39640 = r39637 - r39639;
        float r39641 = sqrt(r39640);
        float r39642 = r39624 + r39641;
        float r39643 = r39636 / r39642;
        float r39644 = 2;
        float r39645 = r39644 * r39626;
        float r39646 = r39643 / r39645;
        float r39647 = 1.7007616628281973e+81;
        bool r39648 = r39621 <= r39647;
        float r39649 = r39635 * r39626;
        float r39650 = r39649 * r39629;
        float r39651 = r39637 - r39650;
        float r39652 = sqrt(r39651);
        float r39653 = r39624 - r39652;
        float r39654 = r39653 / r39645;
        float r39655 = r39624 / r39626;
        float r39656 = r39648 ? r39654 : r39655;
        float r39657 = r39633 ? r39646 : r39656;
        float r39658 = r39623 ? r39631 : r39657;
        return r39658;
}

double f_od(double a, double b, double c) {
        double r39659 = b;
        double r39660 = -5.018034098196628e+28;
        bool r39661 = r39659 <= r39660;
        double r39662 = -r39659;
        double r39663 = r39662 + r39659;
        double r39664 = a;
        double r39665 = r39664 + r39664;
        double r39666 = r39663 / r39665;
        double r39667 = c;
        double r39668 = r39667 / r39659;
        double r39669 = r39666 - r39668;
        double r39670 = -3.546490195958238e-104;
        bool r39671 = r39659 <= r39670;
        double r39672 = r39667 * r39664;
        double r39673 = 4;
        double r39674 = r39672 * r39673;
        double r39675 = r39659 * r39659;
        double r39676 = r39664 * r39667;
        double r39677 = r39673 * r39676;
        double r39678 = r39675 - r39677;
        double r39679 = sqrt(r39678);
        double r39680 = r39662 + r39679;
        double r39681 = r39674 / r39680;
        double r39682 = 2;
        double r39683 = r39682 * r39664;
        double r39684 = r39681 / r39683;
        double r39685 = 1.7007616628281973e+81;
        bool r39686 = r39659 <= r39685;
        double r39687 = r39673 * r39664;
        double r39688 = r39687 * r39667;
        double r39689 = r39675 - r39688;
        double r39690 = sqrt(r39689);
        double r39691 = r39662 - r39690;
        double r39692 = r39691 / r39683;
        double r39693 = r39662 / r39664;
        double r39694 = r39686 ? r39692 : r39693;
        double r39695 = r39671 ? r39684 : r39694;
        double r39696 = r39661 ? r39669 : r39695;
        return r39696;
}

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 r39697, r39698, r39699, r39700, r39701, r39702, r39703, r39704, r39705, r39706, r39707, r39708, r39709, r39710;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2704);
        mpfr_init(r39697);
        mpfr_init(r39698);
        mpfr_init(r39699);
        mpfr_init_set_str(r39700, "4", 10, MPFR_RNDN);
        mpfr_init(r39701);
        mpfr_init(r39702);
        mpfr_init(r39703);
        mpfr_init(r39704);
        mpfr_init(r39705);
        mpfr_init(r39706);
        mpfr_init(r39707);
        mpfr_init_set_str(r39708, "2", 10, MPFR_RNDN);
        mpfr_init(r39709);
        mpfr_init(r39710);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39697, b, MPFR_RNDN);
        mpfr_neg(r39698, r39697, MPFR_RNDN);
        mpfr_mul(r39699, r39697, r39697, MPFR_RNDN);
        ;
        mpfr_set_d(r39701, a, MPFR_RNDN);
        mpfr_set_d(r39702, c, MPFR_RNDN);
        mpfr_mul(r39703, r39701, r39702, MPFR_RNDN);
        mpfr_mul(r39704, r39700, r39703, MPFR_RNDN);
        mpfr_sub(r39705, r39699, r39704, MPFR_RNDN);
        mpfr_sqrt(r39706, r39705, MPFR_RNDN);
        mpfr_sub(r39707, r39698, r39706, MPFR_RNDN);
        ;
        mpfr_mul(r39709, r39708, r39701, MPFR_RNDN);
        mpfr_div(r39710, r39707, r39709, MPFR_RNDN);
        return mpfr_get_d(r39710, MPFR_RNDN);
}

static mpfr_t r39711, r39712, r39713, r39714, r39715, r39716, r39717, r39718, r39719, r39720, r39721, r39722, r39723, r39724, r39725, r39726, r39727, r39728, r39729, r39730, r39731, r39732, r39733, r39734, r39735, r39736, r39737, r39738, r39739, r39740, r39741, r39742, r39743, r39744, r39745, r39746, r39747, r39748;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2704);
        mpfr_init(r39711);
        mpfr_init_set_str(r39712, "-5.018034098196628e+28", 10, MPFR_RNDN);
        mpfr_init(r39713);
        mpfr_init(r39714);
        mpfr_init(r39715);
        mpfr_init(r39716);
        mpfr_init(r39717);
        mpfr_init(r39718);
        mpfr_init(r39719);
        mpfr_init(r39720);
        mpfr_init(r39721);
        mpfr_init_set_str(r39722, "-3.546490195958238e-104", 10, MPFR_RNDN);
        mpfr_init(r39723);
        mpfr_init(r39724);
        mpfr_init_set_str(r39725, "4", 10, MPFR_RNDN);
        mpfr_init(r39726);
        mpfr_init(r39727);
        mpfr_init(r39728);
        mpfr_init(r39729);
        mpfr_init(r39730);
        mpfr_init(r39731);
        mpfr_init(r39732);
        mpfr_init(r39733);
        mpfr_init_set_str(r39734, "2", 10, MPFR_RNDN);
        mpfr_init(r39735);
        mpfr_init(r39736);
        mpfr_init_set_str(r39737, "1.7007616628281973e+81", 10, MPFR_RNDN);
        mpfr_init(r39738);
        mpfr_init(r39739);
        mpfr_init(r39740);
        mpfr_init(r39741);
        mpfr_init(r39742);
        mpfr_init(r39743);
        mpfr_init(r39744);
        mpfr_init(r39745);
        mpfr_init(r39746);
        mpfr_init(r39747);
        mpfr_init(r39748);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r39711, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39713, mpfr_cmp(r39711, r39712) <= 0, MPFR_RNDN);
        mpfr_neg(r39714, r39711, MPFR_RNDN);
        mpfr_add(r39715, r39714, r39711, MPFR_RNDN);
        mpfr_set_d(r39716, a, MPFR_RNDN);
        mpfr_add(r39717, r39716, r39716, MPFR_RNDN);
        mpfr_div(r39718, r39715, r39717, MPFR_RNDN);
        mpfr_set_d(r39719, c, MPFR_RNDN);
        mpfr_div(r39720, r39719, r39711, MPFR_RNDN);
        mpfr_sub(r39721, r39718, r39720, MPFR_RNDN);
        ;
        mpfr_set_si(r39723, mpfr_cmp(r39711, r39722) <= 0, MPFR_RNDN);
        mpfr_mul(r39724, r39719, r39716, MPFR_RNDN);
        ;
        mpfr_mul(r39726, r39724, r39725, MPFR_RNDN);
        mpfr_mul(r39727, r39711, r39711, MPFR_RNDN);
        mpfr_mul(r39728, r39716, r39719, MPFR_RNDN);
        mpfr_mul(r39729, r39725, r39728, MPFR_RNDN);
        mpfr_sub(r39730, r39727, r39729, MPFR_RNDN);
        mpfr_sqrt(r39731, r39730, MPFR_RNDN);
        mpfr_add(r39732, r39714, r39731, MPFR_RNDN);
        mpfr_div(r39733, r39726, r39732, MPFR_RNDN);
        ;
        mpfr_mul(r39735, r39734, r39716, MPFR_RNDN);
        mpfr_div(r39736, r39733, r39735, MPFR_RNDN);
        ;
        mpfr_set_si(r39738, mpfr_cmp(r39711, r39737) <= 0, MPFR_RNDN);
        mpfr_mul(r39739, r39725, r39716, MPFR_RNDN);
        mpfr_mul(r39740, r39739, r39719, MPFR_RNDN);
        mpfr_sub(r39741, r39727, r39740, MPFR_RNDN);
        mpfr_sqrt(r39742, r39741, MPFR_RNDN);
        mpfr_sub(r39743, r39714, r39742, MPFR_RNDN);
        mpfr_div(r39744, r39743, r39735, MPFR_RNDN);
        mpfr_div(r39745, r39714, r39716, MPFR_RNDN);
        if (mpfr_get_si(r39738, MPFR_RNDN)) { mpfr_set(r39746, r39744, MPFR_RNDN); } else { mpfr_set(r39746, r39745, MPFR_RNDN); };
        if (mpfr_get_si(r39723, MPFR_RNDN)) { mpfr_set(r39747, r39736, MPFR_RNDN); } else { mpfr_set(r39747, r39746, MPFR_RNDN); };
        if (mpfr_get_si(r39713, MPFR_RNDN)) { mpfr_set(r39748, r39721, MPFR_RNDN); } else { mpfr_set(r39748, r39747, MPFR_RNDN); };
        return mpfr_get_d(r39748, MPFR_RNDN);
}

static mpfr_t r39749, r39750, r39751, r39752, r39753, r39754, r39755, r39756, r39757, r39758, r39759, r39760, r39761, r39762, r39763, r39764, r39765, r39766, r39767, r39768, r39769, r39770, r39771, r39772, r39773, r39774, r39775, r39776, r39777, r39778, r39779, r39780, r39781, r39782, r39783, r39784, r39785, r39786;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2704);
        mpfr_init(r39749);
        mpfr_init_set_str(r39750, "-5.018034098196628e+28", 10, MPFR_RNDN);
        mpfr_init(r39751);
        mpfr_init(r39752);
        mpfr_init(r39753);
        mpfr_init(r39754);
        mpfr_init(r39755);
        mpfr_init(r39756);
        mpfr_init(r39757);
        mpfr_init(r39758);
        mpfr_init(r39759);
        mpfr_init_set_str(r39760, "-3.546490195958238e-104", 10, MPFR_RNDN);
        mpfr_init(r39761);
        mpfr_init(r39762);
        mpfr_init_set_str(r39763, "4", 10, MPFR_RNDN);
        mpfr_init(r39764);
        mpfr_init(r39765);
        mpfr_init(r39766);
        mpfr_init(r39767);
        mpfr_init(r39768);
        mpfr_init(r39769);
        mpfr_init(r39770);
        mpfr_init(r39771);
        mpfr_init_set_str(r39772, "2", 10, MPFR_RNDN);
        mpfr_init(r39773);
        mpfr_init(r39774);
        mpfr_init_set_str(r39775, "1.7007616628281973e+81", 10, MPFR_RNDN);
        mpfr_init(r39776);
        mpfr_init(r39777);
        mpfr_init(r39778);
        mpfr_init(r39779);
        mpfr_init(r39780);
        mpfr_init(r39781);
        mpfr_init(r39782);
        mpfr_init(r39783);
        mpfr_init(r39784);
        mpfr_init(r39785);
        mpfr_init(r39786);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39749, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39751, mpfr_cmp(r39749, r39750) <= 0, MPFR_RNDN);
        mpfr_neg(r39752, r39749, MPFR_RNDN);
        mpfr_add(r39753, r39752, r39749, MPFR_RNDN);
        mpfr_set_d(r39754, a, MPFR_RNDN);
        mpfr_add(r39755, r39754, r39754, MPFR_RNDN);
        mpfr_div(r39756, r39753, r39755, MPFR_RNDN);
        mpfr_set_d(r39757, c, MPFR_RNDN);
        mpfr_div(r39758, r39757, r39749, MPFR_RNDN);
        mpfr_sub(r39759, r39756, r39758, MPFR_RNDN);
        ;
        mpfr_set_si(r39761, mpfr_cmp(r39749, r39760) <= 0, MPFR_RNDN);
        mpfr_mul(r39762, r39757, r39754, MPFR_RNDN);
        ;
        mpfr_mul(r39764, r39762, r39763, MPFR_RNDN);
        mpfr_mul(r39765, r39749, r39749, MPFR_RNDN);
        mpfr_mul(r39766, r39754, r39757, MPFR_RNDN);
        mpfr_mul(r39767, r39763, r39766, MPFR_RNDN);
        mpfr_sub(r39768, r39765, r39767, MPFR_RNDN);
        mpfr_sqrt(r39769, r39768, MPFR_RNDN);
        mpfr_add(r39770, r39752, r39769, MPFR_RNDN);
        mpfr_div(r39771, r39764, r39770, MPFR_RNDN);
        ;
        mpfr_mul(r39773, r39772, r39754, MPFR_RNDN);
        mpfr_div(r39774, r39771, r39773, MPFR_RNDN);
        ;
        mpfr_set_si(r39776, mpfr_cmp(r39749, r39775) <= 0, MPFR_RNDN);
        mpfr_mul(r39777, r39763, r39754, MPFR_RNDN);
        mpfr_mul(r39778, r39777, r39757, MPFR_RNDN);
        mpfr_sub(r39779, r39765, r39778, MPFR_RNDN);
        mpfr_sqrt(r39780, r39779, MPFR_RNDN);
        mpfr_sub(r39781, r39752, r39780, MPFR_RNDN);
        mpfr_div(r39782, r39781, r39773, MPFR_RNDN);
        mpfr_div(r39783, r39752, r39754, MPFR_RNDN);
        if (mpfr_get_si(r39776, MPFR_RNDN)) { mpfr_set(r39784, r39782, MPFR_RNDN); } else { mpfr_set(r39784, r39783, MPFR_RNDN); };
        if (mpfr_get_si(r39761, MPFR_RNDN)) { mpfr_set(r39785, r39774, MPFR_RNDN); } else { mpfr_set(r39785, r39784, MPFR_RNDN); };
        if (mpfr_get_si(r39751, MPFR_RNDN)) { mpfr_set(r39786, r39759, MPFR_RNDN); } else { mpfr_set(r39786, r39785, MPFR_RNDN); };
        return mpfr_get_d(r39786, MPFR_RNDN);
}

