#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 r18624 = b;
        float r18625 = -r18624;
        float r18626 = r18624 * r18624;
        float r18627 = 4.0f;
        float r18628 = a;
        float r18629 = r18627 * r18628;
        float r18630 = c;
        float r18631 = r18629 * r18630;
        float r18632 = r18626 - r18631;
        float r18633 = sqrt(r18632);
        float r18634 = r18625 + r18633;
        float r18635 = 2.0f;
        float r18636 = r18635 * r18628;
        float r18637 = r18634 / r18636;
        return r18637;
}

double f_id(double a, double b, double c) {
        double r18638 = b;
        double r18639 = -r18638;
        double r18640 = r18638 * r18638;
        double r18641 = 4.0;
        double r18642 = a;
        double r18643 = r18641 * r18642;
        double r18644 = c;
        double r18645 = r18643 * r18644;
        double r18646 = r18640 - r18645;
        double r18647 = sqrt(r18646);
        double r18648 = r18639 + r18647;
        double r18649 = 2.0;
        double r18650 = r18649 * r18642;
        double r18651 = r18648 / r18650;
        return r18651;
}


double f_of(float a, float b, float c) {
        float r18652 = b;
        float r18653 = -5.8926960145992884e+113f;
        bool r18654 = r18652 <= r18653;
        float r18655 = c;
        float r18656 = r18655 / r18652;
        float r18657 = a;
        float r18658 = r18652 / r18657;
        float r18659 = r18656 - r18658;
        float r18660 = 9.08997095700831e-165f;
        bool r18661 = r18652 <= r18660;
        float r18662 = -r18652;
        float r18663 = r18652 * r18652;
        float r18664 = 4.0f;
        float r18665 = r18664 * r18657;
        float r18666 = r18665 * r18655;
        float r18667 = r18663 - r18666;
        float r18668 = sqrt(r18667);
        float r18669 = r18662 + r18668;
        float r18670 = 2.0f;
        float r18671 = r18670 * r18657;
        float r18672 = r18669 / r18671;
        float r18673 = 2.2608845850534584e+29f;
        bool r18674 = r18652 <= r18673;
        float r18675 = r18662 - r18668;
        float r18676 = r18666 / r18675;
        float r18677 = r18676 / r18671;
        float r18678 = -2.0f;
        float r18679 = r18678 / r18670;
        float r18680 = r18656 * r18679;
        float r18681 = r18674 ? r18677 : r18680;
        float r18682 = r18661 ? r18672 : r18681;
        float r18683 = r18654 ? r18659 : r18682;
        return r18683;
}

double f_od(double a, double b, double c) {
        double r18684 = b;
        double r18685 = -5.8926960145992884e+113;
        bool r18686 = r18684 <= r18685;
        double r18687 = c;
        double r18688 = r18687 / r18684;
        double r18689 = a;
        double r18690 = r18684 / r18689;
        double r18691 = r18688 - r18690;
        double r18692 = 9.08997095700831e-165;
        bool r18693 = r18684 <= r18692;
        double r18694 = -r18684;
        double r18695 = r18684 * r18684;
        double r18696 = 4.0;
        double r18697 = r18696 * r18689;
        double r18698 = r18697 * r18687;
        double r18699 = r18695 - r18698;
        double r18700 = sqrt(r18699);
        double r18701 = r18694 + r18700;
        double r18702 = 2.0;
        double r18703 = r18702 * r18689;
        double r18704 = r18701 / r18703;
        double r18705 = 2.2608845850534584e+29;
        bool r18706 = r18684 <= r18705;
        double r18707 = r18694 - r18700;
        double r18708 = r18698 / r18707;
        double r18709 = r18708 / r18703;
        double r18710 = -2.0;
        double r18711 = r18710 / r18702;
        double r18712 = r18688 * r18711;
        double r18713 = r18706 ? r18709 : r18712;
        double r18714 = r18693 ? r18704 : r18713;
        double r18715 = r18686 ? r18691 : r18714;
        return r18715;
}

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 r18716, r18717, r18718, r18719, r18720, r18721, r18722, r18723, r18724, r18725, r18726, r18727, r18728, r18729;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r18716);
        mpfr_init(r18717);
        mpfr_init(r18718);
        mpfr_init_set_str(r18719, "4", 10, MPFR_RNDN);
        mpfr_init(r18720);
        mpfr_init(r18721);
        mpfr_init(r18722);
        mpfr_init(r18723);
        mpfr_init(r18724);
        mpfr_init(r18725);
        mpfr_init(r18726);
        mpfr_init_set_str(r18727, "2", 10, MPFR_RNDN);
        mpfr_init(r18728);
        mpfr_init(r18729);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r18716, b, MPFR_RNDN);
        mpfr_neg(r18717, r18716, MPFR_RNDN);
        mpfr_sqr(r18718, r18716, MPFR_RNDN);
        ;
        mpfr_set_d(r18720, a, MPFR_RNDN);
        mpfr_mul(r18721, r18719, r18720, MPFR_RNDN);
        mpfr_set_d(r18722, c, MPFR_RNDN);
        mpfr_mul(r18723, r18721, r18722, MPFR_RNDN);
        mpfr_sub(r18724, r18718, r18723, MPFR_RNDN);
        mpfr_sqrt(r18725, r18724, MPFR_RNDN);
        mpfr_add(r18726, r18717, r18725, MPFR_RNDN);
        ;
        mpfr_mul(r18728, r18727, r18720, MPFR_RNDN);
        mpfr_div(r18729, r18726, r18728, MPFR_RNDN);
        return mpfr_get_d(r18729, MPFR_RNDN);
}

