#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "quadp (p42, positive)";

double f_if(float a, float b, float c) {
        float r19526 = b;
        float r19527 = -r19526;
        float r19528 = r19526 * r19526;
        float r19529 = 4.0f;
        float r19530 = a;
        float r19531 = c;
        float r19532 = r19530 * r19531;
        float r19533 = r19529 * r19532;
        float r19534 = r19528 - r19533;
        float r19535 = sqrt(r19534);
        float r19536 = r19527 + r19535;
        float r19537 = 2.0f;
        float r19538 = r19537 * r19530;
        float r19539 = r19536 / r19538;
        return r19539;
}

double f_id(double a, double b, double c) {
        double r19540 = b;
        double r19541 = -r19540;
        double r19542 = r19540 * r19540;
        double r19543 = 4.0;
        double r19544 = a;
        double r19545 = c;
        double r19546 = r19544 * r19545;
        double r19547 = r19543 * r19546;
        double r19548 = r19542 - r19547;
        double r19549 = sqrt(r19548);
        double r19550 = r19541 + r19549;
        double r19551 = 2.0;
        double r19552 = r19551 * r19544;
        double r19553 = r19550 / r19552;
        return r19553;
}


double f_of(float a, float b, float c) {
        float r19554 = b;
        float r19555 = -5.224339320607286e+142f;
        bool r19556 = r19554 <= r19555;
        float r19557 = -r19554;
        float r19558 = a;
        float r19559 = r19557 / r19558;
        float r19560 = -2.21585542402177e-292f;
        bool r19561 = r19554 <= r19560;
        float r19562 = r19554 * r19554;
        float r19563 = 4.0f;
        float r19564 = c;
        float r19565 = r19563 * r19564;
        float r19566 = r19565 * r19558;
        float r19567 = r19562 - r19566;
        float r19568 = sqrt(r19567);
        float r19569 = -r19568;
        float r19570 = r19554 + r19569;
        float r19571 = 2.0f;
        float r19572 = r19571 * r19558;
        float r19573 = -r19572;
        float r19574 = r19570 / r19573;
        float r19575 = 1.1333439556022532e+108f;
        bool r19576 = r19554 <= r19575;
        float r19577 = 1.0f;
        float r19578 = r19564 * r19563;
        float r19579 = r19571 / r19578;
        float r19580 = r19578 * r19558;
        float r19581 = r19562 - r19580;
        float r19582 = sqrt(r19581);
        float r19583 = r19557 - r19582;
        float r19584 = r19579 * r19583;
        float r19585 = r19577 / r19584;
        float r19586 = r19564 / r19554;
        float r19587 = -2.0f;
        float r19588 = r19587 / r19571;
        float r19589 = r19586 * r19588;
        float r19590 = r19576 ? r19585 : r19589;
        float r19591 = r19561 ? r19574 : r19590;
        float r19592 = r19556 ? r19559 : r19591;
        return r19592;
}

