#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 r27521 = b;
        float r27522 = -r27521;
        float r27523 = r27521 * r27521;
        float r27524 = 4;
        float r27525 = a;
        float r27526 = r27524 * r27525;
        float r27527 = c;
        float r27528 = r27526 * r27527;
        float r27529 = r27523 - r27528;
        float r27530 = sqrt(r27529);
        float r27531 = r27522 + r27530;
        float r27532 = 2;
        float r27533 = r27532 * r27525;
        float r27534 = r27531 / r27533;
        return r27534;
}

double f_id(double a, double b, double c) {
        double r27535 = b;
        double r27536 = -r27535;
        double r27537 = r27535 * r27535;
        double r27538 = 4;
        double r27539 = a;
        double r27540 = r27538 * r27539;
        double r27541 = c;
        double r27542 = r27540 * r27541;
        double r27543 = r27537 - r27542;
        double r27544 = sqrt(r27543);
        double r27545 = r27536 + r27544;
        double r27546 = 2;
        double r27547 = r27546 * r27539;
        double r27548 = r27545 / r27547;
        return r27548;
}


double f_of(float a, float b, float c) {
        float r27549 = b;
        float r27550 = -1.3026234282048264e+154;
        bool r27551 = r27549 <= r27550;
        float r27552 = a;
        float r27553 = r27549 / r27552;
        float r27554 = -r27553;
        float r27555 = 1.890842606323641e-157;
        bool r27556 = r27549 <= r27555;
        float r27557 = -r27549;
        float r27558 = r27549 * r27549;
        float r27559 = c;
        float r27560 = 4;
        float r27561 = r27560 * r27552;
        float r27562 = r27559 * r27561;
        float r27563 = r27558 - r27562;
        float r27564 = sqrt(r27563);
        float r27565 = r27557 + r27564;
        float r27566 = 2;
        float r27567 = r27566 * r27552;
        float r27568 = r27565 / r27567;
        float r27569 = 3.3748231022183743e-25;
        bool r27570 = r27549 <= r27569;
        float r27571 = r27557 - r27564;
        float r27572 = r27562 / r27571;
        float r27573 = r27572 / r27567;
        float r27574 = -r27559;
        float r27575 = r27574 / r27549;
        float r27576 = r27570 ? r27573 : r27575;
        float r27577 = r27556 ? r27568 : r27576;
        float r27578 = r27551 ? r27554 : r27577;
        return r27578;
}

double f_od(double a, double b, double c) {
        double r27579 = b;
        double r27580 = -1.3026234282048264e+154;
        bool r27581 = r27579 <= r27580;
        double r27582 = a;
        double r27583 = r27579 / r27582;
        double r27584 = -r27583;
        double r27585 = 1.890842606323641e-157;
        bool r27586 = r27579 <= r27585;
        double r27587 = -r27579;
        double r27588 = r27579 * r27579;
        double r27589 = c;
        double r27590 = 4;
        double r27591 = r27590 * r27582;
        double r27592 = r27589 * r27591;
        double r27593 = r27588 - r27592;
        double r27594 = sqrt(r27593);
        double r27595 = r27587 + r27594;
        double r27596 = 2;
        double r27597 = r27596 * r27582;
        double r27598 = r27595 / r27597;
        double r27599 = 3.3748231022183743e-25;
        bool r27600 = r27579 <= r27599;
        double r27601 = r27587 - r27594;
        double r27602 = r27592 / r27601;
        double r27603 = r27602 / r27597;
        double r27604 = -r27589;
        double r27605 = r27604 / r27579;
        double r27606 = r27600 ? r27603 : r27605;
        double r27607 = r27586 ? r27598 : r27606;
        double r27608 = r27581 ? r27584 : r27607;
        return r27608;
}

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 r27609, r27610, r27611, r27612, r27613, r27614, r27615, r27616, r27617, r27618, r27619, r27620, r27621, r27622;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27609);
        mpfr_init(r27610);
        mpfr_init(r27611);
        mpfr_init_set_str(r27612, "4", 10, MPFR_RNDN);
        mpfr_init(r27613);
        mpfr_init(r27614);
        mpfr_init(r27615);
        mpfr_init(r27616);
        mpfr_init(r27617);
        mpfr_init(r27618);
        mpfr_init(r27619);
        mpfr_init_set_str(r27620, "2", 10, MPFR_RNDN);
        mpfr_init(r27621);
        mpfr_init(r27622);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r27609, b, MPFR_RNDN);
        mpfr_neg(r27610, r27609, MPFR_RNDN);
        mpfr_mul(r27611, r27609, r27609, MPFR_RNDN);
        ;
        mpfr_set_d(r27613, a, MPFR_RNDN);
        mpfr_mul(r27614, r27612, r27613, MPFR_RNDN);
        mpfr_set_d(r27615, c, MPFR_RNDN);
        mpfr_mul(r27616, r27614, r27615, MPFR_RNDN);
        mpfr_sub(r27617, r27611, r27616, MPFR_RNDN);
        mpfr_sqrt(r27618, r27617, MPFR_RNDN);
        mpfr_add(r27619, r27610, r27618, MPFR_RNDN);
        ;
        mpfr_mul(r27621, r27620, r27613, MPFR_RNDN);
        mpfr_div(r27622, r27619, r27621, MPFR_RNDN);
        return mpfr_get_d(r27622, MPFR_RNDN);
}

