#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 r44782 = 3.0;
        float r44783 = x;
        float r44784 = sqrt(r44783);
        float r44785 = r44782 * r44784;
        float r44786 = y;
        float r44787 = 1.0;
        float r44788 = 9.0;
        float r44789 = r44783 * r44788;
        float r44790 = r44787 / r44789;
        float r44791 = r44786 + r44790;
        float r44792 = r44791 - r44787;
        float r44793 = r44785 * r44792;
        return r44793;
}

double f_id(double x, double y) {
        double r44794 = 3.0;
        double r44795 = x;
        double r44796 = sqrt(r44795);
        double r44797 = r44794 * r44796;
        double r44798 = y;
        double r44799 = 1.0;
        double r44800 = 9.0;
        double r44801 = r44795 * r44800;
        double r44802 = r44799 / r44801;
        double r44803 = r44798 + r44802;
        double r44804 = r44803 - r44799;
        double r44805 = r44797 * r44804;
        return r44805;
}


double f_of(float x, float y) {
        float r44806 = 3.0;
        float r44807 = x;
        float r44808 = sqrt(r44807);
        float r44809 = r44806 * r44808;
        float r44810 = y;
        float r44811 = 0.1111111111111111;
        float r44812 = r44811 / r44807;
        float r44813 = r44810 + r44812;
        float r44814 = 1.0;
        float r44815 = r44813 - r44814;
        float r44816 = r44809 * r44815;
        return r44816;
}

double f_od(double x, double y) {
        double r44817 = 3.0;
        double r44818 = x;
        double r44819 = sqrt(r44818);
        double r44820 = r44817 * r44819;
        double r44821 = y;
        double r44822 = 0.1111111111111111;
        double r44823 = r44822 / r44818;
        double r44824 = r44821 + r44823;
        double r44825 = 1.0;
        double r44826 = r44824 - r44825;
        double r44827 = r44820 * r44826;
        return r44827;
}

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 r44828, r44829, r44830, r44831, r44832, r44833, r44834, r44835, r44836, r44837, r44838, r44839;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44828, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44829);
        mpfr_init(r44830);
        mpfr_init(r44831);
        mpfr_init(r44832);
        mpfr_init_set_str(r44833, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44834, "9.0", 10, MPFR_RNDN);
        mpfr_init(r44835);
        mpfr_init(r44836);
        mpfr_init(r44837);
        mpfr_init(r44838);
        mpfr_init(r44839);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r44829, x, MPFR_RNDN);
        mpfr_sqrt(r44830, r44829, MPFR_RNDN);
        mpfr_mul(r44831, r44828, r44830, MPFR_RNDN);
        mpfr_set_d(r44832, y, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44835, r44829, r44834, MPFR_RNDN);
        mpfr_div(r44836, r44833, r44835, MPFR_RNDN);
        mpfr_add(r44837, r44832, r44836, MPFR_RNDN);
        mpfr_sub(r44838, r44837, r44833, MPFR_RNDN);
        mpfr_mul(r44839, r44831, r44838, MPFR_RNDN);
        return mpfr_get_d(r44839, MPFR_RNDN);
}

static mpfr_t r44840, r44841, r44842, r44843, r44844, r44845, r44846, r44847, r44848, r44849, r44850;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44840, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44841);
        mpfr_init(r44842);
        mpfr_init(r44843);
        mpfr_init(r44844);
        mpfr_init_set_str(r44845, "0.1111111111111111", 10, MPFR_RNDN);
        mpfr_init(r44846);
        mpfr_init(r44847);
        mpfr_init_set_str(r44848, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44849);
        mpfr_init(r44850);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r44841, x, MPFR_RNDN);
        mpfr_sqrt(r44842, r44841, MPFR_RNDN);
        mpfr_mul(r44843, r44840, r44842, MPFR_RNDN);
        mpfr_set_d(r44844, y, MPFR_RNDN);
        ;
        mpfr_div(r44846, r44845, r44841, MPFR_RNDN);
        mpfr_add(r44847, r44844, r44846, MPFR_RNDN);
        ;
        mpfr_sub(r44849, r44847, r44848, MPFR_RNDN);
        mpfr_mul(r44850, r44843, r44849, MPFR_RNDN);
        return mpfr_get_d(r44850, MPFR_RNDN);
}

static mpfr_t r44851, r44852, r44853, r44854, r44855, r44856, r44857, r44858, r44859, r44860, r44861;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44851, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44852);
        mpfr_init(r44853);
        mpfr_init(r44854);
        mpfr_init(r44855);
        mpfr_init_set_str(r44856, "0.1111111111111111", 10, MPFR_RNDN);
        mpfr_init(r44857);
        mpfr_init(r44858);
        mpfr_init_set_str(r44859, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44860);
        mpfr_init(r44861);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r44852, x, MPFR_RNDN);
        mpfr_sqrt(r44853, r44852, MPFR_RNDN);
        mpfr_mul(r44854, r44851, r44853, MPFR_RNDN);
        mpfr_set_d(r44855, y, MPFR_RNDN);
        ;
        mpfr_div(r44857, r44856, r44852, MPFR_RNDN);
        mpfr_add(r44858, r44855, r44857, MPFR_RNDN);
        ;
        mpfr_sub(r44860, r44858, r44859, MPFR_RNDN);
        mpfr_mul(r44861, r44854, r44860, MPFR_RNDN);
        return mpfr_get_d(r44861, MPFR_RNDN);
}

