#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 r19396 = b;
        float r19397 = -r19396;
        float r19398 = r19396 * r19396;
        float r19399 = 4.0f;
        float r19400 = a;
        float r19401 = c;
        float r19402 = r19400 * r19401;
        float r19403 = r19399 * r19402;
        float r19404 = r19398 - r19403;
        float r19405 = sqrt(r19404);
        float r19406 = r19397 + r19405;
        float r19407 = 2.0f;
        float r19408 = r19407 * r19400;
        float r19409 = r19406 / r19408;
        return r19409;
}

double f_id(double a, double b, double c) {
        double r19410 = b;
        double r19411 = -r19410;
        double r19412 = r19410 * r19410;
        double r19413 = 4.0;
        double r19414 = a;
        double r19415 = c;
        double r19416 = r19414 * r19415;
        double r19417 = r19413 * r19416;
        double r19418 = r19412 - r19417;
        double r19419 = sqrt(r19418);
        double r19420 = r19411 + r19419;
        double r19421 = 2.0;
        double r19422 = r19421 * r19414;
        double r19423 = r19420 / r19422;
        return r19423;
}


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

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

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 r19502, r19503, r19504, r19505, r19506, r19507, r19508, r19509, r19510, r19511, r19512, r19513, r19514, r19515;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2192);
        mpfr_init(r19502);
        mpfr_init(r19503);
        mpfr_init(r19504);
        mpfr_init_set_str(r19505, "4", 10, MPFR_RNDN);
        mpfr_init(r19506);
        mpfr_init(r19507);
        mpfr_init(r19508);
        mpfr_init(r19509);
        mpfr_init(r19510);
        mpfr_init(r19511);
        mpfr_init(r19512);
        mpfr_init_set_str(r19513, "2", 10, MPFR_RNDN);
        mpfr_init(r19514);
        mpfr_init(r19515);
}

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

static mpfr_t 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, r19551, r19552, r19553, r19554;

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

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

static mpfr_t 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, r19590, r19591, r19592, r19593;

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

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

