#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 r11280 = b;
        float r11281 = -r11280;
        float r11282 = r11280 * r11280;
        float r11283 = 4;
        float r11284 = a;
        float r11285 = r11283 * r11284;
        float r11286 = c;
        float r11287 = r11285 * r11286;
        float r11288 = r11282 - r11287;
        float r11289 = sqrt(r11288);
        float r11290 = r11281 + r11289;
        float r11291 = 2;
        float r11292 = r11291 * r11284;
        float r11293 = r11290 / r11292;
        return r11293;
}

double f_id(double a, double b, double c) {
        double r11294 = b;
        double r11295 = -r11294;
        double r11296 = r11294 * r11294;
        double r11297 = 4;
        double r11298 = a;
        double r11299 = r11297 * r11298;
        double r11300 = c;
        double r11301 = r11299 * r11300;
        double r11302 = r11296 - r11301;
        double r11303 = sqrt(r11302);
        double r11304 = r11295 + r11303;
        double r11305 = 2;
        double r11306 = r11305 * r11298;
        double r11307 = r11304 / r11306;
        return r11307;
}


double f_of(float a, float b, float c) {
        float r11308 = b;
        float r11309 = -4.480021572372691e+121;
        bool r11310 = r11308 <= r11309;
        float r11311 = c;
        float r11312 = -r11311;
        float r11313 = a;
        float r11314 = r11313 / r11308;
        float r11315 = -r11308;
        float r11316 = fma(r11312, r11314, r11315);
        float r11317 = r11316 / r11313;
        float r11318 = 3.3274636606180965e-305;
        bool r11319 = r11308 <= r11318;
        float r11320 = 1;
        float r11321 = 2;
        float r11322 = r11321 * r11313;
        float r11323 = 4;
        float r11324 = r11323 * r11313;
        float r11325 = r11308 * r11308;
        float r11326 = fma(r11324, r11312, r11325);
        float r11327 = sqrt(r11326);
        float r11328 = r11327 - r11308;
        float r11329 = r11322 / r11328;
        float r11330 = r11320 / r11329;
        float r11331 = 3.4914761643971034e+87;
        bool r11332 = r11308 <= r11331;
        float r11333 = r11311 * r11323;
        float r11334 = r11315 - r11327;
        float r11335 = r11333 / r11334;
        float r11336 = r11320 / r11321;
        float r11337 = r11335 * r11336;
        float r11338 = r11311 / r11321;
        float r11339 = r11323 * r11338;
        float r11340 = r11315 + r11315;
        float r11341 = r11321 * r11311;
        float r11342 = r11314 * r11341;
        float r11343 = r11340 - r11342;
        float r11344 = r11339 / r11343;
        float r11345 = r11332 ? r11337 : r11344;
        float r11346 = r11319 ? r11330 : r11345;
        float r11347 = r11310 ? r11317 : r11346;
        return r11347;
}