static mpfr_t r27623, r27624, r27625, r27626, r27627, r27628, r27629, r27630, r27631, r27632, r27633, r27634, r27635, r27636, r27637, r27638, r27639, r27640, r27641, r27642, r27643, r27644, r27645, r27646, r27647, r27648, r27649, r27650, r27651, r27652;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27623);
        mpfr_init_set_str(r27624, "-1.3026234282048264e+154", 10, MPFR_RNDN);
        mpfr_init(r27625);
        mpfr_init(r27626);
        mpfr_init(r27627);
        mpfr_init(r27628);
        mpfr_init_set_str(r27629, "1.890842606323641e-157", 10, MPFR_RNDN);
        mpfr_init(r27630);
        mpfr_init(r27631);
        mpfr_init(r27632);
        mpfr_init(r27633);
        mpfr_init_set_str(r27634, "4", 10, MPFR_RNDN);
        mpfr_init(r27635);
        mpfr_init(r27636);
        mpfr_init(r27637);
        mpfr_init(r27638);
        mpfr_init(r27639);
        mpfr_init_set_str(r27640, "2", 10, MPFR_RNDN);
        mpfr_init(r27641);
        mpfr_init(r27642);
        mpfr_init_set_str(r27643, "3.3748231022183743e-25", 10, MPFR_RNDN);
        mpfr_init(r27644);
        mpfr_init(r27645);
        mpfr_init(r27646);
        mpfr_init(r27647);
        mpfr_init(r27648);
        mpfr_init(r27649);
        mpfr_init(r27650);
        mpfr_init(r27651);
        mpfr_init(r27652);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r27623, b, MPFR_RNDN);
        ;
        mpfr_set_si(r27625, mpfr_cmp(r27623, r27624) <= 0, MPFR_RNDN);
        mpfr_set_d(r27626, a, MPFR_RNDN);
        mpfr_div(r27627, r27623, r27626, MPFR_RNDN);
        mpfr_neg(r27628, r27627, MPFR_RNDN);
        ;
        mpfr_set_si(r27630, mpfr_cmp(r27623, r27629) <= 0, MPFR_RNDN);
        mpfr_neg(r27631, r27623, MPFR_RNDN);
        mpfr_mul(r27632, r27623, r27623, MPFR_RNDN);
        mpfr_set_d(r27633, c, MPFR_RNDN);
        ;
        mpfr_mul(r27635, r27634, r27626, MPFR_RNDN);
        mpfr_mul(r27636, r27633, r27635, MPFR_RNDN);
        mpfr_sub(r27637, r27632, r27636, MPFR_RNDN);
        mpfr_sqrt(r27638, r27637, MPFR_RNDN);
        mpfr_add(r27639, r27631, r27638, MPFR_RNDN);
        ;
        mpfr_mul(r27641, r27640, r27626, MPFR_RNDN);
        mpfr_div(r27642, r27639, r27641, MPFR_RNDN);
        ;
        mpfr_set_si(r27644, mpfr_cmp(r27623, r27643) <= 0, MPFR_RNDN);
        mpfr_sub(r27645, r27631, r27638, MPFR_RNDN);
        mpfr_div(r27646, r27636, r27645, MPFR_RNDN);
        mpfr_div(r27647, r27646, r27641, MPFR_RNDN);
        mpfr_neg(r27648, r27633, MPFR_RNDN);
        mpfr_div(r27649, r27648, r27623, MPFR_RNDN);
        if (mpfr_get_si(r27644, MPFR_RNDN)) { mpfr_set(r27650, r27647, MPFR_RNDN); } else { mpfr_set(r27650, r27649, MPFR_RNDN); };
        if (mpfr_get_si(r27630, MPFR_RNDN)) { mpfr_set(r27651, r27642, MPFR_RNDN); } else { mpfr_set(r27651, r27650, MPFR_RNDN); };
        if (mpfr_get_si(r27625, MPFR_RNDN)) { mpfr_set(r27652, r27628, MPFR_RNDN); } else { mpfr_set(r27652, r27651, MPFR_RNDN); };
        return mpfr_get_d(r27652, MPFR_RNDN);
}

