#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 r9557 = b;
        float r9558 = -r9557;
        float r9559 = r9557 * r9557;
        float r9560 = 4.0f;
        float r9561 = a;
        float r9562 = c;
        float r9563 = r9561 * r9562;
        float r9564 = r9560 * r9563;
        float r9565 = r9559 - r9564;
        float r9566 = sqrt(r9565);
        float r9567 = r9558 + r9566;
        float r9568 = 2.0f;
        float r9569 = r9568 * r9561;
        float r9570 = r9567 / r9569;
        return r9570;
}

double f_id(double a, double b, double c) {
        double r9571 = b;
        double r9572 = -r9571;
        double r9573 = r9571 * r9571;
        double r9574 = 4.0;
        double r9575 = a;
        double r9576 = c;
        double r9577 = r9575 * r9576;
        double r9578 = r9574 * r9577;
        double r9579 = r9573 - r9578;
        double r9580 = sqrt(r9579);
        double r9581 = r9572 + r9580;
        double r9582 = 2.0;
        double r9583 = r9582 * r9575;
        double r9584 = r9581 / r9583;
        return r9584;
}


double f_of(float a, float b, float c) {
        float r9585 = b;
        float r9586 = -r9585;
        float r9587 = -2.5035807776383027e+150f;
        bool r9588 = r9586 <= r9587;
        float r9589 = 4.0f;
        float r9590 = c;
        float r9591 = 2.0f;
        float r9592 = r9590 / r9591;
        float r9593 = r9589 * r9592;
        float r9594 = a;
        float r9595 = r9590 * r9594;
        float r9596 = r9595 / r9585;
        float r9597 = r9591 * r9596;
        float r9598 = r9591 * r9585;
        float r9599 = r9597 - r9598;
        float r9600 = r9593 / r9599;
        float r9601 = 1.4186422616593875e-264f;
        bool r9602 = r9586 <= r9601;
        float r9603 = r9585 * r9585;
        float r9604 = r9589 * r9595;
        float r9605 = r9603 - r9604;
        float r9606 = sqrt(r9605);
        float r9607 = r9586 - r9606;
        float r9608 = r9593 / r9607;
        float r9609 = 2.3420845656192757e+74f;
        bool r9610 = r9586 <= r9609;
        float r9611 = 1.0f;
        float r9612 = r9594 * r9591;
        float r9613 = r9611 / r9612;
        float r9614 = r9606 + r9586;
        float r9615 = r9613 * r9614;
        float r9616 = r9586 / r9594;
        float r9617 = r9610 ? r9615 : r9616;
        float r9618 = r9602 ? r9608 : r9617;
        float r9619 = r9588 ? r9600 : r9618;
        return r9619;
}

double f_od(double a, double b, double c) {
        double r9620 = b;
        double r9621 = -r9620;
        double r9622 = -2.5035807776383027e+150;
        bool r9623 = r9621 <= r9622;
        double r9624 = 4.0;
        double r9625 = c;
        double r9626 = 2.0;
        double r9627 = r9625 / r9626;
        double r9628 = r9624 * r9627;
        double r9629 = a;
        double r9630 = r9625 * r9629;
        double r9631 = r9630 / r9620;
        double r9632 = r9626 * r9631;
        double r9633 = r9626 * r9620;
        double r9634 = r9632 - r9633;
        double r9635 = r9628 / r9634;
        double r9636 = 1.4186422616593875e-264;
        bool r9637 = r9621 <= r9636;
        double r9638 = r9620 * r9620;
        double r9639 = r9624 * r9630;
        double r9640 = r9638 - r9639;
        double r9641 = sqrt(r9640);
        double r9642 = r9621 - r9641;
        double r9643 = r9628 / r9642;
        double r9644 = 2.3420845656192757e+74;
        bool r9645 = r9621 <= r9644;
        double r9646 = 1.0;
        double r9647 = r9629 * r9626;
        double r9648 = r9646 / r9647;
        double r9649 = r9641 + r9621;
        double r9650 = r9648 * r9649;
        double r9651 = r9621 / r9629;
        double r9652 = r9645 ? r9650 : r9651;
        double r9653 = r9637 ? r9643 : r9652;
        double r9654 = r9623 ? r9635 : r9653;
        return r9654;
}

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 r9655, r9656, r9657, r9658, r9659, r9660, r9661, r9662, r9663, r9664, r9665, r9666, r9667, r9668;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9655);
        mpfr_init(r9656);
        mpfr_init(r9657);
        mpfr_init_set_str(r9658, "4", 10, MPFR_RNDN);
        mpfr_init(r9659);
        mpfr_init(r9660);
        mpfr_init(r9661);
        mpfr_init(r9662);
        mpfr_init(r9663);
        mpfr_init(r9664);
        mpfr_init(r9665);
        mpfr_init_set_str(r9666, "2", 10, MPFR_RNDN);
        mpfr_init(r9667);
        mpfr_init(r9668);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9655, b, MPFR_RNDN);
        mpfr_neg(r9656, r9655, MPFR_RNDN);
        mpfr_mul(r9657, r9655, r9655, MPFR_RNDN);
        ;
        mpfr_set_d(r9659, a, MPFR_RNDN);
        mpfr_set_d(r9660, c, MPFR_RNDN);
        mpfr_mul(r9661, r9659, r9660, MPFR_RNDN);
        mpfr_mul(r9662, r9658, r9661, MPFR_RNDN);
        mpfr_sub(r9663, r9657, r9662, MPFR_RNDN);
        mpfr_sqrt(r9664, r9663, MPFR_RNDN);
        mpfr_add(r9665, r9656, r9664, MPFR_RNDN);
        ;
        mpfr_mul(r9667, r9666, r9659, MPFR_RNDN);
        mpfr_div(r9668, r9665, r9667, MPFR_RNDN);
        return mpfr_get_d(r9668, MPFR_RNDN);
}

