#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "jeff quadratic root 1";

double f_if(float a, float b, float c) {
        float r15201 = b;
        float r15202 = 0.0f;
        bool r15203 = r15201 >= r15202;
        float r15204 = -r15201;
        float r15205 = r15201 * r15201;
        float r15206 = 4.0f;
        float r15207 = a;
        float r15208 = r15206 * r15207;
        float r15209 = c;
        float r15210 = r15208 * r15209;
        float r15211 = r15205 - r15210;
        float r15212 = sqrt(r15211);
        float r15213 = r15204 - r15212;
        float r15214 = 2.0f;
        float r15215 = r15214 * r15207;
        float r15216 = r15213 / r15215;
        float r15217 = r15214 * r15209;
        float r15218 = r15204 + r15212;
        float r15219 = r15217 / r15218;
        float r15220 = r15203 ? r15216 : r15219;
        return r15220;
}

double f_id(double a, double b, double c) {
        double r15221 = b;
        double r15222 = 0.0;
        bool r15223 = r15221 >= r15222;
        double r15224 = -r15221;
        double r15225 = r15221 * r15221;
        double r15226 = 4.0;
        double r15227 = a;
        double r15228 = r15226 * r15227;
        double r15229 = c;
        double r15230 = r15228 * r15229;
        double r15231 = r15225 - r15230;
        double r15232 = sqrt(r15231);
        double r15233 = r15224 - r15232;
        double r15234 = 2.0;
        double r15235 = r15234 * r15227;
        double r15236 = r15233 / r15235;
        double r15237 = r15234 * r15229;
        double r15238 = r15224 + r15232;
        double r15239 = r15237 / r15238;
        double r15240 = r15223 ? r15236 : r15239;
        return r15240;
}


double f_of(float a, float b, float c) {
        float r15241 = b;
        float r15242 = 0.0f;
        bool r15243 = r15241 >= r15242;
        float r15244 = 1.0f;
        float r15245 = 2.0f;
        float r15246 = r15244 / r15245;
        float r15247 = -r15241;
        float r15248 = r15241 * r15241;
        float r15249 = c;
        float r15250 = 4.0f;
        float r15251 = r15249 * r15250;
        float r15252 = a;
        float r15253 = r15251 * r15252;
        float r15254 = r15248 - r15253;
        float r15255 = sqrt(r15254);
        float r15256 = r15247 - r15255;
        float r15257 = r15256 / r15252;
        float r15258 = r15246 * r15257;
        float r15259 = r15249 * r15245;
        float r15260 = r15252 / r15241;
        float r15261 = r15259 * r15260;
        float r15262 = r15241 - r15247;
        float r15263 = r15261 - r15262;
        float r15264 = r15259 / r15263;
        float r15265 = r15243 ? r15258 : r15264;
        return r15265;
}

