#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 r10296 = b;
        float r10297 = -r10296;
        float r10298 = r10296 * r10296;
        float r10299 = 4;
        float r10300 = a;
        float r10301 = c;
        float r10302 = r10300 * r10301;
        float r10303 = r10299 * r10302;
        float r10304 = r10298 - r10303;
        float r10305 = sqrt(r10304);
        float r10306 = r10297 - r10305;
        float r10307 = 2;
        float r10308 = r10307 * r10300;
        float r10309 = r10306 / r10308;
        return r10309;
}

double f_id(double a, double b, double c) {
        double r10310 = b;
        double r10311 = -r10310;
        double r10312 = r10310 * r10310;
        double r10313 = 4;
        double r10314 = a;
        double r10315 = c;
        double r10316 = r10314 * r10315;
        double r10317 = r10313 * r10316;
        double r10318 = r10312 - r10317;
        double r10319 = sqrt(r10318);
        double r10320 = r10311 - r10319;
        double r10321 = 2;
        double r10322 = r10321 * r10314;
        double r10323 = r10320 / r10322;
        return r10323;
}


double f_of(float a, float b, float c) {
        float r10324 = b;
        float r10325 = -r10324;
        float r10326 = -1.1677101794050704e+83;
        bool r10327 = r10325 <= r10326;
        float r10328 = a;
        float r10329 = r10324 / r10328;
        float r10330 = -r10329;
        float r10331 = 4.88870533228829e-274;
        bool r10332 = r10325 <= r10331;
        float r10333 = 1;
        float r10334 = 2;
        float r10335 = r10334 * r10328;
        float r10336 = r10333 / r10335;
        float r10337 = r10324 * r10324;
        float r10338 = c;
        float r10339 = r10328 * r10338;
        float r10340 = 4;
        float r10341 = r10339 * r10340;
        float r10342 = r10337 - r10341;
        float r10343 = sqrt(r10342);
        float r10344 = r10325 - r10343;
        float r10345 = r10336 * r10344;
        float r10346 = 5.176075258399343e+133;
        bool r10347 = r10325 <= r10346;
        float r10348 = -r10340;
        float r10349 = fma(r10348, r10339, r10337);
        float r10350 = sqrt(r10349);
        float r10351 = r10350 - r10324;
        float r10352 = sqrt(r10351);
        float r10353 = r10340 / r10352;
        float r10354 = r10338 / r10352;
        float r10355 = r10354 / r10334;
        float r10356 = r10353 * r10355;
        float r10357 = -2;
        float r10358 = r10334 / r10338;
        float r10359 = r10357 / r10358;
        float r10360 = r10359 / r10324;
        float r10361 = r10347 ? r10356 : r10360;
        float r10362 = r10332 ? r10345 : r10361;
        float r10363 = r10327 ? r10330 : r10362;
        return r10363;
}