double f_od(double a, double b, double c) {
        double r19593 = b;
        double r19594 = -5.224339320607286e+142;
        bool r19595 = r19593 <= r19594;
        double r19596 = -r19593;
        double r19597 = a;
        double r19598 = r19596 / r19597;
        double r19599 = -2.21585542402177e-292;
        bool r19600 = r19593 <= r19599;
        double r19601 = r19593 * r19593;
        double r19602 = 4.0;
        double r19603 = c;
        double r19604 = r19602 * r19603;
        double r19605 = r19604 * r19597;
        double r19606 = r19601 - r19605;
        double r19607 = sqrt(r19606);
        double r19608 = -r19607;
        double r19609 = r19593 + r19608;
        double r19610 = 2.0;
        double r19611 = r19610 * r19597;
        double r19612 = -r19611;
        double r19613 = r19609 / r19612;
        double r19614 = 1.1333439556022532e+108;
        bool r19615 = r19593 <= r19614;
        double r19616 = 1.0;
        double r19617 = r19603 * r19602;
        double r19618 = r19610 / r19617;
        double r19619 = r19617 * r19597;
        double r19620 = r19601 - r19619;
        double r19621 = sqrt(r19620);
        double r19622 = r19596 - r19621;
        double r19623 = r19618 * r19622;
        double r19624 = r19616 / r19623;
        double r19625 = r19603 / r19593;
        double r19626 = -2.0;
        double r19627 = r19626 / r19610;
        double r19628 = r19625 * r19627;
        double r19629 = r19615 ? r19624 : r19628;
        double r19630 = r19600 ? r19613 : r19629;
        double r19631 = r19595 ? r19598 : r19630;
        return r19631;
}

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 r19632, r19633, r19634, r19635, r19636, r19637, r19638, r19639, r19640, r19641, r19642, r19643, r19644, r19645;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3216);
        mpfr_init(r19632);
        mpfr_init(r19633);
        mpfr_init(r19634);
        mpfr_init_set_str(r19635, "4", 10, MPFR_RNDN);
        mpfr_init(r19636);
        mpfr_init(r19637);
        mpfr_init(r19638);
        mpfr_init(r19639);
        mpfr_init(r19640);
        mpfr_init(r19641);
        mpfr_init(r19642);
        mpfr_init_set_str(r19643, "2", 10, MPFR_RNDN);
        mpfr_init(r19644);
        mpfr_init(r19645);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r19632, b, MPFR_RNDN);
        mpfr_neg(r19633, r19632, MPFR_RNDN);
        mpfr_mul(r19634, r19632, r19632, MPFR_RNDN);
        ;
        mpfr_set_d(r19636, a, MPFR_RNDN);
        mpfr_set_d(r19637, c, MPFR_RNDN);
        mpfr_mul(r19638, r19636, r19637, MPFR_RNDN);
        mpfr_mul(r19639, r19635, r19638, MPFR_RNDN);
        mpfr_sub(r19640, r19634, r19639, MPFR_RNDN);
        mpfr_sqrt(r19641, r19640, MPFR_RNDN);
        mpfr_add(r19642, r19633, r19641, MPFR_RNDN);
        ;
        mpfr_mul(r19644, r19643, r19636, MPFR_RNDN);
        mpfr_div(r19645, r19642, r19644, MPFR_RNDN);
        return mpfr_get_d(r19645, MPFR_RNDN);
}

