#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 r19484 = b;
        float r19485 = -r19484;
        float r19486 = r19484 * r19484;
        float r19487 = 4.0f;
        float r19488 = a;
        float r19489 = c;
        float r19490 = r19488 * r19489;
        float r19491 = r19487 * r19490;
        float r19492 = r19486 - r19491;
        float r19493 = sqrt(r19492);
        float r19494 = r19485 + r19493;
        float r19495 = 2.0f;
        float r19496 = r19495 * r19488;
        float r19497 = r19494 / r19496;
        return r19497;
}

double f_id(double a, double b, double c) {
        double r19498 = b;
        double r19499 = -r19498;
        double r19500 = r19498 * r19498;
        double r19501 = 4.0;
        double r19502 = a;
        double r19503 = c;
        double r19504 = r19502 * r19503;
        double r19505 = r19501 * r19504;
        double r19506 = r19500 - r19505;
        double r19507 = sqrt(r19506);
        double r19508 = r19499 + r19507;
        double r19509 = 2.0;
        double r19510 = r19509 * r19502;
        double r19511 = r19508 / r19510;
        return r19511;
}


double f_of(float a, float b, float c) {
        float r19512 = b;
        float r19513 = -3.075239283784152e+132f;
        bool r19514 = r19512 <= r19513;
        float r19515 = c;
        float r19516 = r19515 / r19512;
        float r19517 = a;
        float r19518 = r19512 / r19517;
        float r19519 = r19516 - r19518;
        float r19520 = -4.983822085296594e-276f;
        bool r19521 = r19512 <= r19520;
        float r19522 = -r19512;
        float r19523 = r19512 * r19512;
        float r19524 = 4.0f;
        float r19525 = r19517 * r19515;
        float r19526 = r19524 * r19525;
        float r19527 = r19523 - r19526;
        float r19528 = sqrt(r19527);
        float r19529 = r19522 + r19528;
        float r19530 = 1.0f;
        float r19531 = 2.0f;
        float r19532 = r19531 * r19517;
        float r19533 = r19530 / r19532;
        float r19534 = r19529 * r19533;
        float r19535 = 7.666985785588564e+91f;
        bool r19536 = r19512 <= r19535;
        float r19537 = r19530 / r19531;
        float r19538 = r19515 * r19524;
        float r19539 = r19512 * r19512;
        float r19540 = r19538 * r19517;
        float r19541 = r19539 - r19540;
        float r19542 = sqrt(r19541);
        float r19543 = r19522 - r19542;
        float r19544 = r19538 / r19543;
        float r19545 = r19537 * r19544;
        float r19546 = -2.0f;
        float r19547 = r19546 / r19531;
        float r19548 = r19516 * r19547;
        float r19549 = r19536 ? r19545 : r19548;
        float r19550 = r19521 ? r19534 : r19549;
        float r19551 = r19514 ? r19519 : r19550;
        return r19551;
}