double f_od(double a, double b, double c) {
        double r10364 = b;
        double r10365 = -r10364;
        double r10366 = -1.1677101794050704e+83;
        bool r10367 = r10365 <= r10366;
        double r10368 = a;
        double r10369 = r10364 / r10368;
        double r10370 = -r10369;
        double r10371 = 4.88870533228829e-274;
        bool r10372 = r10365 <= r10371;
        double r10373 = 1;
        double r10374 = 2;
        double r10375 = r10374 * r10368;
        double r10376 = r10373 / r10375;
        double r10377 = r10364 * r10364;
        double r10378 = c;
        double r10379 = r10368 * r10378;
        double r10380 = 4;
        double r10381 = r10379 * r10380;
        double r10382 = r10377 - r10381;
        double r10383 = sqrt(r10382);
        double r10384 = r10365 - r10383;
        double r10385 = r10376 * r10384;
        double r10386 = 5.176075258399343e+133;
        bool r10387 = r10365 <= r10386;
        double r10388 = -r10380;
        double r10389 = fma(r10388, r10379, r10377);
        double r10390 = sqrt(r10389);
        double r10391 = r10390 - r10364;
        double r10392 = sqrt(r10391);
        double r10393 = r10380 / r10392;
        double r10394 = r10378 / r10392;
        double r10395 = r10394 / r10374;
        double r10396 = r10393 * r10395;
        double r10397 = -2;
        double r10398 = r10374 / r10378;
        double r10399 = r10397 / r10398;
        double r10400 = r10399 / r10364;
        double r10401 = r10387 ? r10396 : r10400;
        double r10402 = r10372 ? r10385 : r10401;
        double r10403 = r10367 ? r10370 : r10402;
        return r10403;
}

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 r10404, r10405, r10406, r10407, r10408, r10409, r10410, r10411, r10412, r10413, r10414, r10415, r10416, r10417;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r10404);
        mpfr_init(r10405);
        mpfr_init(r10406);
        mpfr_init_set_str(r10407, "4", 10, MPFR_RNDN);
        mpfr_init(r10408);
        mpfr_init(r10409);
        mpfr_init(r10410);
        mpfr_init(r10411);
        mpfr_init(r10412);
        mpfr_init(r10413);
        mpfr_init(r10414);
        mpfr_init_set_str(r10415, "2", 10, MPFR_RNDN);
        mpfr_init(r10416);
        mpfr_init(r10417);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r10404, b, MPFR_RNDN);
        mpfr_neg(r10405, r10404, MPFR_RNDN);
        mpfr_mul(r10406, r10404, r10404, MPFR_RNDN);
        ;
        mpfr_set_d(r10408, a, MPFR_RNDN);
        mpfr_set_d(r10409, c, MPFR_RNDN);
        mpfr_mul(r10410, r10408, r10409, MPFR_RNDN);
        mpfr_mul(r10411, r10407, r10410, MPFR_RNDN);
        mpfr_sub(r10412, r10406, r10411, MPFR_RNDN);
        mpfr_sqrt(r10413, r10412, MPFR_RNDN);
        mpfr_sub(r10414, r10405, r10413, MPFR_RNDN);
        ;
        mpfr_mul(r10416, r10415, r10408, MPFR_RNDN);
        mpfr_div(r10417, r10414, r10416, MPFR_RNDN);
        return mpfr_get_d(r10417, MPFR_RNDN);
}

