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

char *name = "quadp (p42, positive)";

double f_if(float a, float b, float c) {
        float r19392 = b;
        float r19393 = -r19392;
        float r19394 = r19392 * r19392;
        float r19395 = 4.0f;
        float r19396 = a;
        float r19397 = c;
        float r19398 = r19396 * r19397;
        float r19399 = r19395 * r19398;
        float r19400 = r19394 - r19399;
        float r19401 = sqrt(r19400);
        float r19402 = r19393 + r19401;
        float r19403 = 2.0f;
        float r19404 = r19403 * r19396;
        float r19405 = r19402 / r19404;
        return r19405;
}

double f_id(double a, double b, double c) {
        double r19406 = b;
        double r19407 = -r19406;
        double r19408 = r19406 * r19406;
        double r19409 = 4.0;
        double r19410 = a;
        double r19411 = c;
        double r19412 = r19410 * r19411;
        double r19413 = r19409 * r19412;
        double r19414 = r19408 - r19413;
        double r19415 = sqrt(r19414);
        double r19416 = r19407 + r19415;
        double r19417 = 2.0;
        double r19418 = r19417 * r19410;
        double r19419 = r19416 / r19418;
        return r19419;
}


double f_of(float a, float b, float c) {
        float r19420 = b;
        float r19421 = -2.0713433718164824e+85f;
        bool r19422 = r19420 <= r19421;
        float r19423 = c;
        float r19424 = r19423 / r19420;
        float r19425 = a;
        float r19426 = r19420 / r19425;
        float r19427 = r19424 - r19426;
        float r19428 = 6.611638496230363e-143f;
        bool r19429 = r19420 <= r19428;
        float r19430 = 1.0f;
        float r19431 = 2.0f;
        float r19432 = r19431 * r19425;
        float r19433 = -r19420;
        float r19434 = r19420 * r19420;
        float r19435 = 4.0f;
        float r19436 = r19425 * r19423;
        float r19437 = r19435 * r19436;
        float r19438 = r19434 - r19437;
        float r19439 = sqrt(r19438);
        float r19440 = r19433 + r19439;
        float r19441 = r19432 / r19440;
        float r19442 = r19430 / r19441;
        float r19443 = 2.353344202188118e-100f;
        bool r19444 = r19420 <= r19443;
        float r19445 = -2.0f;
        float r19446 = r19445 / r19431;
        float r19447 = r19424 * r19446;
        float r19448 = 4.3383085193935005e-09f;
        bool r19449 = r19420 <= r19448;
        float r19450 = r19435 * r19423;
        float r19451 = r19425 * r19450;
        float r19452 = r19433 - r19439;
        float r19453 = r19451 / r19452;
        float r19454 = r19453 / r19432;
        float r19455 = r19449 ? r19454 : r19447;
        float r19456 = r19444 ? r19447 : r19455;
        float r19457 = r19429 ? r19442 : r19456;
        float r19458 = r19422 ? r19427 : r19457;
        return r19458;
}

