#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 r11262 = b;
        float r11263 = -r11262;
        float r11264 = r11262 * r11262;
        float r11265 = 4;
        float r11266 = a;
        float r11267 = r11265 * r11266;
        float r11268 = c;
        float r11269 = r11267 * r11268;
        float r11270 = r11264 - r11269;
        float r11271 = sqrt(r11270);
        float r11272 = r11263 + r11271;
        float r11273 = 2;
        float r11274 = r11273 * r11266;
        float r11275 = r11272 / r11274;
        return r11275;
}

double f_id(double a, double b, double c) {
        double r11276 = b;
        double r11277 = -r11276;
        double r11278 = r11276 * r11276;
        double r11279 = 4;
        double r11280 = a;
        double r11281 = r11279 * r11280;
        double r11282 = c;
        double r11283 = r11281 * r11282;
        double r11284 = r11278 - r11283;
        double r11285 = sqrt(r11284);
        double r11286 = r11277 + r11285;
        double r11287 = 2;
        double r11288 = r11287 * r11280;
        double r11289 = r11286 / r11288;
        return r11289;
}


double f_of(float a, float b, float c) {
        float r11290 = b;
        float r11291 = -r11290;
        float r11292 = -1.1424340963537441e+116;
        bool r11293 = r11291 <= r11292;
        float r11294 = c;
        float r11295 = r11294 / r11290;
        float r11296 = -r11295;
        float r11297 = -1.9516615171416054e-122;
        bool r11298 = r11291 <= r11297;
        float r11299 = 4;
        float r11300 = a;
        float r11301 = r11294 * r11300;
        float r11302 = r11299 * r11301;
        float r11303 = r11290 * r11290;
        float r11304 = r11299 * r11300;
        float r11305 = r11304 * r11294;
        float r11306 = r11303 - r11305;
        float r11307 = sqrt(r11306);
        float r11308 = r11291 - r11307;
        float r11309 = r11302 / r11308;
        float r11310 = 2;
        float r11311 = r11300 * r11310;
        float r11312 = r11309 / r11311;
        float r11313 = 3.092591079713731e+103;
        bool r11314 = r11291 <= r11313;
        float r11315 = r11307 + r11291;
        float r11316 = r11315 / r11311;
        float r11317 = r11290 / r11300;
        float r11318 = r11295 - r11317;
        float r11319 = r11314 ? r11316 : r11318;
        float r11320 = r11298 ? r11312 : r11319;
        float r11321 = r11293 ? r11296 : r11320;
        return r11321;
}

double f_od(double a, double b, double c) {
        double r11322 = b;
        double r11323 = -r11322;
        double r11324 = -1.1424340963537441e+116;
        bool r11325 = r11323 <= r11324;
        double r11326 = c;
        double r11327 = r11326 / r11322;
        double r11328 = -r11327;
        double r11329 = -1.9516615171416054e-122;
        bool r11330 = r11323 <= r11329;
        double r11331 = 4;
        double r11332 = a;
        double r11333 = r11326 * r11332;
        double r11334 = r11331 * r11333;
        double r11335 = r11322 * r11322;
        double r11336 = r11331 * r11332;
        double r11337 = r11336 * r11326;
        double r11338 = r11335 - r11337;
        double r11339 = sqrt(r11338);
        double r11340 = r11323 - r11339;
        double r11341 = r11334 / r11340;
        double r11342 = 2;
        double r11343 = r11332 * r11342;
        double r11344 = r11341 / r11343;
        double r11345 = 3.092591079713731e+103;
        bool r11346 = r11323 <= r11345;
        double r11347 = r11339 + r11323;
        double r11348 = r11347 / r11343;
        double r11349 = r11322 / r11332;
        double r11350 = r11327 - r11349;
        double r11351 = r11346 ? r11348 : r11350;
        double r11352 = r11330 ? r11344 : r11351;
        double r11353 = r11325 ? r11328 : r11352;
        return r11353;
}

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 r11354, r11355, r11356, r11357, r11358, r11359, r11360, r11361, r11362, r11363, r11364, r11365, r11366, r11367;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r11354);
        mpfr_init(r11355);
        mpfr_init(r11356);
        mpfr_init_set_str(r11357, "4", 10, MPFR_RNDN);
        mpfr_init(r11358);
        mpfr_init(r11359);
        mpfr_init(r11360);
        mpfr_init(r11361);
        mpfr_init(r11362);
        mpfr_init(r11363);
        mpfr_init(r11364);
        mpfr_init_set_str(r11365, "2", 10, MPFR_RNDN);
        mpfr_init(r11366);
        mpfr_init(r11367);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r11354, b, MPFR_RNDN);
        mpfr_neg(r11355, r11354, MPFR_RNDN);
        mpfr_mul(r11356, r11354, r11354, MPFR_RNDN);
        ;
        mpfr_set_d(r11358, a, MPFR_RNDN);
        mpfr_mul(r11359, r11357, r11358, MPFR_RNDN);
        mpfr_set_d(r11360, c, MPFR_RNDN);
        mpfr_mul(r11361, r11359, r11360, MPFR_RNDN);
        mpfr_sub(r11362, r11356, r11361, MPFR_RNDN);
        mpfr_sqrt(r11363, r11362, MPFR_RNDN);
        mpfr_add(r11364, r11355, r11363, MPFR_RNDN);
        ;
        mpfr_mul(r11366, r11365, r11358, MPFR_RNDN);
        mpfr_div(r11367, r11364, r11366, MPFR_RNDN);
        return mpfr_get_d(r11367, MPFR_RNDN);
}