static mpfr_t r18730, r18731, r18732, r18733, r18734, r18735, r18736, r18737, r18738, r18739, r18740, r18741, r18742, r18743, r18744, r18745, r18746, r18747, r18748, r18749, r18750, r18751, r18752, r18753, r18754, r18755, r18756, r18757, r18758, r18759, r18760, r18761;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18730);
        mpfr_init_set_str(r18731, "-5.8926960145992884e+113", 10, MPFR_RNDN);
        mpfr_init(r18732);
        mpfr_init(r18733);
        mpfr_init(r18734);
        mpfr_init(r18735);
        mpfr_init(r18736);
        mpfr_init(r18737);
        mpfr_init_set_str(r18738, "9.08997095700831e-165", 10, MPFR_RNDN);
        mpfr_init(r18739);
        mpfr_init(r18740);
        mpfr_init(r18741);
        mpfr_init_set_str(r18742, "4", 10, MPFR_RNDN);
        mpfr_init(r18743);
        mpfr_init(r18744);
        mpfr_init(r18745);
        mpfr_init(r18746);
        mpfr_init(r18747);
        mpfr_init_set_str(r18748, "2", 10, MPFR_RNDN);
        mpfr_init(r18749);
        mpfr_init(r18750);
        mpfr_init_set_str(r18751, "2.2608845850534584e+29", 10, MPFR_RNDN);
        mpfr_init(r18752);
        mpfr_init(r18753);
        mpfr_init(r18754);
        mpfr_init(r18755);
        mpfr_init_set_str(r18756, "-2", 10, MPFR_RNDN);
        mpfr_init(r18757);
        mpfr_init(r18758);
        mpfr_init(r18759);
        mpfr_init(r18760);
        mpfr_init(r18761);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r18730, b, MPFR_RNDN);
        ;
        mpfr_set_si(r18732, mpfr_cmp(r18730, r18731) <= 0, MPFR_RNDN);
        mpfr_set_d(r18733, c, MPFR_RNDN);
        mpfr_div(r18734, r18733, r18730, MPFR_RNDN);
        mpfr_set_d(r18735, a, MPFR_RNDN);
        mpfr_div(r18736, r18730, r18735, MPFR_RNDN);
        mpfr_sub(r18737, r18734, r18736, MPFR_RNDN);
        ;
        mpfr_set_si(r18739, mpfr_cmp(r18730, r18738) <= 0, MPFR_RNDN);
        mpfr_neg(r18740, r18730, MPFR_RNDN);
        mpfr_sqr(r18741, r18730, MPFR_RNDN);
        ;
        mpfr_mul(r18743, r18742, r18735, MPFR_RNDN);
        mpfr_mul(r18744, r18743, r18733, MPFR_RNDN);
        mpfr_sub(r18745, r18741, r18744, MPFR_RNDN);
        mpfr_sqrt(r18746, r18745, MPFR_RNDN);
        mpfr_add(r18747, r18740, r18746, MPFR_RNDN);
        ;
        mpfr_mul(r18749, r18748, r18735, MPFR_RNDN);
        mpfr_div(r18750, r18747, r18749, MPFR_RNDN);
        ;
        mpfr_set_si(r18752, mpfr_cmp(r18730, r18751) <= 0, MPFR_RNDN);
        mpfr_sub(r18753, r18740, r18746, MPFR_RNDN);
        mpfr_div(r18754, r18744, r18753, MPFR_RNDN);
        mpfr_div(r18755, r18754, r18749, MPFR_RNDN);
        ;
        mpfr_div(r18757, r18756, r18748, MPFR_RNDN);
        mpfr_mul(r18758, r18734, r18757, MPFR_RNDN);
        if (mpfr_get_si(r18752, MPFR_RNDN)) { mpfr_set(r18759, r18755, MPFR_RNDN); } else { mpfr_set(r18759, r18758, MPFR_RNDN); };
        if (mpfr_get_si(r18739, MPFR_RNDN)) { mpfr_set(r18760, r18750, MPFR_RNDN); } else { mpfr_set(r18760, r18759, MPFR_RNDN); };
        if (mpfr_get_si(r18732, MPFR_RNDN)) { mpfr_set(r18761, r18737, MPFR_RNDN); } else { mpfr_set(r18761, r18760, MPFR_RNDN); };
        return mpfr_get_d(r18761, MPFR_RNDN);
}

