#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 r9353 = b;
        float r9354 = -r9353;
        float r9355 = r9353 * r9353;
        float r9356 = 4;
        float r9357 = a;
        float r9358 = c;
        float r9359 = r9357 * r9358;
        float r9360 = r9356 * r9359;
        float r9361 = r9355 - r9360;
        float r9362 = sqrt(r9361);
        float r9363 = r9354 - r9362;
        float r9364 = 2;
        float r9365 = r9364 * r9357;
        float r9366 = r9363 / r9365;
        return r9366;
}

double f_id(double a, double b, double c) {
        double r9367 = b;
        double r9368 = -r9367;
        double r9369 = r9367 * r9367;
        double r9370 = 4;
        double r9371 = a;
        double r9372 = c;
        double r9373 = r9371 * r9372;
        double r9374 = r9370 * r9373;
        double r9375 = r9369 - r9374;
        double r9376 = sqrt(r9375);
        double r9377 = r9368 - r9376;
        double r9378 = 2;
        double r9379 = r9378 * r9371;
        double r9380 = r9377 / r9379;
        return r9380;
}


double f_of(float a, float b, float c) {
        float r9381 = b;
        float r9382 = -r9381;
        float r9383 = -1.1677101794050704e+83;
        bool r9384 = r9382 <= r9383;
        float r9385 = a;
        float r9386 = r9381 / r9385;
        float r9387 = -r9386;
        float r9388 = 4.88870533228829e-274;
        bool r9389 = r9382 <= r9388;
        float r9390 = 1;
        float r9391 = 2;
        float r9392 = r9391 * r9385;
        float r9393 = r9390 / r9392;
        float r9394 = r9381 * r9381;
        float r9395 = c;
        float r9396 = r9385 * r9395;
        float r9397 = 4;
        float r9398 = r9396 * r9397;
        float r9399 = r9394 - r9398;
        float r9400 = sqrt(r9399);
        float r9401 = r9382 - r9400;
        float r9402 = r9393 * r9401;
        float r9403 = 6.775459950416538e+134;
        bool r9404 = r9382 <= r9403;
        float r9405 = -r9397;
        float r9406 = fma(r9405, r9396, r9394);
        float r9407 = sqrt(r9406);
        float r9408 = r9407 - r9381;
        float r9409 = sqrt(r9408);
        float r9410 = r9397 / r9409;
        float r9411 = r9395 / r9409;
        float r9412 = r9411 / r9391;
        float r9413 = r9410 * r9412;
        float r9414 = -2;
        float r9415 = r9391 / r9395;
        float r9416 = r9414 / r9415;
        float r9417 = r9416 / r9381;
        float r9418 = r9404 ? r9413 : r9417;
        float r9419 = r9389 ? r9402 : r9418;
        float r9420 = r9384 ? r9387 : r9419;
        return r9420;
}