double f_od(double a, double b, double c) {
        double r11348 = b;
        double r11349 = -4.480021572372691e+121;
        bool r11350 = r11348 <= r11349;
        double r11351 = c;
        double r11352 = -r11351;
        double r11353 = a;
        double r11354 = r11353 / r11348;
        double r11355 = -r11348;
        double r11356 = fma(r11352, r11354, r11355);
        double r11357 = r11356 / r11353;
        double r11358 = 3.3274636606180965e-305;
        bool r11359 = r11348 <= r11358;
        double r11360 = 1;
        double r11361 = 2;
        double r11362 = r11361 * r11353;
        double r11363 = 4;
        double r11364 = r11363 * r11353;
        double r11365 = r11348 * r11348;
        double r11366 = fma(r11364, r11352, r11365);
        double r11367 = sqrt(r11366);
        double r11368 = r11367 - r11348;
        double r11369 = r11362 / r11368;
        double r11370 = r11360 / r11369;
        double r11371 = 3.4914761643971034e+87;
        bool r11372 = r11348 <= r11371;
        double r11373 = r11351 * r11363;
        double r11374 = r11355 - r11367;
        double r11375 = r11373 / r11374;
        double r11376 = r11360 / r11361;
        double r11377 = r11375 * r11376;
        double r11378 = r11351 / r11361;
        double r11379 = r11363 * r11378;
        double r11380 = r11355 + r11355;
        double r11381 = r11361 * r11351;
        double r11382 = r11354 * r11381;
        double r11383 = r11380 - r11382;
        double r11384 = r11379 / r11383;
        double r11385 = r11372 ? r11377 : r11384;
        double r11386 = r11359 ? r11370 : r11385;
        double r11387 = r11350 ? r11357 : r11386;
        return r11387;
}

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 r11388, r11389, r11390, r11391, r11392, r11393, r11394, r11395, r11396, r11397, r11398, r11399, r11400, r11401;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3152);
        mpfr_init(r11388);
        mpfr_init(r11389);
        mpfr_init(r11390);
        mpfr_init_set_str(r11391, "4", 10, MPFR_RNDN);
        mpfr_init(r11392);
        mpfr_init(r11393);
        mpfr_init(r11394);
        mpfr_init(r11395);
        mpfr_init(r11396);
        mpfr_init(r11397);
        mpfr_init(r11398);
        mpfr_init_set_str(r11399, "2", 10, MPFR_RNDN);
        mpfr_init(r11400);
        mpfr_init(r11401);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r11388, b, MPFR_RNDN);
        mpfr_neg(r11389, r11388, MPFR_RNDN);
        mpfr_mul(r11390, r11388, r11388, MPFR_RNDN);
        ;
        mpfr_set_d(r11392, a, MPFR_RNDN);
        mpfr_mul(r11393, r11391, r11392, MPFR_RNDN);
        mpfr_set_d(r11394, c, MPFR_RNDN);
        mpfr_mul(r11395, r11393, r11394, MPFR_RNDN);
        mpfr_sub(r11396, r11390, r11395, MPFR_RNDN);
        mpfr_sqrt(r11397, r11396, MPFR_RNDN);
        mpfr_add(r11398, r11389, r11397, MPFR_RNDN);
        ;
        mpfr_mul(r11400, r11399, r11392, MPFR_RNDN);
        mpfr_div(r11401, r11398, r11400, MPFR_RNDN);
        return mpfr_get_d(r11401, MPFR_RNDN);
}

