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

char *name = "quadm (p42, negative)";

double f_if(float a, float b, float c) {
        float r19258 = b;
        float r19259 = -r19258;
        float r19260 = r19258 * r19258;
        float r19261 = 4.0f;
        float r19262 = a;
        float r19263 = c;
        float r19264 = r19262 * r19263;
        float r19265 = r19261 * r19264;
        float r19266 = r19260 - r19265;
        float r19267 = sqrt(r19266);
        float r19268 = r19259 - r19267;
        float r19269 = 2.0f;
        float r19270 = r19269 * r19262;
        float r19271 = r19268 / r19270;
        return r19271;
}

double f_id(double a, double b, double c) {
        double r19272 = b;
        double r19273 = -r19272;
        double r19274 = r19272 * r19272;
        double r19275 = 4.0;
        double r19276 = a;
        double r19277 = c;
        double r19278 = r19276 * r19277;
        double r19279 = r19275 * r19278;
        double r19280 = r19274 - r19279;
        double r19281 = sqrt(r19280);
        double r19282 = r19273 - r19281;
        double r19283 = 2.0;
        double r19284 = r19283 * r19276;
        double r19285 = r19282 / r19284;
        return r19285;
}


double f_of(float a, float b, float c) {
        float r19286 = b;
        float r19287 = -1.718982199476945e+89f;
        bool r19288 = r19286 <= r19287;
        float r19289 = -r19286;
        float r19290 = r19289 + r19286;
        float r19291 = a;
        float r19292 = r19291 + r19291;
        float r19293 = r19290 / r19292;
        float r19294 = c;
        float r19295 = r19294 / r19286;
        float r19296 = r19293 - r19295;
        float r19297 = -2.321564696919607e-245f;
        bool r19298 = r19286 <= r19297;
        float r19299 = 1.0f;
        float r19300 = 2.0f;
        float r19301 = r19299 / r19300;
        float r19302 = 4.0f;
        float r19303 = r19294 * r19302;
        float r19304 = r19301 * r19303;
        float r19305 = r19286 * r19286;
        float r19306 = r19303 * r19291;
        float r19307 = r19305 - r19306;
        float r19308 = sqrt(r19307);
        float r19309 = cbrt(r19308);
        float r19310 = r19309 * (r19309 * r19309);
        float r19311 = r19310 + r19289;
        float r19312 = r19304 / r19311;
        float r19313 = cbrt(r19312);
        float r19314 = r19313 * (r19313 * r19313);
        float r19315 = 9.141549925217606e+73f;
        bool r19316 = r19286 <= r19315;
        float r19317 = r19300 * r19291;
        float r19318 = r19289 / r19317;
        float r19319 = r19286 * r19286;
        float r19320 = r19291 * r19294;
        float r19321 = r19302 * r19320;
        float r19322 = r19319 - r19321;
        float r19323 = sqrt(r19322);
        float r19324 = r19323 / r19317;
        float r19325 = r19318 - r19324;
        float r19326 = r19286 / r19291;
        float r19327 = r19295 - r19326;
        float r19328 = r19316 ? r19325 : r19327;
        float r19329 = r19298 ? r19314 : r19328;
        float r19330 = r19288 ? r19296 : r19329;
        return r19330;
}

