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

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

double f_if(float a, float b, float c) {
        float r39385 = b;
        float r39386 = -r39385;
        float r39387 = r39385 * r39385;
        float r39388 = 4;
        float r39389 = a;
        float r39390 = r39388 * r39389;
        float r39391 = c;
        float r39392 = r39390 * r39391;
        float r39393 = r39387 - r39392;
        float r39394 = sqrt(r39393);
        float r39395 = r39386 + r39394;
        float r39396 = 2;
        float r39397 = r39396 * r39389;
        float r39398 = r39395 / r39397;
        return r39398;
}

double f_id(double a, double b, double c) {
        double r39399 = b;
        double r39400 = -r39399;
        double r39401 = r39399 * r39399;
        double r39402 = 4;
        double r39403 = a;
        double r39404 = r39402 * r39403;
        double r39405 = c;
        double r39406 = r39404 * r39405;
        double r39407 = r39401 - r39406;
        double r39408 = sqrt(r39407);
        double r39409 = r39400 + r39408;
        double r39410 = 2;
        double r39411 = r39410 * r39403;
        double r39412 = r39409 / r39411;
        return r39412;
}


double f_of(float a, float b, float c) {
        float r39413 = b;
        float r39414 = -2.788370916558726e+153;
        bool r39415 = r39413 <= r39414;
        float r39416 = -r39413;
        float r39417 = a;
        float r39418 = r39416 / r39417;
        float r39419 = 7.580412743766101e-138;
        bool r39420 = r39413 <= r39419;
        float r39421 = r39413 * r39413;
        float r39422 = 4;
        float r39423 = r39422 * r39417;
        float r39424 = c;
        float r39425 = r39423 * r39424;
        float r39426 = r39421 - r39425;
        float r39427 = sqrt(r39426);
        float r39428 = r39416 + r39427;
        float r39429 = 2;
        float r39430 = r39429 * r39417;
        float r39431 = r39428 / r39430;
        float r39432 = r39424 / r39413;
        float r39433 = -2;
        float r39434 = r39433 / r39429;
        float r39435 = r39432 * r39434;
        float r39436 = r39420 ? r39431 : r39435;
        float r39437 = r39415 ? r39418 : r39436;
        return r39437;
}

double f_od(double a, double b, double c) {
        double r39438 = b;
        double r39439 = -2.788370916558726e+153;
        bool r39440 = r39438 <= r39439;
        double r39441 = -r39438;
        double r39442 = a;
        double r39443 = r39441 / r39442;
        double r39444 = 7.580412743766101e-138;
        bool r39445 = r39438 <= r39444;
        double r39446 = r39438 * r39438;
        double r39447 = 4;
        double r39448 = r39447 * r39442;
        double r39449 = c;
        double r39450 = r39448 * r39449;
        double r39451 = r39446 - r39450;
        double r39452 = sqrt(r39451);
        double r39453 = r39441 + r39452;
        double r39454 = 2;
        double r39455 = r39454 * r39442;
        double r39456 = r39453 / r39455;
        double r39457 = r39449 / r39438;
        double r39458 = -2;
        double r39459 = r39458 / r39454;
        double r39460 = r39457 * r39459;
        double r39461 = r39445 ? r39456 : r39460;
        double r39462 = r39440 ? r39443 : r39461;
        return r39462;
}

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 r39463, r39464, r39465, r39466, r39467, r39468, r39469, r39470, r39471, r39472, r39473, r39474, r39475, r39476;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39463);
        mpfr_init(r39464);
        mpfr_init(r39465);
        mpfr_init_set_str(r39466, "4", 10, MPFR_RNDN);
        mpfr_init(r39467);
        mpfr_init(r39468);
        mpfr_init(r39469);
        mpfr_init(r39470);
        mpfr_init(r39471);
        mpfr_init(r39472);
        mpfr_init(r39473);
        mpfr_init_set_str(r39474, "2", 10, MPFR_RNDN);
        mpfr_init(r39475);
        mpfr_init(r39476);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39463, b, MPFR_RNDN);
        mpfr_neg(r39464, r39463, MPFR_RNDN);
        mpfr_mul(r39465, r39463, r39463, MPFR_RNDN);
        ;
        mpfr_set_d(r39467, a, MPFR_RNDN);
        mpfr_mul(r39468, r39466, r39467, MPFR_RNDN);
        mpfr_set_d(r39469, c, MPFR_RNDN);
        mpfr_mul(r39470, r39468, r39469, MPFR_RNDN);
        mpfr_sub(r39471, r39465, r39470, MPFR_RNDN);
        mpfr_sqrt(r39472, r39471, MPFR_RNDN);
        mpfr_add(r39473, r39464, r39472, MPFR_RNDN);
        ;
        mpfr_mul(r39475, r39474, r39467, MPFR_RNDN);
        mpfr_div(r39476, r39473, r39475, MPFR_RNDN);
        return mpfr_get_d(r39476, MPFR_RNDN);
}

