#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 r39625 = b;
        float r39626 = -r39625;
        float r39627 = r39625 * r39625;
        float r39628 = 4;
        float r39629 = a;
        float r39630 = c;
        float r39631 = r39629 * r39630;
        float r39632 = r39628 * r39631;
        float r39633 = r39627 - r39632;
        float r39634 = sqrt(r39633);
        float r39635 = r39626 - r39634;
        float r39636 = 2;
        float r39637 = r39636 * r39629;
        float r39638 = r39635 / r39637;
        return r39638;
}

double f_id(double a, double b, double c) {
        double r39639 = b;
        double r39640 = -r39639;
        double r39641 = r39639 * r39639;
        double r39642 = 4;
        double r39643 = a;
        double r39644 = c;
        double r39645 = r39643 * r39644;
        double r39646 = r39642 * r39645;
        double r39647 = r39641 - r39646;
        double r39648 = sqrt(r39647);
        double r39649 = r39640 - r39648;
        double r39650 = 2;
        double r39651 = r39650 * r39643;
        double r39652 = r39649 / r39651;
        return r39652;
}


double f_of(float a, float b, float c) {
        float r39653 = b;
        float r39654 = -1.2412432804243813e+32;
        bool r39655 = r39653 <= r39654;
        float r39656 = -r39653;
        float r39657 = r39656 + r39653;
        float r39658 = a;
        float r39659 = r39658 + r39658;
        float r39660 = r39657 / r39659;
        float r39661 = c;
        float r39662 = r39661 / r39653;
        float r39663 = r39660 - r39662;
        float r39664 = -3.585471823497232e-104;
        bool r39665 = r39653 <= r39664;
        float r39666 = r39661 * r39658;
        float r39667 = 4;
        float r39668 = r39666 * r39667;
        float r39669 = r39653 * r39653;
        float r39670 = r39658 * r39661;
        float r39671 = r39667 * r39670;
        float r39672 = r39669 - r39671;
        float r39673 = sqrt(r39672);
        float r39674 = r39656 + r39673;
        float r39675 = r39668 / r39674;
        float r39676 = 2;
        float r39677 = r39676 * r39658;
        float r39678 = r39675 / r39677;
        float r39679 = 1.6937529134374811e+81;
        bool r39680 = r39653 <= r39679;
        float r39681 = r39667 * r39658;
        float r39682 = r39681 * r39661;
        float r39683 = r39669 - r39682;
        float r39684 = sqrt(r39683);
        float r39685 = r39656 - r39684;
        float r39686 = r39685 / r39677;
        float r39687 = r39656 / r39658;
        float r39688 = r39680 ? r39686 : r39687;
        float r39689 = r39665 ? r39678 : r39688;
        float r39690 = r39655 ? r39663 : r39689;
        return r39690;
}

