#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 r38281 = b;
        float r38282 = -r38281;
        float r38283 = r38281 * r38281;
        float r38284 = 4;
        float r38285 = a;
        float r38286 = c;
        float r38287 = r38285 * r38286;
        float r38288 = r38284 * r38287;
        float r38289 = r38283 - r38288;
        float r38290 = sqrt(r38289);
        float r38291 = r38282 - r38290;
        float r38292 = 2;
        float r38293 = r38292 * r38285;
        float r38294 = r38291 / r38293;
        return r38294;
}

double f_id(double a, double b, double c) {
        double r38295 = b;
        double r38296 = -r38295;
        double r38297 = r38295 * r38295;
        double r38298 = 4;
        double r38299 = a;
        double r38300 = c;
        double r38301 = r38299 * r38300;
        double r38302 = r38298 * r38301;
        double r38303 = r38297 - r38302;
        double r38304 = sqrt(r38303);
        double r38305 = r38296 - r38304;
        double r38306 = 2;
        double r38307 = r38306 * r38299;
        double r38308 = r38305 / r38307;
        return r38308;
}


double f_of(float a, float b, float c) {
        float r38309 = b;
        float r38310 = -1.2412432804243813e+32;
        bool r38311 = r38309 <= r38310;
        float r38312 = -r38309;
        float r38313 = r38312 + r38309;
        float r38314 = a;
        float r38315 = r38314 + r38314;
        float r38316 = r38313 / r38315;
        float r38317 = c;
        float r38318 = r38317 / r38309;
        float r38319 = r38316 - r38318;
        float r38320 = -3.585471823497232e-104;
        bool r38321 = r38309 <= r38320;
        float r38322 = r38317 * r38314;
        float r38323 = 4;
        float r38324 = r38322 * r38323;
        float r38325 = r38309 * r38309;
        float r38326 = r38314 * r38317;
        float r38327 = r38323 * r38326;
        float r38328 = r38325 - r38327;
        float r38329 = sqrt(r38328);
        float r38330 = r38312 + r38329;
        float r38331 = r38324 / r38330;
        float r38332 = 2;
        float r38333 = r38332 * r38314;
        float r38334 = r38331 / r38333;
        float r38335 = 1.6937529134374811e+81;
        bool r38336 = r38309 <= r38335;
        float r38337 = r38312 - r38329;
        float r38338 = r38337 / r38333;
        float r38339 = r38312 / r38314;
        float r38340 = r38336 ? r38338 : r38339;
        float r38341 = r38321 ? r38334 : r38340;
        float r38342 = r38311 ? r38319 : r38341;
        return r38342;
}

double f_od(double a, double b, double c) {
        double r38343 = b;
        double r38344 = -1.2412432804243813e+32;
        bool r38345 = r38343 <= r38344;
        double r38346 = -r38343;
        double r38347 = r38346 + r38343;
        double r38348 = a;
        double r38349 = r38348 + r38348;
        double r38350 = r38347 / r38349;
        double r38351 = c;
        double r38352 = r38351 / r38343;
        double r38353 = r38350 - r38352;
        double r38354 = -3.585471823497232e-104;
        bool r38355 = r38343 <= r38354;
        double r38356 = r38351 * r38348;
        double r38357 = 4;
        double r38358 = r38356 * r38357;
        double r38359 = r38343 * r38343;
        double r38360 = r38348 * r38351;
        double r38361 = r38357 * r38360;
        double r38362 = r38359 - r38361;
        double r38363 = sqrt(r38362);
        double r38364 = r38346 + r38363;
        double r38365 = r38358 / r38364;
        double r38366 = 2;
        double r38367 = r38366 * r38348;
        double r38368 = r38365 / r38367;
        double r38369 = 1.6937529134374811e+81;
        bool r38370 = r38343 <= r38369;
        double r38371 = r38346 - r38363;
        double r38372 = r38371 / r38367;
        double r38373 = r38346 / r38348;
        double r38374 = r38370 ? r38372 : r38373;
        double r38375 = r38355 ? r38368 : r38374;
        double r38376 = r38345 ? r38353 : r38375;
        return r38376;
}

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 r38377, r38378, r38379, r38380, r38381, r38382, r38383, r38384, r38385, r38386, r38387, r38388, r38389, r38390;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3216);
        mpfr_init(r38377);
        mpfr_init(r38378);
        mpfr_init(r38379);
        mpfr_init_set_str(r38380, "4", 10, MPFR_RNDN);
        mpfr_init(r38381);
        mpfr_init(r38382);
        mpfr_init(r38383);
        mpfr_init(r38384);
        mpfr_init(r38385);
        mpfr_init(r38386);
        mpfr_init(r38387);
        mpfr_init_set_str(r38388, "2", 10, MPFR_RNDN);
        mpfr_init(r38389);
        mpfr_init(r38390);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r38377, b, MPFR_RNDN);
        mpfr_neg(r38378, r38377, MPFR_RNDN);
        mpfr_mul(r38379, r38377, r38377, MPFR_RNDN);
        ;
        mpfr_set_d(r38381, a, MPFR_RNDN);
        mpfr_set_d(r38382, c, MPFR_RNDN);
        mpfr_mul(r38383, r38381, r38382, MPFR_RNDN);
        mpfr_mul(r38384, r38380, r38383, MPFR_RNDN);
        mpfr_sub(r38385, r38379, r38384, MPFR_RNDN);
        mpfr_sqrt(r38386, r38385, MPFR_RNDN);
        mpfr_sub(r38387, r38378, r38386, MPFR_RNDN);
        ;
        mpfr_mul(r38389, r38388, r38381, MPFR_RNDN);
        mpfr_div(r38390, r38387, r38389, MPFR_RNDN);
        return mpfr_get_d(r38390, MPFR_RNDN);
}

