#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 r9475 = b;
        float r9476 = -r9475;
        float r9477 = r9475 * r9475;
        float r9478 = 4.0f;
        float r9479 = a;
        float r9480 = c;
        float r9481 = r9479 * r9480;
        float r9482 = r9478 * r9481;
        float r9483 = r9477 - r9482;
        float r9484 = sqrt(r9483);
        float r9485 = r9476 + r9484;
        float r9486 = 2.0f;
        float r9487 = r9486 * r9479;
        float r9488 = r9485 / r9487;
        return r9488;
}

double f_id(double a, double b, double c) {
        double r9489 = b;
        double r9490 = -r9489;
        double r9491 = r9489 * r9489;
        double r9492 = 4.0;
        double r9493 = a;
        double r9494 = c;
        double r9495 = r9493 * r9494;
        double r9496 = r9492 * r9495;
        double r9497 = r9491 - r9496;
        double r9498 = sqrt(r9497);
        double r9499 = r9490 + r9498;
        double r9500 = 2.0;
        double r9501 = r9500 * r9493;
        double r9502 = r9499 / r9501;
        return r9502;
}


double f_of(float a, float b, float c) {
        float r9503 = b;
        float r9504 = -1.338815475246526e+154f;
        bool r9505 = r9503 <= r9504;
        float r9506 = a;
        float r9507 = r9503 / r9506;
        float r9508 = -r9507;
        float r9509 = 6.959587268650696e-95f;
        bool r9510 = r9503 <= r9509;
        float r9511 = r9503 * r9503;
        float r9512 = c;
        float r9513 = r9506 * r9512;
        float r9514 = 4.0f;
        float r9515 = r9513 * r9514;
        float r9516 = r9511 - r9515;
        float r9517 = sqrt(r9516);
        float r9518 = -r9503;
        float r9519 = r9517 + r9518;
        float r9520 = 2.0f;
        float r9521 = r9520 * r9506;
        float r9522 = r9519 / r9521;
        float r9523 = 1.3313504726342534e+154f;
        bool r9524 = r9503 <= r9523;
        float r9525 = r9518 - r9517;
        float r9526 = r9521 * r9525;
        float r9527 = r9515 / r9526;
        float r9528 = -2.0f;
        float r9529 = r9513 / r9503;
        float r9530 = r9528 * r9529;
        float r9531 = r9530 / r9521;
        float r9532 = r9524 ? r9527 : r9531;
        float r9533 = r9510 ? r9522 : r9532;
        float r9534 = r9505 ? r9508 : r9533;
        return r9534;
}

double f_od(double a, double b, double c) {
        double r9535 = b;
        double r9536 = -1.338815475246526e+154;
        bool r9537 = r9535 <= r9536;
        double r9538 = a;
        double r9539 = r9535 / r9538;
        double r9540 = -r9539;
        double r9541 = 6.959587268650696e-95;
        bool r9542 = r9535 <= r9541;
        double r9543 = r9535 * r9535;
        double r9544 = c;
        double r9545 = r9538 * r9544;
        double r9546 = 4.0;
        double r9547 = r9545 * r9546;
        double r9548 = r9543 - r9547;
        double r9549 = sqrt(r9548);
        double r9550 = -r9535;
        double r9551 = r9549 + r9550;
        double r9552 = 2.0;
        double r9553 = r9552 * r9538;
        double r9554 = r9551 / r9553;
        double r9555 = 1.3313504726342534e+154;
        bool r9556 = r9535 <= r9555;
        double r9557 = r9550 - r9549;
        double r9558 = r9553 * r9557;
        double r9559 = r9547 / r9558;
        double r9560 = -2.0;
        double r9561 = r9545 / r9535;
        double r9562 = r9560 * r9561;
        double r9563 = r9562 / r9553;
        double r9564 = r9556 ? r9559 : r9563;
        double r9565 = r9542 ? r9554 : r9564;
        double r9566 = r9537 ? r9540 : r9565;
        return r9566;
}

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 r9567, r9568, r9569, r9570, r9571, r9572, r9573, r9574, r9575, r9576, r9577, r9578, r9579, r9580;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3152);
        mpfr_init(r9567);
        mpfr_init(r9568);
        mpfr_init(r9569);
        mpfr_init_set_str(r9570, "4", 10, MPFR_RNDN);
        mpfr_init(r9571);
        mpfr_init(r9572);
        mpfr_init(r9573);
        mpfr_init(r9574);
        mpfr_init(r9575);
        mpfr_init(r9576);
        mpfr_init(r9577);
        mpfr_init_set_str(r9578, "2", 10, MPFR_RNDN);
        mpfr_init(r9579);
        mpfr_init(r9580);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9567, b, MPFR_RNDN);
        mpfr_neg(r9568, r9567, MPFR_RNDN);
        mpfr_mul(r9569, r9567, r9567, MPFR_RNDN);
        ;
        mpfr_set_d(r9571, a, MPFR_RNDN);
        mpfr_set_d(r9572, c, MPFR_RNDN);
        mpfr_mul(r9573, r9571, r9572, MPFR_RNDN);
        mpfr_mul(r9574, r9570, r9573, MPFR_RNDN);
        mpfr_sub(r9575, r9569, r9574, MPFR_RNDN);
        mpfr_sqrt(r9576, r9575, MPFR_RNDN);
        mpfr_add(r9577, r9568, r9576, MPFR_RNDN);
        ;
        mpfr_mul(r9579, r9578, r9571, MPFR_RNDN);
        mpfr_div(r9580, r9577, r9579, MPFR_RNDN);
        return mpfr_get_d(r9580, MPFR_RNDN);
}