double f_od(double a, double b, double c) {
        double r9421 = b;
        double r9422 = -r9421;
        double r9423 = -1.1677101794050704e+83;
        bool r9424 = r9422 <= r9423;
        double r9425 = a;
        double r9426 = r9421 / r9425;
        double r9427 = -r9426;
        double r9428 = 4.88870533228829e-274;
        bool r9429 = r9422 <= r9428;
        double r9430 = 1;
        double r9431 = 2;
        double r9432 = r9431 * r9425;
        double r9433 = r9430 / r9432;
        double r9434 = r9421 * r9421;
        double r9435 = c;
        double r9436 = r9425 * r9435;
        double r9437 = 4;
        double r9438 = r9436 * r9437;
        double r9439 = r9434 - r9438;
        double r9440 = sqrt(r9439);
        double r9441 = r9422 - r9440;
        double r9442 = r9433 * r9441;
        double r9443 = 6.775459950416538e+134;
        bool r9444 = r9422 <= r9443;
        double r9445 = -r9437;
        double r9446 = fma(r9445, r9436, r9434);
        double r9447 = sqrt(r9446);
        double r9448 = r9447 - r9421;
        double r9449 = sqrt(r9448);
        double r9450 = r9437 / r9449;
        double r9451 = r9435 / r9449;
        double r9452 = r9451 / r9431;
        double r9453 = r9450 * r9452;
        double r9454 = -2;
        double r9455 = r9431 / r9435;
        double r9456 = r9454 / r9455;
        double r9457 = r9456 / r9421;
        double r9458 = r9444 ? r9453 : r9457;
        double r9459 = r9429 ? r9442 : r9458;
        double r9460 = r9424 ? r9427 : r9459;
        return r9460;
}

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 r9461, r9462, r9463, r9464, r9465, r9466, r9467, r9468, r9469, r9470, r9471, r9472, r9473, r9474;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9461);
        mpfr_init(r9462);
        mpfr_init(r9463);
        mpfr_init_set_str(r9464, "4", 10, MPFR_RNDN);
        mpfr_init(r9465);
        mpfr_init(r9466);
        mpfr_init(r9467);
        mpfr_init(r9468);
        mpfr_init(r9469);
        mpfr_init(r9470);
        mpfr_init(r9471);
        mpfr_init_set_str(r9472, "2", 10, MPFR_RNDN);
        mpfr_init(r9473);
        mpfr_init(r9474);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9461, b, MPFR_RNDN);
        mpfr_neg(r9462, r9461, MPFR_RNDN);
        mpfr_mul(r9463, r9461, r9461, MPFR_RNDN);
        ;
        mpfr_set_d(r9465, a, MPFR_RNDN);
        mpfr_set_d(r9466, c, MPFR_RNDN);
        mpfr_mul(r9467, r9465, r9466, MPFR_RNDN);
        mpfr_mul(r9468, r9464, r9467, MPFR_RNDN);
        mpfr_sub(r9469, r9463, r9468, MPFR_RNDN);
        mpfr_sqrt(r9470, r9469, MPFR_RNDN);
        mpfr_sub(r9471, r9462, r9470, MPFR_RNDN);
        ;
        mpfr_mul(r9473, r9472, r9465, MPFR_RNDN);
        mpfr_div(r9474, r9471, r9473, MPFR_RNDN);
        return mpfr_get_d(r9474, MPFR_RNDN);
}

