#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 r4416334 = b;
        float r4416335 = -r4416334;
        float r4416336 = r4416334 * r4416334;
        float r4416337 = 4;
        float r4416338 = a;
        float r4416339 = c;
        float r4416340 = r4416338 * r4416339;
        float r4416341 = r4416337 * r4416340;
        float r4416342 = r4416336 - r4416341;
        float r4416343 = sqrt(r4416342);
        float r4416344 = r4416335 + r4416343;
        float r4416345 = 2;
        float r4416346 = r4416345 * r4416338;
        float r4416347 = r4416344 / r4416346;
        return r4416347;
}

double f_id(double a, double b, double c) {
        double r4416348 = b;
        double r4416349 = -r4416348;
        double r4416350 = r4416348 * r4416348;
        double r4416351 = 4;
        double r4416352 = a;
        double r4416353 = c;
        double r4416354 = r4416352 * r4416353;
        double r4416355 = r4416351 * r4416354;
        double r4416356 = r4416350 - r4416355;
        double r4416357 = sqrt(r4416356);
        double r4416358 = r4416349 + r4416357;
        double r4416359 = 2;
        double r4416360 = r4416359 * r4416352;
        double r4416361 = r4416358 / r4416360;
        return r4416361;
}


double f_of(float a, float b, float c) {
        float r4416362 = b;
        float r4416363 = -5.190855692504989e+126;
        bool r4416364 = r4416362 <= r4416363;
        float r4416365 = c;
        float r4416366 = r4416365 / r4416362;
        float r4416367 = a;
        float r4416368 = r4416362 / r4416367;
        float r4416369 = r4416366 - r4416368;
        float r4416370 = 7.431102569850124e-187;
        bool r4416371 = r4416362 <= r4416370;
        float r4416372 = 1;
        float r4416373 = 2;
        float r4416374 = r4416373 * r4416367;
        float r4416375 = -r4416362;
        float r4416376 = r4416362 * r4416362;
        float r4416377 = 4;
        float r4416378 = r4416367 * r4416365;
        float r4416379 = r4416377 * r4416378;
        float r4416380 = r4416376 - r4416379;
        float r4416381 = sqrt(r4416380);
        float r4416382 = r4416375 + r4416381;
        float r4416383 = r4416374 / r4416382;
        float r4416384 = r4416372 / r4416383;
        float r4416385 = 3.7515579082896397e+62;
        bool r4416386 = r4416362 <= r4416385;
        float r4416387 = r4416365 * r4416367;
        float r4416388 = r4416387 * r4416377;
        float r4416389 = r4416375 - r4416381;
        float r4416390 = r4416388 / r4416389;
        float r4416391 = r4416390 / r4416374;
        float r4416392 = r4416377 / r4416373;
        float r4416393 = r4416392 * r4416365;
        float r4416394 = r4416367 / r4416362;
        float r4416395 = r4416365 + r4416365;
        float r4416396 = r4416394 * r4416395;
        float r4416397 = r4416362 + r4416362;
        float r4416398 = r4416396 - r4416397;
        float r4416399 = r4416393 / r4416398;
        float r4416400 = r4416386 ? r4416391 : r4416399;
        float r4416401 = r4416371 ? r4416384 : r4416400;
        float r4416402 = r4416364 ? r4416369 : r4416401;
        return r4416402;
}