double f_od(double a, double b, double c) {
        double r39691 = b;
        double r39692 = -1.2412432804243813e+32;
        bool r39693 = r39691 <= r39692;
        double r39694 = -r39691;
        double r39695 = r39694 + r39691;
        double r39696 = a;
        double r39697 = r39696 + r39696;
        double r39698 = r39695 / r39697;
        double r39699 = c;
        double r39700 = r39699 / r39691;
        double r39701 = r39698 - r39700;
        double r39702 = -3.585471823497232e-104;
        bool r39703 = r39691 <= r39702;
        double r39704 = r39699 * r39696;
        double r39705 = 4;
        double r39706 = r39704 * r39705;
        double r39707 = r39691 * r39691;
        double r39708 = r39696 * r39699;
        double r39709 = r39705 * r39708;
        double r39710 = r39707 - r39709;
        double r39711 = sqrt(r39710);
        double r39712 = r39694 + r39711;
        double r39713 = r39706 / r39712;
        double r39714 = 2;
        double r39715 = r39714 * r39696;
        double r39716 = r39713 / r39715;
        double r39717 = 1.6937529134374811e+81;
        bool r39718 = r39691 <= r39717;
        double r39719 = r39705 * r39696;
        double r39720 = r39719 * r39699;
        double r39721 = r39707 - r39720;
        double r39722 = sqrt(r39721);
        double r39723 = r39694 - r39722;
        double r39724 = r39723 / r39715;
        double r39725 = r39694 / r39696;
        double r39726 = r39718 ? r39724 : r39725;
        double r39727 = r39703 ? r39716 : r39726;
        double r39728 = r39693 ? r39701 : r39727;
        return r39728;
}

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 r39729, r39730, r39731, r39732, r39733, r39734, r39735, r39736, r39737, r39738, r39739, r39740, r39741, r39742;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3216);
        mpfr_init(r39729);
        mpfr_init(r39730);
        mpfr_init(r39731);
        mpfr_init_set_str(r39732, "4", 10, MPFR_RNDN);
        mpfr_init(r39733);
        mpfr_init(r39734);
        mpfr_init(r39735);
        mpfr_init(r39736);
        mpfr_init(r39737);
        mpfr_init(r39738);
        mpfr_init(r39739);
        mpfr_init_set_str(r39740, "2", 10, MPFR_RNDN);
        mpfr_init(r39741);
        mpfr_init(r39742);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39729, b, MPFR_RNDN);
        mpfr_neg(r39730, r39729, MPFR_RNDN);
        mpfr_mul(r39731, r39729, r39729, MPFR_RNDN);
        ;
        mpfr_set_d(r39733, a, MPFR_RNDN);
        mpfr_set_d(r39734, c, MPFR_RNDN);
        mpfr_mul(r39735, r39733, r39734, MPFR_RNDN);
        mpfr_mul(r39736, r39732, r39735, MPFR_RNDN);
        mpfr_sub(r39737, r39731, r39736, MPFR_RNDN);
        mpfr_sqrt(r39738, r39737, MPFR_RNDN);
        mpfr_sub(r39739, r39730, r39738, MPFR_RNDN);
        ;
        mpfr_mul(r39741, r39740, r39733, MPFR_RNDN);
        mpfr_div(r39742, r39739, r39741, MPFR_RNDN);
        return mpfr_get_d(r39742, MPFR_RNDN);
}

static mpfr_t r39743, r39744, r39745, r39746, r39747, r39748, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3216);
        mpfr_init(r39743);
        mpfr_init_set_str(r39744, "-1.2412432804243813e+32", 10, MPFR_RNDN);
        mpfr_init(r39745);
        mpfr_init(r39746);
        mpfr_init(r39747);
        mpfr_init(r39748);
        mpfr_init(r39749);
        mpfr_init(r39750);
        mpfr_init(r39751);
        mpfr_init(r39752);
        mpfr_init(r39753);
        mpfr_init_set_str(r39754, "-3.585471823497232e-104", 10, MPFR_RNDN);
        mpfr_init(r39755);
        mpfr_init(r39756);
        mpfr_init_set_str(r39757, "4", 10, MPFR_RNDN);
        mpfr_init(r39758);
        mpfr_init(r39759);
        mpfr_init(r39760);
        mpfr_init(r39761);
        mpfr_init(r39762);
        mpfr_init(r39763);
        mpfr_init(r39764);
        mpfr_init(r39765);
        mpfr_init_set_str(r39766, "2", 10, MPFR_RNDN);
        mpfr_init(r39767);
        mpfr_init(r39768);
        mpfr_init_set_str(r39769, "1.6937529134374811e+81", 10, MPFR_RNDN);
        mpfr_init(r39770);
        mpfr_init(r39771);
        mpfr_init(r39772);
        mpfr_init(r39773);
        mpfr_init(r39774);
        mpfr_init(r39775);
        mpfr_init(r39776);
        mpfr_init(r39777);
        mpfr_init(r39778);
        mpfr_init(r39779);
        mpfr_init(r39780);
}

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