static mpfr_t r9475, r9476, r9477, r9478, r9479, r9480, r9481, r9482, r9483, r9484, r9485, r9486, r9487, r9488, r9489, r9490, r9491, r9492, r9493, r9494, r9495, r9496, r9497, r9498, r9499, r9500, r9501, r9502, r9503, r9504, r9505, r9506, r9507, r9508, r9509, r9510, r9511, r9512, r9513, r9514;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9475);
        mpfr_init(r9476);
        mpfr_init_set_str(r9477, "-1.1677101794050704e+83", 10, MPFR_RNDN);
        mpfr_init(r9478);
        mpfr_init(r9479);
        mpfr_init(r9480);
        mpfr_init(r9481);
        mpfr_init_set_str(r9482, "4.88870533228829e-274", 10, MPFR_RNDN);
        mpfr_init(r9483);
        mpfr_init_set_str(r9484, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9485, "2", 10, MPFR_RNDN);
        mpfr_init(r9486);
        mpfr_init(r9487);
        mpfr_init(r9488);
        mpfr_init(r9489);
        mpfr_init(r9490);
        mpfr_init_set_str(r9491, "4", 10, MPFR_RNDN);
        mpfr_init(r9492);
        mpfr_init(r9493);
        mpfr_init(r9494);
        mpfr_init(r9495);
        mpfr_init(r9496);
        mpfr_init_set_str(r9497, "6.775459950416538e+134", 10, MPFR_RNDN);
        mpfr_init(r9498);
        mpfr_init(r9499);
        mpfr_init(r9500);
        mpfr_init(r9501);
        mpfr_init(r9502);
        mpfr_init(r9503);
        mpfr_init(r9504);
        mpfr_init(r9505);
        mpfr_init(r9506);
        mpfr_init(r9507);
        mpfr_init_set_str(r9508, "-2", 10, MPFR_RNDN);
        mpfr_init(r9509);
        mpfr_init(r9510);
        mpfr_init(r9511);
        mpfr_init(r9512);
        mpfr_init(r9513);
        mpfr_init(r9514);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9475, b, MPFR_RNDN);
        mpfr_neg(r9476, r9475, MPFR_RNDN);
        ;
        mpfr_set_si(r9478, mpfr_cmp(r9476, r9477) <= 0, MPFR_RNDN);
        mpfr_set_d(r9479, a, MPFR_RNDN);
        mpfr_div(r9480, r9475, r9479, MPFR_RNDN);
        mpfr_neg(r9481, r9480, MPFR_RNDN);
        ;
        mpfr_set_si(r9483, mpfr_cmp(r9476, r9482) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9486, r9485, r9479, MPFR_RNDN);
        mpfr_div(r9487, r9484, r9486, MPFR_RNDN);
        mpfr_mul(r9488, r9475, r9475, MPFR_RNDN);
        mpfr_set_d(r9489, c, MPFR_RNDN);
        mpfr_mul(r9490, r9479, r9489, MPFR_RNDN);
        ;
        mpfr_mul(r9492, r9490, r9491, MPFR_RNDN);
        mpfr_sub(r9493, r9488, r9492, MPFR_RNDN);
        mpfr_sqrt(r9494, r9493, MPFR_RNDN);
        mpfr_sub(r9495, r9476, r9494, MPFR_RNDN);
        mpfr_mul(r9496, r9487, r9495, MPFR_RNDN);
        ;
        mpfr_set_si(r9498, mpfr_cmp(r9476, r9497) <= 0, MPFR_RNDN);
        mpfr_neg(r9499, r9491, MPFR_RNDN);
        mpfr_fma(r9500, r9499, r9490, r9488, MPFR_RNDN);
        mpfr_sqrt(r9501, r9500, MPFR_RNDN);
        mpfr_sub(r9502, r9501, r9475, MPFR_RNDN);
        mpfr_sqrt(r9503, r9502, MPFR_RNDN);
        mpfr_div(r9504, r9491, r9503, MPFR_RNDN);
        mpfr_div(r9505, r9489, r9503, MPFR_RNDN);
        mpfr_div(r9506, r9505, r9485, MPFR_RNDN);
        mpfr_mul(r9507, r9504, r9506, MPFR_RNDN);
        ;
        mpfr_div(r9509, r9485, r9489, MPFR_RNDN);
        mpfr_div(r9510, r9508, r9509, MPFR_RNDN);
        mpfr_div(r9511, r9510, r9475, MPFR_RNDN);
        if (mpfr_get_si(r9498, MPFR_RNDN)) { mpfr_set(r9512, r9507, MPFR_RNDN); } else { mpfr_set(r9512, r9511, MPFR_RNDN); };
        if (mpfr_get_si(r9483, MPFR_RNDN)) { mpfr_set(r9513, r9496, MPFR_RNDN); } else { mpfr_set(r9513, r9512, MPFR_RNDN); };
        if (mpfr_get_si(r9478, MPFR_RNDN)) { mpfr_set(r9514, r9481, MPFR_RNDN); } else { mpfr_set(r9514, r9513, MPFR_RNDN); };
        return mpfr_get_d(r9514, MPFR_RNDN);
}

