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

char *name = "The quadratic formula (r2)";

double f_if(float a, float b, float c) {
        float r9424 = b;
        float r9425 = -r9424;
        float r9426 = r9424 * r9424;
        float r9427 = 4;
        float r9428 = a;
        float r9429 = c;
        float r9430 = r9428 * r9429;
        float r9431 = r9427 * r9430;
        float r9432 = r9426 - r9431;
        float r9433 = sqrt(r9432);
        float r9434 = r9425 - r9433;
        float r9435 = 2;
        float r9436 = r9435 * r9428;
        float r9437 = r9434 / r9436;
        return r9437;
}

double f_id(double a, double b, double c) {
        double r9438 = b;
        double r9439 = -r9438;
        double r9440 = r9438 * r9438;
        double r9441 = 4;
        double r9442 = a;
        double r9443 = c;
        double r9444 = r9442 * r9443;
        double r9445 = r9441 * r9444;
        double r9446 = r9440 - r9445;
        double r9447 = sqrt(r9446);
        double r9448 = r9439 - r9447;
        double r9449 = 2;
        double r9450 = r9449 * r9442;
        double r9451 = r9448 / r9450;
        return r9451;
}


double f_of(float a, float b, float c) {
        float r9452 = b;
        float r9453 = -1.1058513712164536e+149;
        bool r9454 = r9452 <= r9453;
        float r9455 = c;
        float r9456 = r9455 / r9452;
        float r9457 = -r9456;
        float r9458 = -5.496700305081621e-102;
        bool r9459 = r9452 <= r9458;
        float r9460 = a;
        float r9461 = r9455 * r9460;
        float r9462 = 4;
        float r9463 = r9461 * r9462;
        float r9464 = r9452 * r9452;
        float r9465 = r9462 * r9460;
        float r9466 = r9465 * r9455;
        float r9467 = r9464 - r9466;
        float r9468 = sqrt(r9467);
        float r9469 = r9468 - r9452;
        float r9470 = r9463 / r9469;
        float r9471 = 2;
        float r9472 = r9460 * r9471;
        float r9473 = r9470 / r9472;
        float r9474 = 6.008237338849469e+153;
        bool r9475 = r9452 <= r9474;
        float r9476 = -r9452;
        float r9477 = r9476 / r9472;
        float r9478 = r9464 - r9463;
        float r9479 = sqrt(r9478);
        float r9480 = r9479 / r9472;
        float r9481 = r9477 - r9480;
        float r9482 = r9452 / r9460;
        float r9483 = r9456 - r9482;
        float r9484 = r9475 ? r9481 : r9483;
        float r9485 = r9459 ? r9473 : r9484;
        float r9486 = r9454 ? r9457 : r9485;
        return r9486;
}

double f_od(double a, double b, double c) {
        double r9487 = b;
        double r9488 = -1.1058513712164536e+149;
        bool r9489 = r9487 <= r9488;
        double r9490 = c;
        double r9491 = r9490 / r9487;
        double r9492 = -r9491;
        double r9493 = -5.496700305081621e-102;
        bool r9494 = r9487 <= r9493;
        double r9495 = a;
        double r9496 = r9490 * r9495;
        double r9497 = 4;
        double r9498 = r9496 * r9497;
        double r9499 = r9487 * r9487;
        double r9500 = r9497 * r9495;
        double r9501 = r9500 * r9490;
        double r9502 = r9499 - r9501;
        double r9503 = sqrt(r9502);
        double r9504 = r9503 - r9487;
        double r9505 = r9498 / r9504;
        double r9506 = 2;
        double r9507 = r9495 * r9506;
        double r9508 = r9505 / r9507;
        double r9509 = 6.008237338849469e+153;
        bool r9510 = r9487 <= r9509;
        double r9511 = -r9487;
        double r9512 = r9511 / r9507;
        double r9513 = r9499 - r9498;
        double r9514 = sqrt(r9513);
        double r9515 = r9514 / r9507;
        double r9516 = r9512 - r9515;
        double r9517 = r9487 / r9495;
        double r9518 = r9491 - r9517;
        double r9519 = r9510 ? r9516 : r9518;
        double r9520 = r9494 ? r9508 : r9519;
        double r9521 = r9489 ? r9492 : r9520;
        return r9521;
}

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 r9522, r9523, r9524, r9525, r9526, r9527, r9528, r9529, r9530, r9531, r9532, r9533, r9534, r9535;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9522);
        mpfr_init(r9523);
        mpfr_init(r9524);
        mpfr_init_set_str(r9525, "4", 10, MPFR_RNDN);
        mpfr_init(r9526);
        mpfr_init(r9527);
        mpfr_init(r9528);
        mpfr_init(r9529);
        mpfr_init(r9530);
        mpfr_init(r9531);
        mpfr_init(r9532);
        mpfr_init_set_str(r9533, "2", 10, MPFR_RNDN);
        mpfr_init(r9534);
        mpfr_init(r9535);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9522, b, MPFR_RNDN);
        mpfr_neg(r9523, r9522, MPFR_RNDN);
        mpfr_mul(r9524, r9522, r9522, MPFR_RNDN);
        ;
        mpfr_set_d(r9526, a, MPFR_RNDN);
        mpfr_set_d(r9527, c, MPFR_RNDN);
        mpfr_mul(r9528, r9526, r9527, MPFR_RNDN);
        mpfr_mul(r9529, r9525, r9528, MPFR_RNDN);
        mpfr_sub(r9530, r9524, r9529, MPFR_RNDN);
        mpfr_sqrt(r9531, r9530, MPFR_RNDN);
        mpfr_sub(r9532, r9523, r9531, MPFR_RNDN);
        ;
        mpfr_mul(r9534, r9533, r9526, MPFR_RNDN);
        mpfr_div(r9535, r9532, r9534, MPFR_RNDN);
        return mpfr_get_d(r9535, MPFR_RNDN);
}