static mpfr_t r19646, r19647, r19648, r19649, r19650, r19651, r19652, r19653, r19654, r19655, r19656, r19657, r19658, r19659, r19660, r19661, r19662, r19663, r19664, r19665, r19666, r19667, r19668, r19669, r19670, r19671, r19672, r19673, r19674, r19675, r19676, r19677, r19678, r19679, r19680, r19681, r19682, r19683, r19684;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3216);
        mpfr_init(r19646);
        mpfr_init_set_str(r19647, "-5.224339320607286e+142", 10, MPFR_RNDN);
        mpfr_init(r19648);
        mpfr_init(r19649);
        mpfr_init(r19650);
        mpfr_init(r19651);
        mpfr_init_set_str(r19652, "-2.21585542402177e-292", 10, MPFR_RNDN);
        mpfr_init(r19653);
        mpfr_init(r19654);
        mpfr_init_set_str(r19655, "4", 10, MPFR_RNDN);
        mpfr_init(r19656);
        mpfr_init(r19657);
        mpfr_init(r19658);
        mpfr_init(r19659);
        mpfr_init(r19660);
        mpfr_init(r19661);
        mpfr_init(r19662);
        mpfr_init_set_str(r19663, "2", 10, MPFR_RNDN);
        mpfr_init(r19664);
        mpfr_init(r19665);
        mpfr_init(r19666);
        mpfr_init_set_str(r19667, "1.1333439556022532e+108", 10, MPFR_RNDN);
        mpfr_init(r19668);
        mpfr_init_set_str(r19669, "1", 10, MPFR_RNDN);
        mpfr_init(r19670);
        mpfr_init(r19671);
        mpfr_init(r19672);
        mpfr_init(r19673);
        mpfr_init(r19674);
        mpfr_init(r19675);
        mpfr_init(r19676);
        mpfr_init(r19677);
        mpfr_init(r19678);
        mpfr_init_set_str(r19679, "-2", 10, MPFR_RNDN);
        mpfr_init(r19680);
        mpfr_init(r19681);
        mpfr_init(r19682);
        mpfr_init(r19683);
        mpfr_init(r19684);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r19646, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19648, mpfr_cmp(r19646, r19647) <= 0, MPFR_RNDN);
        mpfr_neg(r19649, r19646, MPFR_RNDN);
        mpfr_set_d(r19650, a, MPFR_RNDN);
        mpfr_div(r19651, r19649, r19650, MPFR_RNDN);
        ;
        mpfr_set_si(r19653, mpfr_cmp(r19646, r19652) <= 0, MPFR_RNDN);
        mpfr_mul(r19654, r19646, r19646, MPFR_RNDN);
        ;
        mpfr_set_d(r19656, c, MPFR_RNDN);
        mpfr_mul(r19657, r19655, r19656, MPFR_RNDN);
        mpfr_mul(r19658, r19657, r19650, MPFR_RNDN);
        mpfr_sub(r19659, r19654, r19658, MPFR_RNDN);
        mpfr_sqrt(r19660, r19659, MPFR_RNDN);
        mpfr_neg(r19661, r19660, MPFR_RNDN);
        mpfr_add(r19662, r19646, r19661, MPFR_RNDN);
        ;
        mpfr_mul(r19664, r19663, r19650, MPFR_RNDN);
        mpfr_neg(r19665, r19664, MPFR_RNDN);
        mpfr_div(r19666, r19662, r19665, MPFR_RNDN);
        ;
        mpfr_set_si(r19668, mpfr_cmp(r19646, r19667) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r19670, r19656, r19655, MPFR_RNDN);
        mpfr_div(r19671, r19663, r19670, MPFR_RNDN);
        mpfr_mul(r19672, r19670, r19650, MPFR_RNDN);
        mpfr_sub(r19673, r19654, r19672, MPFR_RNDN);
        mpfr_sqrt(r19674, r19673, MPFR_RNDN);
        mpfr_sub(r19675, r19649, r19674, MPFR_RNDN);
        mpfr_mul(r19676, r19671, r19675, MPFR_RNDN);
        mpfr_div(r19677, r19669, r19676, MPFR_RNDN);
        mpfr_div(r19678, r19656, r19646, MPFR_RNDN);
        ;
        mpfr_div(r19680, r19679, r19663, MPFR_RNDN);
        mpfr_mul(r19681, r19678, r19680, MPFR_RNDN);
        if (mpfr_get_si(r19668, MPFR_RNDN)) { mpfr_set(r19682, r19677, MPFR_RNDN); } else { mpfr_set(r19682, r19681, MPFR_RNDN); };
        if (mpfr_get_si(r19653, MPFR_RNDN)) { mpfr_set(r19683, r19666, MPFR_RNDN); } else { mpfr_set(r19683, r19682, MPFR_RNDN); };
        if (mpfr_get_si(r19648, MPFR_RNDN)) { mpfr_set(r19684, r19651, MPFR_RNDN); } else { mpfr_set(r19684, r19683, MPFR_RNDN); };
        return mpfr_get_d(r19684, MPFR_RNDN);
}