double f_od(double a, double b, double c) {
        double r4416403 = b;
        double r4416404 = -5.190855692504989e+126;
        bool r4416405 = r4416403 <= r4416404;
        double r4416406 = c;
        double r4416407 = r4416406 / r4416403;
        double r4416408 = a;
        double r4416409 = r4416403 / r4416408;
        double r4416410 = r4416407 - r4416409;
        double r4416411 = 7.431102569850124e-187;
        bool r4416412 = r4416403 <= r4416411;
        double r4416413 = 1;
        double r4416414 = 2;
        double r4416415 = r4416414 * r4416408;
        double r4416416 = -r4416403;
        double r4416417 = r4416403 * r4416403;
        double r4416418 = 4;
        double r4416419 = r4416408 * r4416406;
        double r4416420 = r4416418 * r4416419;
        double r4416421 = r4416417 - r4416420;
        double r4416422 = sqrt(r4416421);
        double r4416423 = r4416416 + r4416422;
        double r4416424 = r4416415 / r4416423;
        double r4416425 = r4416413 / r4416424;
        double r4416426 = 3.7515579082896397e+62;
        bool r4416427 = r4416403 <= r4416426;
        double r4416428 = r4416406 * r4416408;
        double r4416429 = r4416428 * r4416418;
        double r4416430 = r4416416 - r4416422;
        double r4416431 = r4416429 / r4416430;
        double r4416432 = r4416431 / r4416415;
        double r4416433 = r4416418 / r4416414;
        double r4416434 = r4416433 * r4416406;
        double r4416435 = r4416408 / r4416403;
        double r4416436 = r4416406 + r4416406;
        double r4416437 = r4416435 * r4416436;
        double r4416438 = r4416403 + r4416403;
        double r4416439 = r4416437 - r4416438;
        double r4416440 = r4416434 / r4416439;
        double r4416441 = r4416427 ? r4416432 : r4416440;
        double r4416442 = r4416412 ? r4416425 : r4416441;
        double r4416443 = r4416405 ? r4416410 : r4416442;
        return r4416443;
}

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 r4416444, r4416445, r4416446, r4416447, r4416448, r4416449, r4416450, r4416451, r4416452, r4416453, r4416454, r4416455, r4416456, r4416457;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2448);
        mpfr_init(r4416444);
        mpfr_init(r4416445);
        mpfr_init(r4416446);
        mpfr_init_set_str(r4416447, "4", 10, MPFR_RNDN);
        mpfr_init(r4416448);
        mpfr_init(r4416449);
        mpfr_init(r4416450);
        mpfr_init(r4416451);
        mpfr_init(r4416452);
        mpfr_init(r4416453);
        mpfr_init(r4416454);
        mpfr_init_set_str(r4416455, "2", 10, MPFR_RNDN);
        mpfr_init(r4416456);
        mpfr_init(r4416457);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r4416444, b, MPFR_RNDN);
        mpfr_neg(r4416445, r4416444, MPFR_RNDN);
        mpfr_mul(r4416446, r4416444, r4416444, MPFR_RNDN);
        ;
        mpfr_set_d(r4416448, a, MPFR_RNDN);
        mpfr_set_d(r4416449, c, MPFR_RNDN);
        mpfr_mul(r4416450, r4416448, r4416449, MPFR_RNDN);
        mpfr_mul(r4416451, r4416447, r4416450, MPFR_RNDN);
        mpfr_sub(r4416452, r4416446, r4416451, MPFR_RNDN);
        mpfr_sqrt(r4416453, r4416452, MPFR_RNDN);
        mpfr_add(r4416454, r4416445, r4416453, MPFR_RNDN);
        ;
        mpfr_mul(r4416456, r4416455, r4416448, MPFR_RNDN);
        mpfr_div(r4416457, r4416454, r4416456, MPFR_RNDN);
        return mpfr_get_d(r4416457, MPFR_RNDN);
}