static mpfr_t r27653, r27654, r27655, r27656, r27657, r27658, r27659, r27660, r27661, r27662, r27663, r27664, r27665, r27666, r27667, r27668, r27669, r27670, r27671, r27672, r27673, r27674, r27675, r27676, r27677, r27678, r27679, r27680, r27681, r27682;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27653);
        mpfr_init_set_str(r27654, "-1.3026234282048264e+154", 10, MPFR_RNDN);
        mpfr_init(r27655);
        mpfr_init(r27656);
        mpfr_init(r27657);
        mpfr_init(r27658);
        mpfr_init_set_str(r27659, "1.890842606323641e-157", 10, MPFR_RNDN);
        mpfr_init(r27660);
        mpfr_init(r27661);
        mpfr_init(r27662);
        mpfr_init(r27663);
        mpfr_init_set_str(r27664, "4", 10, MPFR_RNDN);
        mpfr_init(r27665);
        mpfr_init(r27666);
        mpfr_init(r27667);
        mpfr_init(r27668);
        mpfr_init(r27669);
        mpfr_init_set_str(r27670, "2", 10, MPFR_RNDN);
        mpfr_init(r27671);
        mpfr_init(r27672);
        mpfr_init_set_str(r27673, "3.3748231022183743e-25", 10, MPFR_RNDN);
        mpfr_init(r27674);
        mpfr_init(r27675);
        mpfr_init(r27676);
        mpfr_init(r27677);
        mpfr_init(r27678);
        mpfr_init(r27679);
        mpfr_init(r27680);
        mpfr_init(r27681);
        mpfr_init(r27682);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r27653, b, MPFR_RNDN);
        ;
        mpfr_set_si(r27655, mpfr_cmp(r27653, r27654) <= 0, MPFR_RNDN);
        mpfr_set_d(r27656, a, MPFR_RNDN);
        mpfr_div(r27657, r27653, r27656, MPFR_RNDN);
        mpfr_neg(r27658, r27657, MPFR_RNDN);
        ;
        mpfr_set_si(r27660, mpfr_cmp(r27653, r27659) <= 0, MPFR_RNDN);
        mpfr_neg(r27661, r27653, MPFR_RNDN);
        mpfr_mul(r27662, r27653, r27653, MPFR_RNDN);
        mpfr_set_d(r27663, c, MPFR_RNDN);
        ;
        mpfr_mul(r27665, r27664, r27656, MPFR_RNDN);
        mpfr_mul(r27666, r27663, r27665, MPFR_RNDN);
        mpfr_sub(r27667, r27662, r27666, MPFR_RNDN);
        mpfr_sqrt(r27668, r27667, MPFR_RNDN);
        mpfr_add(r27669, r27661, r27668, MPFR_RNDN);
        ;
        mpfr_mul(r27671, r27670, r27656, MPFR_RNDN);
        mpfr_div(r27672, r27669, r27671, MPFR_RNDN);
        ;
        mpfr_set_si(r27674, mpfr_cmp(r27653, r27673) <= 0, MPFR_RNDN);
        mpfr_sub(r27675, r27661, r27668, MPFR_RNDN);
        mpfr_div(r27676, r27666, r27675, MPFR_RNDN);
        mpfr_div(r27677, r27676, r27671, MPFR_RNDN);
        mpfr_neg(r27678, r27663, MPFR_RNDN);
        mpfr_div(r27679, r27678, r27653, MPFR_RNDN);
        if (mpfr_get_si(r27674, MPFR_RNDN)) { mpfr_set(r27680, r27677, MPFR_RNDN); } else { mpfr_set(r27680, r27679, MPFR_RNDN); };
        if (mpfr_get_si(r27660, MPFR_RNDN)) { mpfr_set(r27681, r27672, MPFR_RNDN); } else { mpfr_set(r27681, r27680, MPFR_RNDN); };
        if (mpfr_get_si(r27655, MPFR_RNDN)) { mpfr_set(r27682, r27658, MPFR_RNDN); } else { mpfr_set(r27682, r27681, MPFR_RNDN); };
        return mpfr_get_d(r27682, MPFR_RNDN);
}