static mpfr_t r39477, r39478, r39479, r39480, r39481, r39482, r39483, r39484, r39485, r39486, r39487, r39488, r39489, r39490, r39491, r39492, r39493, r39494, r39495, r39496, r39497, r39498, r39499, r39500, r39501;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39477);
        mpfr_init_set_str(r39478, "-2.788370916558726e+153", 10, MPFR_RNDN);
        mpfr_init(r39479);
        mpfr_init(r39480);
        mpfr_init(r39481);
        mpfr_init(r39482);
        mpfr_init_set_str(r39483, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r39484);
        mpfr_init(r39485);
        mpfr_init_set_str(r39486, "4", 10, MPFR_RNDN);
        mpfr_init(r39487);
        mpfr_init(r39488);
        mpfr_init(r39489);
        mpfr_init(r39490);
        mpfr_init(r39491);
        mpfr_init(r39492);
        mpfr_init_set_str(r39493, "2", 10, MPFR_RNDN);
        mpfr_init(r39494);
        mpfr_init(r39495);
        mpfr_init(r39496);
        mpfr_init_set_str(r39497, "-2", 10, MPFR_RNDN);
        mpfr_init(r39498);
        mpfr_init(r39499);
        mpfr_init(r39500);
        mpfr_init(r39501);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r39477, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39479, mpfr_cmp(r39477, r39478) <= 0, MPFR_RNDN);
        mpfr_neg(r39480, r39477, MPFR_RNDN);
        mpfr_set_d(r39481, a, MPFR_RNDN);
        mpfr_div(r39482, r39480, r39481, MPFR_RNDN);
        ;
        mpfr_set_si(r39484, mpfr_cmp(r39477, r39483) <= 0, MPFR_RNDN);
        mpfr_mul(r39485, r39477, r39477, MPFR_RNDN);
        ;
        mpfr_mul(r39487, r39486, r39481, MPFR_RNDN);
        mpfr_set_d(r39488, c, MPFR_RNDN);
        mpfr_mul(r39489, r39487, r39488, MPFR_RNDN);
        mpfr_sub(r39490, r39485, r39489, MPFR_RNDN);
        mpfr_sqrt(r39491, r39490, MPFR_RNDN);
        mpfr_add(r39492, r39480, r39491, MPFR_RNDN);
        ;
        mpfr_mul(r39494, r39493, r39481, MPFR_RNDN);
        mpfr_div(r39495, r39492, r39494, MPFR_RNDN);
        mpfr_div(r39496, r39488, r39477, MPFR_RNDN);
        ;
        mpfr_div(r39498, r39497, r39493, MPFR_RNDN);
        mpfr_mul(r39499, r39496, r39498, MPFR_RNDN);
        if (mpfr_get_si(r39484, MPFR_RNDN)) { mpfr_set(r39500, r39495, MPFR_RNDN); } else { mpfr_set(r39500, r39499, MPFR_RNDN); };
        if (mpfr_get_si(r39479, MPFR_RNDN)) { mpfr_set(r39501, r39482, MPFR_RNDN); } else { mpfr_set(r39501, r39500, MPFR_RNDN); };
        return mpfr_get_d(r39501, MPFR_RNDN);
}

static mpfr_t r39502, r39503, r39504, r39505, r39506, r39507, r39508, r39509, r39510, r39511, r39512, r39513, r39514, r39515, r39516, r39517, r39518, r39519, r39520, r39521, r39522, r39523, r39524, r39525, r39526;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r39502);
        mpfr_init_set_str(r39503, "-2.788370916558726e+153", 10, MPFR_RNDN);
        mpfr_init(r39504);
        mpfr_init(r39505);
        mpfr_init(r39506);
        mpfr_init(r39507);
        mpfr_init_set_str(r39508, "7.580412743766101e-138", 10, MPFR_RNDN);
        mpfr_init(r39509);
        mpfr_init(r39510);
        mpfr_init_set_str(r39511, "4", 10, MPFR_RNDN);
        mpfr_init(r39512);
        mpfr_init(r39513);
        mpfr_init(r39514);
        mpfr_init(r39515);
        mpfr_init(r39516);
        mpfr_init(r39517);
        mpfr_init_set_str(r39518, "2", 10, MPFR_RNDN);
        mpfr_init(r39519);
        mpfr_init(r39520);
        mpfr_init(r39521);
        mpfr_init_set_str(r39522, "-2", 10, MPFR_RNDN);
        mpfr_init(r39523);
        mpfr_init(r39524);
        mpfr_init(r39525);
        mpfr_init(r39526);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39502, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39504, mpfr_cmp(r39502, r39503) <= 0, MPFR_RNDN);
        mpfr_neg(r39505, r39502, MPFR_RNDN);
        mpfr_set_d(r39506, a, MPFR_RNDN);
        mpfr_div(r39507, r39505, r39506, MPFR_RNDN);
        ;
        mpfr_set_si(r39509, mpfr_cmp(r39502, r39508) <= 0, MPFR_RNDN);
        mpfr_mul(r39510, r39502, r39502, MPFR_RNDN);
        ;
        mpfr_mul(r39512, r39511, r39506, MPFR_RNDN);
        mpfr_set_d(r39513, c, MPFR_RNDN);
        mpfr_mul(r39514, r39512, r39513, MPFR_RNDN);
        mpfr_sub(r39515, r39510, r39514, MPFR_RNDN);
        mpfr_sqrt(r39516, r39515, MPFR_RNDN);
        mpfr_add(r39517, r39505, r39516, MPFR_RNDN);
        ;
        mpfr_mul(r39519, r39518, r39506, MPFR_RNDN);
        mpfr_div(r39520, r39517, r39519, MPFR_RNDN);
        mpfr_div(r39521, r39513, r39502, MPFR_RNDN);
        ;
        mpfr_div(r39523, r39522, r39518, MPFR_RNDN);
        mpfr_mul(r39524, r39521, r39523, MPFR_RNDN);
        if (mpfr_get_si(r39509, MPFR_RNDN)) { mpfr_set(r39525, r39520, MPFR_RNDN); } else { mpfr_set(r39525, r39524, MPFR_RNDN); };
        if (mpfr_get_si(r39504, MPFR_RNDN)) { mpfr_set(r39526, r39507, MPFR_RNDN); } else { mpfr_set(r39526, r39525, MPFR_RNDN); };
        return mpfr_get_d(r39526, MPFR_RNDN);
}