double f_od(double a, double b, double c) {
        double r19331 = b;
        double r19332 = -1.718982199476945e+89;
        bool r19333 = r19331 <= r19332;
        double r19334 = -r19331;
        double r19335 = r19334 + r19331;
        double r19336 = a;
        double r19337 = r19336 + r19336;
        double r19338 = r19335 / r19337;
        double r19339 = c;
        double r19340 = r19339 / r19331;
        double r19341 = r19338 - r19340;
        double r19342 = -2.321564696919607e-245;
        bool r19343 = r19331 <= r19342;
        double r19344 = 1.0;
        double r19345 = 2.0;
        double r19346 = r19344 / r19345;
        double r19347 = 4.0;
        double r19348 = r19339 * r19347;
        double r19349 = r19346 * r19348;
        double r19350 = r19331 * r19331;
        double r19351 = r19348 * r19336;
        double r19352 = r19350 - r19351;
        double r19353 = sqrt(r19352);
        double r19354 = cbrt(r19353);
        double r19355 = r19354 * (r19354 * r19354);
        double r19356 = r19355 + r19334;
        double r19357 = r19349 / r19356;
        double r19358 = cbrt(r19357);
        double r19359 = r19358 * (r19358 * r19358);
        double r19360 = 9.141549925217606e+73;
        bool r19361 = r19331 <= r19360;
        double r19362 = r19345 * r19336;
        double r19363 = r19334 / r19362;
        double r19364 = r19331 * r19331;
        double r19365 = r19336 * r19339;
        double r19366 = r19347 * r19365;
        double r19367 = r19364 - r19366;
        double r19368 = sqrt(r19367);
        double r19369 = r19368 / r19362;
        double r19370 = r19363 - r19369;
        double r19371 = r19331 / r19336;
        double r19372 = r19340 - r19371;
        double r19373 = r19361 ? r19370 : r19372;
        double r19374 = r19343 ? r19359 : r19373;
        double r19375 = r19333 ? r19341 : r19374;
        return r19375;
}

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 r19376, r19377, r19378, r19379, r19380, r19381, r19382, r19383, r19384, r19385, r19386, r19387, r19388, r19389;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2960);
        mpfr_init(r19376);
        mpfr_init(r19377);
        mpfr_init(r19378);
        mpfr_init_set_str(r19379, "4", 10, MPFR_RNDN);
        mpfr_init(r19380);
        mpfr_init(r19381);
        mpfr_init(r19382);
        mpfr_init(r19383);
        mpfr_init(r19384);
        mpfr_init(r19385);
        mpfr_init(r19386);
        mpfr_init_set_str(r19387, "2", 10, MPFR_RNDN);
        mpfr_init(r19388);
        mpfr_init(r19389);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r19376, b, MPFR_RNDN);
        mpfr_neg(r19377, r19376, MPFR_RNDN);
        mpfr_sqr(r19378, r19376, MPFR_RNDN);
        ;
        mpfr_set_d(r19380, a, MPFR_RNDN);
        mpfr_set_d(r19381, c, MPFR_RNDN);
        mpfr_mul(r19382, r19380, r19381, MPFR_RNDN);
        mpfr_mul(r19383, r19379, r19382, MPFR_RNDN);
        mpfr_sub(r19384, r19378, r19383, MPFR_RNDN);
        mpfr_sqrt(r19385, r19384, MPFR_RNDN);
        mpfr_sub(r19386, r19377, r19385, MPFR_RNDN);
        ;
        mpfr_mul(r19388, r19387, r19380, MPFR_RNDN);
        mpfr_div(r19389, r19386, r19388, MPFR_RNDN);
        return mpfr_get_d(r19389, MPFR_RNDN);
}