static mpfr_t r38391, r38392, r38393, r38394, r38395, r38396, r38397, r38398, r38399, r38400, r38401, r38402, r38403, r38404, r38405, r38406, r38407, r38408, r38409, r38410, r38411, r38412, r38413, r38414, r38415, r38416, r38417, r38418, r38419, r38420, r38421, r38422, r38423, r38424;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3216);
        mpfr_init(r38391);
        mpfr_init_set_str(r38392, "-1.2412432804243813e+32", 10, MPFR_RNDN);
        mpfr_init(r38393);
        mpfr_init(r38394);
        mpfr_init(r38395);
        mpfr_init(r38396);
        mpfr_init(r38397);
        mpfr_init(r38398);
        mpfr_init(r38399);
        mpfr_init(r38400);
        mpfr_init(r38401);
        mpfr_init_set_str(r38402, "-3.585471823497232e-104", 10, MPFR_RNDN);
        mpfr_init(r38403);
        mpfr_init(r38404);
        mpfr_init_set_str(r38405, "4", 10, MPFR_RNDN);
        mpfr_init(r38406);
        mpfr_init(r38407);
        mpfr_init(r38408);
        mpfr_init(r38409);
        mpfr_init(r38410);
        mpfr_init(r38411);
        mpfr_init(r38412);
        mpfr_init(r38413);
        mpfr_init_set_str(r38414, "2", 10, MPFR_RNDN);
        mpfr_init(r38415);
        mpfr_init(r38416);
        mpfr_init_set_str(r38417, "1.6937529134374811e+81", 10, MPFR_RNDN);
        mpfr_init(r38418);
        mpfr_init(r38419);
        mpfr_init(r38420);
        mpfr_init(r38421);
        mpfr_init(r38422);
        mpfr_init(r38423);
        mpfr_init(r38424);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r38391, b, MPFR_RNDN);
        ;
        mpfr_set_si(r38393, mpfr_cmp(r38391, r38392) <= 0, MPFR_RNDN);
        mpfr_neg(r38394, r38391, MPFR_RNDN);
        mpfr_add(r38395, r38394, r38391, MPFR_RNDN);
        mpfr_set_d(r38396, a, MPFR_RNDN);
        mpfr_add(r38397, r38396, r38396, MPFR_RNDN);
        mpfr_div(r38398, r38395, r38397, MPFR_RNDN);
        mpfr_set_d(r38399, c, MPFR_RNDN);
        mpfr_div(r38400, r38399, r38391, MPFR_RNDN);
        mpfr_sub(r38401, r38398, r38400, MPFR_RNDN);
        ;
        mpfr_set_si(r38403, mpfr_cmp(r38391, r38402) <= 0, MPFR_RNDN);
        mpfr_mul(r38404, r38399, r38396, MPFR_RNDN);
        ;
        mpfr_mul(r38406, r38404, r38405, MPFR_RNDN);
        mpfr_mul(r38407, r38391, r38391, MPFR_RNDN);
        mpfr_mul(r38408, r38396, r38399, MPFR_RNDN);
        mpfr_mul(r38409, r38405, r38408, MPFR_RNDN);
        mpfr_sub(r38410, r38407, r38409, MPFR_RNDN);
        mpfr_sqrt(r38411, r38410, MPFR_RNDN);
        mpfr_add(r38412, r38394, r38411, MPFR_RNDN);
        mpfr_div(r38413, r38406, r38412, MPFR_RNDN);
        ;
        mpfr_mul(r38415, r38414, r38396, MPFR_RNDN);
        mpfr_div(r38416, r38413, r38415, MPFR_RNDN);
        ;
        mpfr_set_si(r38418, mpfr_cmp(r38391, r38417) <= 0, MPFR_RNDN);
        mpfr_sub(r38419, r38394, r38411, MPFR_RNDN);
        mpfr_div(r38420, r38419, r38415, MPFR_RNDN);
        mpfr_div(r38421, r38394, r38396, MPFR_RNDN);
        if (mpfr_get_si(r38418, MPFR_RNDN)) { mpfr_set(r38422, r38420, MPFR_RNDN); } else { mpfr_set(r38422, r38421, MPFR_RNDN); };
        if (mpfr_get_si(r38403, MPFR_RNDN)) { mpfr_set(r38423, r38416, MPFR_RNDN); } else { mpfr_set(r38423, r38422, MPFR_RNDN); };
        if (mpfr_get_si(r38393, MPFR_RNDN)) { mpfr_set(r38424, r38401, MPFR_RNDN); } else { mpfr_set(r38424, r38423, MPFR_RNDN); };
        return mpfr_get_d(r38424, MPFR_RNDN);
}

