#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 r39527 = b;
        float r39528 = -r39527;
        float r39529 = r39527 * r39527;
        float r39530 = 4;
        float r39531 = a;
        float r39532 = r39530 * r39531;
        float r39533 = c;
        float r39534 = r39532 * r39533;
        float r39535 = r39529 - r39534;
        float r39536 = sqrt(r39535);
        float r39537 = r39528 + r39536;
        float r39538 = 2;
        float r39539 = r39538 * r39531;
        float r39540 = r39537 / r39539;
        return r39540;
}

double f_id(double a, double b, double c) {
        double r39541 = b;
        double r39542 = -r39541;
        double r39543 = r39541 * r39541;
        double r39544 = 4;
        double r39545 = a;
        double r39546 = r39544 * r39545;
        double r39547 = c;
        double r39548 = r39546 * r39547;
        double r39549 = r39543 - r39548;
        double r39550 = sqrt(r39549);
        double r39551 = r39542 + r39550;
        double r39552 = 2;
        double r39553 = r39552 * r39545;
        double r39554 = r39551 / r39553;
        return r39554;
}


double f_of(float a, float b, float c) {
        float r39555 = b;
        float r39556 = -2.788370916558726e+153;
        bool r39557 = r39555 <= r39556;
        float r39558 = -r39555;
        float r39559 = a;
        float r39560 = r39558 / r39559;
        float r39561 = 7.580412743766101e-138;
        bool r39562 = r39555 <= r39561;
        float r39563 = r39555 * r39555;
        float r39564 = 4;
        float r39565 = r39564 * r39559;
        float r39566 = c;
        float r39567 = r39565 * r39566;
        float r39568 = r39563 - r39567;
        float r39569 = sqrt(r39568);
        float r39570 = r39558 + r39569;
        float r39571 = 2;
        float r39572 = r39571 * r39559;
        float r39573 = r39570 / r39572;
        float r39574 = r39566 / r39555;
        float r39575 = -2;
        float r39576 = r39575 / r39571;
        float r39577 = r39574 * r39576;
        float r39578 = r39562 ? r39573 : r39577;
        float r39579 = r39557 ? r39560 : r39578;
        return r39579;
}

double f_od(double a, double b, double c) {
        double r39580 = b;
        double r39581 = -2.788370916558726e+153;
        bool r39582 = r39580 <= r39581;
        double r39583 = -r39580;
        double r39584 = a;
        double r39585 = r39583 / r39584;
        double r39586 = 7.580412743766101e-138;
        bool r39587 = r39580 <= r39586;
        double r39588 = r39580 * r39580;
        double r39589 = 4;
        double r39590 = r39589 * r39584;
        double r39591 = c;
        double r39592 = r39590 * r39591;
        double r39593 = r39588 - r39592;
        double r39594 = sqrt(r39593);
        double r39595 = r39583 + r39594;
        double r39596 = 2;
        double r39597 = r39596 * r39584;
        double r39598 = r39595 / r39597;
        double r39599 = r39591 / r39580;
        double r39600 = -2;
        double r39601 = r39600 / r39596;
        double r39602 = r39599 * r39601;
        double r39603 = r39587 ? r39598 : r39602;
        double r39604 = r39582 ? r39585 : r39603;
        return r39604;
}

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 r39605, r39606, r39607, r39608, r39609, r39610, r39611, r39612, r39613, r39614, r39615, r39616, r39617, r39618;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39605);
        mpfr_init(r39606);
        mpfr_init(r39607);
        mpfr_init_set_str(r39608, "4", 10, MPFR_RNDN);
        mpfr_init(r39609);
        mpfr_init(r39610);
        mpfr_init(r39611);
        mpfr_init(r39612);
        mpfr_init(r39613);
        mpfr_init(r39614);
        mpfr_init(r39615);
        mpfr_init_set_str(r39616, "2", 10, MPFR_RNDN);
        mpfr_init(r39617);
        mpfr_init(r39618);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39605, b, MPFR_RNDN);
        mpfr_neg(r39606, r39605, MPFR_RNDN);
        mpfr_mul(r39607, r39605, r39605, MPFR_RNDN);
        ;
        mpfr_set_d(r39609, a, MPFR_RNDN);
        mpfr_mul(r39610, r39608, r39609, MPFR_RNDN);
        mpfr_set_d(r39611, c, MPFR_RNDN);
        mpfr_mul(r39612, r39610, r39611, MPFR_RNDN);
        mpfr_sub(r39613, r39607, r39612, MPFR_RNDN);
        mpfr_sqrt(r39614, r39613, MPFR_RNDN);
        mpfr_add(r39615, r39606, r39614, MPFR_RNDN);
        ;
        mpfr_mul(r39617, r39616, r39609, MPFR_RNDN);
        mpfr_div(r39618, r39615, r39617, MPFR_RNDN);
        return mpfr_get_d(r39618, MPFR_RNDN);
}