static mpfr_t r4416458, r4416459, r4416460, r4416461, r4416462, r4416463, r4416464, r4416465, r4416466, r4416467, r4416468, r4416469, r4416470, r4416471, r4416472, r4416473, r4416474, r4416475, r4416476, r4416477, r4416478, r4416479, r4416480, r4416481, r4416482, r4416483, r4416484, r4416485, r4416486, r4416487, r4416488, r4416489, r4416490, r4416491, r4416492, r4416493, r4416494, r4416495, r4416496, r4416497, r4416498;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r4416458);
        mpfr_init_set_str(r4416459, "-5.190855692504989e+126", 10, MPFR_RNDN);
        mpfr_init(r4416460);
        mpfr_init(r4416461);
        mpfr_init(r4416462);
        mpfr_init(r4416463);
        mpfr_init(r4416464);
        mpfr_init(r4416465);
        mpfr_init_set_str(r4416466, "7.431102569850124e-187", 10, MPFR_RNDN);
        mpfr_init(r4416467);
        mpfr_init_set_str(r4416468, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r4416469, "2", 10, MPFR_RNDN);
        mpfr_init(r4416470);
        mpfr_init(r4416471);
        mpfr_init(r4416472);
        mpfr_init_set_str(r4416473, "4", 10, MPFR_RNDN);
        mpfr_init(r4416474);
        mpfr_init(r4416475);
        mpfr_init(r4416476);
        mpfr_init(r4416477);
        mpfr_init(r4416478);
        mpfr_init(r4416479);
        mpfr_init(r4416480);
        mpfr_init_set_str(r4416481, "3.7515579082896397e+62", 10, MPFR_RNDN);
        mpfr_init(r4416482);
        mpfr_init(r4416483);
        mpfr_init(r4416484);
        mpfr_init(r4416485);
        mpfr_init(r4416486);
        mpfr_init(r4416487);
        mpfr_init(r4416488);
        mpfr_init(r4416489);
        mpfr_init(r4416490);
        mpfr_init(r4416491);
        mpfr_init(r4416492);
        mpfr_init(r4416493);
        mpfr_init(r4416494);
        mpfr_init(r4416495);
        mpfr_init(r4416496);
        mpfr_init(r4416497);
        mpfr_init(r4416498);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r4416458, b, MPFR_RNDN);
        ;
        mpfr_set_si(r4416460, mpfr_cmp(r4416458, r4416459) <= 0, MPFR_RNDN);
        mpfr_set_d(r4416461, c, MPFR_RNDN);
        mpfr_div(r4416462, r4416461, r4416458, MPFR_RNDN);
        mpfr_set_d(r4416463, a, MPFR_RNDN);
        mpfr_div(r4416464, r4416458, r4416463, MPFR_RNDN);
        mpfr_sub(r4416465, r4416462, r4416464, MPFR_RNDN);
        ;
        mpfr_set_si(r4416467, mpfr_cmp(r4416458, r4416466) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r4416470, r4416469, r4416463, MPFR_RNDN);
        mpfr_neg(r4416471, r4416458, MPFR_RNDN);
        mpfr_mul(r4416472, r4416458, r4416458, MPFR_RNDN);
        ;
        mpfr_mul(r4416474, r4416463, r4416461, MPFR_RNDN);
        mpfr_mul(r4416475, r4416473, r4416474, MPFR_RNDN);
        mpfr_sub(r4416476, r4416472, r4416475, MPFR_RNDN);
        mpfr_sqrt(r4416477, r4416476, MPFR_RNDN);
        mpfr_add(r4416478, r4416471, r4416477, MPFR_RNDN);
        mpfr_div(r4416479, r4416470, r4416478, MPFR_RNDN);
        mpfr_div(r4416480, r4416468, r4416479, MPFR_RNDN);
        ;
        mpfr_set_si(r4416482, mpfr_cmp(r4416458, r4416481) <= 0, MPFR_RNDN);
        mpfr_mul(r4416483, r4416461, r4416463, MPFR_RNDN);
        mpfr_mul(r4416484, r4416483, r4416473, MPFR_RNDN);
        mpfr_sub(r4416485, r4416471, r4416477, MPFR_RNDN);
        mpfr_div(r4416486, r4416484, r4416485, MPFR_RNDN);
        mpfr_div(r4416487, r4416486, r4416470, MPFR_RNDN);
        mpfr_div(r4416488, r4416473, r4416469, MPFR_RNDN);
        mpfr_mul(r4416489, r4416488, r4416461, MPFR_RNDN);
        mpfr_div(r4416490, r4416463, r4416458, MPFR_RNDN);
        mpfr_add(r4416491, r4416461, r4416461, MPFR_RNDN);
        mpfr_mul(r4416492, r4416490, r4416491, MPFR_RNDN);
        mpfr_add(r4416493, r4416458, r4416458, MPFR_RNDN);
        mpfr_sub(r4416494, r4416492, r4416493, MPFR_RNDN);
        mpfr_div(r4416495, r4416489, r4416494, MPFR_RNDN);
        if (mpfr_get_si(r4416482, MPFR_RNDN)) { mpfr_set(r4416496, r4416487, MPFR_RNDN); } else { mpfr_set(r4416496, r4416495, MPFR_RNDN); };
        if (mpfr_get_si(r4416467, MPFR_RNDN)) { mpfr_set(r4416497, r4416480, MPFR_RNDN); } else { mpfr_set(r4416497, r4416496, MPFR_RNDN); };
        if (mpfr_get_si(r4416460, MPFR_RNDN)) { mpfr_set(r4416498, r4416465, MPFR_RNDN); } else { mpfr_set(r4416498, r4416497, MPFR_RNDN); };
        return mpfr_get_d(r4416498, MPFR_RNDN);
}