double f_od(double a, double b, double c) {
        double r19552 = b;
        double r19553 = -3.075239283784152e+132;
        bool r19554 = r19552 <= r19553;
        double r19555 = c;
        double r19556 = r19555 / r19552;
        double r19557 = a;
        double r19558 = r19552 / r19557;
        double r19559 = r19556 - r19558;
        double r19560 = -4.983822085296594e-276;
        bool r19561 = r19552 <= r19560;
        double r19562 = -r19552;
        double r19563 = r19552 * r19552;
        double r19564 = 4.0;
        double r19565 = r19557 * r19555;
        double r19566 = r19564 * r19565;
        double r19567 = r19563 - r19566;
        double r19568 = sqrt(r19567);
        double r19569 = r19562 + r19568;
        double r19570 = 1.0;
        double r19571 = 2.0;
        double r19572 = r19571 * r19557;
        double r19573 = r19570 / r19572;
        double r19574 = r19569 * r19573;
        double r19575 = 7.666985785588564e+91;
        bool r19576 = r19552 <= r19575;
        double r19577 = r19570 / r19571;
        double r19578 = r19555 * r19564;
        double r19579 = r19552 * r19552;
        double r19580 = r19578 * r19557;
        double r19581 = r19579 - r19580;
        double r19582 = sqrt(r19581);
        double r19583 = r19562 - r19582;
        double r19584 = r19578 / r19583;
        double r19585 = r19577 * r19584;
        double r19586 = -2.0;
        double r19587 = r19586 / r19571;
        double r19588 = r19556 * r19587;
        double r19589 = r19576 ? r19585 : r19588;
        double r19590 = r19561 ? r19574 : r19589;
        double r19591 = r19554 ? r19559 : r19590;
        return r19591;
}

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 r19592, r19593, r19594, r19595, r19596, r19597, r19598, r19599, r19600, r19601, r19602, r19603, r19604, r19605;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2704);
        mpfr_init(r19592);
        mpfr_init(r19593);
        mpfr_init(r19594);
        mpfr_init_set_str(r19595, "4", 10, MPFR_RNDN);
        mpfr_init(r19596);
        mpfr_init(r19597);
        mpfr_init(r19598);
        mpfr_init(r19599);
        mpfr_init(r19600);
        mpfr_init(r19601);
        mpfr_init(r19602);
        mpfr_init_set_str(r19603, "2", 10, MPFR_RNDN);
        mpfr_init(r19604);
        mpfr_init(r19605);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r19592, b, MPFR_RNDN);
        mpfr_neg(r19593, r19592, MPFR_RNDN);
        mpfr_sqr(r19594, r19592, MPFR_RNDN);
        ;
        mpfr_set_d(r19596, a, MPFR_RNDN);
        mpfr_set_d(r19597, c, MPFR_RNDN);
        mpfr_mul(r19598, r19596, r19597, MPFR_RNDN);
        mpfr_mul(r19599, r19595, r19598, MPFR_RNDN);
        mpfr_sub(r19600, r19594, r19599, MPFR_RNDN);
        mpfr_sqrt(r19601, r19600, MPFR_RNDN);
        mpfr_add(r19602, r19593, r19601, MPFR_RNDN);
        ;
        mpfr_mul(r19604, r19603, r19596, MPFR_RNDN);
        mpfr_div(r19605, r19602, r19604, MPFR_RNDN);
        return mpfr_get_d(r19605, MPFR_RNDN);
}

