#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 r43839 = 1.0;
        float r43840 = x;
        float r43841 = 0.253;
        float r43842 = 0.12;
        float r43843 = r43840 * r43842;
        float r43844 = r43841 + r43843;
        float r43845 = r43840 * r43844;
        float r43846 = r43839 - r43845;
        return r43846;
}

double f_id(double x) {
        double r43847 = 1.0;
        double r43848 = x;
        double r43849 = 0.253;
        double r43850 = 0.12;
        double r43851 = r43848 * r43850;
        double r43852 = r43849 + r43851;
        double r43853 = r43848 * r43852;
        double r43854 = r43847 - r43853;
        return r43854;
}


double f_of(float x) {
        float r43855 = 1.0;
        float r43856 = x;
        float r43857 = 0.253;
        float r43858 = 0.12;
        float r43859 = r43856 * r43858;
        float r43860 = r43857 + r43859;
        float r43861 = r43856 * r43860;
        float r43862 = r43855 - r43861;
        return r43862;
}

double f_od(double x) {
        double r43863 = 1.0;
        double r43864 = x;
        double r43865 = 0.253;
        double r43866 = 0.12;
        double r43867 = r43864 * r43866;
        double r43868 = r43865 + r43867;
        double r43869 = r43864 * r43868;
        double r43870 = r43863 - r43869;
        return r43870;
}

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 r43871, r43872, r43873, r43874, r43875, r43876, r43877, r43878;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r43871, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43872);
        mpfr_init_set_str(r43873, "0.253", 10, MPFR_RNDN);
        mpfr_init_set_str(r43874, "0.12", 10, MPFR_RNDN);
        mpfr_init(r43875);
        mpfr_init(r43876);
        mpfr_init(r43877);
        mpfr_init(r43878);
}

double f_im(double x) {
        ;
        mpfr_set_d(r43872, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r43875, r43872, r43874, MPFR_RNDN);
        mpfr_add(r43876, r43873, r43875, MPFR_RNDN);
        mpfr_mul(r43877, r43872, r43876, MPFR_RNDN);
        mpfr_sub(r43878, r43871, r43877, MPFR_RNDN);
        return mpfr_get_d(r43878, MPFR_RNDN);
}

static mpfr_t r43879, r43880, r43881, r43882, r43883, r43884, r43885, r43886;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r43879, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43880);
        mpfr_init_set_str(r43881, "0.253", 10, MPFR_RNDN);
        mpfr_init_set_str(r43882, "0.12", 10, MPFR_RNDN);
        mpfr_init(r43883);
        mpfr_init(r43884);
        mpfr_init(r43885);
        mpfr_init(r43886);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r43880, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r43883, r43880, r43882, MPFR_RNDN);
        mpfr_add(r43884, r43881, r43883, MPFR_RNDN);
        mpfr_mul(r43885, r43880, r43884, MPFR_RNDN);
        mpfr_sub(r43886, r43879, r43885, MPFR_RNDN);
        return mpfr_get_d(r43886, MPFR_RNDN);
}

static mpfr_t r43887, r43888, r43889, r43890, r43891, r43892, r43893, r43894;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r43887, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43888);
        mpfr_init_set_str(r43889, "0.253", 10, MPFR_RNDN);
        mpfr_init_set_str(r43890, "0.12", 10, MPFR_RNDN);
        mpfr_init(r43891);
        mpfr_init(r43892);
        mpfr_init(r43893);
        mpfr_init(r43894);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r43888, x, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r43891, r43888, r43890, MPFR_RNDN);
        mpfr_add(r43892, r43889, r43891, MPFR_RNDN);
        mpfr_mul(r43893, r43888, r43892, MPFR_RNDN);
        mpfr_sub(r43894, r43887, r43893, MPFR_RNDN);
        return mpfr_get_d(r43894, MPFR_RNDN);
}