double f_od(double a, double b, double c) {
        double r19459 = b;
        double r19460 = -2.0713433718164824e+85;
        bool r19461 = r19459 <= r19460;
        double r19462 = c;
        double r19463 = r19462 / r19459;
        double r19464 = a;
        double r19465 = r19459 / r19464;
        double r19466 = r19463 - r19465;
        double r19467 = 6.611638496230363e-143;
        bool r19468 = r19459 <= r19467;
        double r19469 = 1.0;
        double r19470 = 2.0;
        double r19471 = r19470 * r19464;
        double r19472 = -r19459;
        double r19473 = r19459 * r19459;
        double r19474 = 4.0;
        double r19475 = r19464 * r19462;
        double r19476 = r19474 * r19475;
        double r19477 = r19473 - r19476;
        double r19478 = sqrt(r19477);
        double r19479 = r19472 + r19478;
        double r19480 = r19471 / r19479;
        double r19481 = r19469 / r19480;
        double r19482 = 2.353344202188118e-100;
        bool r19483 = r19459 <= r19482;
        double r19484 = -2.0;
        double r19485 = r19484 / r19470;
        double r19486 = r19463 * r19485;
        double r19487 = 4.3383085193935005e-09;
        bool r19488 = r19459 <= r19487;
        double r19489 = r19474 * r19462;
        double r19490 = r19464 * r19489;
        double r19491 = r19472 - r19478;
        double r19492 = r19490 / r19491;
        double r19493 = r19492 / r19471;
        double r19494 = r19488 ? r19493 : r19486;
        double r19495 = r19483 ? r19486 : r19494;
        double r19496 = r19468 ? r19481 : r19495;
        double r19497 = r19461 ? r19466 : r19496;
        return r19497;
}

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 r19498, r19499, r19500, r19501, r19502, r19503, r19504, r19505, r19506, r19507, r19508, r19509, r19510, r19511;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2192);
        mpfr_init(r19498);
        mpfr_init(r19499);
        mpfr_init(r19500);
        mpfr_init_set_str(r19501, "4", 10, MPFR_RNDN);
        mpfr_init(r19502);
        mpfr_init(r19503);
        mpfr_init(r19504);
        mpfr_init(r19505);
        mpfr_init(r19506);
        mpfr_init(r19507);
        mpfr_init(r19508);
        mpfr_init_set_str(r19509, "2", 10, MPFR_RNDN);
        mpfr_init(r19510);
        mpfr_init(r19511);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r19498, b, MPFR_RNDN);
        mpfr_neg(r19499, r19498, MPFR_RNDN);
        mpfr_sqr(r19500, r19498, MPFR_RNDN);
        ;
        mpfr_set_d(r19502, a, MPFR_RNDN);
        mpfr_set_d(r19503, c, MPFR_RNDN);
        mpfr_mul(r19504, r19502, r19503, MPFR_RNDN);
        mpfr_mul(r19505, r19501, r19504, MPFR_RNDN);
        mpfr_sub(r19506, r19500, r19505, MPFR_RNDN);
        mpfr_sqrt(r19507, r19506, MPFR_RNDN);
        mpfr_add(r19508, r19499, r19507, MPFR_RNDN);
        ;
        mpfr_mul(r19510, r19509, r19502, MPFR_RNDN);
        mpfr_div(r19511, r19508, r19510, MPFR_RNDN);
        return mpfr_get_d(r19511, MPFR_RNDN);
}

