#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 r11871331 = b;
        float r11871332 = -r11871331;
        float r11871333 = r11871331 * r11871331;
        float r11871334 = 4;
        float r11871335 = a;
        float r11871336 = c;
        float r11871337 = r11871335 * r11871336;
        float r11871338 = r11871334 * r11871337;
        float r11871339 = r11871333 - r11871338;
        float r11871340 = sqrt(r11871339);
        float r11871341 = r11871332 - r11871340;
        float r11871342 = 2;
        float r11871343 = r11871342 * r11871335;
        float r11871344 = r11871341 / r11871343;
        return r11871344;
}

double f_id(double a, double b, double c) {
        double r11871345 = b;
        double r11871346 = -r11871345;
        double r11871347 = r11871345 * r11871345;
        double r11871348 = 4;
        double r11871349 = a;
        double r11871350 = c;
        double r11871351 = r11871349 * r11871350;
        double r11871352 = r11871348 * r11871351;
        double r11871353 = r11871347 - r11871352;
        double r11871354 = sqrt(r11871353);
        double r11871355 = r11871346 - r11871354;
        double r11871356 = 2;
        double r11871357 = r11871356 * r11871349;
        double r11871358 = r11871355 / r11871357;
        return r11871358;
}


double f_of(float a, float b, float c) {
        float r11871359 = b;
        float r11871360 = -r11871359;
        float r11871361 = -4.00814757332535e+71;
        bool r11871362 = r11871360 <= r11871361;
        float r11871363 = c;
        float r11871364 = r11871363 / r11871359;
        float r11871365 = 1;
        float r11871366 = r11871364 / r11871365;
        float r11871367 = a;
        float r11871368 = r11871359 / r11871367;
        float r11871369 = r11871366 - r11871368;
        float r11871370 = 3.0226235622241636e-280;
        bool r11871371 = r11871360 <= r11871370;
        float r11871372 = r11871359 * r11871359;
        float r11871373 = 4;
        float r11871374 = r11871367 * r11871363;
        float r11871375 = r11871373 * r11871374;
        float r11871376 = r11871372 - r11871375;
        float r11871377 = sqrt(r11871376);
        float r11871378 = r11871360 - r11871377;
        float r11871379 = 2;
        float r11871380 = r11871379 * r11871367;
        float r11871381 = r11871365 / r11871380;
        float r11871382 = r11871378 * r11871381;
        float r11871383 = 5.639709921649064e+148;
        bool r11871384 = r11871360 <= r11871383;
        float r11871385 = r11871365 / r11871379;
        float r11871386 = r11871373 * r11871363;
        float r11871387 = r11871363 * r11871367;
        float r11871388 = r11871387 * r11871373;
        float r11871389 = r11871372 - r11871388;
        float r11871390 = sqrt(r11871389);
        float r11871391 = r11871360 + r11871390;
        float r11871392 = r11871386 / r11871391;
        float r11871393 = r11871385 * r11871392;
        float r11871394 = r11871360 + r11871359;
        float r11871395 = r11871367 + r11871367;
        float r11871396 = r11871394 / r11871395;
        float r11871397 = r11871396 - r11871366;
        float r11871398 = r11871384 ? r11871393 : r11871397;
        float r11871399 = r11871371 ? r11871382 : r11871398;
        float r11871400 = r11871362 ? r11871369 : r11871399;
        return r11871400;
}