static mpfr_t r9515, r9516, r9517, r9518, r9519, r9520, r9521, r9522, r9523, r9524, r9525, r9526, r9527, r9528, r9529, r9530, r9531, r9532, r9533, r9534, r9535, r9536, r9537, r9538, r9539, r9540, r9541, r9542, r9543, r9544, r9545, r9546, r9547, r9548, r9549, r9550, r9551, r9552, r9553, r9554;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9515);
        mpfr_init(r9516);
        mpfr_init_set_str(r9517, "-1.1677101794050704e+83", 10, MPFR_RNDN);
        mpfr_init(r9518);
        mpfr_init(r9519);
        mpfr_init(r9520);
        mpfr_init(r9521);
        mpfr_init_set_str(r9522, "4.88870533228829e-274", 10, MPFR_RNDN);
        mpfr_init(r9523);
        mpfr_init_set_str(r9524, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9525, "2", 10, MPFR_RNDN);
        mpfr_init(r9526);
        mpfr_init(r9527);
        mpfr_init(r9528);
        mpfr_init(r9529);
        mpfr_init(r9530);
        mpfr_init_set_str(r9531, "4", 10, MPFR_RNDN);
        mpfr_init(r9532);
        mpfr_init(r9533);
        mpfr_init(r9534);
        mpfr_init(r9535);
        mpfr_init(r9536);
        mpfr_init_set_str(r9537, "6.775459950416538e+134", 10, MPFR_RNDN);
        mpfr_init(r9538);
        mpfr_init(r9539);
        mpfr_init(r9540);
        mpfr_init(r9541);
        mpfr_init(r9542);
        mpfr_init(r9543);
        mpfr_init(r9544);
        mpfr_init(r9545);
        mpfr_init(r9546);
        mpfr_init(r9547);
        mpfr_init_set_str(r9548, "-2", 10, MPFR_RNDN);
        mpfr_init(r9549);
        mpfr_init(r9550);
        mpfr_init(r9551);
        mpfr_init(r9552);
        mpfr_init(r9553);
        mpfr_init(r9554);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9515, b, MPFR_RNDN);
        mpfr_neg(r9516, r9515, MPFR_RNDN);
        ;
        mpfr_set_si(r9518, mpfr_cmp(r9516, r9517) <= 0, MPFR_RNDN);
        mpfr_set_d(r9519, a, MPFR_RNDN);
        mpfr_div(r9520, r9515, r9519, MPFR_RNDN);
        mpfr_neg(r9521, r9520, MPFR_RNDN);
        ;
        mpfr_set_si(r9523, mpfr_cmp(r9516, r9522) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9526, r9525, r9519, MPFR_RNDN);
        mpfr_div(r9527, r9524, r9526, MPFR_RNDN);
        mpfr_mul(r9528, r9515, r9515, MPFR_RNDN);
        mpfr_set_d(r9529, c, MPFR_RNDN);
        mpfr_mul(r9530, r9519, r9529, MPFR_RNDN);
        ;
        mpfr_mul(r9532, r9530, r9531, MPFR_RNDN);
        mpfr_sub(r9533, r9528, r9532, MPFR_RNDN);
        mpfr_sqrt(r9534, r9533, MPFR_RNDN);
        mpfr_sub(r9535, r9516, r9534, MPFR_RNDN);
        mpfr_mul(r9536, r9527, r9535, MPFR_RNDN);
        ;
        mpfr_set_si(r9538, mpfr_cmp(r9516, r9537) <= 0, MPFR_RNDN);
        mpfr_neg(r9539, r9531, MPFR_RNDN);
        mpfr_fma(r9540, r9539, r9530, r9528, MPFR_RNDN);
        mpfr_sqrt(r9541, r9540, MPFR_RNDN);
        mpfr_sub(r9542, r9541, r9515, MPFR_RNDN);
        mpfr_sqrt(r9543, r9542, MPFR_RNDN);
        mpfr_div(r9544, r9531, r9543, MPFR_RNDN);
        mpfr_div(r9545, r9529, r9543, MPFR_RNDN);
        mpfr_div(r9546, r9545, r9525, MPFR_RNDN);
        mpfr_mul(r9547, r9544, r9546, MPFR_RNDN);
        ;
        mpfr_div(r9549, r9525, r9529, MPFR_RNDN);
        mpfr_div(r9550, r9548, r9549, MPFR_RNDN);
        mpfr_div(r9551, r9550, r9515, MPFR_RNDN);
        if (mpfr_get_si(r9538, MPFR_RNDN)) { mpfr_set(r9552, r9547, MPFR_RNDN); } else { mpfr_set(r9552, r9551, MPFR_RNDN); };
        if (mpfr_get_si(r9523, MPFR_RNDN)) { mpfr_set(r9553, r9536, MPFR_RNDN); } else { mpfr_set(r9553, r9552, MPFR_RNDN); };
        if (mpfr_get_si(r9518, MPFR_RNDN)) { mpfr_set(r9554, r9521, MPFR_RNDN); } else { mpfr_set(r9554, r9553, MPFR_RNDN); };
        return mpfr_get_d(r9554, MPFR_RNDN);
}

