#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 r39341 = b;
        float r39342 = -r39341;
        float r39343 = r39341 * r39341;
        float r39344 = 4;
        float r39345 = a;
        float r39346 = c;
        float r39347 = r39345 * r39346;
        float r39348 = r39344 * r39347;
        float r39349 = r39343 - r39348;
        float r39350 = sqrt(r39349);
        float r39351 = r39342 - r39350;
        float r39352 = 2;
        float r39353 = r39352 * r39345;
        float r39354 = r39351 / r39353;
        return r39354;
}

double f_id(double a, double b, double c) {
        double r39355 = b;
        double r39356 = -r39355;
        double r39357 = r39355 * r39355;
        double r39358 = 4;
        double r39359 = a;
        double r39360 = c;
        double r39361 = r39359 * r39360;
        double r39362 = r39358 * r39361;
        double r39363 = r39357 - r39362;
        double r39364 = sqrt(r39363);
        double r39365 = r39356 - r39364;
        double r39366 = 2;
        double r39367 = r39366 * r39359;
        double r39368 = r39365 / r39367;
        return r39368;
}


double f_of(float a, float b, float c) {
        float r39369 = b;
        float r39370 = -5.018034098196628e+28;
        bool r39371 = r39369 <= r39370;
        float r39372 = -r39369;
        float r39373 = r39372 + r39369;
        float r39374 = a;
        float r39375 = r39374 + r39374;
        float r39376 = r39373 / r39375;
        float r39377 = c;
        float r39378 = r39377 / r39369;
        float r39379 = r39376 - r39378;
        float r39380 = -1.992853954034314e-66;
        bool r39381 = r39369 <= r39380;
        float r39382 = 4;
        float r39383 = r39382 * r39377;
        float r39384 = r39383 * r39374;
        float r39385 = r39369 * r39369;
        float r39386 = r39385 - r39384;
        float r39387 = sqrt(r39386);
        float r39388 = r39387 + r39372;
        float r39389 = r39384 / r39388;
        float r39390 = 2;
        float r39391 = r39390 * r39374;
        float r39392 = r39389 / r39391;
        float r39393 = -5.3589749776329416e-108;
        bool r39394 = r39369 <= r39393;
        float r39395 = 1.7007616628281973e+81;
        bool r39396 = r39369 <= r39395;
        float r39397 = r39374 * r39377;
        float r39398 = r39382 * r39397;
        float r39399 = r39385 - r39398;
        float r39400 = sqrt(r39399);
        float r39401 = r39372 - r39400;
        float r39402 = r39401 / r39391;
        float r39403 = r39372 / r39374;
        float r39404 = r39396 ? r39402 : r39403;
        float r39405 = r39394 ? r39379 : r39404;
        float r39406 = r39381 ? r39392 : r39405;
        float r39407 = r39371 ? r39379 : r39406;
        return r39407;
}