double f_od(double a, double b, double c) {
        double r11871401 = b;
        double r11871402 = -r11871401;
        double r11871403 = -4.00814757332535e+71;
        bool r11871404 = r11871402 <= r11871403;
        double r11871405 = c;
        double r11871406 = r11871405 / r11871401;
        double r11871407 = 1;
        double r11871408 = r11871406 / r11871407;
        double r11871409 = a;
        double r11871410 = r11871401 / r11871409;
        double r11871411 = r11871408 - r11871410;
        double r11871412 = 3.0226235622241636e-280;
        bool r11871413 = r11871402 <= r11871412;
        double r11871414 = r11871401 * r11871401;
        double r11871415 = 4;
        double r11871416 = r11871409 * r11871405;
        double r11871417 = r11871415 * r11871416;
        double r11871418 = r11871414 - r11871417;
        double r11871419 = sqrt(r11871418);
        double r11871420 = r11871402 - r11871419;
        double r11871421 = 2;
        double r11871422 = r11871421 * r11871409;
        double r11871423 = r11871407 / r11871422;
        double r11871424 = r11871420 * r11871423;
        double r11871425 = 5.639709921649064e+148;
        bool r11871426 = r11871402 <= r11871425;
        double r11871427 = r11871407 / r11871421;
        double r11871428 = r11871415 * r11871405;
        double r11871429 = r11871405 * r11871409;
        double r11871430 = r11871429 * r11871415;
        double r11871431 = r11871414 - r11871430;
        double r11871432 = sqrt(r11871431);
        double r11871433 = r11871402 + r11871432;
        double r11871434 = r11871428 / r11871433;
        double r11871435 = r11871427 * r11871434;
        double r11871436 = r11871402 + r11871401;
        double r11871437 = r11871409 + r11871409;
        double r11871438 = r11871436 / r11871437;
        double r11871439 = r11871438 - r11871408;
        double r11871440 = r11871426 ? r11871435 : r11871439;
        double r11871441 = r11871413 ? r11871424 : r11871440;
        double r11871442 = r11871404 ? r11871411 : r11871441;
        return r11871442;
}

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 r11871443, r11871444, r11871445, r11871446, r11871447, r11871448, r11871449, r11871450, r11871451, r11871452, r11871453, r11871454, r11871455, r11871456;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r11871443);
        mpfr_init(r11871444);
        mpfr_init(r11871445);
        mpfr_init_set_str(r11871446, "4", 10, MPFR_RNDN);
        mpfr_init(r11871447);
        mpfr_init(r11871448);
        mpfr_init(r11871449);
        mpfr_init(r11871450);
        mpfr_init(r11871451);
        mpfr_init(r11871452);
        mpfr_init(r11871453);
        mpfr_init_set_str(r11871454, "2", 10, MPFR_RNDN);
        mpfr_init(r11871455);
        mpfr_init(r11871456);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r11871443, b, MPFR_RNDN);
        mpfr_neg(r11871444, r11871443, MPFR_RNDN);
        mpfr_mul(r11871445, r11871443, r11871443, MPFR_RNDN);
        ;
        mpfr_set_d(r11871447, a, MPFR_RNDN);
        mpfr_set_d(r11871448, c, MPFR_RNDN);
        mpfr_mul(r11871449, r11871447, r11871448, MPFR_RNDN);
        mpfr_mul(r11871450, r11871446, r11871449, MPFR_RNDN);
        mpfr_sub(r11871451, r11871445, r11871450, MPFR_RNDN);
        mpfr_sqrt(r11871452, r11871451, MPFR_RNDN);
        mpfr_sub(r11871453, r11871444, r11871452, MPFR_RNDN);
        ;
        mpfr_mul(r11871455, r11871454, r11871447, MPFR_RNDN);
        mpfr_div(r11871456, r11871453, r11871455, MPFR_RNDN);
        return mpfr_get_d(r11871456, MPFR_RNDN);
}