static mpfr_t r9536, r9537, r9538, r9539, r9540, r9541, r9542, r9543, r9544, r9545, r9546, r9547, r9548, r9549, r9550, r9551, r9552, r9553, r9554, r9555, r9556, r9557, r9558, r9559, r9560, r9561, r9562, r9563, r9564, r9565, r9566, r9567, r9568, r9569, r9570;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9536);
        mpfr_init_set_str(r9537, "-1.1058513712164536e+149", 10, MPFR_RNDN);
        mpfr_init(r9538);
        mpfr_init(r9539);
        mpfr_init(r9540);
        mpfr_init(r9541);
        mpfr_init_set_str(r9542, "-5.496700305081621e-102", 10, MPFR_RNDN);
        mpfr_init(r9543);
        mpfr_init(r9544);
        mpfr_init(r9545);
        mpfr_init_set_str(r9546, "4", 10, MPFR_RNDN);
        mpfr_init(r9547);
        mpfr_init(r9548);
        mpfr_init(r9549);
        mpfr_init(r9550);
        mpfr_init(r9551);
        mpfr_init(r9552);
        mpfr_init(r9553);
        mpfr_init(r9554);
        mpfr_init_set_str(r9555, "2", 10, MPFR_RNDN);
        mpfr_init(r9556);
        mpfr_init(r9557);
        mpfr_init_set_str(r9558, "6.008237338849469e+153", 10, MPFR_RNDN);
        mpfr_init(r9559);
        mpfr_init(r9560);
        mpfr_init(r9561);
        mpfr_init(r9562);
        mpfr_init(r9563);
        mpfr_init(r9564);
        mpfr_init(r9565);
        mpfr_init(r9566);
        mpfr_init(r9567);
        mpfr_init(r9568);
        mpfr_init(r9569);
        mpfr_init(r9570);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9536, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9538, mpfr_cmp(r9536, r9537) <= 0, MPFR_RNDN);
        mpfr_set_d(r9539, c, MPFR_RNDN);
        mpfr_div(r9540, r9539, r9536, MPFR_RNDN);
        mpfr_neg(r9541, r9540, MPFR_RNDN);
        ;
        mpfr_set_si(r9543, mpfr_cmp(r9536, r9542) <= 0, MPFR_RNDN);
        mpfr_set_d(r9544, a, MPFR_RNDN);
        mpfr_mul(r9545, r9539, r9544, MPFR_RNDN);
        ;
        mpfr_mul(r9547, r9545, r9546, MPFR_RNDN);
        mpfr_mul(r9548, r9536, r9536, MPFR_RNDN);
        mpfr_mul(r9549, r9546, r9544, MPFR_RNDN);
        mpfr_mul(r9550, r9549, r9539, MPFR_RNDN);
        mpfr_sub(r9551, r9548, r9550, MPFR_RNDN);
        mpfr_sqrt(r9552, r9551, MPFR_RNDN);
        mpfr_sub(r9553, r9552, r9536, MPFR_RNDN);
        mpfr_div(r9554, r9547, r9553, MPFR_RNDN);
        ;
        mpfr_mul(r9556, r9544, r9555, MPFR_RNDN);
        mpfr_div(r9557, r9554, r9556, MPFR_RNDN);
        ;
        mpfr_set_si(r9559, mpfr_cmp(r9536, r9558) <= 0, MPFR_RNDN);
        mpfr_neg(r9560, r9536, MPFR_RNDN);
        mpfr_div(r9561, r9560, r9556, MPFR_RNDN);
        mpfr_sub(r9562, r9548, r9547, MPFR_RNDN);
        mpfr_sqrt(r9563, r9562, MPFR_RNDN);
        mpfr_div(r9564, r9563, r9556, MPFR_RNDN);
        mpfr_sub(r9565, r9561, r9564, MPFR_RNDN);
        mpfr_div(r9566, r9536, r9544, MPFR_RNDN);
        mpfr_sub(r9567, r9540, r9566, MPFR_RNDN);
        if (mpfr_get_si(r9559, MPFR_RNDN)) { mpfr_set(r9568, r9565, MPFR_RNDN); } else { mpfr_set(r9568, r9567, MPFR_RNDN); };
        if (mpfr_get_si(r9543, MPFR_RNDN)) { mpfr_set(r9569, r9557, MPFR_RNDN); } else { mpfr_set(r9569, r9568, MPFR_RNDN); };
        if (mpfr_get_si(r9538, MPFR_RNDN)) { mpfr_set(r9570, r9541, MPFR_RNDN); } else { mpfr_set(r9570, r9569, MPFR_RNDN); };
        return mpfr_get_d(r9570, MPFR_RNDN);
}