static mpfr_t r10418, r10419, r10420, r10421, r10422, r10423, r10424, r10425, r10426, r10427, r10428, r10429, r10430, r10431, r10432, r10433, r10434, r10435, r10436, r10437, r10438, r10439, r10440, r10441, r10442, r10443, r10444, r10445, r10446, r10447, r10448, r10449, r10450, r10451, r10452, r10453, r10454, r10455, r10456, r10457;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r10418);
        mpfr_init(r10419);
        mpfr_init_set_str(r10420, "-1.1677101794050704e+83", 10, MPFR_RNDN);
        mpfr_init(r10421);
        mpfr_init(r10422);
        mpfr_init(r10423);
        mpfr_init(r10424);
        mpfr_init_set_str(r10425, "4.88870533228829e-274", 10, MPFR_RNDN);
        mpfr_init(r10426);
        mpfr_init_set_str(r10427, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10428, "2", 10, MPFR_RNDN);
        mpfr_init(r10429);
        mpfr_init(r10430);
        mpfr_init(r10431);
        mpfr_init(r10432);
        mpfr_init(r10433);
        mpfr_init_set_str(r10434, "4", 10, MPFR_RNDN);
        mpfr_init(r10435);
        mpfr_init(r10436);
        mpfr_init(r10437);
        mpfr_init(r10438);
        mpfr_init(r10439);
        mpfr_init_set_str(r10440, "5.176075258399343e+133", 10, MPFR_RNDN);
        mpfr_init(r10441);
        mpfr_init(r10442);
        mpfr_init(r10443);
        mpfr_init(r10444);
        mpfr_init(r10445);
        mpfr_init(r10446);
        mpfr_init(r10447);
        mpfr_init(r10448);
        mpfr_init(r10449);
        mpfr_init(r10450);
        mpfr_init_set_str(r10451, "-2", 10, MPFR_RNDN);
        mpfr_init(r10452);
        mpfr_init(r10453);
        mpfr_init(r10454);
        mpfr_init(r10455);
        mpfr_init(r10456);
        mpfr_init(r10457);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r10418, b, MPFR_RNDN);
        mpfr_neg(r10419, r10418, MPFR_RNDN);
        ;
        mpfr_set_si(r10421, mpfr_cmp(r10419, r10420) <= 0, MPFR_RNDN);
        mpfr_set_d(r10422, a, MPFR_RNDN);
        mpfr_div(r10423, r10418, r10422, MPFR_RNDN);
        mpfr_neg(r10424, r10423, MPFR_RNDN);
        ;
        mpfr_set_si(r10426, mpfr_cmp(r10419, r10425) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r10429, r10428, r10422, MPFR_RNDN);
        mpfr_div(r10430, r10427, r10429, MPFR_RNDN);
        mpfr_mul(r10431, r10418, r10418, MPFR_RNDN);
        mpfr_set_d(r10432, c, MPFR_RNDN);
        mpfr_mul(r10433, r10422, r10432, MPFR_RNDN);
        ;
        mpfr_mul(r10435, r10433, r10434, MPFR_RNDN);
        mpfr_sub(r10436, r10431, r10435, MPFR_RNDN);
        mpfr_sqrt(r10437, r10436, MPFR_RNDN);
        mpfr_sub(r10438, r10419, r10437, MPFR_RNDN);
        mpfr_mul(r10439, r10430, r10438, MPFR_RNDN);
        ;
        mpfr_set_si(r10441, mpfr_cmp(r10419, r10440) <= 0, MPFR_RNDN);
        mpfr_neg(r10442, r10434, MPFR_RNDN);
        mpfr_fma(r10443, r10442, r10433, r10431, MPFR_RNDN);
        mpfr_sqrt(r10444, r10443, MPFR_RNDN);
        mpfr_sub(r10445, r10444, r10418, MPFR_RNDN);
        mpfr_sqrt(r10446, r10445, MPFR_RNDN);
        mpfr_div(r10447, r10434, r10446, MPFR_RNDN);
        mpfr_div(r10448, r10432, r10446, MPFR_RNDN);
        mpfr_div(r10449, r10448, r10428, MPFR_RNDN);
        mpfr_mul(r10450, r10447, r10449, MPFR_RNDN);
        ;
        mpfr_div(r10452, r10428, r10432, MPFR_RNDN);
        mpfr_div(r10453, r10451, r10452, MPFR_RNDN);
        mpfr_div(r10454, r10453, r10418, MPFR_RNDN);
        if (mpfr_get_si(r10441, MPFR_RNDN)) { mpfr_set(r10455, r10450, MPFR_RNDN); } else { mpfr_set(r10455, r10454, MPFR_RNDN); };
        if (mpfr_get_si(r10426, MPFR_RNDN)) { mpfr_set(r10456, r10439, MPFR_RNDN); } else { mpfr_set(r10456, r10455, MPFR_RNDN); };
        if (mpfr_get_si(r10421, MPFR_RNDN)) { mpfr_set(r10457, r10424, MPFR_RNDN); } else { mpfr_set(r10457, r10456, MPFR_RNDN); };
        return mpfr_get_d(r10457, MPFR_RNDN);
}