static mpfr_t r19390, r19391, r19392, r19393, r19394, r19395, r19396, r19397, r19398, r19399, r19400, r19401, r19402, r19403, r19404, r19405, r19406, r19407, r19408, r19409, r19410, r19411, r19412, r19413, r19414, r19415, r19416, r19417, r19418, r19419, r19420, r19421, r19422, r19423, r19424, r19425, r19426, r19427, r19428, r19429, r19430, r19431, r19432, r19433, r19434;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r19390);
        mpfr_init_set_str(r19391, "-1.718982199476945e+89", 10, MPFR_RNDN);
        mpfr_init(r19392);
        mpfr_init(r19393);
        mpfr_init(r19394);
        mpfr_init(r19395);
        mpfr_init(r19396);
        mpfr_init(r19397);
        mpfr_init(r19398);
        mpfr_init(r19399);
        mpfr_init(r19400);
        mpfr_init_set_str(r19401, "-2.321564696919607e-245", 10, MPFR_RNDN);
        mpfr_init(r19402);
        mpfr_init_set_str(r19403, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19404, "2", 10, MPFR_RNDN);
        mpfr_init(r19405);
        mpfr_init_set_str(r19406, "4", 10, MPFR_RNDN);
        mpfr_init(r19407);
        mpfr_init(r19408);
        mpfr_init(r19409);
        mpfr_init(r19410);
        mpfr_init(r19411);
        mpfr_init(r19412);
        mpfr_init(r19413);
        mpfr_init(r19414);
        mpfr_init(r19415);
        mpfr_init(r19416);
        mpfr_init(r19417);
        mpfr_init(r19418);
        mpfr_init_set_str(r19419, "9.141549925217606e+73", 10, MPFR_RNDN);
        mpfr_init(r19420);
        mpfr_init(r19421);
        mpfr_init(r19422);
        mpfr_init(r19423);
        mpfr_init(r19424);
        mpfr_init(r19425);
        mpfr_init(r19426);
        mpfr_init(r19427);
        mpfr_init(r19428);
        mpfr_init(r19429);
        mpfr_init(r19430);
        mpfr_init(r19431);
        mpfr_init(r19432);
        mpfr_init(r19433);
        mpfr_init(r19434);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r19390, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19392, mpfr_cmp(r19390, r19391) <= 0, MPFR_RNDN);
        mpfr_neg(r19393, r19390, MPFR_RNDN);
        mpfr_add(r19394, r19393, r19390, MPFR_RNDN);
        mpfr_set_d(r19395, a, MPFR_RNDN);
        mpfr_add(r19396, r19395, r19395, MPFR_RNDN);
        mpfr_div(r19397, r19394, r19396, MPFR_RNDN);
        mpfr_set_d(r19398, c, MPFR_RNDN);
        mpfr_div(r19399, r19398, r19390, MPFR_RNDN);
        mpfr_sub(r19400, r19397, r19399, MPFR_RNDN);
        ;
        mpfr_set_si(r19402, mpfr_cmp(r19390, r19401) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19405, r19403, r19404, MPFR_RNDN);
        ;
        mpfr_mul(r19407, r19398, r19406, MPFR_RNDN);
        mpfr_mul(r19408, r19405, r19407, MPFR_RNDN);
        mpfr_mul(r19409, r19390, r19390, MPFR_RNDN);
        mpfr_mul(r19410, r19407, r19395, MPFR_RNDN);
        mpfr_sub(r19411, r19409, r19410, MPFR_RNDN);
        mpfr_sqrt(r19412, r19411, MPFR_RNDN);
        mpfr_cbrt(r19413, r19412, MPFR_RNDN);
        mpfr_mul(r19414, r19413, r19413, MPFR_RNDN); mpfr_mul(r19414, r19414, r19413, MPFR_RNDN);
        mpfr_add(r19415, r19414, r19393, MPFR_RNDN);
        mpfr_div(r19416, r19408, r19415, MPFR_RNDN);
        mpfr_cbrt(r19417, r19416, MPFR_RNDN);
        mpfr_mul(r19418, r19417, r19417, MPFR_RNDN); mpfr_mul(r19418, r19418, r19417, MPFR_RNDN);
        ;
        mpfr_set_si(r19420, mpfr_cmp(r19390, r19419) <= 0, MPFR_RNDN);
        mpfr_mul(r19421, r19404, r19395, MPFR_RNDN);
        mpfr_div(r19422, r19393, r19421, MPFR_RNDN);
        mpfr_sqr(r19423, r19390, MPFR_RNDN);
        mpfr_mul(r19424, r19395, r19398, MPFR_RNDN);
        mpfr_mul(r19425, r19406, r19424, MPFR_RNDN);
        mpfr_sub(r19426, r19423, r19425, MPFR_RNDN);
        mpfr_sqrt(r19427, r19426, MPFR_RNDN);
        mpfr_div(r19428, r19427, r19421, MPFR_RNDN);
        mpfr_sub(r19429, r19422, r19428, MPFR_RNDN);
        mpfr_div(r19430, r19390, r19395, MPFR_RNDN);
        mpfr_sub(r19431, r19399, r19430, MPFR_RNDN);
        if (mpfr_get_si(r19420, MPFR_RNDN)) { mpfr_set(r19432, r19429, MPFR_RNDN); } else { mpfr_set(r19432, r19431, MPFR_RNDN); };
        if (mpfr_get_si(r19402, MPFR_RNDN)) { mpfr_set(r19433, r19418, MPFR_RNDN); } else { mpfr_set(r19433, r19432, MPFR_RNDN); };
        if (mpfr_get_si(r19392, MPFR_RNDN)) { mpfr_set(r19434, r19400, MPFR_RNDN); } else { mpfr_set(r19434, r19433, MPFR_RNDN); };
        return mpfr_get_d(r19434, MPFR_RNDN);
}

