#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 r11193 = b;
        float r11194 = -r11193;
        float r11195 = r11193 * r11193;
        float r11196 = 4;
        float r11197 = a;
        float r11198 = r11196 * r11197;
        float r11199 = c;
        float r11200 = r11198 * r11199;
        float r11201 = r11195 - r11200;
        float r11202 = sqrt(r11201);
        float r11203 = r11194 + r11202;
        float r11204 = 2;
        float r11205 = r11204 * r11197;
        float r11206 = r11203 / r11205;
        return r11206;
}

double f_id(double a, double b, double c) {
        double r11207 = b;
        double r11208 = -r11207;
        double r11209 = r11207 * r11207;
        double r11210 = 4;
        double r11211 = a;
        double r11212 = r11210 * r11211;
        double r11213 = c;
        double r11214 = r11212 * r11213;
        double r11215 = r11209 - r11214;
        double r11216 = sqrt(r11215);
        double r11217 = r11208 + r11216;
        double r11218 = 2;
        double r11219 = r11218 * r11211;
        double r11220 = r11217 / r11219;
        return r11220;
}


double f_of(float a, float b, float c) {
        float r11221 = b;
        float r11222 = -1.9979183584340477e+120;
        bool r11223 = r11221 <= r11222;
        float r11224 = a;
        float r11225 = r11221 / r11224;
        float r11226 = -r11225;
        float r11227 = 1.021266047469986e-281;
        bool r11228 = r11221 <= r11227;
        float r11229 = 1;
        float r11230 = 2;
        float r11231 = r11230 * r11224;
        float r11232 = r11229 / r11231;
        float r11233 = r11221 * r11221;
        float r11234 = c;
        float r11235 = 4;
        float r11236 = r11235 * r11224;
        float r11237 = r11234 * r11236;
        float r11238 = r11233 - r11237;
        float r11239 = sqrt(r11238);
        float r11240 = -r11221;
        float r11241 = r11239 + r11240;
        float r11242 = r11232 * r11241;
        float r11243 = 3.7208207919097225e+36;
        bool r11244 = r11221 <= r11243;
        float r11245 = r11234 * r11235;
        float r11246 = r11245 * r11224;
        float r11247 = r11240 - r11239;
        float r11248 = r11246 / r11247;
        float r11249 = r11248 / r11231;
        float r11250 = r11234 / r11221;
        float r11251 = -r11250;
        float r11252 = r11244 ? r11249 : r11251;
        float r11253 = r11228 ? r11242 : r11252;
        float r11254 = r11223 ? r11226 : r11253;
        return r11254;
}

double f_od(double a, double b, double c) {
        double r11255 = b;
        double r11256 = -1.9979183584340477e+120;
        bool r11257 = r11255 <= r11256;
        double r11258 = a;
        double r11259 = r11255 / r11258;
        double r11260 = -r11259;
        double r11261 = 1.021266047469986e-281;
        bool r11262 = r11255 <= r11261;
        double r11263 = 1;
        double r11264 = 2;
        double r11265 = r11264 * r11258;
        double r11266 = r11263 / r11265;
        double r11267 = r11255 * r11255;
        double r11268 = c;
        double r11269 = 4;
        double r11270 = r11269 * r11258;
        double r11271 = r11268 * r11270;
        double r11272 = r11267 - r11271;
        double r11273 = sqrt(r11272);
        double r11274 = -r11255;
        double r11275 = r11273 + r11274;
        double r11276 = r11266 * r11275;
        double r11277 = 3.7208207919097225e+36;
        bool r11278 = r11255 <= r11277;
        double r11279 = r11268 * r11269;
        double r11280 = r11279 * r11258;
        double r11281 = r11274 - r11273;
        double r11282 = r11280 / r11281;
        double r11283 = r11282 / r11265;
        double r11284 = r11268 / r11255;
        double r11285 = -r11284;
        double r11286 = r11278 ? r11283 : r11285;
        double r11287 = r11262 ? r11276 : r11286;
        double r11288 = r11257 ? r11260 : r11287;
        return r11288;
}

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 r11289, r11290, r11291, r11292, r11293, r11294, r11295, r11296, r11297, r11298, r11299, r11300, r11301, r11302;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r11289);
        mpfr_init(r11290);
        mpfr_init(r11291);
        mpfr_init_set_str(r11292, "4", 10, MPFR_RNDN);
        mpfr_init(r11293);
        mpfr_init(r11294);
        mpfr_init(r11295);
        mpfr_init(r11296);
        mpfr_init(r11297);
        mpfr_init(r11298);
        mpfr_init(r11299);
        mpfr_init_set_str(r11300, "2", 10, MPFR_RNDN);
        mpfr_init(r11301);
        mpfr_init(r11302);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r11289, b, MPFR_RNDN);
        mpfr_neg(r11290, r11289, MPFR_RNDN);
        mpfr_mul(r11291, r11289, r11289, MPFR_RNDN);
        ;
        mpfr_set_d(r11293, a, MPFR_RNDN);
        mpfr_mul(r11294, r11292, r11293, MPFR_RNDN);
        mpfr_set_d(r11295, c, MPFR_RNDN);
        mpfr_mul(r11296, r11294, r11295, MPFR_RNDN);
        mpfr_sub(r11297, r11291, r11296, MPFR_RNDN);
        mpfr_sqrt(r11298, r11297, MPFR_RNDN);
        mpfr_add(r11299, r11290, r11298, MPFR_RNDN);
        ;
        mpfr_mul(r11301, r11300, r11293, MPFR_RNDN);
        mpfr_div(r11302, r11299, r11301, MPFR_RNDN);
        return mpfr_get_d(r11302, MPFR_RNDN);
}