double f_od(double a, double b, double c) {
        double r39408 = b;
        double r39409 = -5.018034098196628e+28;
        bool r39410 = r39408 <= r39409;
        double r39411 = -r39408;
        double r39412 = r39411 + r39408;
        double r39413 = a;
        double r39414 = r39413 + r39413;
        double r39415 = r39412 / r39414;
        double r39416 = c;
        double r39417 = r39416 / r39408;
        double r39418 = r39415 - r39417;
        double r39419 = -1.992853954034314e-66;
        bool r39420 = r39408 <= r39419;
        double r39421 = 4;
        double r39422 = r39421 * r39416;
        double r39423 = r39422 * r39413;
        double r39424 = r39408 * r39408;
        double r39425 = r39424 - r39423;
        double r39426 = sqrt(r39425);
        double r39427 = r39426 + r39411;
        double r39428 = r39423 / r39427;
        double r39429 = 2;
        double r39430 = r39429 * r39413;
        double r39431 = r39428 / r39430;
        double r39432 = -5.3589749776329416e-108;
        bool r39433 = r39408 <= r39432;
        double r39434 = 1.7007616628281973e+81;
        bool r39435 = r39408 <= r39434;
        double r39436 = r39413 * r39416;
        double r39437 = r39421 * r39436;
        double r39438 = r39424 - r39437;
        double r39439 = sqrt(r39438);
        double r39440 = r39411 - r39439;
        double r39441 = r39440 / r39430;
        double r39442 = r39411 / r39413;
        double r39443 = r39435 ? r39441 : r39442;
        double r39444 = r39433 ? r39418 : r39443;
        double r39445 = r39420 ? r39431 : r39444;
        double r39446 = r39410 ? r39418 : r39445;
        return r39446;
}

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 r39447, r39448, r39449, r39450, r39451, r39452, r39453, r39454, r39455, r39456, r39457, r39458, r39459, r39460;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2704);
        mpfr_init(r39447);
        mpfr_init(r39448);
        mpfr_init(r39449);
        mpfr_init_set_str(r39450, "4", 10, MPFR_RNDN);
        mpfr_init(r39451);
        mpfr_init(r39452);
        mpfr_init(r39453);
        mpfr_init(r39454);
        mpfr_init(r39455);
        mpfr_init(r39456);
        mpfr_init(r39457);
        mpfr_init_set_str(r39458, "2", 10, MPFR_RNDN);
        mpfr_init(r39459);
        mpfr_init(r39460);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39447, b, MPFR_RNDN);
        mpfr_neg(r39448, r39447, MPFR_RNDN);
        mpfr_mul(r39449, r39447, r39447, MPFR_RNDN);
        ;
        mpfr_set_d(r39451, a, MPFR_RNDN);
        mpfr_set_d(r39452, c, MPFR_RNDN);
        mpfr_mul(r39453, r39451, r39452, MPFR_RNDN);
        mpfr_mul(r39454, r39450, r39453, MPFR_RNDN);
        mpfr_sub(r39455, r39449, r39454, MPFR_RNDN);
        mpfr_sqrt(r39456, r39455, MPFR_RNDN);
        mpfr_sub(r39457, r39448, r39456, MPFR_RNDN);
        ;
        mpfr_mul(r39459, r39458, r39451, MPFR_RNDN);
        mpfr_div(r39460, r39457, r39459, MPFR_RNDN);
        return mpfr_get_d(r39460, MPFR_RNDN);
}

