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

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

double f_if(float x, float y) {
        float r44934 = 3.0;
        float r44935 = x;
        float r44936 = sqrt(r44935);
        float r44937 = r44934 * r44936;
        float r44938 = y;
        float r44939 = 1.0;
        float r44940 = 9.0;
        float r44941 = r44935 * r44940;
        float r44942 = r44939 / r44941;
        float r44943 = r44938 + r44942;
        float r44944 = r44943 - r44939;
        float r44945 = r44937 * r44944;
        return r44945;
}

double f_id(double x, double y) {
        double r44946 = 3.0;
        double r44947 = x;
        double r44948 = sqrt(r44947);
        double r44949 = r44946 * r44948;
        double r44950 = y;
        double r44951 = 1.0;
        double r44952 = 9.0;
        double r44953 = r44947 * r44952;
        double r44954 = r44951 / r44953;
        double r44955 = r44950 + r44954;
        double r44956 = r44955 - r44951;
        double r44957 = r44949 * r44956;
        return r44957;
}


double f_of(float x, float y) {
        float r44958 = 3.0;
        float r44959 = x;
        float r44960 = sqrt(r44959);
        float r44961 = r44958 * r44960;
        float r44962 = y;
        float r44963 = 0.1111111111111111;
        float r44964 = r44963 / r44959;
        float r44965 = r44962 + r44964;
        float r44966 = 1.0;
        float r44967 = r44965 - r44966;
        float r44968 = r44961 * r44967;
        return r44968;
}

double f_od(double x, double y) {
        double r44969 = 3.0;
        double r44970 = x;
        double r44971 = sqrt(r44970);
        double r44972 = r44969 * r44971;
        double r44973 = y;
        double r44974 = 0.1111111111111111;
        double r44975 = r44974 / r44970;
        double r44976 = r44973 + r44975;
        double r44977 = 1.0;
        double r44978 = r44976 - r44977;
        double r44979 = r44972 * r44978;
        return r44979;
}

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 r44980, r44981, r44982, r44983, r44984, r44985, r44986, r44987, r44988, r44989, r44990, r44991;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44980, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44981);
        mpfr_init(r44982);
        mpfr_init(r44983);
        mpfr_init(r44984);
        mpfr_init_set_str(r44985, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44986, "9.0", 10, MPFR_RNDN);
        mpfr_init(r44987);
        mpfr_init(r44988);
        mpfr_init(r44989);
        mpfr_init(r44990);
        mpfr_init(r44991);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r44981, x, MPFR_RNDN);
        mpfr_sqrt(r44982, r44981, MPFR_RNDN);
        mpfr_mul(r44983, r44980, r44982, MPFR_RNDN);
        mpfr_set_d(r44984, y, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44987, r44981, r44986, MPFR_RNDN);
        mpfr_div(r44988, r44985, r44987, MPFR_RNDN);
        mpfr_add(r44989, r44984, r44988, MPFR_RNDN);
        mpfr_sub(r44990, r44989, r44985, MPFR_RNDN);
        mpfr_mul(r44991, r44983, r44990, MPFR_RNDN);
        return mpfr_get_d(r44991, MPFR_RNDN);
}

static mpfr_t r44992, r44993, r44994, r44995, r44996, r44997, r44998, r44999, r45000, r45001, r45002;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44992, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44993);
        mpfr_init(r44994);
        mpfr_init(r44995);
        mpfr_init(r44996);
        mpfr_init_set_str(r44997, "0.1111111111111111", 10, MPFR_RNDN);
        mpfr_init(r44998);
        mpfr_init(r44999);
        mpfr_init_set_str(r45000, "1.0", 10, MPFR_RNDN);
        mpfr_init(r45001);
        mpfr_init(r45002);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r44993, x, MPFR_RNDN);
        mpfr_sqrt(r44994, r44993, MPFR_RNDN);
        mpfr_mul(r44995, r44992, r44994, MPFR_RNDN);
        mpfr_set_d(r44996, y, MPFR_RNDN);
        ;
        mpfr_div(r44998, r44997, r44993, MPFR_RNDN);
        mpfr_add(r44999, r44996, r44998, MPFR_RNDN);
        ;
        mpfr_sub(r45001, r44999, r45000, MPFR_RNDN);
        mpfr_mul(r45002, r44995, r45001, MPFR_RNDN);
        return mpfr_get_d(r45002, MPFR_RNDN);
}

static mpfr_t r45003, r45004, r45005, r45006, r45007, r45008, r45009, r45010, r45011, r45012, r45013;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r45003, "3.0", 10, MPFR_RNDN);
        mpfr_init(r45004);
        mpfr_init(r45005);
        mpfr_init(r45006);
        mpfr_init(r45007);
        mpfr_init_set_str(r45008, "0.1111111111111111", 10, MPFR_RNDN);
        mpfr_init(r45009);
        mpfr_init(r45010);
        mpfr_init_set_str(r45011, "1.0", 10, MPFR_RNDN);
        mpfr_init(r45012);
        mpfr_init(r45013);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r45004, x, MPFR_RNDN);
        mpfr_sqrt(r45005, r45004, MPFR_RNDN);
        mpfr_mul(r45006, r45003, r45005, MPFR_RNDN);
        mpfr_set_d(r45007, y, MPFR_RNDN);
        ;
        mpfr_div(r45009, r45008, r45004, MPFR_RNDN);
        mpfr_add(r45010, r45007, r45009, MPFR_RNDN);
        ;
        mpfr_sub(r45012, r45010, r45011, MPFR_RNDN);
        mpfr_mul(r45013, r45006, r45012, MPFR_RNDN);
        return mpfr_get_d(r45013, MPFR_RNDN);
}