static mpfr_t r11368, r11369, r11370, r11371, r11372, r11373, r11374, r11375, r11376, r11377, r11378, r11379, r11380, r11381, r11382, r11383, r11384, r11385, r11386, r11387, r11388, r11389, r11390, r11391, r11392, r11393, r11394, r11395, r11396, r11397, r11398, r11399;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r11368);
        mpfr_init(r11369);
        mpfr_init_set_str(r11370, "-1.1424340963537441e+116", 10, MPFR_RNDN);
        mpfr_init(r11371);
        mpfr_init(r11372);
        mpfr_init(r11373);
        mpfr_init(r11374);
        mpfr_init_set_str(r11375, "-1.9516615171416054e-122", 10, MPFR_RNDN);
        mpfr_init(r11376);
        mpfr_init_set_str(r11377, "4", 10, MPFR_RNDN);
        mpfr_init(r11378);
        mpfr_init(r11379);
        mpfr_init(r11380);
        mpfr_init(r11381);
        mpfr_init(r11382);
        mpfr_init(r11383);
        mpfr_init(r11384);
        mpfr_init(r11385);
        mpfr_init(r11386);
        mpfr_init(r11387);
        mpfr_init_set_str(r11388, "2", 10, MPFR_RNDN);
        mpfr_init(r11389);
        mpfr_init(r11390);
        mpfr_init_set_str(r11391, "3.092591079713731e+103", 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(r11399);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r11368, b, MPFR_RNDN);
        mpfr_neg(r11369, r11368, MPFR_RNDN);
        ;
        mpfr_set_si(r11371, mpfr_cmp(r11369, r11370) <= 0, MPFR_RNDN);
        mpfr_set_d(r11372, c, MPFR_RNDN);
        mpfr_div(r11373, r11372, r11368, MPFR_RNDN);
        mpfr_neg(r11374, r11373, MPFR_RNDN);
        ;
        mpfr_set_si(r11376, mpfr_cmp(r11369, r11375) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r11378, a, MPFR_RNDN);
        mpfr_mul(r11379, r11372, r11378, MPFR_RNDN);
        mpfr_mul(r11380, r11377, r11379, MPFR_RNDN);
        mpfr_mul(r11381, r11368, r11368, MPFR_RNDN);
        mpfr_mul(r11382, r11377, r11378, MPFR_RNDN);
        mpfr_mul(r11383, r11382, r11372, MPFR_RNDN);
        mpfr_sub(r11384, r11381, r11383, MPFR_RNDN);
        mpfr_sqrt(r11385, r11384, MPFR_RNDN);
        mpfr_sub(r11386, r11369, r11385, MPFR_RNDN);
        mpfr_div(r11387, r11380, r11386, MPFR_RNDN);
        ;
        mpfr_mul(r11389, r11378, r11388, MPFR_RNDN);
        mpfr_div(r11390, r11387, r11389, MPFR_RNDN);
        ;
        mpfr_set_si(r11392, mpfr_cmp(r11369, r11391) <= 0, MPFR_RNDN);
        mpfr_add(r11393, r11385, r11369, MPFR_RNDN);
        mpfr_div(r11394, r11393, r11389, MPFR_RNDN);
        mpfr_div(r11395, r11368, r11378, MPFR_RNDN);
        mpfr_sub(r11396, r11373, r11395, MPFR_RNDN);
        if (mpfr_get_si(r11392, MPFR_RNDN)) { mpfr_set(r11397, r11394, MPFR_RNDN); } else { mpfr_set(r11397, r11396, MPFR_RNDN); };
        if (mpfr_get_si(r11376, MPFR_RNDN)) { mpfr_set(r11398, r11390, MPFR_RNDN); } else { mpfr_set(r11398, r11397, MPFR_RNDN); };
        if (mpfr_get_si(r11371, MPFR_RNDN)) { mpfr_set(r11399, r11374, MPFR_RNDN); } else { mpfr_set(r11399, r11398, MPFR_RNDN); };
        return mpfr_get_d(r11399, MPFR_RNDN);
}

