#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 r44653 = 3.0;
        float r44654 = x;
        float r44655 = sqrt(r44654);
        float r44656 = r44653 * r44655;
        float r44657 = y;
        float r44658 = 1.0;
        float r44659 = 9.0;
        float r44660 = r44654 * r44659;
        float r44661 = r44658 / r44660;
        float r44662 = r44657 + r44661;
        float r44663 = r44662 - r44658;
        float r44664 = r44656 * r44663;
        return r44664;
}

double f_id(double x, double y) {
        double r44665 = 3.0;
        double r44666 = x;
        double r44667 = sqrt(r44666);
        double r44668 = r44665 * r44667;
        double r44669 = y;
        double r44670 = 1.0;
        double r44671 = 9.0;
        double r44672 = r44666 * r44671;
        double r44673 = r44670 / r44672;
        double r44674 = r44669 + r44673;
        double r44675 = r44674 - r44670;
        double r44676 = r44668 * r44675;
        return r44676;
}


double f_of(float x, float y) {
        float r44677 = 3.0;
        float r44678 = x;
        float r44679 = sqrt(r44678);
        float r44680 = r44677 * r44679;
        float r44681 = y;
        float r44682 = 0.1111111111111111;
        float r44683 = r44682 / r44678;
        float r44684 = r44681 + r44683;
        float r44685 = 1.0;
        float r44686 = r44684 - r44685;
        float r44687 = r44680 * r44686;
        return r44687;
}

double f_od(double x, double y) {
        double r44688 = 3.0;
        double r44689 = x;
        double r44690 = sqrt(r44689);
        double r44691 = r44688 * r44690;
        double r44692 = y;
        double r44693 = 0.1111111111111111;
        double r44694 = r44693 / r44689;
        double r44695 = r44692 + r44694;
        double r44696 = 1.0;
        double r44697 = r44695 - r44696;
        double r44698 = r44691 * r44697;
        return r44698;
}

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 r44699, r44700, r44701, r44702, r44703, r44704, r44705, r44706, r44707, r44708, r44709, r44710;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44699, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44700);
        mpfr_init(r44701);
        mpfr_init(r44702);
        mpfr_init(r44703);
        mpfr_init_set_str(r44704, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44705, "9.0", 10, MPFR_RNDN);
        mpfr_init(r44706);
        mpfr_init(r44707);
        mpfr_init(r44708);
        mpfr_init(r44709);
        mpfr_init(r44710);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r44700, x, MPFR_RNDN);
        mpfr_sqrt(r44701, r44700, MPFR_RNDN);
        mpfr_mul(r44702, r44699, r44701, MPFR_RNDN);
        mpfr_set_d(r44703, y, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44706, r44700, r44705, MPFR_RNDN);
        mpfr_div(r44707, r44704, r44706, MPFR_RNDN);
        mpfr_add(r44708, r44703, r44707, MPFR_RNDN);
        mpfr_sub(r44709, r44708, r44704, MPFR_RNDN);
        mpfr_mul(r44710, r44702, r44709, MPFR_RNDN);
        return mpfr_get_d(r44710, MPFR_RNDN);
}

static mpfr_t r44711, r44712, r44713, r44714, r44715, r44716, r44717, r44718, r44719, r44720, r44721;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44711, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44712);
        mpfr_init(r44713);
        mpfr_init(r44714);
        mpfr_init(r44715);
        mpfr_init_set_str(r44716, "0.1111111111111111", 10, MPFR_RNDN);
        mpfr_init(r44717);
        mpfr_init(r44718);
        mpfr_init_set_str(r44719, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44720);
        mpfr_init(r44721);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r44712, x, MPFR_RNDN);
        mpfr_sqrt(r44713, r44712, MPFR_RNDN);
        mpfr_mul(r44714, r44711, r44713, MPFR_RNDN);
        mpfr_set_d(r44715, y, MPFR_RNDN);
        ;
        mpfr_div(r44717, r44716, r44712, MPFR_RNDN);
        mpfr_add(r44718, r44715, r44717, MPFR_RNDN);
        ;
        mpfr_sub(r44720, r44718, r44719, MPFR_RNDN);
        mpfr_mul(r44721, r44714, r44720, MPFR_RNDN);
        return mpfr_get_d(r44721, MPFR_RNDN);
}

static mpfr_t r44722, r44723, r44724, r44725, r44726, r44727, r44728, r44729, r44730, r44731, r44732;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44722, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44723);
        mpfr_init(r44724);
        mpfr_init(r44725);
        mpfr_init(r44726);
        mpfr_init_set_str(r44727, "0.1111111111111111", 10, MPFR_RNDN);
        mpfr_init(r44728);
        mpfr_init(r44729);
        mpfr_init_set_str(r44730, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44731);
        mpfr_init(r44732);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r44723, x, MPFR_RNDN);
        mpfr_sqrt(r44724, r44723, MPFR_RNDN);
        mpfr_mul(r44725, r44722, r44724, MPFR_RNDN);
        mpfr_set_d(r44726, y, MPFR_RNDN);
        ;
        mpfr_div(r44728, r44727, r44723, MPFR_RNDN);
        mpfr_add(r44729, r44726, r44728, MPFR_RNDN);
        ;
        mpfr_sub(r44731, r44729, r44730, MPFR_RNDN);
        mpfr_mul(r44732, r44725, r44731, MPFR_RNDN);
        return mpfr_get_d(r44732, MPFR_RNDN);
}

