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

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

double f_if(float x) {
        float r43710 = 1.0;
        float r43711 = x;
        float r43712 = 0.253;
        float r43713 = 0.12;
        float r43714 = r43711 * r43713;
        float r43715 = r43712 + r43714;
        float r43716 = r43711 * r43715;
        float r43717 = r43710 - r43716;
        return r43717;
}

double f_id(double x) {
        double r43718 = 1.0;
        double r43719 = x;
        double r43720 = 0.253;
        double r43721 = 0.12;
        double r43722 = r43719 * r43721;
        double r43723 = r43720 + r43722;
        double r43724 = r43719 * r43723;
        double r43725 = r43718 - r43724;
        return r43725;
}


double f_of(float x) {
        float r43726 = 1.0;
        float r43727 = x;
        float r43728 = 0.253;
        float r43729 = 0.12;
        float r43730 = r43727 * r43729;
        float r43731 = r43728 + r43730;
        float r43732 = r43727 * r43731;
        float r43733 = r43726 - r43732;
        return r43733;
}

double f_od(double x) {
        double r43734 = 1.0;
        double r43735 = x;
        double r43736 = 0.253;
        double r43737 = 0.12;
        double r43738 = r43735 * r43737;
        double r43739 = r43736 + r43738;
        double r43740 = r43735 * r43739;
        double r43741 = r43734 - r43740;
        return r43741;
}

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 r43742, r43743, r43744, r43745, r43746, r43747, r43748, r43749;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r43742, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43743);
        mpfr_init_set_str(r43744, "0.253", 10, MPFR_RNDN);
        mpfr_init_set_str(r43745, "0.12", 10, MPFR_RNDN);
        mpfr_init(r43746);
        mpfr_init(r43747);
        mpfr_init(r43748);
        mpfr_init(r43749);
}

double f_im(double x) {
        ;
        mpfr_set_d(r43743, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r43746, r43743, r43745, MPFR_RNDN);
        mpfr_add(r43747, r43744, r43746, MPFR_RNDN);
        mpfr_mul(r43748, r43743, r43747, MPFR_RNDN);
        mpfr_sub(r43749, r43742, r43748, MPFR_RNDN);
        return mpfr_get_d(r43749, MPFR_RNDN);
}

static mpfr_t r43750, r43751, r43752, r43753, r43754, r43755, r43756, r43757;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r43750, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43751);
        mpfr_init_set_str(r43752, "0.253", 10, MPFR_RNDN);
        mpfr_init_set_str(r43753, "0.12", 10, MPFR_RNDN);
        mpfr_init(r43754);
        mpfr_init(r43755);
        mpfr_init(r43756);
        mpfr_init(r43757);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r43751, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r43754, r43751, r43753, MPFR_RNDN);
        mpfr_add(r43755, r43752, r43754, MPFR_RNDN);
        mpfr_mul(r43756, r43751, r43755, MPFR_RNDN);
        mpfr_sub(r43757, r43750, r43756, MPFR_RNDN);
        return mpfr_get_d(r43757, MPFR_RNDN);
}

static mpfr_t r43758, r43759, r43760, r43761, r43762, r43763, r43764, r43765;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r43758, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43759);
        mpfr_init_set_str(r43760, "0.253", 10, MPFR_RNDN);
        mpfr_init_set_str(r43761, "0.12", 10, MPFR_RNDN);
        mpfr_init(r43762);
        mpfr_init(r43763);
        mpfr_init(r43764);
        mpfr_init(r43765);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r43759, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r43762, r43759, r43761, MPFR_RNDN);
        mpfr_add(r43763, r43760, r43762, MPFR_RNDN);
        mpfr_mul(r43764, r43759, r43763, MPFR_RNDN);
        mpfr_sub(r43765, r43758, r43764, MPFR_RNDN);
        return mpfr_get_d(r43765, MPFR_RNDN);
}