static mpfr_t r19512, r19513, r19514, r19515, r19516, r19517, r19518, r19519, r19520, r19521, r19522, r19523, r19524, r19525, r19526, r19527, r19528, r19529, r19530, r19531, r19532, r19533, r19534, r19535, r19536, r19537, r19538, r19539, r19540, r19541, r19542, r19543, r19544, r19545, r19546, r19547, r19548, r19549, r19550;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2192);
        mpfr_init(r19512);
        mpfr_init_set_str(r19513, "-2.0713433718164824e+85", 10, MPFR_RNDN);
        mpfr_init(r19514);
        mpfr_init(r19515);
        mpfr_init(r19516);
        mpfr_init(r19517);
        mpfr_init(r19518);
        mpfr_init(r19519);
        mpfr_init_set_str(r19520, "6.611638496230363e-143", 10, MPFR_RNDN);
        mpfr_init(r19521);
        mpfr_init_set_str(r19522, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19523, "2", 10, MPFR_RNDN);
        mpfr_init(r19524);
        mpfr_init(r19525);
        mpfr_init(r19526);
        mpfr_init_set_str(r19527, "4", 10, MPFR_RNDN);
        mpfr_init(r19528);
        mpfr_init(r19529);
        mpfr_init(r19530);
        mpfr_init(r19531);
        mpfr_init(r19532);
        mpfr_init(r19533);
        mpfr_init(r19534);
        mpfr_init_set_str(r19535, "2.353344202188118e-100", 10, MPFR_RNDN);
        mpfr_init(r19536);
        mpfr_init_set_str(r19537, "-2", 10, MPFR_RNDN);
        mpfr_init(r19538);
        mpfr_init(r19539);
        mpfr_init_set_str(r19540, "4.3383085193935005e-09", 10, MPFR_RNDN);
        mpfr_init(r19541);
        mpfr_init(r19542);
        mpfr_init(r19543);
        mpfr_init(r19544);
        mpfr_init(r19545);
        mpfr_init(r19546);
        mpfr_init(r19547);
        mpfr_init(r19548);
        mpfr_init(r19549);
        mpfr_init(r19550);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r19512, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19514, mpfr_cmp(r19512, r19513) <= 0, MPFR_RNDN);
        mpfr_set_d(r19515, c, MPFR_RNDN);
        mpfr_div(r19516, r19515, r19512, MPFR_RNDN);
        mpfr_set_d(r19517, a, MPFR_RNDN);
        mpfr_div(r19518, r19512, r19517, MPFR_RNDN);
        mpfr_sub(r19519, r19516, r19518, MPFR_RNDN);
        ;
        mpfr_set_si(r19521, mpfr_cmp(r19512, r19520) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r19524, r19523, r19517, MPFR_RNDN);
        mpfr_neg(r19525, r19512, MPFR_RNDN);
        mpfr_sqr(r19526, r19512, MPFR_RNDN);
        ;
        mpfr_mul(r19528, r19517, r19515, MPFR_RNDN);
        mpfr_mul(r19529, r19527, r19528, MPFR_RNDN);
        mpfr_sub(r19530, r19526, r19529, MPFR_RNDN);
        mpfr_sqrt(r19531, r19530, MPFR_RNDN);
        mpfr_add(r19532, r19525, r19531, MPFR_RNDN);
        mpfr_div(r19533, r19524, r19532, MPFR_RNDN);
        mpfr_div(r19534, r19522, r19533, MPFR_RNDN);
        ;
        mpfr_set_si(r19536, mpfr_cmp(r19512, r19535) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r19538, r19537, r19523, MPFR_RNDN);
        mpfr_mul(r19539, r19516, r19538, MPFR_RNDN);
        ;
        mpfr_set_si(r19541, mpfr_cmp(r19512, r19540) <= 0, MPFR_RNDN);
        mpfr_mul(r19542, r19527, r19515, MPFR_RNDN);
        mpfr_mul(r19543, r19517, r19542, MPFR_RNDN);
        mpfr_sub(r19544, r19525, r19531, MPFR_RNDN);
        mpfr_div(r19545, r19543, r19544, MPFR_RNDN);
        mpfr_div(r19546, r19545, r19524, MPFR_RNDN);
        if (mpfr_get_si(r19541, MPFR_RNDN)) { mpfr_set(r19547, r19546, MPFR_RNDN); } else { mpfr_set(r19547, r19539, MPFR_RNDN); };
        if (mpfr_get_si(r19536, MPFR_RNDN)) { mpfr_set(r19548, r19539, MPFR_RNDN); } else { mpfr_set(r19548, r19547, MPFR_RNDN); };
        if (mpfr_get_si(r19521, MPFR_RNDN)) { mpfr_set(r19549, r19534, MPFR_RNDN); } else { mpfr_set(r19549, r19548, MPFR_RNDN); };
        if (mpfr_get_si(r19514, MPFR_RNDN)) { mpfr_set(r19550, r19519, MPFR_RNDN); } else { mpfr_set(r19550, r19549, MPFR_RNDN); };
        return mpfr_get_d(r19550, MPFR_RNDN);
}