static mpfr_t r11871457, r11871458, r11871459, r11871460, r11871461, r11871462, r11871463, r11871464, r11871465, r11871466, r11871467, r11871468, r11871469, r11871470, r11871471, r11871472, r11871473, r11871474, r11871475, r11871476, r11871477, r11871478, r11871479, r11871480, r11871481, r11871482, r11871483, r11871484, r11871485, r11871486, r11871487, r11871488, r11871489, r11871490, r11871491, r11871492, r11871493, r11871494, r11871495, r11871496, r11871497, r11871498;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r11871457);
        mpfr_init(r11871458);
        mpfr_init_set_str(r11871459, "-4.00814757332535e+71", 10, MPFR_RNDN);
        mpfr_init(r11871460);
        mpfr_init(r11871461);
        mpfr_init(r11871462);
        mpfr_init_set_str(r11871463, "1", 10, MPFR_RNDN);
        mpfr_init(r11871464);
        mpfr_init(r11871465);
        mpfr_init(r11871466);
        mpfr_init(r11871467);
        mpfr_init_set_str(r11871468, "3.0226235622241636e-280", 10, MPFR_RNDN);
        mpfr_init(r11871469);
        mpfr_init(r11871470);
        mpfr_init_set_str(r11871471, "4", 10, MPFR_RNDN);
        mpfr_init(r11871472);
        mpfr_init(r11871473);
        mpfr_init(r11871474);
        mpfr_init(r11871475);
        mpfr_init(r11871476);
        mpfr_init_set_str(r11871477, "2", 10, MPFR_RNDN);
        mpfr_init(r11871478);
        mpfr_init(r11871479);
        mpfr_init(r11871480);
        mpfr_init_set_str(r11871481, "5.639709921649064e+148", 10, MPFR_RNDN);
        mpfr_init(r11871482);
        mpfr_init(r11871483);
        mpfr_init(r11871484);
        mpfr_init(r11871485);
        mpfr_init(r11871486);
        mpfr_init(r11871487);
        mpfr_init(r11871488);
        mpfr_init(r11871489);
        mpfr_init(r11871490);
        mpfr_init(r11871491);
        mpfr_init(r11871492);
        mpfr_init(r11871493);
        mpfr_init(r11871494);
        mpfr_init(r11871495);
        mpfr_init(r11871496);
        mpfr_init(r11871497);
        mpfr_init(r11871498);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r11871457, b, MPFR_RNDN);
        mpfr_neg(r11871458, r11871457, MPFR_RNDN);
        ;
        mpfr_set_si(r11871460, mpfr_cmp(r11871458, r11871459) <= 0, MPFR_RNDN);
        mpfr_set_d(r11871461, c, MPFR_RNDN);
        mpfr_div(r11871462, r11871461, r11871457, MPFR_RNDN);
        ;
        mpfr_div(r11871464, r11871462, r11871463, MPFR_RNDN);
        mpfr_set_d(r11871465, a, MPFR_RNDN);
        mpfr_div(r11871466, r11871457, r11871465, MPFR_RNDN);
        mpfr_sub(r11871467, r11871464, r11871466, MPFR_RNDN);
        ;
        mpfr_set_si(r11871469, mpfr_cmp(r11871458, r11871468) <= 0, MPFR_RNDN);
        mpfr_mul(r11871470, r11871457, r11871457, MPFR_RNDN);
        ;
        mpfr_mul(r11871472, r11871465, r11871461, MPFR_RNDN);
        mpfr_mul(r11871473, r11871471, r11871472, MPFR_RNDN);
        mpfr_sub(r11871474, r11871470, r11871473, MPFR_RNDN);
        mpfr_sqrt(r11871475, r11871474, MPFR_RNDN);
        mpfr_sub(r11871476, r11871458, r11871475, MPFR_RNDN);
        ;
        mpfr_mul(r11871478, r11871477, r11871465, MPFR_RNDN);
        mpfr_div(r11871479, r11871463, r11871478, MPFR_RNDN);
        mpfr_mul(r11871480, r11871476, r11871479, MPFR_RNDN);
        ;
        mpfr_set_si(r11871482, mpfr_cmp(r11871458, r11871481) <= 0, MPFR_RNDN);
        mpfr_div(r11871483, r11871463, r11871477, MPFR_RNDN);
        mpfr_mul(r11871484, r11871471, r11871461, MPFR_RNDN);
        mpfr_mul(r11871485, r11871461, r11871465, MPFR_RNDN);
        mpfr_mul(r11871486, r11871485, r11871471, MPFR_RNDN);
        mpfr_sub(r11871487, r11871470, r11871486, MPFR_RNDN);
        mpfr_sqrt(r11871488, r11871487, MPFR_RNDN);
        mpfr_add(r11871489, r11871458, r11871488, MPFR_RNDN);
        mpfr_div(r11871490, r11871484, r11871489, MPFR_RNDN);
        mpfr_mul(r11871491, r11871483, r11871490, MPFR_RNDN);
        mpfr_add(r11871492, r11871458, r11871457, MPFR_RNDN);
        mpfr_add(r11871493, r11871465, r11871465, MPFR_RNDN);
        mpfr_div(r11871494, r11871492, r11871493, MPFR_RNDN);
        mpfr_sub(r11871495, r11871494, r11871464, MPFR_RNDN);
        if (mpfr_get_si(r11871482, MPFR_RNDN)) { mpfr_set(r11871496, r11871491, MPFR_RNDN); } else { mpfr_set(r11871496, r11871495, MPFR_RNDN); };
        if (mpfr_get_si(r11871469, MPFR_RNDN)) { mpfr_set(r11871497, r11871480, MPFR_RNDN); } else { mpfr_set(r11871497, r11871496, MPFR_RNDN); };
        if (mpfr_get_si(r11871460, MPFR_RNDN)) { mpfr_set(r11871498, r11871467, MPFR_RNDN); } else { mpfr_set(r11871498, r11871497, MPFR_RNDN); };
        return mpfr_get_d(r11871498, MPFR_RNDN);
}