static mpfr_t r9581, r9582, r9583, r9584, r9585, r9586, r9587, r9588, r9589, r9590, r9591, r9592, r9593, r9594, r9595, r9596, r9597, r9598, r9599, r9600, r9601, r9602, r9603, r9604, r9605, r9606, r9607, r9608, r9609, r9610, r9611, r9612;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r9581);
        mpfr_init_set_str(r9582, "-1.338815475246526e+154", 10, MPFR_RNDN);
        mpfr_init(r9583);
        mpfr_init(r9584);
        mpfr_init(r9585);
        mpfr_init(r9586);
        mpfr_init_set_str(r9587, "6.959587268650696e-95", 10, MPFR_RNDN);
        mpfr_init(r9588);
        mpfr_init(r9589);
        mpfr_init(r9590);
        mpfr_init(r9591);
        mpfr_init_set_str(r9592, "4", 10, MPFR_RNDN);
        mpfr_init(r9593);
        mpfr_init(r9594);
        mpfr_init(r9595);
        mpfr_init(r9596);
        mpfr_init(r9597);
        mpfr_init_set_str(r9598, "2", 10, MPFR_RNDN);
        mpfr_init(r9599);
        mpfr_init(r9600);
        mpfr_init_set_str(r9601, "1.3313504726342534e+154", 10, MPFR_RNDN);
        mpfr_init(r9602);
        mpfr_init(r9603);
        mpfr_init(r9604);
        mpfr_init(r9605);
        mpfr_init_set_str(r9606, "-2", 10, MPFR_RNDN);
        mpfr_init(r9607);
        mpfr_init(r9608);
        mpfr_init(r9609);
        mpfr_init(r9610);
        mpfr_init(r9611);
        mpfr_init(r9612);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9581, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9583, mpfr_cmp(r9581, r9582) <= 0, MPFR_RNDN);
        mpfr_set_d(r9584, a, MPFR_RNDN);
        mpfr_div(r9585, r9581, r9584, MPFR_RNDN);
        mpfr_neg(r9586, r9585, MPFR_RNDN);
        ;
        mpfr_set_si(r9588, mpfr_cmp(r9581, r9587) <= 0, MPFR_RNDN);
        mpfr_mul(r9589, r9581, r9581, MPFR_RNDN);
        mpfr_set_d(r9590, c, MPFR_RNDN);
        mpfr_mul(r9591, r9584, r9590, MPFR_RNDN);
        ;
        mpfr_mul(r9593, r9591, r9592, MPFR_RNDN);
        mpfr_sub(r9594, r9589, r9593, MPFR_RNDN);
        mpfr_sqrt(r9595, r9594, MPFR_RNDN);
        mpfr_neg(r9596, r9581, MPFR_RNDN);
        mpfr_add(r9597, r9595, r9596, MPFR_RNDN);
        ;
        mpfr_mul(r9599, r9598, r9584, MPFR_RNDN);
        mpfr_div(r9600, r9597, r9599, MPFR_RNDN);
        ;
        mpfr_set_si(r9602, mpfr_cmp(r9581, r9601) <= 0, MPFR_RNDN);
        mpfr_sub(r9603, r9596, r9595, MPFR_RNDN);
        mpfr_mul(r9604, r9599, r9603, MPFR_RNDN);
        mpfr_div(r9605, r9593, r9604, MPFR_RNDN);
        ;
        mpfr_div(r9607, r9591, r9581, MPFR_RNDN);
        mpfr_mul(r9608, r9606, r9607, MPFR_RNDN);
        mpfr_div(r9609, r9608, r9599, MPFR_RNDN);
        if (mpfr_get_si(r9602, MPFR_RNDN)) { mpfr_set(r9610, r9605, MPFR_RNDN); } else { mpfr_set(r9610, r9609, MPFR_RNDN); };
        if (mpfr_get_si(r9588, MPFR_RNDN)) { mpfr_set(r9611, r9600, MPFR_RNDN); } else { mpfr_set(r9611, r9610, MPFR_RNDN); };
        if (mpfr_get_si(r9583, MPFR_RNDN)) { mpfr_set(r9612, r9586, MPFR_RNDN); } else { mpfr_set(r9612, r9611, MPFR_RNDN); };
        return mpfr_get_d(r9612, MPFR_RNDN);
}