static mpfr_t r11303, r11304, r11305, r11306, r11307, r11308, r11309, r11310, r11311, r11312, r11313, r11314, r11315, r11316, r11317, r11318, r11319, r11320, r11321, r11322, r11323, r11324, r11325, r11326, r11327, r11328, r11329, r11330, r11331, r11332, r11333, r11334, r11335, r11336;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r11303);
        mpfr_init_set_str(r11304, "-1.9979183584340477e+120", 10, MPFR_RNDN);
        mpfr_init(r11305);
        mpfr_init(r11306);
        mpfr_init(r11307);
        mpfr_init(r11308);
        mpfr_init_set_str(r11309, "1.021266047469986e-281", 10, MPFR_RNDN);
        mpfr_init(r11310);
        mpfr_init_set_str(r11311, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11312, "2", 10, MPFR_RNDN);
        mpfr_init(r11313);
        mpfr_init(r11314);
        mpfr_init(r11315);
        mpfr_init(r11316);
        mpfr_init_set_str(r11317, "4", 10, MPFR_RNDN);
        mpfr_init(r11318);
        mpfr_init(r11319);
        mpfr_init(r11320);
        mpfr_init(r11321);
        mpfr_init(r11322);
        mpfr_init(r11323);
        mpfr_init(r11324);
        mpfr_init_set_str(r11325, "3.7208207919097225e+36", 10, MPFR_RNDN);
        mpfr_init(r11326);
        mpfr_init(r11327);
        mpfr_init(r11328);
        mpfr_init(r11329);
        mpfr_init(r11330);
        mpfr_init(r11331);
        mpfr_init(r11332);
        mpfr_init(r11333);
        mpfr_init(r11334);
        mpfr_init(r11335);
        mpfr_init(r11336);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r11303, b, MPFR_RNDN);
        ;
        mpfr_set_si(r11305, mpfr_cmp(r11303, r11304) <= 0, MPFR_RNDN);
        mpfr_set_d(r11306, a, MPFR_RNDN);
        mpfr_div(r11307, r11303, r11306, MPFR_RNDN);
        mpfr_neg(r11308, r11307, MPFR_RNDN);
        ;
        mpfr_set_si(r11310, mpfr_cmp(r11303, r11309) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r11313, r11312, r11306, MPFR_RNDN);
        mpfr_div(r11314, r11311, r11313, MPFR_RNDN);
        mpfr_mul(r11315, r11303, r11303, MPFR_RNDN);
        mpfr_set_d(r11316, c, MPFR_RNDN);
        ;
        mpfr_mul(r11318, r11317, r11306, MPFR_RNDN);
        mpfr_mul(r11319, r11316, r11318, MPFR_RNDN);
        mpfr_sub(r11320, r11315, r11319, MPFR_RNDN);
        mpfr_sqrt(r11321, r11320, MPFR_RNDN);
        mpfr_neg(r11322, r11303, MPFR_RNDN);
        mpfr_add(r11323, r11321, r11322, MPFR_RNDN);
        mpfr_mul(r11324, r11314, r11323, MPFR_RNDN);
        ;
        mpfr_set_si(r11326, mpfr_cmp(r11303, r11325) <= 0, MPFR_RNDN);
        mpfr_mul(r11327, r11316, r11317, MPFR_RNDN);
        mpfr_mul(r11328, r11327, r11306, MPFR_RNDN);
        mpfr_sub(r11329, r11322, r11321, MPFR_RNDN);
        mpfr_div(r11330, r11328, r11329, MPFR_RNDN);
        mpfr_div(r11331, r11330, r11313, MPFR_RNDN);
        mpfr_div(r11332, r11316, r11303, MPFR_RNDN);
        mpfr_neg(r11333, r11332, MPFR_RNDN);
        if (mpfr_get_si(r11326, MPFR_RNDN)) { mpfr_set(r11334, r11331, MPFR_RNDN); } else { mpfr_set(r11334, r11333, MPFR_RNDN); };
        if (mpfr_get_si(r11310, MPFR_RNDN)) { mpfr_set(r11335, r11324, MPFR_RNDN); } else { mpfr_set(r11335, r11334, MPFR_RNDN); };
        if (mpfr_get_si(r11305, MPFR_RNDN)) { mpfr_set(r11336, r11308, MPFR_RNDN); } else { mpfr_set(r11336, r11335, MPFR_RNDN); };
        return mpfr_get_d(r11336, MPFR_RNDN);
}