static mpfr_t r11871499, r11871500, r11871501, r11871502, r11871503, r11871504, r11871505, r11871506, r11871507, r11871508, r11871509, r11871510, r11871511, r11871512, r11871513, r11871514, r11871515, r11871516, r11871517, r11871518, r11871519, r11871520, r11871521, r11871522, r11871523, r11871524, r11871525, r11871526, r11871527, r11871528, r11871529, r11871530, r11871531, r11871532, r11871533, r11871534, r11871535, r11871536, r11871537, r11871538, r11871539, r11871540;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r11871499);
        mpfr_init(r11871500);
        mpfr_init_set_str(r11871501, "-4.00814757332535e+71", 10, MPFR_RNDN);
        mpfr_init(r11871502);
        mpfr_init(r11871503);
        mpfr_init(r11871504);
        mpfr_init_set_str(r11871505, "1", 10, MPFR_RNDN);
        mpfr_init(r11871506);
        mpfr_init(r11871507);
        mpfr_init(r11871508);
        mpfr_init(r11871509);
        mpfr_init_set_str(r11871510, "3.0226235622241636e-280", 10, MPFR_RNDN);
        mpfr_init(r11871511);
        mpfr_init(r11871512);
        mpfr_init_set_str(r11871513, "4", 10, MPFR_RNDN);
        mpfr_init(r11871514);
        mpfr_init(r11871515);
        mpfr_init(r11871516);
        mpfr_init(r11871517);
        mpfr_init(r11871518);
        mpfr_init_set_str(r11871519, "2", 10, MPFR_RNDN);
        mpfr_init(r11871520);
        mpfr_init(r11871521);
        mpfr_init(r11871522);
        mpfr_init_set_str(r11871523, "5.639709921649064e+148", 10, MPFR_RNDN);
        mpfr_init(r11871524);
        mpfr_init(r11871525);
        mpfr_init(r11871526);
        mpfr_init(r11871527);
        mpfr_init(r11871528);
        mpfr_init(r11871529);
        mpfr_init(r11871530);
        mpfr_init(r11871531);
        mpfr_init(r11871532);
        mpfr_init(r11871533);
        mpfr_init(r11871534);
        mpfr_init(r11871535);
        mpfr_init(r11871536);
        mpfr_init(r11871537);
        mpfr_init(r11871538);
        mpfr_init(r11871539);
        mpfr_init(r11871540);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r11871499, b, MPFR_RNDN);
        mpfr_neg(r11871500, r11871499, MPFR_RNDN);
        ;
        mpfr_set_si(r11871502, mpfr_cmp(r11871500, r11871501) <= 0, MPFR_RNDN);
        mpfr_set_d(r11871503, c, MPFR_RNDN);
        mpfr_div(r11871504, r11871503, r11871499, MPFR_RNDN);
        ;
        mpfr_div(r11871506, r11871504, r11871505, MPFR_RNDN);
        mpfr_set_d(r11871507, a, MPFR_RNDN);
        mpfr_div(r11871508, r11871499, r11871507, MPFR_RNDN);
        mpfr_sub(r11871509, r11871506, r11871508, MPFR_RNDN);
        ;
        mpfr_set_si(r11871511, mpfr_cmp(r11871500, r11871510) <= 0, MPFR_RNDN);
        mpfr_mul(r11871512, r11871499, r11871499, MPFR_RNDN);
        ;
        mpfr_mul(r11871514, r11871507, r11871503, MPFR_RNDN);
        mpfr_mul(r11871515, r11871513, r11871514, MPFR_RNDN);
        mpfr_sub(r11871516, r11871512, r11871515, MPFR_RNDN);
        mpfr_sqrt(r11871517, r11871516, MPFR_RNDN);
        mpfr_sub(r11871518, r11871500, r11871517, MPFR_RNDN);
        ;
        mpfr_mul(r11871520, r11871519, r11871507, MPFR_RNDN);
        mpfr_div(r11871521, r11871505, r11871520, MPFR_RNDN);
        mpfr_mul(r11871522, r11871518, r11871521, MPFR_RNDN);
        ;
        mpfr_set_si(r11871524, mpfr_cmp(r11871500, r11871523) <= 0, MPFR_RNDN);
        mpfr_div(r11871525, r11871505, r11871519, MPFR_RNDN);
        mpfr_mul(r11871526, r11871513, r11871503, MPFR_RNDN);
        mpfr_mul(r11871527, r11871503, r11871507, MPFR_RNDN);
        mpfr_mul(r11871528, r11871527, r11871513, MPFR_RNDN);
        mpfr_sub(r11871529, r11871512, r11871528, MPFR_RNDN);
        mpfr_sqrt(r11871530, r11871529, MPFR_RNDN);
        mpfr_add(r11871531, r11871500, r11871530, MPFR_RNDN);
        mpfr_div(r11871532, r11871526, r11871531, MPFR_RNDN);
        mpfr_mul(r11871533, r11871525, r11871532, MPFR_RNDN);
        mpfr_add(r11871534, r11871500, r11871499, MPFR_RNDN);
        mpfr_add(r11871535, r11871507, r11871507, MPFR_RNDN);
        mpfr_div(r11871536, r11871534, r11871535, MPFR_RNDN);
        mpfr_sub(r11871537, r11871536, r11871506, MPFR_RNDN);
        if (mpfr_get_si(r11871524, MPFR_RNDN)) { mpfr_set(r11871538, r11871533, MPFR_RNDN); } else { mpfr_set(r11871538, r11871537, MPFR_RNDN); };
        if (mpfr_get_si(r11871511, MPFR_RNDN)) { mpfr_set(r11871539, r11871522, MPFR_RNDN); } else { mpfr_set(r11871539, r11871538, MPFR_RNDN); };
        if (mpfr_get_si(r11871502, MPFR_RNDN)) { mpfr_set(r11871540, r11871509, MPFR_RNDN); } else { mpfr_set(r11871540, r11871539, MPFR_RNDN); };
        return mpfr_get_d(r11871540, MPFR_RNDN);
}