static mpfr_t r4416499, r4416500, r4416501, r4416502, r4416503, r4416504, r4416505, r4416506, r4416507, r4416508, r4416509, r4416510, r4416511, r4416512, r4416513, r4416514, r4416515, r4416516, r4416517, r4416518, r4416519, r4416520, r4416521, r4416522, r4416523, r4416524, r4416525, r4416526, r4416527, r4416528, r4416529, r4416530, r4416531, r4416532, r4416533, r4416534, r4416535, r4416536, r4416537, r4416538, r4416539;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r4416499);
        mpfr_init_set_str(r4416500, "-5.190855692504989e+126", 10, MPFR_RNDN);
        mpfr_init(r4416501);
        mpfr_init(r4416502);
        mpfr_init(r4416503);
        mpfr_init(r4416504);
        mpfr_init(r4416505);
        mpfr_init(r4416506);
        mpfr_init_set_str(r4416507, "7.431102569850124e-187", 10, MPFR_RNDN);
        mpfr_init(r4416508);
        mpfr_init_set_str(r4416509, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r4416510, "2", 10, MPFR_RNDN);
        mpfr_init(r4416511);
        mpfr_init(r4416512);
        mpfr_init(r4416513);
        mpfr_init_set_str(r4416514, "4", 10, MPFR_RNDN);
        mpfr_init(r4416515);
        mpfr_init(r4416516);
        mpfr_init(r4416517);
        mpfr_init(r4416518);
        mpfr_init(r4416519);
        mpfr_init(r4416520);
        mpfr_init(r4416521);
        mpfr_init_set_str(r4416522, "3.7515579082896397e+62", 10, MPFR_RNDN);
        mpfr_init(r4416523);
        mpfr_init(r4416524);
        mpfr_init(r4416525);
        mpfr_init(r4416526);
        mpfr_init(r4416527);
        mpfr_init(r4416528);
        mpfr_init(r4416529);
        mpfr_init(r4416530);
        mpfr_init(r4416531);
        mpfr_init(r4416532);
        mpfr_init(r4416533);
        mpfr_init(r4416534);
        mpfr_init(r4416535);
        mpfr_init(r4416536);
        mpfr_init(r4416537);
        mpfr_init(r4416538);
        mpfr_init(r4416539);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r4416499, b, MPFR_RNDN);
        ;
        mpfr_set_si(r4416501, mpfr_cmp(r4416499, r4416500) <= 0, MPFR_RNDN);
        mpfr_set_d(r4416502, c, MPFR_RNDN);
        mpfr_div(r4416503, r4416502, r4416499, MPFR_RNDN);
        mpfr_set_d(r4416504, a, MPFR_RNDN);
        mpfr_div(r4416505, r4416499, r4416504, MPFR_RNDN);
        mpfr_sub(r4416506, r4416503, r4416505, MPFR_RNDN);
        ;
        mpfr_set_si(r4416508, mpfr_cmp(r4416499, r4416507) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r4416511, r4416510, r4416504, MPFR_RNDN);
        mpfr_neg(r4416512, r4416499, MPFR_RNDN);
        mpfr_mul(r4416513, r4416499, r4416499, MPFR_RNDN);
        ;
        mpfr_mul(r4416515, r4416504, r4416502, MPFR_RNDN);
        mpfr_mul(r4416516, r4416514, r4416515, MPFR_RNDN);
        mpfr_sub(r4416517, r4416513, r4416516, MPFR_RNDN);
        mpfr_sqrt(r4416518, r4416517, MPFR_RNDN);
        mpfr_add(r4416519, r4416512, r4416518, MPFR_RNDN);
        mpfr_div(r4416520, r4416511, r4416519, MPFR_RNDN);
        mpfr_div(r4416521, r4416509, r4416520, MPFR_RNDN);
        ;
        mpfr_set_si(r4416523, mpfr_cmp(r4416499, r4416522) <= 0, MPFR_RNDN);
        mpfr_mul(r4416524, r4416502, r4416504, MPFR_RNDN);
        mpfr_mul(r4416525, r4416524, r4416514, MPFR_RNDN);
        mpfr_sub(r4416526, r4416512, r4416518, MPFR_RNDN);
        mpfr_div(r4416527, r4416525, r4416526, MPFR_RNDN);
        mpfr_div(r4416528, r4416527, r4416511, MPFR_RNDN);
        mpfr_div(r4416529, r4416514, r4416510, MPFR_RNDN);
        mpfr_mul(r4416530, r4416529, r4416502, MPFR_RNDN);
        mpfr_div(r4416531, r4416504, r4416499, MPFR_RNDN);
        mpfr_add(r4416532, r4416502, r4416502, MPFR_RNDN);
        mpfr_mul(r4416533, r4416531, r4416532, MPFR_RNDN);
        mpfr_add(r4416534, r4416499, r4416499, MPFR_RNDN);
        mpfr_sub(r4416535, r4416533, r4416534, MPFR_RNDN);
        mpfr_div(r4416536, r4416530, r4416535, MPFR_RNDN);
        if (mpfr_get_si(r4416523, MPFR_RNDN)) { mpfr_set(r4416537, r4416528, MPFR_RNDN); } else { mpfr_set(r4416537, r4416536, MPFR_RNDN); };
        if (mpfr_get_si(r4416508, MPFR_RNDN)) { mpfr_set(r4416538, r4416521, MPFR_RNDN); } else { mpfr_set(r4416538, r4416537, MPFR_RNDN); };
        if (mpfr_get_si(r4416501, MPFR_RNDN)) { mpfr_set(r4416539, r4416506, MPFR_RNDN); } else { mpfr_set(r4416539, r4416538, MPFR_RNDN); };
        return mpfr_get_d(r4416539, MPFR_RNDN);
}