static mpfr_t r11402, r11403, r11404, r11405, r11406, r11407, r11408, r11409, r11410, r11411, r11412, r11413, r11414, r11415, r11416, r11417, r11418, r11419, r11420, r11421, r11422, r11423, r11424, r11425, r11426, r11427, r11428, r11429, r11430, r11431, r11432, r11433, r11434, r11435, r11436, r11437, r11438, r11439, r11440, r11441;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r11402);
        mpfr_init_set_str(r11403, "-4.480021572372691e+121", 10, MPFR_RNDN);
        mpfr_init(r11404);
        mpfr_init(r11405);
        mpfr_init(r11406);
        mpfr_init(r11407);
        mpfr_init(r11408);
        mpfr_init(r11409);
        mpfr_init(r11410);
        mpfr_init(r11411);
        mpfr_init_set_str(r11412, "3.3274636606180965e-305", 10, MPFR_RNDN);
        mpfr_init(r11413);
        mpfr_init_set_str(r11414, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11415, "2", 10, MPFR_RNDN);
        mpfr_init(r11416);
        mpfr_init_set_str(r11417, "4", 10, MPFR_RNDN);
        mpfr_init(r11418);
        mpfr_init(r11419);
        mpfr_init(r11420);
        mpfr_init(r11421);
        mpfr_init(r11422);
        mpfr_init(r11423);
        mpfr_init(r11424);
        mpfr_init_set_str(r11425, "3.4914761643971034e+87", 10, MPFR_RNDN);
        mpfr_init(r11426);
        mpfr_init(r11427);
        mpfr_init(r11428);
        mpfr_init(r11429);
        mpfr_init(r11430);
        mpfr_init(r11431);
        mpfr_init(r11432);
        mpfr_init(r11433);
        mpfr_init(r11434);
        mpfr_init(r11435);
        mpfr_init(r11436);
        mpfr_init(r11437);
        mpfr_init(r11438);
        mpfr_init(r11439);
        mpfr_init(r11440);
        mpfr_init(r11441);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r11402, b, MPFR_RNDN);
        ;
        mpfr_set_si(r11404, mpfr_cmp(r11402, r11403) <= 0, MPFR_RNDN);
        mpfr_set_d(r11405, c, MPFR_RNDN);
        mpfr_neg(r11406, r11405, MPFR_RNDN);
        mpfr_set_d(r11407, a, MPFR_RNDN);
        mpfr_div(r11408, r11407, r11402, MPFR_RNDN);
        mpfr_neg(r11409, r11402, MPFR_RNDN);
        mpfr_fma(r11410, r11406, r11408, r11409, MPFR_RNDN);
        mpfr_div(r11411, r11410, r11407, MPFR_RNDN);
        ;
        mpfr_set_si(r11413, mpfr_cmp(r11402, r11412) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r11416, r11415, r11407, MPFR_RNDN);
        ;
        mpfr_mul(r11418, r11417, r11407, MPFR_RNDN);
        mpfr_mul(r11419, r11402, r11402, MPFR_RNDN);
        mpfr_fma(r11420, r11418, r11406, r11419, MPFR_RNDN);
        mpfr_sqrt(r11421, r11420, MPFR_RNDN);
        mpfr_sub(r11422, r11421, r11402, MPFR_RNDN);
        mpfr_div(r11423, r11416, r11422, MPFR_RNDN);
        mpfr_div(r11424, r11414, r11423, MPFR_RNDN);
        ;
        mpfr_set_si(r11426, mpfr_cmp(r11402, r11425) <= 0, MPFR_RNDN);
        mpfr_mul(r11427, r11405, r11417, MPFR_RNDN);
        mpfr_sub(r11428, r11409, r11421, MPFR_RNDN);
        mpfr_div(r11429, r11427, r11428, MPFR_RNDN);
        mpfr_div(r11430, r11414, r11415, MPFR_RNDN);
        mpfr_mul(r11431, r11429, r11430, MPFR_RNDN);
        mpfr_div(r11432, r11405, r11415, MPFR_RNDN);
        mpfr_mul(r11433, r11417, r11432, MPFR_RNDN);
        mpfr_add(r11434, r11409, r11409, MPFR_RNDN);
        mpfr_mul(r11435, r11415, r11405, MPFR_RNDN);
        mpfr_mul(r11436, r11408, r11435, MPFR_RNDN);
        mpfr_sub(r11437, r11434, r11436, MPFR_RNDN);
        mpfr_div(r11438, r11433, r11437, MPFR_RNDN);
        if (mpfr_get_si(r11426, MPFR_RNDN)) { mpfr_set(r11439, r11431, MPFR_RNDN); } else { mpfr_set(r11439, r11438, MPFR_RNDN); };
        if (mpfr_get_si(r11413, MPFR_RNDN)) { mpfr_set(r11440, r11424, MPFR_RNDN); } else { mpfr_set(r11440, r11439, MPFR_RNDN); };
        if (mpfr_get_si(r11404, MPFR_RNDN)) { mpfr_set(r11441, r11411, MPFR_RNDN); } else { mpfr_set(r11441, r11440, MPFR_RNDN); };
        return mpfr_get_d(r11441, MPFR_RNDN);
}