static mpfr_t r9669, r9670, r9671, r9672, r9673, r9674, r9675, r9676, r9677, r9678, r9679, r9680, r9681, r9682, r9683, r9684, r9685, r9686, r9687, r9688, r9689, r9690, r9691, r9692, r9693, r9694, r9695, r9696, r9697, r9698, r9699, r9700, r9701, r9702, r9703;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9669);
        mpfr_init(r9670);
        mpfr_init_set_str(r9671, "-2.5035807776383027e+150", 10, MPFR_RNDN);
        mpfr_init(r9672);
        mpfr_init_set_str(r9673, "4", 10, MPFR_RNDN);
        mpfr_init(r9674);
        mpfr_init_set_str(r9675, "2", 10, MPFR_RNDN);
        mpfr_init(r9676);
        mpfr_init(r9677);
        mpfr_init(r9678);
        mpfr_init(r9679);
        mpfr_init(r9680);
        mpfr_init(r9681);
        mpfr_init(r9682);
        mpfr_init(r9683);
        mpfr_init(r9684);
        mpfr_init_set_str(r9685, "1.4186422616593875e-264", 10, MPFR_RNDN);
        mpfr_init(r9686);
        mpfr_init(r9687);
        mpfr_init(r9688);
        mpfr_init(r9689);
        mpfr_init(r9690);
        mpfr_init(r9691);
        mpfr_init(r9692);
        mpfr_init_set_str(r9693, "2.3420845656192757e+74", 10, MPFR_RNDN);
        mpfr_init(r9694);
        mpfr_init_set_str(r9695, "1", 10, MPFR_RNDN);
        mpfr_init(r9696);
        mpfr_init(r9697);
        mpfr_init(r9698);
        mpfr_init(r9699);
        mpfr_init(r9700);
        mpfr_init(r9701);
        mpfr_init(r9702);
        mpfr_init(r9703);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9669, b, MPFR_RNDN);
        mpfr_neg(r9670, r9669, MPFR_RNDN);
        ;
        mpfr_set_si(r9672, mpfr_cmp(r9670, r9671) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r9674, c, MPFR_RNDN);
        ;
        mpfr_div(r9676, r9674, r9675, MPFR_RNDN);
        mpfr_mul(r9677, r9673, r9676, MPFR_RNDN);
        mpfr_set_d(r9678, a, MPFR_RNDN);
        mpfr_mul(r9679, r9674, r9678, MPFR_RNDN);
        mpfr_div(r9680, r9679, r9669, MPFR_RNDN);
        mpfr_mul(r9681, r9675, r9680, MPFR_RNDN);
        mpfr_mul(r9682, r9675, r9669, MPFR_RNDN);
        mpfr_sub(r9683, r9681, r9682, MPFR_RNDN);
        mpfr_div(r9684, r9677, r9683, MPFR_RNDN);
        ;
        mpfr_set_si(r9686, mpfr_cmp(r9670, r9685) <= 0, MPFR_RNDN);
        mpfr_mul(r9687, r9669, r9669, MPFR_RNDN);
        mpfr_mul(r9688, r9673, r9679, MPFR_RNDN);
        mpfr_sub(r9689, r9687, r9688, MPFR_RNDN);
        mpfr_sqrt(r9690, r9689, MPFR_RNDN);
        mpfr_sub(r9691, r9670, r9690, MPFR_RNDN);
        mpfr_div(r9692, r9677, r9691, MPFR_RNDN);
        ;
        mpfr_set_si(r9694, mpfr_cmp(r9670, r9693) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r9696, r9678, r9675, MPFR_RNDN);
        mpfr_div(r9697, r9695, r9696, MPFR_RNDN);
        mpfr_add(r9698, r9690, r9670, MPFR_RNDN);
        mpfr_mul(r9699, r9697, r9698, MPFR_RNDN);
        mpfr_div(r9700, r9670, r9678, MPFR_RNDN);
        if (mpfr_get_si(r9694, MPFR_RNDN)) { mpfr_set(r9701, r9699, MPFR_RNDN); } else { mpfr_set(r9701, r9700, MPFR_RNDN); };
        if (mpfr_get_si(r9686, MPFR_RNDN)) { mpfr_set(r9702, r9692, MPFR_RNDN); } else { mpfr_set(r9702, r9701, MPFR_RNDN); };
        if (mpfr_get_si(r9672, MPFR_RNDN)) { mpfr_set(r9703, r9684, MPFR_RNDN); } else { mpfr_set(r9703, r9702, MPFR_RNDN); };
        return mpfr_get_d(r9703, MPFR_RNDN);
}