static mpfr_t r19606, r19607, r19608, r19609, r19610, r19611, r19612, r19613, r19614, r19615, r19616, r19617, r19618, r19619, r19620, r19621, r19622, r19623, r19624, r19625, r19626, r19627, r19628, r19629, r19630, r19631, r19632, r19633, r19634, r19635, r19636, r19637, r19638, r19639, r19640, r19641, r19642, r19643, r19644, r19645;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2704);
        mpfr_init(r19606);
        mpfr_init_set_str(r19607, "-3.075239283784152e+132", 10, MPFR_RNDN);
        mpfr_init(r19608);
        mpfr_init(r19609);
        mpfr_init(r19610);
        mpfr_init(r19611);
        mpfr_init(r19612);
        mpfr_init(r19613);
        mpfr_init_set_str(r19614, "-4.983822085296594e-276", 10, MPFR_RNDN);
        mpfr_init(r19615);
        mpfr_init(r19616);
        mpfr_init(r19617);
        mpfr_init_set_str(r19618, "4", 10, MPFR_RNDN);
        mpfr_init(r19619);
        mpfr_init(r19620);
        mpfr_init(r19621);
        mpfr_init(r19622);
        mpfr_init(r19623);
        mpfr_init_set_str(r19624, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19625, "2", 10, MPFR_RNDN);
        mpfr_init(r19626);
        mpfr_init(r19627);
        mpfr_init(r19628);
        mpfr_init_set_str(r19629, "7.666985785588564e+91", 10, MPFR_RNDN);
        mpfr_init(r19630);
        mpfr_init(r19631);
        mpfr_init(r19632);
        mpfr_init(r19633);
        mpfr_init(r19634);
        mpfr_init(r19635);
        mpfr_init(r19636);
        mpfr_init(r19637);
        mpfr_init(r19638);
        mpfr_init(r19639);
        mpfr_init_set_str(r19640, "-2", 10, MPFR_RNDN);
        mpfr_init(r19641);
        mpfr_init(r19642);
        mpfr_init(r19643);
        mpfr_init(r19644);
        mpfr_init(r19645);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r19606, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19608, mpfr_cmp(r19606, r19607) <= 0, MPFR_RNDN);
        mpfr_set_d(r19609, c, MPFR_RNDN);
        mpfr_div(r19610, r19609, r19606, MPFR_RNDN);
        mpfr_set_d(r19611, a, MPFR_RNDN);
        mpfr_div(r19612, r19606, r19611, MPFR_RNDN);
        mpfr_sub(r19613, r19610, r19612, MPFR_RNDN);
        ;
        mpfr_set_si(r19615, mpfr_cmp(r19606, r19614) <= 0, MPFR_RNDN);
        mpfr_neg(r19616, r19606, MPFR_RNDN);
        mpfr_sqr(r19617, r19606, MPFR_RNDN);
        ;
        mpfr_mul(r19619, r19611, r19609, MPFR_RNDN);
        mpfr_mul(r19620, r19618, r19619, MPFR_RNDN);
        mpfr_sub(r19621, r19617, r19620, MPFR_RNDN);
        mpfr_sqrt(r19622, r19621, MPFR_RNDN);
        mpfr_add(r19623, r19616, r19622, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r19626, r19625, r19611, MPFR_RNDN);
        mpfr_div(r19627, r19624, r19626, MPFR_RNDN);
        mpfr_mul(r19628, r19623, r19627, MPFR_RNDN);
        ;
        mpfr_set_si(r19630, mpfr_cmp(r19606, r19629) <= 0, MPFR_RNDN);
        mpfr_div(r19631, r19624, r19625, MPFR_RNDN);
        mpfr_mul(r19632, r19609, r19618, MPFR_RNDN);
        mpfr_mul(r19633, r19606, r19606, MPFR_RNDN);
        mpfr_mul(r19634, r19632, r19611, MPFR_RNDN);
        mpfr_sub(r19635, r19633, r19634, MPFR_RNDN);
        mpfr_sqrt(r19636, r19635, MPFR_RNDN);
        mpfr_sub(r19637, r19616, r19636, MPFR_RNDN);
        mpfr_div(r19638, r19632, r19637, MPFR_RNDN);
        mpfr_mul(r19639, r19631, r19638, MPFR_RNDN);
        ;
        mpfr_div(r19641, r19640, r19625, MPFR_RNDN);
        mpfr_mul(r19642, r19610, r19641, MPFR_RNDN);
        if (mpfr_get_si(r19630, MPFR_RNDN)) { mpfr_set(r19643, r19639, MPFR_RNDN); } else { mpfr_set(r19643, r19642, MPFR_RNDN); };
        if (mpfr_get_si(r19615, MPFR_RNDN)) { mpfr_set(r19644, r19628, MPFR_RNDN); } else { mpfr_set(r19644, r19643, MPFR_RNDN); };
        if (mpfr_get_si(r19608, MPFR_RNDN)) { mpfr_set(r19645, r19613, MPFR_RNDN); } else { mpfr_set(r19645, 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, r19685;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2704);
        mpfr_init(r19646);
        mpfr_init_set_str(r19647, "-3.075239283784152e+132", 10, MPFR_RNDN);
        mpfr_init(r19648);
        mpfr_init(r19649);
        mpfr_init(r19650);
        mpfr_init(r19651);
        mpfr_init(r19652);
        mpfr_init(r19653);
        mpfr_init_set_str(r19654, "-4.983822085296594e-276", 10, MPFR_RNDN);
        mpfr_init(r19655);
        mpfr_init(r19656);
        mpfr_init(r19657);
        mpfr_init_set_str(r19658, "4", 10, MPFR_RNDN);
        mpfr_init(r19659);
        mpfr_init(r19660);
        mpfr_init(r19661);
        mpfr_init(r19662);
        mpfr_init(r19663);
        mpfr_init_set_str(r19664, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19665, "2", 10, MPFR_RNDN);
        mpfr_init(r19666);
        mpfr_init(r19667);
        mpfr_init(r19668);
        mpfr_init_set_str(r19669, "7.666985785588564e+91", 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(r19679);
        mpfr_init_set_str(r19680, "-2", 10, MPFR_RNDN);
        mpfr_init(r19681);
        mpfr_init(r19682);
        mpfr_init(r19683);
        mpfr_init(r19684);
        mpfr_init(r19685);
}

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