static mpfr_t r9613, r9614, r9615, r9616, r9617, r9618, r9619, r9620, r9621, r9622, r9623, r9624, r9625, r9626, r9627, r9628, r9629, r9630, r9631, r9632, r9633, r9634, r9635, r9636, r9637, r9638, r9639, r9640, r9641, r9642, r9643, r9644;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r9613);
        mpfr_init_set_str(r9614, "-1.338815475246526e+154", 10, MPFR_RNDN);
        mpfr_init(r9615);
        mpfr_init(r9616);
        mpfr_init(r9617);
        mpfr_init(r9618);
        mpfr_init_set_str(r9619, "6.959587268650696e-95", 10, MPFR_RNDN);
        mpfr_init(r9620);
        mpfr_init(r9621);
        mpfr_init(r9622);
        mpfr_init(r9623);
        mpfr_init_set_str(r9624, "4", 10, MPFR_RNDN);
        mpfr_init(r9625);
        mpfr_init(r9626);
        mpfr_init(r9627);
        mpfr_init(r9628);
        mpfr_init(r9629);
        mpfr_init_set_str(r9630, "2", 10, MPFR_RNDN);
        mpfr_init(r9631);
        mpfr_init(r9632);
        mpfr_init_set_str(r9633, "1.3313504726342534e+154", 10, MPFR_RNDN);
        mpfr_init(r9634);
        mpfr_init(r9635);
        mpfr_init(r9636);
        mpfr_init(r9637);
        mpfr_init_set_str(r9638, "-2", 10, MPFR_RNDN);
        mpfr_init(r9639);
        mpfr_init(r9640);
        mpfr_init(r9641);
        mpfr_init(r9642);
        mpfr_init(r9643);
        mpfr_init(r9644);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9613, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9615, mpfr_cmp(r9613, r9614) <= 0, MPFR_RNDN);
        mpfr_set_d(r9616, a, MPFR_RNDN);
        mpfr_div(r9617, r9613, r9616, MPFR_RNDN);
        mpfr_neg(r9618, r9617, MPFR_RNDN);
        ;
        mpfr_set_si(r9620, mpfr_cmp(r9613, r9619) <= 0, MPFR_RNDN);
        mpfr_mul(r9621, r9613, r9613, MPFR_RNDN);
        mpfr_set_d(r9622, c, MPFR_RNDN);
        mpfr_mul(r9623, r9616, r9622, MPFR_RNDN);
        ;
        mpfr_mul(r9625, r9623, r9624, MPFR_RNDN);
        mpfr_sub(r9626, r9621, r9625, MPFR_RNDN);
        mpfr_sqrt(r9627, r9626, MPFR_RNDN);
        mpfr_neg(r9628, r9613, MPFR_RNDN);
        mpfr_add(r9629, r9627, r9628, MPFR_RNDN);
        ;
        mpfr_mul(r9631, r9630, r9616, MPFR_RNDN);
        mpfr_div(r9632, r9629, r9631, MPFR_RNDN);
        ;
        mpfr_set_si(r9634, mpfr_cmp(r9613, r9633) <= 0, MPFR_RNDN);
        mpfr_sub(r9635, r9628, r9627, MPFR_RNDN);
        mpfr_mul(r9636, r9631, r9635, MPFR_RNDN);
        mpfr_div(r9637, r9625, r9636, MPFR_RNDN);
        ;
        mpfr_div(r9639, r9623, r9613, MPFR_RNDN);
        mpfr_mul(r9640, r9638, r9639, MPFR_RNDN);
        mpfr_div(r9641, r9640, r9631, MPFR_RNDN);
        if (mpfr_get_si(r9634, MPFR_RNDN)) { mpfr_set(r9642, r9637, MPFR_RNDN); } else { mpfr_set(r9642, r9641, MPFR_RNDN); };
        if (mpfr_get_si(r9620, MPFR_RNDN)) { mpfr_set(r9643, r9632, MPFR_RNDN); } else { mpfr_set(r9643, r9642, MPFR_RNDN); };
        if (mpfr_get_si(r9615, MPFR_RNDN)) { mpfr_set(r9644, r9618, MPFR_RNDN); } else { mpfr_set(r9644, r9643, MPFR_RNDN); };
        return mpfr_get_d(r9644, MPFR_RNDN);
}