static mpfr_t r9571, r9572, r9573, r9574, r9575, r9576, r9577, r9578, r9579, r9580, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9571);
        mpfr_init_set_str(r9572, "-1.1058513712164536e+149", 10, MPFR_RNDN);
        mpfr_init(r9573);
        mpfr_init(r9574);
        mpfr_init(r9575);
        mpfr_init(r9576);
        mpfr_init_set_str(r9577, "-5.496700305081621e-102", 10, MPFR_RNDN);
        mpfr_init(r9578);
        mpfr_init(r9579);
        mpfr_init(r9580);
        mpfr_init_set_str(r9581, "4", 10, MPFR_RNDN);
        mpfr_init(r9582);
        mpfr_init(r9583);
        mpfr_init(r9584);
        mpfr_init(r9585);
        mpfr_init(r9586);
        mpfr_init(r9587);
        mpfr_init(r9588);
        mpfr_init(r9589);
        mpfr_init_set_str(r9590, "2", 10, MPFR_RNDN);
        mpfr_init(r9591);
        mpfr_init(r9592);
        mpfr_init_set_str(r9593, "6.008237338849469e+153", 10, MPFR_RNDN);
        mpfr_init(r9594);
        mpfr_init(r9595);
        mpfr_init(r9596);
        mpfr_init(r9597);
        mpfr_init(r9598);
        mpfr_init(r9599);
        mpfr_init(r9600);
        mpfr_init(r9601);
        mpfr_init(r9602);
        mpfr_init(r9603);
        mpfr_init(r9604);
        mpfr_init(r9605);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9571, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9573, mpfr_cmp(r9571, r9572) <= 0, MPFR_RNDN);
        mpfr_set_d(r9574, c, MPFR_RNDN);
        mpfr_div(r9575, r9574, r9571, MPFR_RNDN);
        mpfr_neg(r9576, r9575, MPFR_RNDN);
        ;
        mpfr_set_si(r9578, mpfr_cmp(r9571, r9577) <= 0, MPFR_RNDN);
        mpfr_set_d(r9579, a, MPFR_RNDN);
        mpfr_mul(r9580, r9574, r9579, MPFR_RNDN);
        ;
        mpfr_mul(r9582, r9580, r9581, MPFR_RNDN);
        mpfr_mul(r9583, r9571, r9571, MPFR_RNDN);
        mpfr_mul(r9584, r9581, r9579, MPFR_RNDN);
        mpfr_mul(r9585, r9584, r9574, MPFR_RNDN);
        mpfr_sub(r9586, r9583, r9585, MPFR_RNDN);
        mpfr_sqrt(r9587, r9586, MPFR_RNDN);
        mpfr_sub(r9588, r9587, r9571, MPFR_RNDN);
        mpfr_div(r9589, r9582, r9588, MPFR_RNDN);
        ;
        mpfr_mul(r9591, r9579, r9590, MPFR_RNDN);
        mpfr_div(r9592, r9589, r9591, MPFR_RNDN);
        ;
        mpfr_set_si(r9594, mpfr_cmp(r9571, r9593) <= 0, MPFR_RNDN);
        mpfr_neg(r9595, r9571, MPFR_RNDN);
        mpfr_div(r9596, r9595, r9591, MPFR_RNDN);
        mpfr_sub(r9597, r9583, r9582, MPFR_RNDN);
        mpfr_sqrt(r9598, r9597, MPFR_RNDN);
        mpfr_div(r9599, r9598, r9591, MPFR_RNDN);
        mpfr_sub(r9600, r9596, r9599, MPFR_RNDN);
        mpfr_div(r9601, r9571, r9579, MPFR_RNDN);
        mpfr_sub(r9602, r9575, r9601, MPFR_RNDN);
        if (mpfr_get_si(r9594, MPFR_RNDN)) { mpfr_set(r9603, r9600, MPFR_RNDN); } else { mpfr_set(r9603, r9602, MPFR_RNDN); };
        if (mpfr_get_si(r9578, MPFR_RNDN)) { mpfr_set(r9604, r9592, MPFR_RNDN); } else { mpfr_set(r9604, r9603, MPFR_RNDN); };
        if (mpfr_get_si(r9573, MPFR_RNDN)) { mpfr_set(r9605, r9576, MPFR_RNDN); } else { mpfr_set(r9605, r9604, MPFR_RNDN); };
        return mpfr_get_d(r9605, MPFR_RNDN);
}