static mpfr_t r39461, r39462, r39463, r39464, r39465, r39466, r39467, r39468, r39469, r39470, r39471, r39472, r39473, r39474, r39475, r39476, r39477, r39478, r39479, r39480, r39481, r39482, r39483, r39484, r39485, r39486, r39487, r39488, r39489, r39490, r39491, r39492, r39493, r39494, r39495, r39496, r39497, r39498, r39499;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2704);
        mpfr_init(r39461);
        mpfr_init_set_str(r39462, "-5.018034098196628e+28", 10, MPFR_RNDN);
        mpfr_init(r39463);
        mpfr_init(r39464);
        mpfr_init(r39465);
        mpfr_init(r39466);
        mpfr_init(r39467);
        mpfr_init(r39468);
        mpfr_init(r39469);
        mpfr_init(r39470);
        mpfr_init(r39471);
        mpfr_init_set_str(r39472, "-1.992853954034314e-66", 10, MPFR_RNDN);
        mpfr_init(r39473);
        mpfr_init_set_str(r39474, "4", 10, MPFR_RNDN);
        mpfr_init(r39475);
        mpfr_init(r39476);
        mpfr_init(r39477);
        mpfr_init(r39478);
        mpfr_init(r39479);
        mpfr_init(r39480);
        mpfr_init(r39481);
        mpfr_init_set_str(r39482, "2", 10, MPFR_RNDN);
        mpfr_init(r39483);
        mpfr_init(r39484);
        mpfr_init_set_str(r39485, "-5.3589749776329416e-108", 10, MPFR_RNDN);
        mpfr_init(r39486);
        mpfr_init_set_str(r39487, "1.7007616628281973e+81", 10, MPFR_RNDN);
        mpfr_init(r39488);
        mpfr_init(r39489);
        mpfr_init(r39490);
        mpfr_init(r39491);
        mpfr_init(r39492);
        mpfr_init(r39493);
        mpfr_init(r39494);
        mpfr_init(r39495);
        mpfr_init(r39496);
        mpfr_init(r39497);
        mpfr_init(r39498);
        mpfr_init(r39499);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r39461, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39463, mpfr_cmp(r39461, r39462) <= 0, MPFR_RNDN);
        mpfr_neg(r39464, r39461, MPFR_RNDN);
        mpfr_add(r39465, r39464, r39461, MPFR_RNDN);
        mpfr_set_d(r39466, a, MPFR_RNDN);
        mpfr_add(r39467, r39466, r39466, MPFR_RNDN);
        mpfr_div(r39468, r39465, r39467, MPFR_RNDN);
        mpfr_set_d(r39469, c, MPFR_RNDN);
        mpfr_div(r39470, r39469, r39461, MPFR_RNDN);
        mpfr_sub(r39471, r39468, r39470, MPFR_RNDN);
        ;
        mpfr_set_si(r39473, mpfr_cmp(r39461, r39472) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r39475, r39474, r39469, MPFR_RNDN);
        mpfr_mul(r39476, r39475, r39466, MPFR_RNDN);
        mpfr_mul(r39477, r39461, r39461, MPFR_RNDN);
        mpfr_sub(r39478, r39477, r39476, MPFR_RNDN);
        mpfr_sqrt(r39479, r39478, MPFR_RNDN);
        mpfr_add(r39480, r39479, r39464, MPFR_RNDN);
        mpfr_div(r39481, r39476, r39480, MPFR_RNDN);
        ;
        mpfr_mul(r39483, r39482, r39466, MPFR_RNDN);
        mpfr_div(r39484, r39481, r39483, MPFR_RNDN);
        ;
        mpfr_set_si(r39486, mpfr_cmp(r39461, r39485) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r39488, mpfr_cmp(r39461, r39487) <= 0, MPFR_RNDN);
        mpfr_mul(r39489, r39466, r39469, MPFR_RNDN);
        mpfr_mul(r39490, r39474, r39489, MPFR_RNDN);
        mpfr_sub(r39491, r39477, r39490, MPFR_RNDN);
        mpfr_sqrt(r39492, r39491, MPFR_RNDN);
        mpfr_sub(r39493, r39464, r39492, MPFR_RNDN);
        mpfr_div(r39494, r39493, r39483, MPFR_RNDN);
        mpfr_div(r39495, r39464, r39466, MPFR_RNDN);
        if (mpfr_get_si(r39488, MPFR_RNDN)) { mpfr_set(r39496, r39494, MPFR_RNDN); } else { mpfr_set(r39496, r39495, MPFR_RNDN); };
        if (mpfr_get_si(r39486, MPFR_RNDN)) { mpfr_set(r39497, r39471, MPFR_RNDN); } else { mpfr_set(r39497, r39496, MPFR_RNDN); };
        if (mpfr_get_si(r39473, MPFR_RNDN)) { mpfr_set(r39498, r39484, MPFR_RNDN); } else { mpfr_set(r39498, r39497, MPFR_RNDN); };
        if (mpfr_get_si(r39463, MPFR_RNDN)) { mpfr_set(r39499, r39471, MPFR_RNDN); } else { mpfr_set(r39499, r39498, MPFR_RNDN); };
        return mpfr_get_d(r39499, MPFR_RNDN);
}

