#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, D";

double f_if(float x) {
        float r44107 = x;
        float r44108 = 2.30753;
        float r44109 = 0.27061;
        float r44110 = r44107 * r44109;
        float r44111 = r44108 + r44110;
        float r44112 = 1.0;
        float r44113 = 0.99229;
        float r44114 = 0.04481;
        float r44115 = r44107 * r44114;
        float r44116 = r44113 + r44115;
        float r44117 = r44116 * r44107;
        float r44118 = r44112 + r44117;
        float r44119 = r44111 / r44118;
        float r44120 = r44107 - r44119;
        return r44120;
}

double f_id(double x) {
        double r44121 = x;
        double r44122 = 2.30753;
        double r44123 = 0.27061;
        double r44124 = r44121 * r44123;
        double r44125 = r44122 + r44124;
        double r44126 = 1.0;
        double r44127 = 0.99229;
        double r44128 = 0.04481;
        double r44129 = r44121 * r44128;
        double r44130 = r44127 + r44129;
        double r44131 = r44130 * r44121;
        double r44132 = r44126 + r44131;
        double r44133 = r44125 / r44132;
        double r44134 = r44121 - r44133;
        return r44134;
}


double f_of(float x) {
        float r44135 = x;
        float r44136 = 2.30753;
        float r44137 = 0.27061;
        float r44138 = r44135 * r44137;
        float r44139 = r44136 + r44138;
        float r44140 = 1.0;
        float r44141 = 0.99229;
        float r44142 = 0.04481;
        float r44143 = r44135 * r44142;
        float r44144 = r44141 + r44143;
        float r44145 = r44144 * r44135;
        float r44146 = r44140 + r44145;
        float r44147 = r44139 / r44146;
        float r44148 = r44135 - r44147;
        return r44148;
}

double f_od(double x) {
        double r44149 = x;
        double r44150 = 2.30753;
        double r44151 = 0.27061;
        double r44152 = r44149 * r44151;
        double r44153 = r44150 + r44152;
        double r44154 = 1.0;
        double r44155 = 0.99229;
        double r44156 = 0.04481;
        double r44157 = r44149 * r44156;
        double r44158 = r44155 + r44157;
        double r44159 = r44158 * r44149;
        double r44160 = r44154 + r44159;
        double r44161 = r44153 / r44160;
        double r44162 = r44149 - r44161;
        return r44162;
}

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 r44163, r44164, r44165, r44166, r44167, r44168, r44169, r44170, r44171, r44172, r44173, r44174, r44175, r44176;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r44163);
        mpfr_init_set_str(r44164, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r44165, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44166);
        mpfr_init(r44167);
        mpfr_init_set_str(r44168, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44169, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44170, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44171);
        mpfr_init(r44172);
        mpfr_init(r44173);
        mpfr_init(r44174);
        mpfr_init(r44175);
        mpfr_init(r44176);
}

double f_im(double x) {
        mpfr_set_d(r44163, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44166, r44163, r44165, MPFR_RNDN);
        mpfr_add(r44167, r44164, r44166, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44171, r44163, r44170, MPFR_RNDN);
        mpfr_add(r44172, r44169, r44171, MPFR_RNDN);
        mpfr_mul(r44173, r44172, r44163, MPFR_RNDN);
        mpfr_add(r44174, r44168, r44173, MPFR_RNDN);
        mpfr_div(r44175, r44167, r44174, MPFR_RNDN);
        mpfr_sub(r44176, r44163, r44175, MPFR_RNDN);
        return mpfr_get_d(r44176, MPFR_RNDN);
}

static mpfr_t r44177, r44178, r44179, r44180, r44181, r44182, r44183, r44184, r44185, r44186, r44187, r44188, r44189, r44190;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44177);
        mpfr_init_set_str(r44178, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r44179, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44180);
        mpfr_init(r44181);
        mpfr_init_set_str(r44182, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44183, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44184, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44185);
        mpfr_init(r44186);
        mpfr_init(r44187);
        mpfr_init(r44188);
        mpfr_init(r44189);
        mpfr_init(r44190);
}

double f_fm(double x) {
        mpfr_set_d(r44177, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44180, r44177, r44179, MPFR_RNDN);
        mpfr_add(r44181, r44178, r44180, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44185, r44177, r44184, MPFR_RNDN);
        mpfr_add(r44186, r44183, r44185, MPFR_RNDN);
        mpfr_mul(r44187, r44186, r44177, MPFR_RNDN);
        mpfr_add(r44188, r44182, r44187, MPFR_RNDN);
        mpfr_div(r44189, r44181, r44188, MPFR_RNDN);
        mpfr_sub(r44190, r44177, r44189, MPFR_RNDN);
        return mpfr_get_d(r44190, MPFR_RNDN);
}

static mpfr_t r44191, r44192, r44193, r44194, r44195, r44196, r44197, r44198, r44199, r44200, r44201, r44202, r44203, r44204;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44191);
        mpfr_init_set_str(r44192, "2.30753", 10, MPFR_RNDN);
        mpfr_init_set_str(r44193, "0.27061", 10, MPFR_RNDN);
        mpfr_init(r44194);
        mpfr_init(r44195);
        mpfr_init_set_str(r44196, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44197, "0.99229", 10, MPFR_RNDN);
        mpfr_init_set_str(r44198, "0.04481", 10, MPFR_RNDN);
        mpfr_init(r44199);
        mpfr_init(r44200);
        mpfr_init(r44201);
        mpfr_init(r44202);
        mpfr_init(r44203);
        mpfr_init(r44204);
}

double f_dm(double x) {
        mpfr_set_d(r44191, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44194, r44191, r44193, MPFR_RNDN);
        mpfr_add(r44195, r44192, r44194, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r44199, r44191, r44198, MPFR_RNDN);
        mpfr_add(r44200, r44197, r44199, MPFR_RNDN);
        mpfr_mul(r44201, r44200, r44191, MPFR_RNDN);
        mpfr_add(r44202, r44196, r44201, MPFR_RNDN);
        mpfr_div(r44203, r44195, r44202, MPFR_RNDN);
        mpfr_sub(r44204, r44191, r44203, MPFR_RNDN);
        return mpfr_get_d(r44204, MPFR_RNDN);
}

