#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 r44276 = 3.0;
        float r44277 = x;
        float r44278 = sqrt(r44277);
        float r44279 = r44276 * r44278;
        float r44280 = y;
        float r44281 = 1.0;
        float r44282 = 9.0;
        float r44283 = r44277 * r44282;
        float r44284 = r44281 / r44283;
        float r44285 = r44280 + r44284;
        float r44286 = r44285 - r44281;
        float r44287 = r44279 * r44286;
        return r44287;
}

double f_id(double x, double y) {
        double r44288 = 3.0;
        double r44289 = x;
        double r44290 = sqrt(r44289);
        double r44291 = r44288 * r44290;
        double r44292 = y;
        double r44293 = 1.0;
        double r44294 = 9.0;
        double r44295 = r44289 * r44294;
        double r44296 = r44293 / r44295;
        double r44297 = r44292 + r44296;
        double r44298 = r44297 - r44293;
        double r44299 = r44291 * r44298;
        return r44299;
}


double f_of(float x, float y) {
        float r44300 = x;
        float r44301 = sqrt(r44300);
        float r44302 = 3.0;
        float r44303 = y;
        float r44304 = r44302 * r44303;
        float r44305 = r44301 * r44304;
        float r44306 = 1.0;
        float r44307 = r44306 / r44300;
        float r44308 = 9.0;
        float r44309 = r44307 / r44308;
        float r44310 = r44309 - r44306;
        float r44311 = r44301 * r44302;
        float r44312 = r44310 * r44311;
        float r44313 = r44305 + r44312;
        return r44313;
}

double f_od(double x, double y) {
        double r44314 = x;
        double r44315 = sqrt(r44314);
        double r44316 = 3.0;
        double r44317 = y;
        double r44318 = r44316 * r44317;
        double r44319 = r44315 * r44318;
        double r44320 = 1.0;
        double r44321 = r44320 / r44314;
        double r44322 = 9.0;
        double r44323 = r44321 / r44322;
        double r44324 = r44323 - r44320;
        double r44325 = r44315 * r44316;
        double r44326 = r44324 * r44325;
        double r44327 = r44319 + r44326;
        return r44327;
}

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 r44328, r44329, r44330, r44331, r44332, r44333, r44334, r44335, r44336, r44337, r44338, r44339;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44328, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44329);
        mpfr_init(r44330);
        mpfr_init(r44331);
        mpfr_init(r44332);
        mpfr_init_set_str(r44333, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44334, "9.0", 10, MPFR_RNDN);
        mpfr_init(r44335);
        mpfr_init(r44336);
        mpfr_init(r44337);
        mpfr_init(r44338);
        mpfr_init(r44339);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r44329, x, MPFR_RNDN);
        mpfr_sqrt(r44330, r44329, MPFR_RNDN);
        mpfr_mul(r44331, r44328, r44330, MPFR_RNDN);
        mpfr_set_d(r44332, y, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44335, r44329, r44334, MPFR_RNDN);
        mpfr_div(r44336, r44333, r44335, MPFR_RNDN);
        mpfr_add(r44337, r44332, r44336, MPFR_RNDN);
        mpfr_sub(r44338, r44337, r44333, MPFR_RNDN);
        mpfr_mul(r44339, r44331, r44338, MPFR_RNDN);
        return mpfr_get_d(r44339, MPFR_RNDN);
}

static mpfr_t r44340, r44341, r44342, r44343, r44344, r44345, r44346, r44347, r44348, r44349, r44350, r44351, r44352, r44353;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44340);
        mpfr_init(r44341);
        mpfr_init_set_str(r44342, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44343);
        mpfr_init(r44344);
        mpfr_init(r44345);
        mpfr_init_set_str(r44346, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44347);
        mpfr_init_set_str(r44348, "9.0", 10, MPFR_RNDN);
        mpfr_init(r44349);
        mpfr_init(r44350);
        mpfr_init(r44351);
        mpfr_init(r44352);
        mpfr_init(r44353);
}

double f_fm(double x, double y) {
        mpfr_set_d(r44340, x, MPFR_RNDN);
        mpfr_sqrt(r44341, r44340, MPFR_RNDN);
        ;
        mpfr_set_d(r44343, y, MPFR_RNDN);
        mpfr_mul(r44344, r44342, r44343, MPFR_RNDN);
        mpfr_mul(r44345, r44341, r44344, MPFR_RNDN);
        ;
        mpfr_div(r44347, r44346, r44340, MPFR_RNDN);
        ;
        mpfr_div(r44349, r44347, r44348, MPFR_RNDN);
        mpfr_sub(r44350, r44349, r44346, MPFR_RNDN);
        mpfr_mul(r44351, r44341, r44342, MPFR_RNDN);
        mpfr_mul(r44352, r44350, r44351, MPFR_RNDN);
        mpfr_add(r44353, r44345, r44352, MPFR_RNDN);
        return mpfr_get_d(r44353, MPFR_RNDN);
}

static mpfr_t r44354, r44355, r44356, r44357, r44358, r44359, r44360, r44361, r44362, r44363, r44364, r44365, r44366, r44367;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r44354);
        mpfr_init(r44355);
        mpfr_init_set_str(r44356, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44357);
        mpfr_init(r44358);
        mpfr_init(r44359);
        mpfr_init_set_str(r44360, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44361);
        mpfr_init_set_str(r44362, "9.0", 10, MPFR_RNDN);
        mpfr_init(r44363);
        mpfr_init(r44364);
        mpfr_init(r44365);
        mpfr_init(r44366);
        mpfr_init(r44367);
}

double f_dm(double x, double y) {
        mpfr_set_d(r44354, x, MPFR_RNDN);
        mpfr_sqrt(r44355, r44354, MPFR_RNDN);
        ;
        mpfr_set_d(r44357, y, MPFR_RNDN);
        mpfr_mul(r44358, r44356, r44357, MPFR_RNDN);
        mpfr_mul(r44359, r44355, r44358, MPFR_RNDN);
        ;
        mpfr_div(r44361, r44360, r44354, MPFR_RNDN);
        ;
        mpfr_div(r44363, r44361, r44362, MPFR_RNDN);
        mpfr_sub(r44364, r44363, r44360, MPFR_RNDN);
        mpfr_mul(r44365, r44355, r44356, MPFR_RNDN);
        mpfr_mul(r44366, r44364, r44365, MPFR_RNDN);
        mpfr_add(r44367, r44359, r44366, MPFR_RNDN);
        return mpfr_get_d(r44367, MPFR_RNDN);
}

