#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 r11260 = b;
        float r11261 = -r11260;
        float r11262 = r11260 * r11260;
        float r11263 = 4.0f;
        float r11264 = a;
        float r11265 = r11263 * r11264;
        float r11266 = c;
        float r11267 = r11265 * r11266;
        float r11268 = r11262 - r11267;
        float r11269 = sqrt(r11268);
        float r11270 = r11261 + r11269;
        float r11271 = 2.0f;
        float r11272 = r11271 * r11264;
        float r11273 = r11270 / r11272;
        return r11273;
}

double f_id(double a, double b, double c) {
        double r11274 = b;
        double r11275 = -r11274;
        double r11276 = r11274 * r11274;
        double r11277 = 4.0;
        double r11278 = a;
        double r11279 = r11277 * r11278;
        double r11280 = c;
        double r11281 = r11279 * r11280;
        double r11282 = r11276 - r11281;
        double r11283 = sqrt(r11282);
        double r11284 = r11275 + r11283;
        double r11285 = 2.0;
        double r11286 = r11285 * r11278;
        double r11287 = r11284 / r11286;
        return r11287;
}


double f_of(float a, float b, float c) {
        float r11288 = b;
        float r11289 = -1.338815475246526e+154f;
        bool r11290 = r11288 <= r11289;
        float r11291 = a;
        float r11292 = r11288 / r11291;
        float r11293 = -r11292;
        float r11294 = 6.959587268650696e-95f;
        bool r11295 = r11288 <= r11294;
        float r11296 = r11288 * r11288;
        float r11297 = 4.0f;
        float r11298 = r11291 * r11297;
        float r11299 = c;
        float r11300 = r11298 * r11299;
        float r11301 = r11296 - r11300;
        float r11302 = sqrt(r11301);
        float r11303 = -r11288;
        float r11304 = r11302 + r11303;
        float r11305 = 2.0f;
        float r11306 = r11305 * r11291;
        float r11307 = r11304 / r11306;
        float r11308 = 1.3313504726342534e+154f;
        bool r11309 = r11288 <= r11308;
        float r11310 = r11299 * r11291;
        float r11311 = r11310 * r11297;
        float r11312 = r11303 - r11302;
        float r11313 = r11306 * r11312;
        float r11314 = r11311 / r11313;
        float r11315 = r11310 / r11288;
        float r11316 = -2.0f;
        float r11317 = r11315 * r11316;
        float r11318 = r11317 / r11306;
        float r11319 = r11309 ? r11314 : r11318;
        float r11320 = r11295 ? r11307 : r11319;
        float r11321 = r11290 ? r11293 : r11320;
        return r11321;
}

double f_od(double a, double b, double c) {
        double r11322 = b;
        double r11323 = -1.338815475246526e+154;
        bool r11324 = r11322 <= r11323;
        double r11325 = a;
        double r11326 = r11322 / r11325;
        double r11327 = -r11326;
        double r11328 = 6.959587268650696e-95;
        bool r11329 = r11322 <= r11328;
        double r11330 = r11322 * r11322;
        double r11331 = 4.0;
        double r11332 = r11325 * r11331;
        double r11333 = c;
        double r11334 = r11332 * r11333;
        double r11335 = r11330 - r11334;
        double r11336 = sqrt(r11335);
        double r11337 = -r11322;
        double r11338 = r11336 + r11337;
        double r11339 = 2.0;
        double r11340 = r11339 * r11325;
        double r11341 = r11338 / r11340;
        double r11342 = 1.3313504726342534e+154;
        bool r11343 = r11322 <= r11342;
        double r11344 = r11333 * r11325;
        double r11345 = r11344 * r11331;
        double r11346 = r11337 - r11336;
        double r11347 = r11340 * r11346;
        double r11348 = r11345 / r11347;
        double r11349 = r11344 / r11322;
        double r11350 = -2.0;
        double r11351 = r11349 * r11350;
        double r11352 = r11351 / r11340;
        double r11353 = r11343 ? r11348 : r11352;
        double r11354 = r11329 ? r11341 : r11353;
        double r11355 = r11324 ? r11327 : r11354;
        return r11355;
}

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

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

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

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

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r11370);
        mpfr_init_set_str(r11371, "-1.338815475246526e+154", 10, MPFR_RNDN);
        mpfr_init(r11372);
        mpfr_init(r11373);
        mpfr_init(r11374);
        mpfr_init(r11375);
        mpfr_init_set_str(r11376, "6.959587268650696e-95", 10, MPFR_RNDN);
        mpfr_init(r11377);
        mpfr_init(r11378);
        mpfr_init_set_str(r11379, "4", 10, MPFR_RNDN);
        mpfr_init(r11380);
        mpfr_init(r11381);
        mpfr_init(r11382);
        mpfr_init(r11383);
        mpfr_init(r11384);
        mpfr_init(r11385);
        mpfr_init(r11386);
        mpfr_init_set_str(r11387, "2", 10, MPFR_RNDN);
        mpfr_init(r11388);
        mpfr_init(r11389);
        mpfr_init_set_str(r11390, "1.3313504726342534e+154", 10, MPFR_RNDN);
        mpfr_init(r11391);
        mpfr_init(r11392);
        mpfr_init(r11393);
        mpfr_init(r11394);
        mpfr_init(r11395);
        mpfr_init(r11396);
        mpfr_init(r11397);
        mpfr_init_set_str(r11398, "-2", 10, MPFR_RNDN);
        mpfr_init(r11399);
        mpfr_init(r11400);
        mpfr_init(r11401);
        mpfr_init(r11402);
        mpfr_init(r11403);
}

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

static mpfr_t 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r11404);
        mpfr_init_set_str(r11405, "-1.338815475246526e+154", 10, MPFR_RNDN);
        mpfr_init(r11406);
        mpfr_init(r11407);
        mpfr_init(r11408);
        mpfr_init(r11409);
        mpfr_init_set_str(r11410, "6.959587268650696e-95", 10, MPFR_RNDN);
        mpfr_init(r11411);
        mpfr_init(r11412);
        mpfr_init_set_str(r11413, "4", 10, MPFR_RNDN);
        mpfr_init(r11414);
        mpfr_init(r11415);
        mpfr_init(r11416);
        mpfr_init(r11417);
        mpfr_init(r11418);
        mpfr_init(r11419);
        mpfr_init(r11420);
        mpfr_init_set_str(r11421, "2", 10, MPFR_RNDN);
        mpfr_init(r11422);
        mpfr_init(r11423);
        mpfr_init_set_str(r11424, "1.3313504726342534e+154", 10, MPFR_RNDN);
        mpfr_init(r11425);
        mpfr_init(r11426);
        mpfr_init(r11427);
        mpfr_init(r11428);
        mpfr_init(r11429);
        mpfr_init(r11430);
        mpfr_init(r11431);
        mpfr_init_set_str(r11432, "-2", 10, MPFR_RNDN);
        mpfr_init(r11433);
        mpfr_init(r11434);
        mpfr_init(r11435);
        mpfr_init(r11436);
        mpfr_init(r11437);
}

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