static mpfr_t r18762, r18763, r18764, r18765, r18766, r18767, r18768, r18769, r18770, r18771, r18772, r18773, r18774, r18775, r18776, r18777, r18778, r18779, r18780, r18781, r18782, r18783, r18784, r18785, r18786, r18787, r18788, r18789, r18790, r18791, r18792, r18793;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18762);
        mpfr_init_set_str(r18763, "-5.8926960145992884e+113", 10, MPFR_RNDN);
        mpfr_init(r18764);
        mpfr_init(r18765);
        mpfr_init(r18766);
        mpfr_init(r18767);
        mpfr_init(r18768);
        mpfr_init(r18769);
        mpfr_init_set_str(r18770, "9.08997095700831e-165", 10, MPFR_RNDN);
        mpfr_init(r18771);
        mpfr_init(r18772);
        mpfr_init(r18773);
        mpfr_init_set_str(r18774, "4", 10, MPFR_RNDN);
        mpfr_init(r18775);
        mpfr_init(r18776);
        mpfr_init(r18777);
        mpfr_init(r18778);
        mpfr_init(r18779);
        mpfr_init_set_str(r18780, "2", 10, MPFR_RNDN);
        mpfr_init(r18781);
        mpfr_init(r18782);
        mpfr_init_set_str(r18783, "2.2608845850534584e+29", 10, MPFR_RNDN);
        mpfr_init(r18784);
        mpfr_init(r18785);
        mpfr_init(r18786);
        mpfr_init(r18787);
        mpfr_init_set_str(r18788, "-2", 10, MPFR_RNDN);
        mpfr_init(r18789);
        mpfr_init(r18790);
        mpfr_init(r18791);
        mpfr_init(r18792);
        mpfr_init(r18793);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r18762, b, MPFR_RNDN);
        ;
        mpfr_set_si(r18764, mpfr_cmp(r18762, r18763) <= 0, MPFR_RNDN);
        mpfr_set_d(r18765, c, MPFR_RNDN);
        mpfr_div(r18766, r18765, r18762, MPFR_RNDN);
        mpfr_set_d(r18767, a, MPFR_RNDN);
        mpfr_div(r18768, r18762, r18767, MPFR_RNDN);
        mpfr_sub(r18769, r18766, r18768, MPFR_RNDN);
        ;
        mpfr_set_si(r18771, mpfr_cmp(r18762, r18770) <= 0, MPFR_RNDN);
        mpfr_neg(r18772, r18762, MPFR_RNDN);
        mpfr_sqr(r18773, r18762, MPFR_RNDN);
        ;
        mpfr_mul(r18775, r18774, r18767, MPFR_RNDN);
        mpfr_mul(r18776, r18775, r18765, MPFR_RNDN);
        mpfr_sub(r18777, r18773, r18776, MPFR_RNDN);
        mpfr_sqrt(r18778, r18777, MPFR_RNDN);
        mpfr_add(r18779, r18772, r18778, MPFR_RNDN);
        ;
        mpfr_mul(r18781, r18780, r18767, MPFR_RNDN);
        mpfr_div(r18782, r18779, r18781, MPFR_RNDN);
        ;
        mpfr_set_si(r18784, mpfr_cmp(r18762, r18783) <= 0, MPFR_RNDN);
        mpfr_sub(r18785, r18772, r18778, MPFR_RNDN);
        mpfr_div(r18786, r18776, r18785, MPFR_RNDN);
        mpfr_div(r18787, r18786, r18781, MPFR_RNDN);
        ;
        mpfr_div(r18789, r18788, r18780, MPFR_RNDN);
        mpfr_mul(r18790, r18766, r18789, MPFR_RNDN);
        if (mpfr_get_si(r18784, MPFR_RNDN)) { mpfr_set(r18791, r18787, MPFR_RNDN); } else { mpfr_set(r18791, r18790, MPFR_RNDN); };
        if (mpfr_get_si(r18771, MPFR_RNDN)) { mpfr_set(r18792, r18782, MPFR_RNDN); } else { mpfr_set(r18792, r18791, MPFR_RNDN); };
        if (mpfr_get_si(r18764, MPFR_RNDN)) { mpfr_set(r18793, r18769, MPFR_RNDN); } else { mpfr_set(r18793, r18792, MPFR_RNDN); };
        return mpfr_get_d(r18793, MPFR_RNDN);
}