double f_od(double a, double b, double c) {
        double r15266 = b;
        double r15267 = 0.0;
        bool r15268 = r15266 >= r15267;
        double r15269 = 1.0;
        double r15270 = 2.0;
        double r15271 = r15269 / r15270;
        double r15272 = -r15266;
        double r15273 = r15266 * r15266;
        double r15274 = c;
        double r15275 = 4.0;
        double r15276 = r15274 * r15275;
        double r15277 = a;
        double r15278 = r15276 * r15277;
        double r15279 = r15273 - r15278;
        double r15280 = sqrt(r15279);
        double r15281 = r15272 - r15280;
        double r15282 = r15281 / r15277;
        double r15283 = r15271 * r15282;
        double r15284 = r15274 * r15270;
        double r15285 = r15277 / r15266;
        double r15286 = r15284 * r15285;
        double r15287 = r15266 - r15272;
        double r15288 = r15286 - r15287;
        double r15289 = r15284 / r15288;
        double r15290 = r15268 ? r15283 : r15289;
        return r15290;
}

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 r15291, r15292, r15293, r15294, r15295, r15296, r15297, r15298, r15299, r15300, r15301, r15302, r15303, r15304, r15305, r15306, r15307, r15308, r15309, r15310;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r15291);
        mpfr_init_set_str(r15292, "0", 10, MPFR_RNDN);
        mpfr_init(r15293);
        mpfr_init(r15294);
        mpfr_init(r15295);
        mpfr_init_set_str(r15296, "4", 10, MPFR_RNDN);
        mpfr_init(r15297);
        mpfr_init(r15298);
        mpfr_init(r15299);
        mpfr_init(r15300);
        mpfr_init(r15301);
        mpfr_init(r15302);
        mpfr_init(r15303);
        mpfr_init_set_str(r15304, "2", 10, MPFR_RNDN);
        mpfr_init(r15305);
        mpfr_init(r15306);
        mpfr_init(r15307);
        mpfr_init(r15308);
        mpfr_init(r15309);
        mpfr_init(r15310);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r15291, b, MPFR_RNDN);
        ;
        mpfr_set_si(r15293, mpfr_cmp(r15291, r15292) >= 0, MPFR_RNDN);
        mpfr_neg(r15294, r15291, MPFR_RNDN);
        mpfr_sqr(r15295, r15291, MPFR_RNDN);
        ;
        mpfr_set_d(r15297, a, MPFR_RNDN);
        mpfr_mul(r15298, r15296, r15297, MPFR_RNDN);
        mpfr_set_d(r15299, c, MPFR_RNDN);
        mpfr_mul(r15300, r15298, r15299, MPFR_RNDN);
        mpfr_sub(r15301, r15295, r15300, MPFR_RNDN);
        mpfr_sqrt(r15302, r15301, MPFR_RNDN);
        mpfr_sub(r15303, r15294, r15302, MPFR_RNDN);
        ;
        mpfr_mul(r15305, r15304, r15297, MPFR_RNDN);
        mpfr_div(r15306, r15303, r15305, MPFR_RNDN);
        mpfr_mul(r15307, r15304, r15299, MPFR_RNDN);
        mpfr_add(r15308, r15294, r15302, MPFR_RNDN);
        mpfr_div(r15309, r15307, r15308, MPFR_RNDN);
        if (mpfr_get_si(r15293, MPFR_RNDN)) { mpfr_set(r15310, r15306, MPFR_RNDN); } else { mpfr_set(r15310, r15309, MPFR_RNDN); };
        return mpfr_get_d(r15310, MPFR_RNDN);
}

static mpfr_t r15311, r15312, r15313, r15314, r15315, r15316, r15317, r15318, r15319, r15320, r15321, r15322, r15323, r15324, r15325, r15326, r15327, r15328, r15329, r15330, r15331, r15332, r15333, r15334, r15335;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15311);
        mpfr_init_set_str(r15312, "0", 10, MPFR_RNDN);
        mpfr_init(r15313);
        mpfr_init_set_str(r15314, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r15315, "2", 10, MPFR_RNDN);
        mpfr_init(r15316);
        mpfr_init(r15317);
        mpfr_init(r15318);
        mpfr_init(r15319);
        mpfr_init_set_str(r15320, "4", 10, MPFR_RNDN);
        mpfr_init(r15321);
        mpfr_init(r15322);
        mpfr_init(r15323);
        mpfr_init(r15324);
        mpfr_init(r15325);
        mpfr_init(r15326);
        mpfr_init(r15327);
        mpfr_init(r15328);
        mpfr_init(r15329);
        mpfr_init(r15330);
        mpfr_init(r15331);
        mpfr_init(r15332);
        mpfr_init(r15333);
        mpfr_init(r15334);
        mpfr_init(r15335);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r15311, b, MPFR_RNDN);
        ;
        mpfr_set_si(r15313, mpfr_cmp(r15311, r15312) >= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r15316, r15314, r15315, MPFR_RNDN);
        mpfr_neg(r15317, r15311, MPFR_RNDN);
        mpfr_sqr(r15318, r15311, MPFR_RNDN);
        mpfr_set_d(r15319, c, MPFR_RNDN);
        ;
        mpfr_mul(r15321, r15319, r15320, MPFR_RNDN);
        mpfr_set_d(r15322, a, MPFR_RNDN);
        mpfr_mul(r15323, r15321, r15322, MPFR_RNDN);
        mpfr_sub(r15324, r15318, r15323, MPFR_RNDN);
        mpfr_sqrt(r15325, r15324, MPFR_RNDN);
        mpfr_sub(r15326, r15317, r15325, MPFR_RNDN);
        mpfr_div(r15327, r15326, r15322, MPFR_RNDN);
        mpfr_mul(r15328, r15316, r15327, MPFR_RNDN);
        mpfr_mul(r15329, r15319, r15315, MPFR_RNDN);
        mpfr_div(r15330, r15322, r15311, MPFR_RNDN);
        mpfr_mul(r15331, r15329, r15330, MPFR_RNDN);
        mpfr_sub(r15332, r15311, r15317, MPFR_RNDN);
        mpfr_sub(r15333, r15331, r15332, MPFR_RNDN);
        mpfr_div(r15334, r15329, r15333, MPFR_RNDN);
        if (mpfr_get_si(r15313, MPFR_RNDN)) { mpfr_set(r15335, r15328, MPFR_RNDN); } else { mpfr_set(r15335, r15334, MPFR_RNDN); };
        return mpfr_get_d(r15335, MPFR_RNDN);
}