static mpfr_t r9704, r9705, r9706, r9707, r9708, r9709, r9710, r9711, r9712, r9713, r9714, r9715, r9716, r9717, r9718, r9719, r9720, r9721, r9722, r9723, r9724, r9725, r9726, r9727, r9728, r9729, r9730, r9731, r9732, r9733, r9734, r9735, r9736, r9737, r9738;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9704);
        mpfr_init(r9705);
        mpfr_init_set_str(r9706, "-2.5035807776383027e+150", 10, MPFR_RNDN);
        mpfr_init(r9707);
        mpfr_init_set_str(r9708, "4", 10, MPFR_RNDN);
        mpfr_init(r9709);
        mpfr_init_set_str(r9710, "2", 10, MPFR_RNDN);
        mpfr_init(r9711);
        mpfr_init(r9712);
        mpfr_init(r9713);
        mpfr_init(r9714);
        mpfr_init(r9715);
        mpfr_init(r9716);
        mpfr_init(r9717);
        mpfr_init(r9718);
        mpfr_init(r9719);
        mpfr_init_set_str(r9720, "1.4186422616593875e-264", 10, MPFR_RNDN);
        mpfr_init(r9721);
        mpfr_init(r9722);
        mpfr_init(r9723);
        mpfr_init(r9724);
        mpfr_init(r9725);
        mpfr_init(r9726);
        mpfr_init(r9727);
        mpfr_init_set_str(r9728, "2.3420845656192757e+74", 10, MPFR_RNDN);
        mpfr_init(r9729);
        mpfr_init_set_str(r9730, "1", 10, MPFR_RNDN);
        mpfr_init(r9731);
        mpfr_init(r9732);
        mpfr_init(r9733);
        mpfr_init(r9734);
        mpfr_init(r9735);
        mpfr_init(r9736);
        mpfr_init(r9737);
        mpfr_init(r9738);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9704, b, MPFR_RNDN);
        mpfr_neg(r9705, r9704, MPFR_RNDN);
        ;
        mpfr_set_si(r9707, mpfr_cmp(r9705, r9706) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r9709, c, MPFR_RNDN);
        ;
        mpfr_div(r9711, r9709, r9710, MPFR_RNDN);
        mpfr_mul(r9712, r9708, r9711, MPFR_RNDN);
        mpfr_set_d(r9713, a, MPFR_RNDN);
        mpfr_mul(r9714, r9709, r9713, MPFR_RNDN);
        mpfr_div(r9715, r9714, r9704, MPFR_RNDN);
        mpfr_mul(r9716, r9710, r9715, MPFR_RNDN);
        mpfr_mul(r9717, r9710, r9704, MPFR_RNDN);
        mpfr_sub(r9718, r9716, r9717, MPFR_RNDN);
        mpfr_div(r9719, r9712, r9718, MPFR_RNDN);
        ;
        mpfr_set_si(r9721, mpfr_cmp(r9705, r9720) <= 0, MPFR_RNDN);
        mpfr_mul(r9722, r9704, r9704, MPFR_RNDN);
        mpfr_mul(r9723, r9708, r9714, MPFR_RNDN);
        mpfr_sub(r9724, r9722, r9723, MPFR_RNDN);
        mpfr_sqrt(r9725, r9724, MPFR_RNDN);
        mpfr_sub(r9726, r9705, r9725, MPFR_RNDN);
        mpfr_div(r9727, r9712, r9726, MPFR_RNDN);
        ;
        mpfr_set_si(r9729, mpfr_cmp(r9705, r9728) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r9731, r9713, r9710, MPFR_RNDN);
        mpfr_div(r9732, r9730, r9731, MPFR_RNDN);
        mpfr_add(r9733, r9725, r9705, MPFR_RNDN);
        mpfr_mul(r9734, r9732, r9733, MPFR_RNDN);
        mpfr_div(r9735, r9705, r9713, MPFR_RNDN);
        if (mpfr_get_si(r9729, MPFR_RNDN)) { mpfr_set(r9736, r9734, MPFR_RNDN); } else { mpfr_set(r9736, r9735, MPFR_RNDN); };
        if (mpfr_get_si(r9721, MPFR_RNDN)) { mpfr_set(r9737, r9727, MPFR_RNDN); } else { mpfr_set(r9737, r9736, MPFR_RNDN); };
        if (mpfr_get_si(r9707, MPFR_RNDN)) { mpfr_set(r9738, r9719, MPFR_RNDN); } else { mpfr_set(r9738, r9737, MPFR_RNDN); };
        return mpfr_get_d(r9738, MPFR_RNDN);
}

