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

char *name = "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, F";

double f_if(float x, float y) {
        float r44239 = x;
        float r44240 = y;
        float r44241 = r44239 + r44240;
        float r44242 = r44239 / r44241;
        float r44243 = log(r44242);
        float r44244 = r44239 * r44243;
        float r44245 = exp(r44244);
        float r44246 = r44245 / r44239;
        return r44246;
}

double f_id(double x, double y) {
        double r44247 = x;
        double r44248 = y;
        double r44249 = r44247 + r44248;
        double r44250 = r44247 / r44249;
        double r44251 = log(r44250);
        double r44252 = r44247 * r44251;
        double r44253 = exp(r44252);
        double r44254 = r44253 / r44247;
        return r44254;
}


double f_of(float x, float y) {
        float r44255 = y;
        float r44256 = -3.7026164623559706e+74;
        bool r44257 = r44255 <= r44256;
        float r44258 = 1;
        float r44259 = r44258 / r44255;
        float r44260 = -r44259;
        float r44261 = exp(r44260);
        float r44262 = x;
        float r44263 = r44261 / r44262;
        float r44264 = 12558354769362.566;
        bool r44265 = r44255 <= r44264;
        float r44266 = r44255 + r44262;
        float r44267 = r44262 / r44266;
        float r44268 = pow(r44267, r44262);
        float r44269 = r44268 / r44262;
        float r44270 = exp(r44269);
        float r44271 = log(r44270);
        float r44272 = r44265 ? r44269 : r44271;
        float r44273 = r44257 ? r44263 : r44272;
        return r44273;
}

double f_od(double x, double y) {
        double r44274 = y;
        double r44275 = -3.7026164623559706e+74;
        bool r44276 = r44274 <= r44275;
        double r44277 = 1;
        double r44278 = r44277 / r44274;
        double r44279 = -r44278;
        double r44280 = exp(r44279);
        double r44281 = x;
        double r44282 = r44280 / r44281;
        double r44283 = 12558354769362.566;
        bool r44284 = r44274 <= r44283;
        double r44285 = r44274 + r44281;
        double r44286 = r44281 / r44285;
        double r44287 = pow(r44286, r44281);
        double r44288 = r44287 / r44281;
        double r44289 = exp(r44288);
        double r44290 = log(r44289);
        double r44291 = r44284 ? r44288 : r44290;
        double r44292 = r44276 ? r44282 : r44291;
        return r44292;
}

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 r44293, r44294, r44295, r44296, r44297, r44298, r44299, r44300;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r44293);
        mpfr_init(r44294);
        mpfr_init(r44295);
        mpfr_init(r44296);
        mpfr_init(r44297);
        mpfr_init(r44298);
        mpfr_init(r44299);
        mpfr_init(r44300);
}

double f_im(double x, double y) {
        mpfr_set_d(r44293, x, MPFR_RNDN);
        mpfr_set_d(r44294, y, MPFR_RNDN);
        mpfr_add(r44295, r44293, r44294, MPFR_RNDN);
        mpfr_div(r44296, r44293, r44295, MPFR_RNDN);
        mpfr_log(r44297, r44296, MPFR_RNDN);
        mpfr_mul(r44298, r44293, r44297, MPFR_RNDN);
        mpfr_exp(r44299, r44298, MPFR_RNDN);
        mpfr_div(r44300, r44299, r44293, MPFR_RNDN);
        return mpfr_get_d(r44300, MPFR_RNDN);
}

static mpfr_t r44301, r44302, r44303, r44304, r44305, r44306, r44307, r44308, r44309, r44310, r44311, r44312, r44313, r44314, r44315, r44316, r44317, r44318, r44319;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r44301);
        mpfr_init_set_str(r44302, "-3.7026164623559706e+74", 10, MPFR_RNDN);
        mpfr_init(r44303);
        mpfr_init_set_str(r44304, "1", 10, MPFR_RNDN);
        mpfr_init(r44305);
        mpfr_init(r44306);
        mpfr_init(r44307);
        mpfr_init(r44308);
        mpfr_init(r44309);
        mpfr_init_set_str(r44310, "12558354769362.566", 10, MPFR_RNDN);
        mpfr_init(r44311);
        mpfr_init(r44312);
        mpfr_init(r44313);
        mpfr_init(r44314);
        mpfr_init(r44315);
        mpfr_init(r44316);
        mpfr_init(r44317);
        mpfr_init(r44318);
        mpfr_init(r44319);
}