static mpfr_t r11400, r11401, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r11400);
        mpfr_init(r11401);
        mpfr_init_set_str(r11402, "-1.1424340963537441e+116", 10, MPFR_RNDN);
        mpfr_init(r11403);
        mpfr_init(r11404);
        mpfr_init(r11405);
        mpfr_init(r11406);
        mpfr_init_set_str(r11407, "-1.9516615171416054e-122", 10, MPFR_RNDN);
        mpfr_init(r11408);
        mpfr_init_set_str(r11409, "4", 10, MPFR_RNDN);
        mpfr_init(r11410);
        mpfr_init(r11411);
        mpfr_init(r11412);
        mpfr_init(r11413);
        mpfr_init(r11414);
        mpfr_init(r11415);
        mpfr_init(r11416);
        mpfr_init(r11417);
        mpfr_init(r11418);
        mpfr_init(r11419);
        mpfr_init_set_str(r11420, "2", 10, MPFR_RNDN);
        mpfr_init(r11421);
        mpfr_init(r11422);
        mpfr_init_set_str(r11423, "3.092591079713731e+103", 10, MPFR_RNDN);
        mpfr_init(r11424);
        mpfr_init(r11425);
        mpfr_init(r11426);
        mpfr_init(r11427);
        mpfr_init(r11428);
        mpfr_init(r11429);
        mpfr_init(r11430);
        mpfr_init(r11431);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r11400, b, MPFR_RNDN);
        mpfr_neg(r11401, r11400, MPFR_RNDN);
        ;
        mpfr_set_si(r11403, mpfr_cmp(r11401, r11402) <= 0, MPFR_RNDN);
        mpfr_set_d(r11404, c, MPFR_RNDN);
        mpfr_div(r11405, r11404, r11400, MPFR_RNDN);
        mpfr_neg(r11406, r11405, MPFR_RNDN);
        ;
        mpfr_set_si(r11408, mpfr_cmp(r11401, r11407) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r11410, a, MPFR_RNDN);
        mpfr_mul(r11411, r11404, r11410, MPFR_RNDN);
        mpfr_mul(r11412, r11409, r11411, MPFR_RNDN);
        mpfr_mul(r11413, r11400, r11400, MPFR_RNDN);
        mpfr_mul(r11414, r11409, r11410, MPFR_RNDN);
        mpfr_mul(r11415, r11414, r11404, MPFR_RNDN);
        mpfr_sub(r11416, r11413, r11415, MPFR_RNDN);
        mpfr_sqrt(r11417, r11416, MPFR_RNDN);
        mpfr_sub(r11418, r11401, r11417, MPFR_RNDN);
        mpfr_div(r11419, r11412, r11418, MPFR_RNDN);
        ;
        mpfr_mul(r11421, r11410, r11420, MPFR_RNDN);
        mpfr_div(r11422, r11419, r11421, MPFR_RNDN);
        ;
        mpfr_set_si(r11424, mpfr_cmp(r11401, r11423) <= 0, MPFR_RNDN);
        mpfr_add(r11425, r11417, r11401, MPFR_RNDN);
        mpfr_div(r11426, r11425, r11421, MPFR_RNDN);
        mpfr_div(r11427, r11400, r11410, MPFR_RNDN);
        mpfr_sub(r11428, r11405, r11427, MPFR_RNDN);
        if (mpfr_get_si(r11424, MPFR_RNDN)) { mpfr_set(r11429, r11426, MPFR_RNDN); } else { mpfr_set(r11429, r11428, MPFR_RNDN); };
        if (mpfr_get_si(r11408, MPFR_RNDN)) { mpfr_set(r11430, r11422, MPFR_RNDN); } else { mpfr_set(r11430, r11429, MPFR_RNDN); };
        if (mpfr_get_si(r11403, MPFR_RNDN)) { mpfr_set(r11431, r11406, MPFR_RNDN); } else { mpfr_set(r11431, r11430, MPFR_RNDN); };
        return mpfr_get_d(r11431, MPFR_RNDN);
}