static mpfr_t r11337, r11338, r11339, r11340, r11341, r11342, r11343, r11344, r11345, r11346, r11347, r11348, r11349, r11350, r11351, r11352, r11353, r11354, r11355, r11356, r11357, r11358, r11359, r11360, r11361, r11362, r11363, r11364, r11365, r11366, r11367, r11368, r11369, r11370;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r11337);
        mpfr_init_set_str(r11338, "-1.9979183584340477e+120", 10, MPFR_RNDN);
        mpfr_init(r11339);
        mpfr_init(r11340);
        mpfr_init(r11341);
        mpfr_init(r11342);
        mpfr_init_set_str(r11343, "1.021266047469986e-281", 10, MPFR_RNDN);
        mpfr_init(r11344);
        mpfr_init_set_str(r11345, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11346, "2", 10, MPFR_RNDN);
        mpfr_init(r11347);
        mpfr_init(r11348);
        mpfr_init(r11349);
        mpfr_init(r11350);
        mpfr_init_set_str(r11351, "4", 10, MPFR_RNDN);
        mpfr_init(r11352);
        mpfr_init(r11353);
        mpfr_init(r11354);
        mpfr_init(r11355);
        mpfr_init(r11356);
        mpfr_init(r11357);
        mpfr_init(r11358);
        mpfr_init_set_str(r11359, "3.7208207919097225e+36", 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(r11367);
        mpfr_init(r11368);
        mpfr_init(r11369);
        mpfr_init(r11370);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r11337, b, MPFR_RNDN);
        ;
        mpfr_set_si(r11339, mpfr_cmp(r11337, r11338) <= 0, MPFR_RNDN);
        mpfr_set_d(r11340, a, MPFR_RNDN);
        mpfr_div(r11341, r11337, r11340, MPFR_RNDN);
        mpfr_neg(r11342, r11341, MPFR_RNDN);
        ;
        mpfr_set_si(r11344, mpfr_cmp(r11337, r11343) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r11347, r11346, r11340, MPFR_RNDN);
        mpfr_div(r11348, r11345, r11347, MPFR_RNDN);
        mpfr_mul(r11349, r11337, r11337, MPFR_RNDN);
        mpfr_set_d(r11350, c, MPFR_RNDN);
        ;
        mpfr_mul(r11352, r11351, r11340, MPFR_RNDN);
        mpfr_mul(r11353, r11350, r11352, MPFR_RNDN);
        mpfr_sub(r11354, r11349, r11353, MPFR_RNDN);
        mpfr_sqrt(r11355, r11354, MPFR_RNDN);
        mpfr_neg(r11356, r11337, MPFR_RNDN);
        mpfr_add(r11357, r11355, r11356, MPFR_RNDN);
        mpfr_mul(r11358, r11348, r11357, MPFR_RNDN);
        ;
        mpfr_set_si(r11360, mpfr_cmp(r11337, r11359) <= 0, MPFR_RNDN);
        mpfr_mul(r11361, r11350, r11351, MPFR_RNDN);
        mpfr_mul(r11362, r11361, r11340, MPFR_RNDN);
        mpfr_sub(r11363, r11356, r11355, MPFR_RNDN);
        mpfr_div(r11364, r11362, r11363, MPFR_RNDN);
        mpfr_div(r11365, r11364, r11347, MPFR_RNDN);
        mpfr_div(r11366, r11350, r11337, MPFR_RNDN);
        mpfr_neg(r11367, r11366, MPFR_RNDN);
        if (mpfr_get_si(r11360, MPFR_RNDN)) { mpfr_set(r11368, r11365, MPFR_RNDN); } else { mpfr_set(r11368, r11367, MPFR_RNDN); };
        if (mpfr_get_si(r11344, MPFR_RNDN)) { mpfr_set(r11369, r11358, MPFR_RNDN); } else { mpfr_set(r11369, r11368, MPFR_RNDN); };
        if (mpfr_get_si(r11339, MPFR_RNDN)) { mpfr_set(r11370, r11342, MPFR_RNDN); } else { mpfr_set(r11370, r11369, MPFR_RNDN); };
        return mpfr_get_d(r11370, MPFR_RNDN);
}