double f_fm(double x, double y) {
        mpfr_set_d(r44301, y, MPFR_RNDN);
        ;
        mpfr_set_si(r44303, mpfr_cmp(r44301, r44302) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r44305, r44304, r44301, MPFR_RNDN);
        mpfr_neg(r44306, r44305, MPFR_RNDN);
        mpfr_exp(r44307, r44306, MPFR_RNDN);
        mpfr_set_d(r44308, x, MPFR_RNDN);
        mpfr_div(r44309, r44307, r44308, MPFR_RNDN);
        ;
        mpfr_set_si(r44311, mpfr_cmp(r44301, r44310) <= 0, MPFR_RNDN);
        mpfr_add(r44312, r44301, r44308, MPFR_RNDN);
        mpfr_div(r44313, r44308, r44312, MPFR_RNDN);
        mpfr_pow(r44314, r44313, r44308, MPFR_RNDN);
        mpfr_div(r44315, r44314, r44308, MPFR_RNDN);
        mpfr_exp(r44316, r44315, MPFR_RNDN);
        mpfr_log(r44317, r44316, MPFR_RNDN);
        if (mpfr_get_si(r44311, MPFR_RNDN)) { mpfr_set(r44318, r44315, MPFR_RNDN); } else { mpfr_set(r44318, r44317, MPFR_RNDN); };
        if (mpfr_get_si(r44303, MPFR_RNDN)) { mpfr_set(r44319, r44309, MPFR_RNDN); } else { mpfr_set(r44319, r44318, MPFR_RNDN); };
        return mpfr_get_d(r44319, MPFR_RNDN);
}

static mpfr_t r44320, r44321, r44322, r44323, r44324, r44325, r44326, r44327, r44328, r44329, r44330, r44331, r44332, r44333, r44334, r44335, r44336, r44337, r44338;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r44320);
        mpfr_init_set_str(r44321, "-3.7026164623559706e+74", 10, MPFR_RNDN);
        mpfr_init(r44322);
        mpfr_init_set_str(r44323, "1", 10, MPFR_RNDN);
        mpfr_init(r44324);
        mpfr_init(r44325);
        mpfr_init(r44326);
        mpfr_init(r44327);
        mpfr_init(r44328);
        mpfr_init_set_str(r44329, "12558354769362.566", 10, MPFR_RNDN);
        mpfr_init(r44330);
        mpfr_init(r44331);
        mpfr_init(r44332);
        mpfr_init(r44333);
        mpfr_init(r44334);
        mpfr_init(r44335);
        mpfr_init(r44336);
        mpfr_init(r44337);
        mpfr_init(r44338);
}

double f_dm(double x, double y) {
        mpfr_set_d(r44320, y, MPFR_RNDN);
        ;
        mpfr_set_si(r44322, mpfr_cmp(r44320, r44321) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r44324, r44323, r44320, MPFR_RNDN);
        mpfr_neg(r44325, r44324, MPFR_RNDN);
        mpfr_exp(r44326, r44325, MPFR_RNDN);
        mpfr_set_d(r44327, x, MPFR_RNDN);
        mpfr_div(r44328, r44326, r44327, MPFR_RNDN);
        ;
        mpfr_set_si(r44330, mpfr_cmp(r44320, r44329) <= 0, MPFR_RNDN);
        mpfr_add(r44331, r44320, r44327, MPFR_RNDN);
        mpfr_div(r44332, r44327, r44331, MPFR_RNDN);
        mpfr_pow(r44333, r44332, r44327, MPFR_RNDN);
        mpfr_div(r44334, r44333, r44327, MPFR_RNDN);
        mpfr_exp(r44335, r44334, MPFR_RNDN);
        mpfr_log(r44336, r44335, MPFR_RNDN);
        if (mpfr_get_si(r44330, MPFR_RNDN)) { mpfr_set(r44337, r44334, MPFR_RNDN); } else { mpfr_set(r44337, r44336, MPFR_RNDN); };
        if (mpfr_get_si(r44322, MPFR_RNDN)) { mpfr_set(r44338, r44328, MPFR_RNDN); } else { mpfr_set(r44338, r44337, MPFR_RNDN); };
        return mpfr_get_d(r44338, MPFR_RNDN);
}