static mpfr_t r15336, r15337, r15338, r15339, r15340, r15341, r15342, r15343, r15344, r15345, r15346, r15347, r15348, r15349, r15350, r15351, r15352, r15353, r15354, r15355, r15356, r15357, r15358, r15359, r15360;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15336);
        mpfr_init_set_str(r15337, "0", 10, MPFR_RNDN);
        mpfr_init(r15338);
        mpfr_init_set_str(r15339, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r15340, "2", 10, MPFR_RNDN);
        mpfr_init(r15341);
        mpfr_init(r15342);
        mpfr_init(r15343);
        mpfr_init(r15344);
        mpfr_init_set_str(r15345, "4", 10, MPFR_RNDN);
        mpfr_init(r15346);
        mpfr_init(r15347);
        mpfr_init(r15348);
        mpfr_init(r15349);
        mpfr_init(r15350);
        mpfr_init(r15351);
        mpfr_init(r15352);
        mpfr_init(r15353);
        mpfr_init(r15354);
        mpfr_init(r15355);
        mpfr_init(r15356);
        mpfr_init(r15357);
        mpfr_init(r15358);
        mpfr_init(r15359);
        mpfr_init(r15360);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r15336, b, MPFR_RNDN);
        ;
        mpfr_set_si(r15338, mpfr_cmp(r15336, r15337) >= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r15341, r15339, r15340, MPFR_RNDN);
        mpfr_neg(r15342, r15336, MPFR_RNDN);
        mpfr_sqr(r15343, r15336, MPFR_RNDN);
        mpfr_set_d(r15344, c, MPFR_RNDN);
        ;
        mpfr_mul(r15346, r15344, r15345, MPFR_RNDN);
        mpfr_set_d(r15347, a, MPFR_RNDN);
        mpfr_mul(r15348, r15346, r15347, MPFR_RNDN);
        mpfr_sub(r15349, r15343, r15348, MPFR_RNDN);
        mpfr_sqrt(r15350, r15349, MPFR_RNDN);
        mpfr_sub(r15351, r15342, r15350, MPFR_RNDN);
        mpfr_div(r15352, r15351, r15347, MPFR_RNDN);
        mpfr_mul(r15353, r15341, r15352, MPFR_RNDN);
        mpfr_mul(r15354, r15344, r15340, MPFR_RNDN);
        mpfr_div(r15355, r15347, r15336, MPFR_RNDN);
        mpfr_mul(r15356, r15354, r15355, MPFR_RNDN);
        mpfr_sub(r15357, r15336, r15342, MPFR_RNDN);
        mpfr_sub(r15358, r15356, r15357, MPFR_RNDN);
        mpfr_div(r15359, r15354, r15358, MPFR_RNDN);
        if (mpfr_get_si(r15338, MPFR_RNDN)) { mpfr_set(r15360, r15353, MPFR_RNDN); } else { mpfr_set(r15360, r15359, MPFR_RNDN); };
        return mpfr_get_d(r15360, MPFR_RNDN);
}