static mpfr_t r19435, r19436, r19437, r19438, r19439, r19440, r19441, r19442, r19443, r19444, r19445, r19446, r19447, r19448, r19449, r19450, r19451, r19452, r19453, r19454, r19455, r19456, r19457, r19458, r19459, r19460, r19461, r19462, r19463, r19464, r19465, r19466, r19467, r19468, r19469, r19470, r19471, r19472, r19473, r19474, r19475, r19476, r19477, r19478, r19479;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r19435);
        mpfr_init_set_str(r19436, "-1.718982199476945e+89", 10, MPFR_RNDN);
        mpfr_init(r19437);
        mpfr_init(r19438);
        mpfr_init(r19439);
        mpfr_init(r19440);
        mpfr_init(r19441);
        mpfr_init(r19442);
        mpfr_init(r19443);
        mpfr_init(r19444);
        mpfr_init(r19445);
        mpfr_init_set_str(r19446, "-2.321564696919607e-245", 10, MPFR_RNDN);
        mpfr_init(r19447);
        mpfr_init_set_str(r19448, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19449, "2", 10, MPFR_RNDN);
        mpfr_init(r19450);
        mpfr_init_set_str(r19451, "4", 10, MPFR_RNDN);
        mpfr_init(r19452);
        mpfr_init(r19453);
        mpfr_init(r19454);
        mpfr_init(r19455);
        mpfr_init(r19456);
        mpfr_init(r19457);
        mpfr_init(r19458);
        mpfr_init(r19459);
        mpfr_init(r19460);
        mpfr_init(r19461);
        mpfr_init(r19462);
        mpfr_init(r19463);
        mpfr_init_set_str(r19464, "9.141549925217606e+73", 10, MPFR_RNDN);
        mpfr_init(r19465);
        mpfr_init(r19466);
        mpfr_init(r19467);
        mpfr_init(r19468);
        mpfr_init(r19469);
        mpfr_init(r19470);
        mpfr_init(r19471);
        mpfr_init(r19472);
        mpfr_init(r19473);
        mpfr_init(r19474);
        mpfr_init(r19475);
        mpfr_init(r19476);
        mpfr_init(r19477);
        mpfr_init(r19478);
        mpfr_init(r19479);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r19435, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19437, mpfr_cmp(r19435, r19436) <= 0, MPFR_RNDN);
        mpfr_neg(r19438, r19435, MPFR_RNDN);
        mpfr_add(r19439, r19438, r19435, MPFR_RNDN);
        mpfr_set_d(r19440, a, MPFR_RNDN);
        mpfr_add(r19441, r19440, r19440, MPFR_RNDN);
        mpfr_div(r19442, r19439, r19441, MPFR_RNDN);
        mpfr_set_d(r19443, c, MPFR_RNDN);
        mpfr_div(r19444, r19443, r19435, MPFR_RNDN);
        mpfr_sub(r19445, r19442, r19444, MPFR_RNDN);
        ;
        mpfr_set_si(r19447, mpfr_cmp(r19435, r19446) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19450, r19448, r19449, MPFR_RNDN);
        ;
        mpfr_mul(r19452, r19443, r19451, MPFR_RNDN);
        mpfr_mul(r19453, r19450, r19452, MPFR_RNDN);
        mpfr_mul(r19454, r19435, r19435, MPFR_RNDN);
        mpfr_mul(r19455, r19452, r19440, MPFR_RNDN);
        mpfr_sub(r19456, r19454, r19455, MPFR_RNDN);
        mpfr_sqrt(r19457, r19456, MPFR_RNDN);
        mpfr_cbrt(r19458, r19457, MPFR_RNDN);
        mpfr_mul(r19459, r19458, r19458, MPFR_RNDN); mpfr_mul(r19459, r19459, r19458, MPFR_RNDN);
        mpfr_add(r19460, r19459, r19438, MPFR_RNDN);
        mpfr_div(r19461, r19453, r19460, MPFR_RNDN);
        mpfr_cbrt(r19462, r19461, MPFR_RNDN);
        mpfr_mul(r19463, r19462, r19462, MPFR_RNDN); mpfr_mul(r19463, r19463, r19462, MPFR_RNDN);
        ;
        mpfr_set_si(r19465, mpfr_cmp(r19435, r19464) <= 0, MPFR_RNDN);
        mpfr_mul(r19466, r19449, r19440, MPFR_RNDN);
        mpfr_div(r19467, r19438, r19466, MPFR_RNDN);
        mpfr_sqr(r19468, r19435, MPFR_RNDN);
        mpfr_mul(r19469, r19440, r19443, MPFR_RNDN);
        mpfr_mul(r19470, r19451, r19469, MPFR_RNDN);
        mpfr_sub(r19471, r19468, r19470, MPFR_RNDN);
        mpfr_sqrt(r19472, r19471, MPFR_RNDN);
        mpfr_div(r19473, r19472, r19466, MPFR_RNDN);
        mpfr_sub(r19474, r19467, r19473, MPFR_RNDN);
        mpfr_div(r19475, r19435, r19440, MPFR_RNDN);
        mpfr_sub(r19476, r19444, r19475, MPFR_RNDN);
        if (mpfr_get_si(r19465, MPFR_RNDN)) { mpfr_set(r19477, r19474, MPFR_RNDN); } else { mpfr_set(r19477, r19476, MPFR_RNDN); };
        if (mpfr_get_si(r19447, MPFR_RNDN)) { mpfr_set(r19478, r19463, MPFR_RNDN); } else { mpfr_set(r19478, r19477, MPFR_RNDN); };
        if (mpfr_get_si(r19437, MPFR_RNDN)) { mpfr_set(r19479, r19445, MPFR_RNDN); } else { mpfr_set(r19479, r19478, MPFR_RNDN); };
        return mpfr_get_d(r19479, MPFR_RNDN);
}