static mpfr_t r19685, r19686, r19687, r19688, r19689, r19690, r19691, r19692, r19693, r19694, r19695, r19696, r19697, r19698, r19699, r19700, r19701, r19702, r19703, r19704, r19705, r19706, r19707, r19708, r19709, r19710, r19711, r19712, r19713, r19714, r19715, r19716, r19717, r19718, r19719, r19720, r19721, r19722, r19723;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3216);
        mpfr_init(r19685);
        mpfr_init_set_str(r19686, "-5.224339320607286e+142", 10, MPFR_RNDN);
        mpfr_init(r19687);
        mpfr_init(r19688);
        mpfr_init(r19689);
        mpfr_init(r19690);
        mpfr_init_set_str(r19691, "-2.21585542402177e-292", 10, MPFR_RNDN);
        mpfr_init(r19692);
        mpfr_init(r19693);
        mpfr_init_set_str(r19694, "4", 10, MPFR_RNDN);
        mpfr_init(r19695);
        mpfr_init(r19696);
        mpfr_init(r19697);
        mpfr_init(r19698);
        mpfr_init(r19699);
        mpfr_init(r19700);
        mpfr_init(r19701);
        mpfr_init_set_str(r19702, "2", 10, MPFR_RNDN);
        mpfr_init(r19703);
        mpfr_init(r19704);
        mpfr_init(r19705);
        mpfr_init_set_str(r19706, "1.1333439556022532e+108", 10, MPFR_RNDN);
        mpfr_init(r19707);
        mpfr_init_set_str(r19708, "1", 10, MPFR_RNDN);
        mpfr_init(r19709);
        mpfr_init(r19710);
        mpfr_init(r19711);
        mpfr_init(r19712);
        mpfr_init(r19713);
        mpfr_init(r19714);
        mpfr_init(r19715);
        mpfr_init(r19716);
        mpfr_init(r19717);
        mpfr_init_set_str(r19718, "-2", 10, MPFR_RNDN);
        mpfr_init(r19719);
        mpfr_init(r19720);
        mpfr_init(r19721);
        mpfr_init(r19722);
        mpfr_init(r19723);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r19685, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19687, mpfr_cmp(r19685, r19686) <= 0, MPFR_RNDN);
        mpfr_neg(r19688, r19685, MPFR_RNDN);
        mpfr_set_d(r19689, a, MPFR_RNDN);
        mpfr_div(r19690, r19688, r19689, MPFR_RNDN);
        ;
        mpfr_set_si(r19692, mpfr_cmp(r19685, r19691) <= 0, MPFR_RNDN);
        mpfr_mul(r19693, r19685, r19685, MPFR_RNDN);
        ;
        mpfr_set_d(r19695, c, MPFR_RNDN);
        mpfr_mul(r19696, r19694, r19695, MPFR_RNDN);
        mpfr_mul(r19697, r19696, r19689, MPFR_RNDN);
        mpfr_sub(r19698, r19693, r19697, MPFR_RNDN);
        mpfr_sqrt(r19699, r19698, MPFR_RNDN);
        mpfr_neg(r19700, r19699, MPFR_RNDN);
        mpfr_add(r19701, r19685, r19700, MPFR_RNDN);
        ;
        mpfr_mul(r19703, r19702, r19689, MPFR_RNDN);
        mpfr_neg(r19704, r19703, MPFR_RNDN);
        mpfr_div(r19705, r19701, r19704, MPFR_RNDN);
        ;
        mpfr_set_si(r19707, mpfr_cmp(r19685, r19706) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r19709, r19695, r19694, MPFR_RNDN);
        mpfr_div(r19710, r19702, r19709, MPFR_RNDN);
        mpfr_mul(r19711, r19709, r19689, MPFR_RNDN);
        mpfr_sub(r19712, r19693, r19711, MPFR_RNDN);
        mpfr_sqrt(r19713, r19712, MPFR_RNDN);
        mpfr_sub(r19714, r19688, r19713, MPFR_RNDN);
        mpfr_mul(r19715, r19710, r19714, MPFR_RNDN);
        mpfr_div(r19716, r19708, r19715, MPFR_RNDN);
        mpfr_div(r19717, r19695, r19685, MPFR_RNDN);
        ;
        mpfr_div(r19719, r19718, r19702, MPFR_RNDN);
        mpfr_mul(r19720, r19717, r19719, MPFR_RNDN);
        if (mpfr_get_si(r19707, MPFR_RNDN)) { mpfr_set(r19721, r19716, MPFR_RNDN); } else { mpfr_set(r19721, r19720, MPFR_RNDN); };
        if (mpfr_get_si(r19692, MPFR_RNDN)) { mpfr_set(r19722, r19705, MPFR_RNDN); } else { mpfr_set(r19722, r19721, MPFR_RNDN); };
        if (mpfr_get_si(r19687, MPFR_RNDN)) { mpfr_set(r19723, r19690, MPFR_RNDN); } else { mpfr_set(r19723, r19722, MPFR_RNDN); };
        return mpfr_get_d(r19723, MPFR_RNDN);
}