static mpfr_t r19551, r19552, r19553, r19554, r19555, r19556, r19557, r19558, r19559, r19560, r19561, r19562, r19563, r19564, r19565, r19566, r19567, r19568, r19569, r19570, r19571, r19572, r19573, r19574, r19575, r19576, r19577, r19578, r19579, r19580, r19581, r19582, r19583, r19584, r19585, r19586, r19587, r19588, r19589;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2192);
        mpfr_init(r19551);
        mpfr_init_set_str(r19552, "-2.0713433718164824e+85", 10, MPFR_RNDN);
        mpfr_init(r19553);
        mpfr_init(r19554);
        mpfr_init(r19555);
        mpfr_init(r19556);
        mpfr_init(r19557);
        mpfr_init(r19558);
        mpfr_init_set_str(r19559, "6.611638496230363e-143", 10, MPFR_RNDN);
        mpfr_init(r19560);
        mpfr_init_set_str(r19561, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19562, "2", 10, MPFR_RNDN);
        mpfr_init(r19563);
        mpfr_init(r19564);
        mpfr_init(r19565);
        mpfr_init_set_str(r19566, "4", 10, MPFR_RNDN);
        mpfr_init(r19567);
        mpfr_init(r19568);
        mpfr_init(r19569);
        mpfr_init(r19570);
        mpfr_init(r19571);
        mpfr_init(r19572);
        mpfr_init(r19573);
        mpfr_init_set_str(r19574, "2.353344202188118e-100", 10, MPFR_RNDN);
        mpfr_init(r19575);
        mpfr_init_set_str(r19576, "-2", 10, MPFR_RNDN);
        mpfr_init(r19577);
        mpfr_init(r19578);
        mpfr_init_set_str(r19579, "4.3383085193935005e-09", 10, MPFR_RNDN);
        mpfr_init(r19580);
        mpfr_init(r19581);
        mpfr_init(r19582);
        mpfr_init(r19583);
        mpfr_init(r19584);
        mpfr_init(r19585);
        mpfr_init(r19586);
        mpfr_init(r19587);
        mpfr_init(r19588);
        mpfr_init(r19589);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r19551, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19553, mpfr_cmp(r19551, r19552) <= 0, MPFR_RNDN);
        mpfr_set_d(r19554, c, MPFR_RNDN);
        mpfr_div(r19555, r19554, r19551, MPFR_RNDN);
        mpfr_set_d(r19556, a, MPFR_RNDN);
        mpfr_div(r19557, r19551, r19556, MPFR_RNDN);
        mpfr_sub(r19558, r19555, r19557, MPFR_RNDN);
        ;
        mpfr_set_si(r19560, mpfr_cmp(r19551, r19559) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r19563, r19562, r19556, MPFR_RNDN);
        mpfr_neg(r19564, r19551, MPFR_RNDN);
        mpfr_sqr(r19565, r19551, MPFR_RNDN);
        ;
        mpfr_mul(r19567, r19556, r19554, MPFR_RNDN);
        mpfr_mul(r19568, r19566, r19567, MPFR_RNDN);
        mpfr_sub(r19569, r19565, r19568, MPFR_RNDN);
        mpfr_sqrt(r19570, r19569, MPFR_RNDN);
        mpfr_add(r19571, r19564, r19570, MPFR_RNDN);
        mpfr_div(r19572, r19563, r19571, MPFR_RNDN);
        mpfr_div(r19573, r19561, r19572, MPFR_RNDN);
        ;
        mpfr_set_si(r19575, mpfr_cmp(r19551, r19574) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r19577, r19576, r19562, MPFR_RNDN);
        mpfr_mul(r19578, r19555, r19577, MPFR_RNDN);
        ;
        mpfr_set_si(r19580, mpfr_cmp(r19551, r19579) <= 0, MPFR_RNDN);
        mpfr_mul(r19581, r19566, r19554, MPFR_RNDN);
        mpfr_mul(r19582, r19556, r19581, MPFR_RNDN);
        mpfr_sub(r19583, r19564, r19570, MPFR_RNDN);
        mpfr_div(r19584, r19582, r19583, MPFR_RNDN);
        mpfr_div(r19585, r19584, r19563, MPFR_RNDN);
        if (mpfr_get_si(r19580, MPFR_RNDN)) { mpfr_set(r19586, r19585, MPFR_RNDN); } else { mpfr_set(r19586, r19578, MPFR_RNDN); };
        if (mpfr_get_si(r19575, MPFR_RNDN)) { mpfr_set(r19587, r19578, MPFR_RNDN); } else { mpfr_set(r19587, r19586, MPFR_RNDN); };
        if (mpfr_get_si(r19560, MPFR_RNDN)) { mpfr_set(r19588, r19573, MPFR_RNDN); } else { mpfr_set(r19588, r19587, MPFR_RNDN); };
        if (mpfr_get_si(r19553, MPFR_RNDN)) { mpfr_set(r19589, r19558, MPFR_RNDN); } else { mpfr_set(r19589, r19588, MPFR_RNDN); };
        return mpfr_get_d(r19589, MPFR_RNDN);
}