static mpfr_t r38425, r38426, r38427, r38428, r38429, r38430, r38431, r38432, r38433, r38434, r38435, r38436, r38437, r38438, r38439, r38440, r38441, r38442, r38443, r38444, r38445, r38446, r38447, r38448, r38449, r38450, r38451, r38452, r38453, r38454, r38455, r38456, r38457, r38458;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3216);
        mpfr_init(r38425);
        mpfr_init_set_str(r38426, "-1.2412432804243813e+32", 10, MPFR_RNDN);
        mpfr_init(r38427);
        mpfr_init(r38428);
        mpfr_init(r38429);
        mpfr_init(r38430);
        mpfr_init(r38431);
        mpfr_init(r38432);
        mpfr_init(r38433);
        mpfr_init(r38434);
        mpfr_init(r38435);
        mpfr_init_set_str(r38436, "-3.585471823497232e-104", 10, MPFR_RNDN);
        mpfr_init(r38437);
        mpfr_init(r38438);
        mpfr_init_set_str(r38439, "4", 10, MPFR_RNDN);
        mpfr_init(r38440);
        mpfr_init(r38441);
        mpfr_init(r38442);
        mpfr_init(r38443);
        mpfr_init(r38444);
        mpfr_init(r38445);
        mpfr_init(r38446);
        mpfr_init(r38447);
        mpfr_init_set_str(r38448, "2", 10, MPFR_RNDN);
        mpfr_init(r38449);
        mpfr_init(r38450);
        mpfr_init_set_str(r38451, "1.6937529134374811e+81", 10, MPFR_RNDN);
        mpfr_init(r38452);
        mpfr_init(r38453);
        mpfr_init(r38454);
        mpfr_init(r38455);
        mpfr_init(r38456);
        mpfr_init(r38457);
        mpfr_init(r38458);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r38425, b, MPFR_RNDN);
        ;
        mpfr_set_si(r38427, mpfr_cmp(r38425, r38426) <= 0, MPFR_RNDN);
        mpfr_neg(r38428, r38425, MPFR_RNDN);
        mpfr_add(r38429, r38428, r38425, MPFR_RNDN);
        mpfr_set_d(r38430, a, MPFR_RNDN);
        mpfr_add(r38431, r38430, r38430, MPFR_RNDN);
        mpfr_div(r38432, r38429, r38431, MPFR_RNDN);
        mpfr_set_d(r38433, c, MPFR_RNDN);
        mpfr_div(r38434, r38433, r38425, MPFR_RNDN);
        mpfr_sub(r38435, r38432, r38434, MPFR_RNDN);
        ;
        mpfr_set_si(r38437, mpfr_cmp(r38425, r38436) <= 0, MPFR_RNDN);
        mpfr_mul(r38438, r38433, r38430, MPFR_RNDN);
        ;
        mpfr_mul(r38440, r38438, r38439, MPFR_RNDN);
        mpfr_mul(r38441, r38425, r38425, MPFR_RNDN);
        mpfr_mul(r38442, r38430, r38433, MPFR_RNDN);
        mpfr_mul(r38443, r38439, r38442, MPFR_RNDN);
        mpfr_sub(r38444, r38441, r38443, MPFR_RNDN);
        mpfr_sqrt(r38445, r38444, MPFR_RNDN);
        mpfr_add(r38446, r38428, r38445, MPFR_RNDN);
        mpfr_div(r38447, r38440, r38446, MPFR_RNDN);
        ;
        mpfr_mul(r38449, r38448, r38430, MPFR_RNDN);
        mpfr_div(r38450, r38447, r38449, MPFR_RNDN);
        ;
        mpfr_set_si(r38452, mpfr_cmp(r38425, r38451) <= 0, MPFR_RNDN);
        mpfr_sub(r38453, r38428, r38445, MPFR_RNDN);
        mpfr_div(r38454, r38453, r38449, MPFR_RNDN);
        mpfr_div(r38455, r38428, r38430, MPFR_RNDN);
        if (mpfr_get_si(r38452, MPFR_RNDN)) { mpfr_set(r38456, r38454, MPFR_RNDN); } else { mpfr_set(r38456, r38455, MPFR_RNDN); };
        if (mpfr_get_si(r38437, MPFR_RNDN)) { mpfr_set(r38457, r38450, MPFR_RNDN); } else { mpfr_set(r38457, r38456, MPFR_RNDN); };
        if (mpfr_get_si(r38427, MPFR_RNDN)) { mpfr_set(r38458, r38435, MPFR_RNDN); } else { mpfr_set(r38458, r38457, MPFR_RNDN); };
        return mpfr_get_d(r38458, MPFR_RNDN);
}