static mpfr_t r10458, r10459, r10460, r10461, r10462, r10463, r10464, r10465, r10466, r10467, r10468, r10469, r10470, r10471, r10472, r10473, r10474, r10475, r10476, r10477, r10478, r10479, r10480, r10481, r10482, r10483, r10484, r10485, r10486, r10487, r10488, r10489, r10490, r10491, r10492, r10493, r10494, r10495, r10496, r10497;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r10458);
        mpfr_init(r10459);
        mpfr_init_set_str(r10460, "-1.1677101794050704e+83", 10, MPFR_RNDN);
        mpfr_init(r10461);
        mpfr_init(r10462);
        mpfr_init(r10463);
        mpfr_init(r10464);
        mpfr_init_set_str(r10465, "4.88870533228829e-274", 10, MPFR_RNDN);
        mpfr_init(r10466);
        mpfr_init_set_str(r10467, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10468, "2", 10, MPFR_RNDN);
        mpfr_init(r10469);
        mpfr_init(r10470);
        mpfr_init(r10471);
        mpfr_init(r10472);
        mpfr_init(r10473);
        mpfr_init_set_str(r10474, "4", 10, MPFR_RNDN);
        mpfr_init(r10475);
        mpfr_init(r10476);
        mpfr_init(r10477);
        mpfr_init(r10478);
        mpfr_init(r10479);
        mpfr_init_set_str(r10480, "5.176075258399343e+133", 10, MPFR_RNDN);
        mpfr_init(r10481);
        mpfr_init(r10482);
        mpfr_init(r10483);
        mpfr_init(r10484);
        mpfr_init(r10485);
        mpfr_init(r10486);
        mpfr_init(r10487);
        mpfr_init(r10488);
        mpfr_init(r10489);
        mpfr_init(r10490);
        mpfr_init_set_str(r10491, "-2", 10, MPFR_RNDN);
        mpfr_init(r10492);
        mpfr_init(r10493);
        mpfr_init(r10494);
        mpfr_init(r10495);
        mpfr_init(r10496);
        mpfr_init(r10497);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r10458, b, MPFR_RNDN);
        mpfr_neg(r10459, r10458, MPFR_RNDN);
        ;
        mpfr_set_si(r10461, mpfr_cmp(r10459, r10460) <= 0, MPFR_RNDN);
        mpfr_set_d(r10462, a, MPFR_RNDN);
        mpfr_div(r10463, r10458, r10462, MPFR_RNDN);
        mpfr_neg(r10464, r10463, MPFR_RNDN);
        ;
        mpfr_set_si(r10466, mpfr_cmp(r10459, r10465) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r10469, r10468, r10462, MPFR_RNDN);
        mpfr_div(r10470, r10467, r10469, MPFR_RNDN);
        mpfr_mul(r10471, r10458, r10458, MPFR_RNDN);
        mpfr_set_d(r10472, c, MPFR_RNDN);
        mpfr_mul(r10473, r10462, r10472, MPFR_RNDN);
        ;
        mpfr_mul(r10475, r10473, r10474, MPFR_RNDN);
        mpfr_sub(r10476, r10471, r10475, MPFR_RNDN);
        mpfr_sqrt(r10477, r10476, MPFR_RNDN);
        mpfr_sub(r10478, r10459, r10477, MPFR_RNDN);
        mpfr_mul(r10479, r10470, r10478, MPFR_RNDN);
        ;
        mpfr_set_si(r10481, mpfr_cmp(r10459, r10480) <= 0, MPFR_RNDN);
        mpfr_neg(r10482, r10474, MPFR_RNDN);
        mpfr_fma(r10483, r10482, r10473, r10471, MPFR_RNDN);
        mpfr_sqrt(r10484, r10483, MPFR_RNDN);
        mpfr_sub(r10485, r10484, r10458, MPFR_RNDN);
        mpfr_sqrt(r10486, r10485, MPFR_RNDN);
        mpfr_div(r10487, r10474, r10486, MPFR_RNDN);
        mpfr_div(r10488, r10472, r10486, MPFR_RNDN);
        mpfr_div(r10489, r10488, r10468, MPFR_RNDN);
        mpfr_mul(r10490, r10487, r10489, MPFR_RNDN);
        ;
        mpfr_div(r10492, r10468, r10472, MPFR_RNDN);
        mpfr_div(r10493, r10491, r10492, MPFR_RNDN);
        mpfr_div(r10494, r10493, r10458, MPFR_RNDN);
        if (mpfr_get_si(r10481, MPFR_RNDN)) { mpfr_set(r10495, r10490, MPFR_RNDN); } else { mpfr_set(r10495, r10494, MPFR_RNDN); };
        if (mpfr_get_si(r10466, MPFR_RNDN)) { mpfr_set(r10496, r10479, MPFR_RNDN); } else { mpfr_set(r10496, r10495, MPFR_RNDN); };
        if (mpfr_get_si(r10461, MPFR_RNDN)) { mpfr_set(r10497, r10464, MPFR_RNDN); } else { mpfr_set(r10497, r10496, MPFR_RNDN); };
        return mpfr_get_d(r10497, MPFR_RNDN);
}