static mpfr_t r39619, r39620, r39621, r39622, r39623, r39624, r39625, r39626, r39627, r39628, r39629, r39630, r39631, r39632, r39633, r39634, r39635, r39636, r39637, r39638, r39639, r39640, r39641, r39642, r39643;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39619);
        mpfr_init_set_str(r39620, "-2.788370916558726e+153", 10, MPFR_RNDN);
        mpfr_init(r39621);
        mpfr_init(r39622);
        mpfr_init(r39623);
        mpfr_init(r39624);
        mpfr_init_set_str(r39625, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r39626);
        mpfr_init(r39627);
        mpfr_init_set_str(r39628, "4", 10, MPFR_RNDN);
        mpfr_init(r39629);
        mpfr_init(r39630);
        mpfr_init(r39631);
        mpfr_init(r39632);
        mpfr_init(r39633);
        mpfr_init(r39634);
        mpfr_init_set_str(r39635, "2", 10, MPFR_RNDN);
        mpfr_init(r39636);
        mpfr_init(r39637);
        mpfr_init(r39638);
        mpfr_init_set_str(r39639, "-2", 10, MPFR_RNDN);
        mpfr_init(r39640);
        mpfr_init(r39641);
        mpfr_init(r39642);
        mpfr_init(r39643);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r39619, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39621, mpfr_cmp(r39619, r39620) <= 0, MPFR_RNDN);
        mpfr_neg(r39622, r39619, MPFR_RNDN);
        mpfr_set_d(r39623, a, MPFR_RNDN);
        mpfr_div(r39624, r39622, r39623, MPFR_RNDN);
        ;
        mpfr_set_si(r39626, mpfr_cmp(r39619, r39625) <= 0, MPFR_RNDN);
        mpfr_mul(r39627, r39619, r39619, MPFR_RNDN);
        ;
        mpfr_mul(r39629, r39628, r39623, MPFR_RNDN);
        mpfr_set_d(r39630, c, MPFR_RNDN);
        mpfr_mul(r39631, r39629, r39630, MPFR_RNDN);
        mpfr_sub(r39632, r39627, r39631, MPFR_RNDN);
        mpfr_sqrt(r39633, r39632, MPFR_RNDN);
        mpfr_add(r39634, r39622, r39633, MPFR_RNDN);
        ;
        mpfr_mul(r39636, r39635, r39623, MPFR_RNDN);
        mpfr_div(r39637, r39634, r39636, MPFR_RNDN);
        mpfr_div(r39638, r39630, r39619, MPFR_RNDN);
        ;
        mpfr_div(r39640, r39639, r39635, MPFR_RNDN);
        mpfr_mul(r39641, r39638, r39640, MPFR_RNDN);
        if (mpfr_get_si(r39626, MPFR_RNDN)) { mpfr_set(r39642, r39637, MPFR_RNDN); } else { mpfr_set(r39642, r39641, MPFR_RNDN); };
        if (mpfr_get_si(r39621, MPFR_RNDN)) { mpfr_set(r39643, r39624, MPFR_RNDN); } else { mpfr_set(r39643, r39642, MPFR_RNDN); };
        return mpfr_get_d(r39643, MPFR_RNDN);
}

static mpfr_t r39644, r39645, r39646, r39647, r39648, r39649, r39650, r39651, r39652, r39653, r39654, r39655, r39656, r39657, r39658, r39659, r39660, r39661, r39662, r39663, r39664, r39665, r39666, r39667, r39668;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39644);
        mpfr_init_set_str(r39645, "-2.788370916558726e+153", 10, MPFR_RNDN);
        mpfr_init(r39646);
        mpfr_init(r39647);
        mpfr_init(r39648);
        mpfr_init(r39649);
        mpfr_init_set_str(r39650, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r39651);
        mpfr_init(r39652);
        mpfr_init_set_str(r39653, "4", 10, MPFR_RNDN);
        mpfr_init(r39654);
        mpfr_init(r39655);
        mpfr_init(r39656);
        mpfr_init(r39657);
        mpfr_init(r39658);
        mpfr_init(r39659);
        mpfr_init_set_str(r39660, "2", 10, MPFR_RNDN);
        mpfr_init(r39661);
        mpfr_init(r39662);
        mpfr_init(r39663);
        mpfr_init_set_str(r39664, "-2", 10, MPFR_RNDN);
        mpfr_init(r39665);
        mpfr_init(r39666);
        mpfr_init(r39667);
        mpfr_init(r39668);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39644, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39646, mpfr_cmp(r39644, r39645) <= 0, MPFR_RNDN);
        mpfr_neg(r39647, r39644, MPFR_RNDN);
        mpfr_set_d(r39648, a, MPFR_RNDN);
        mpfr_div(r39649, r39647, r39648, MPFR_RNDN);
        ;
        mpfr_set_si(r39651, mpfr_cmp(r39644, r39650) <= 0, MPFR_RNDN);
        mpfr_mul(r39652, r39644, r39644, MPFR_RNDN);
        ;
        mpfr_mul(r39654, r39653, r39648, MPFR_RNDN);
        mpfr_set_d(r39655, c, MPFR_RNDN);
        mpfr_mul(r39656, r39654, r39655, MPFR_RNDN);
        mpfr_sub(r39657, r39652, r39656, MPFR_RNDN);
        mpfr_sqrt(r39658, r39657, MPFR_RNDN);
        mpfr_add(r39659, r39647, r39658, MPFR_RNDN);
        ;
        mpfr_mul(r39661, r39660, r39648, MPFR_RNDN);
        mpfr_div(r39662, r39659, r39661, MPFR_RNDN);
        mpfr_div(r39663, r39655, r39644, MPFR_RNDN);
        ;
        mpfr_div(r39665, r39664, r39660, MPFR_RNDN);
        mpfr_mul(r39666, r39663, r39665, MPFR_RNDN);
        if (mpfr_get_si(r39651, MPFR_RNDN)) { mpfr_set(r39667, r39662, MPFR_RNDN); } else { mpfr_set(r39667, r39666, MPFR_RNDN); };
        if (mpfr_get_si(r39646, MPFR_RNDN)) { mpfr_set(r39668, r39649, MPFR_RNDN); } else { mpfr_set(r39668, r39667, MPFR_RNDN); };
        return mpfr_get_d(r39668, MPFR_RNDN);
}