static mpfr_t r39781, r39782, r39783, r39784, r39785, r39786, r39787, r39788, r39789, r39790, r39791, r39792, r39793, r39794, r39795, r39796, r39797, r39798, r39799, r39800, r39801, r39802, r39803, r39804, r39805, r39806, r39807, r39808, r39809, r39810, r39811, r39812, r39813, r39814, r39815, r39816, r39817, r39818;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3216);
        mpfr_init(r39781);
        mpfr_init_set_str(r39782, "-1.2412432804243813e+32", 10, MPFR_RNDN);
        mpfr_init(r39783);
        mpfr_init(r39784);
        mpfr_init(r39785);
        mpfr_init(r39786);
        mpfr_init(r39787);
        mpfr_init(r39788);
        mpfr_init(r39789);
        mpfr_init(r39790);
        mpfr_init(r39791);
        mpfr_init_set_str(r39792, "-3.585471823497232e-104", 10, MPFR_RNDN);
        mpfr_init(r39793);
        mpfr_init(r39794);
        mpfr_init_set_str(r39795, "4", 10, MPFR_RNDN);
        mpfr_init(r39796);
        mpfr_init(r39797);
        mpfr_init(r39798);
        mpfr_init(r39799);
        mpfr_init(r39800);
        mpfr_init(r39801);
        mpfr_init(r39802);
        mpfr_init(r39803);
        mpfr_init_set_str(r39804, "2", 10, MPFR_RNDN);
        mpfr_init(r39805);
        mpfr_init(r39806);
        mpfr_init_set_str(r39807, "1.6937529134374811e+81", 10, MPFR_RNDN);
        mpfr_init(r39808);
        mpfr_init(r39809);
        mpfr_init(r39810);
        mpfr_init(r39811);
        mpfr_init(r39812);
        mpfr_init(r39813);
        mpfr_init(r39814);
        mpfr_init(r39815);
        mpfr_init(r39816);
        mpfr_init(r39817);
        mpfr_init(r39818);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39781, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39783, mpfr_cmp(r39781, r39782) <= 0, MPFR_RNDN);
        mpfr_neg(r39784, r39781, MPFR_RNDN);
        mpfr_add(r39785, r39784, r39781, MPFR_RNDN);
        mpfr_set_d(r39786, a, MPFR_RNDN);
        mpfr_add(r39787, r39786, r39786, MPFR_RNDN);
        mpfr_div(r39788, r39785, r39787, MPFR_RNDN);
        mpfr_set_d(r39789, c, MPFR_RNDN);
        mpfr_div(r39790, r39789, r39781, MPFR_RNDN);
        mpfr_sub(r39791, r39788, r39790, MPFR_RNDN);
        ;
        mpfr_set_si(r39793, mpfr_cmp(r39781, r39792) <= 0, MPFR_RNDN);
        mpfr_mul(r39794, r39789, r39786, MPFR_RNDN);
        ;
        mpfr_mul(r39796, r39794, r39795, MPFR_RNDN);
        mpfr_mul(r39797, r39781, r39781, MPFR_RNDN);
        mpfr_mul(r39798, r39786, r39789, MPFR_RNDN);
        mpfr_mul(r39799, r39795, r39798, MPFR_RNDN);
        mpfr_sub(r39800, r39797, r39799, MPFR_RNDN);
        mpfr_sqrt(r39801, r39800, MPFR_RNDN);
        mpfr_add(r39802, r39784, r39801, MPFR_RNDN);
        mpfr_div(r39803, r39796, r39802, MPFR_RNDN);
        ;
        mpfr_mul(r39805, r39804, r39786, MPFR_RNDN);
        mpfr_div(r39806, r39803, r39805, MPFR_RNDN);
        ;
        mpfr_set_si(r39808, mpfr_cmp(r39781, r39807) <= 0, MPFR_RNDN);
        mpfr_mul(r39809, r39795, r39786, MPFR_RNDN);
        mpfr_mul(r39810, r39809, r39789, MPFR_RNDN);
        mpfr_sub(r39811, r39797, r39810, MPFR_RNDN);
        mpfr_sqrt(r39812, r39811, MPFR_RNDN);
        mpfr_sub(r39813, r39784, r39812, MPFR_RNDN);
        mpfr_div(r39814, r39813, r39805, MPFR_RNDN);
        mpfr_div(r39815, r39784, r39786, MPFR_RNDN);
        if (mpfr_get_si(r39808, MPFR_RNDN)) { mpfr_set(r39816, r39814, MPFR_RNDN); } else { mpfr_set(r39816, r39815, MPFR_RNDN); };
        if (mpfr_get_si(r39793, MPFR_RNDN)) { mpfr_set(r39817, r39806, MPFR_RNDN); } else { mpfr_set(r39817, r39816, MPFR_RNDN); };
        if (mpfr_get_si(r39783, MPFR_RNDN)) { mpfr_set(r39818, r39791, MPFR_RNDN); } else { mpfr_set(r39818, r39817, MPFR_RNDN); };
        return mpfr_get_d(r39818, MPFR_RNDN);
}