static mpfr_t r39500, r39501, 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, r39527, r39528, r39529, r39530, r39531, r39532, r39533, r39534, r39535, r39536, r39537, r39538;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2704);
        mpfr_init(r39500);
        mpfr_init_set_str(r39501, "-5.018034098196628e+28", 10, MPFR_RNDN);
        mpfr_init(r39502);
        mpfr_init(r39503);
        mpfr_init(r39504);
        mpfr_init(r39505);
        mpfr_init(r39506);
        mpfr_init(r39507);
        mpfr_init(r39508);
        mpfr_init(r39509);
        mpfr_init(r39510);
        mpfr_init_set_str(r39511, "-1.992853954034314e-66", 10, MPFR_RNDN);
        mpfr_init(r39512);
        mpfr_init_set_str(r39513, "4", 10, MPFR_RNDN);
        mpfr_init(r39514);
        mpfr_init(r39515);
        mpfr_init(r39516);
        mpfr_init(r39517);
        mpfr_init(r39518);
        mpfr_init(r39519);
        mpfr_init(r39520);
        mpfr_init_set_str(r39521, "2", 10, MPFR_RNDN);
        mpfr_init(r39522);
        mpfr_init(r39523);
        mpfr_init_set_str(r39524, "-5.3589749776329416e-108", 10, MPFR_RNDN);
        mpfr_init(r39525);
        mpfr_init_set_str(r39526, "1.7007616628281973e+81", 10, MPFR_RNDN);
        mpfr_init(r39527);
        mpfr_init(r39528);
        mpfr_init(r39529);
        mpfr_init(r39530);
        mpfr_init(r39531);
        mpfr_init(r39532);
        mpfr_init(r39533);
        mpfr_init(r39534);
        mpfr_init(r39535);
        mpfr_init(r39536);
        mpfr_init(r39537);
        mpfr_init(r39538);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39500, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39502, mpfr_cmp(r39500, r39501) <= 0, MPFR_RNDN);
        mpfr_neg(r39503, r39500, MPFR_RNDN);
        mpfr_add(r39504, r39503, r39500, MPFR_RNDN);
        mpfr_set_d(r39505, a, MPFR_RNDN);
        mpfr_add(r39506, r39505, r39505, MPFR_RNDN);
        mpfr_div(r39507, r39504, r39506, MPFR_RNDN);
        mpfr_set_d(r39508, c, MPFR_RNDN);
        mpfr_div(r39509, r39508, r39500, MPFR_RNDN);
        mpfr_sub(r39510, r39507, r39509, MPFR_RNDN);
        ;
        mpfr_set_si(r39512, mpfr_cmp(r39500, r39511) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r39514, r39513, r39508, MPFR_RNDN);
        mpfr_mul(r39515, r39514, r39505, MPFR_RNDN);
        mpfr_mul(r39516, r39500, r39500, MPFR_RNDN);
        mpfr_sub(r39517, r39516, r39515, MPFR_RNDN);
        mpfr_sqrt(r39518, r39517, MPFR_RNDN);
        mpfr_add(r39519, r39518, r39503, MPFR_RNDN);
        mpfr_div(r39520, r39515, r39519, MPFR_RNDN);
        ;
        mpfr_mul(r39522, r39521, r39505, MPFR_RNDN);
        mpfr_div(r39523, r39520, r39522, MPFR_RNDN);
        ;
        mpfr_set_si(r39525, mpfr_cmp(r39500, r39524) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r39527, mpfr_cmp(r39500, r39526) <= 0, MPFR_RNDN);
        mpfr_mul(r39528, r39505, r39508, MPFR_RNDN);
        mpfr_mul(r39529, r39513, r39528, MPFR_RNDN);
        mpfr_sub(r39530, r39516, r39529, MPFR_RNDN);
        mpfr_sqrt(r39531, r39530, MPFR_RNDN);
        mpfr_sub(r39532, r39503, r39531, MPFR_RNDN);
        mpfr_div(r39533, r39532, r39522, MPFR_RNDN);
        mpfr_div(r39534, r39503, r39505, MPFR_RNDN);
        if (mpfr_get_si(r39527, MPFR_RNDN)) { mpfr_set(r39535, r39533, MPFR_RNDN); } else { mpfr_set(r39535, r39534, MPFR_RNDN); };
        if (mpfr_get_si(r39525, MPFR_RNDN)) { mpfr_set(r39536, r39510, MPFR_RNDN); } else { mpfr_set(r39536, r39535, MPFR_RNDN); };
        if (mpfr_get_si(r39512, MPFR_RNDN)) { mpfr_set(r39537, r39523, MPFR_RNDN); } else { mpfr_set(r39537, r39536, MPFR_RNDN); };
        if (mpfr_get_si(r39502, MPFR_RNDN)) { mpfr_set(r39538, r39510, MPFR_RNDN); } else { mpfr_set(r39538, r39537, MPFR_RNDN); };
        return mpfr_get_d(r39538, MPFR_RNDN);
}