static mpfr_t r11442, r11443, r11444, r11445, r11446, r11447, r11448, r11449, r11450, r11451, r11452, r11453, r11454, r11455, r11456, r11457, r11458, r11459, r11460, r11461, r11462, r11463, r11464, r11465, r11466, r11467, r11468, r11469, r11470, r11471, r11472, r11473, r11474, r11475, r11476, r11477, r11478, r11479, r11480, r11481;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r11442);
        mpfr_init_set_str(r11443, "-4.480021572372691e+121", 10, MPFR_RNDN);
        mpfr_init(r11444);
        mpfr_init(r11445);
        mpfr_init(r11446);
        mpfr_init(r11447);
        mpfr_init(r11448);
        mpfr_init(r11449);
        mpfr_init(r11450);
        mpfr_init(r11451);
        mpfr_init_set_str(r11452, "3.3274636606180965e-305", 10, MPFR_RNDN);
        mpfr_init(r11453);
        mpfr_init_set_str(r11454, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11455, "2", 10, MPFR_RNDN);
        mpfr_init(r11456);
        mpfr_init_set_str(r11457, "4", 10, MPFR_RNDN);
        mpfr_init(r11458);
        mpfr_init(r11459);
        mpfr_init(r11460);
        mpfr_init(r11461);
        mpfr_init(r11462);
        mpfr_init(r11463);
        mpfr_init(r11464);
        mpfr_init_set_str(r11465, "3.4914761643971034e+87", 10, MPFR_RNDN);
        mpfr_init(r11466);
        mpfr_init(r11467);
        mpfr_init(r11468);
        mpfr_init(r11469);
        mpfr_init(r11470);
        mpfr_init(r11471);
        mpfr_init(r11472);
        mpfr_init(r11473);
        mpfr_init(r11474);
        mpfr_init(r11475);
        mpfr_init(r11476);
        mpfr_init(r11477);
        mpfr_init(r11478);
        mpfr_init(r11479);
        mpfr_init(r11480);
        mpfr_init(r11481);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r11442, b, MPFR_RNDN);
        ;
        mpfr_set_si(r11444, mpfr_cmp(r11442, r11443) <= 0, MPFR_RNDN);
        mpfr_set_d(r11445, c, MPFR_RNDN);
        mpfr_neg(r11446, r11445, MPFR_RNDN);
        mpfr_set_d(r11447, a, MPFR_RNDN);
        mpfr_div(r11448, r11447, r11442, MPFR_RNDN);
        mpfr_neg(r11449, r11442, MPFR_RNDN);
        mpfr_fma(r11450, r11446, r11448, r11449, MPFR_RNDN);
        mpfr_div(r11451, r11450, r11447, MPFR_RNDN);
        ;
        mpfr_set_si(r11453, mpfr_cmp(r11442, r11452) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r11456, r11455, r11447, MPFR_RNDN);
        ;
        mpfr_mul(r11458, r11457, r11447, MPFR_RNDN);
        mpfr_mul(r11459, r11442, r11442, MPFR_RNDN);
        mpfr_fma(r11460, r11458, r11446, r11459, MPFR_RNDN);
        mpfr_sqrt(r11461, r11460, MPFR_RNDN);
        mpfr_sub(r11462, r11461, r11442, MPFR_RNDN);
        mpfr_div(r11463, r11456, r11462, MPFR_RNDN);
        mpfr_div(r11464, r11454, r11463, MPFR_RNDN);
        ;
        mpfr_set_si(r11466, mpfr_cmp(r11442, r11465) <= 0, MPFR_RNDN);
        mpfr_mul(r11467, r11445, r11457, MPFR_RNDN);
        mpfr_sub(r11468, r11449, r11461, MPFR_RNDN);
        mpfr_div(r11469, r11467, r11468, MPFR_RNDN);
        mpfr_div(r11470, r11454, r11455, MPFR_RNDN);
        mpfr_mul(r11471, r11469, r11470, MPFR_RNDN);
        mpfr_div(r11472, r11445, r11455, MPFR_RNDN);
        mpfr_mul(r11473, r11457, r11472, MPFR_RNDN);
        mpfr_add(r11474, r11449, r11449, MPFR_RNDN);
        mpfr_mul(r11475, r11455, r11445, MPFR_RNDN);
        mpfr_mul(r11476, r11448, r11475, MPFR_RNDN);
        mpfr_sub(r11477, r11474, r11476, MPFR_RNDN);
        mpfr_div(r11478, r11473, r11477, MPFR_RNDN);
        if (mpfr_get_si(r11466, MPFR_RNDN)) { mpfr_set(r11479, r11471, MPFR_RNDN); } else { mpfr_set(r11479, r11478, MPFR_RNDN); };
        if (mpfr_get_si(r11453, MPFR_RNDN)) { mpfr_set(r11480, r11464, MPFR_RNDN); } else { mpfr_set(r11480, r11479, MPFR_RNDN); };
        if (mpfr_get_si(r11444, MPFR_RNDN)) { mpfr_set(r11481, r11451, MPFR_RNDN); } else { mpfr_set(r11481, r11480, MPFR_RNDN); };
        return mpfr_get_d(r11481, MPFR_RNDN);
}

