#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 r44438 = 3.0;
        float r44439 = x;
        float r44440 = sqrt(r44439);
        float r44441 = r44438 * r44440;
        float r44442 = y;
        float r44443 = 1.0;
        float r44444 = 9.0;
        float r44445 = r44439 * r44444;
        float r44446 = r44443 / r44445;
        float r44447 = r44442 + r44446;
        float r44448 = r44447 - r44443;
        float r44449 = r44441 * r44448;
        return r44449;
}

double f_id(double x, double y) {
        double r44450 = 3.0;
        double r44451 = x;
        double r44452 = sqrt(r44451);
        double r44453 = r44450 * r44452;
        double r44454 = y;
        double r44455 = 1.0;
        double r44456 = 9.0;
        double r44457 = r44451 * r44456;
        double r44458 = r44455 / r44457;
        double r44459 = r44454 + r44458;
        double r44460 = r44459 - r44455;
        double r44461 = r44453 * r44460;
        return r44461;
}


double f_of(float x, float y) {
        float r44462 = 3.0;
        float r44463 = x;
        float r44464 = sqrt(r44463);
        float r44465 = r44462 * r44464;
        float r44466 = y;
        float r44467 = 0.1111111111111111;
        float r44468 = r44467 / r44463;
        float r44469 = r44466 + r44468;
        float r44470 = 1.0;
        float r44471 = r44469 - r44470;
        float r44472 = r44465 * r44471;
        return r44472;
}

double f_od(double x, double y) {
        double r44473 = 3.0;
        double r44474 = x;
        double r44475 = sqrt(r44474);
        double r44476 = r44473 * r44475;
        double r44477 = y;
        double r44478 = 0.1111111111111111;
        double r44479 = r44478 / r44474;
        double r44480 = r44477 + r44479;
        double r44481 = 1.0;
        double r44482 = r44480 - r44481;
        double r44483 = r44476 * r44482;
        return r44483;
}

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 r44484, r44485, r44486, r44487, r44488, r44489, r44490, r44491, r44492, r44493, r44494, r44495;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44484, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44485);
        mpfr_init(r44486);
        mpfr_init(r44487);
        mpfr_init(r44488);
        mpfr_init_set_str(r44489, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44490, "9.0", 10, MPFR_RNDN);
        mpfr_init(r44491);
        mpfr_init(r44492);
        mpfr_init(r44493);
        mpfr_init(r44494);
        mpfr_init(r44495);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r44485, x, MPFR_RNDN);
        mpfr_sqrt(r44486, r44485, MPFR_RNDN);
        mpfr_mul(r44487, r44484, r44486, MPFR_RNDN);
        mpfr_set_d(r44488, y, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44491, r44485, r44490, MPFR_RNDN);
        mpfr_div(r44492, r44489, r44491, MPFR_RNDN);
        mpfr_add(r44493, r44488, r44492, MPFR_RNDN);
        mpfr_sub(r44494, r44493, r44489, MPFR_RNDN);
        mpfr_mul(r44495, r44487, r44494, MPFR_RNDN);
        return mpfr_get_d(r44495, MPFR_RNDN);
}

static mpfr_t r44496, r44497, r44498, r44499, r44500, r44501, r44502, r44503, r44504, r44505, r44506;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44496, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44497);
        mpfr_init(r44498);
        mpfr_init(r44499);
        mpfr_init(r44500);
        mpfr_init_set_str(r44501, "0.1111111111111111", 10, MPFR_RNDN);
        mpfr_init(r44502);
        mpfr_init(r44503);
        mpfr_init_set_str(r44504, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44505);
        mpfr_init(r44506);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r44497, x, MPFR_RNDN);
        mpfr_sqrt(r44498, r44497, MPFR_RNDN);
        mpfr_mul(r44499, r44496, r44498, MPFR_RNDN);
        mpfr_set_d(r44500, y, MPFR_RNDN);
        ;
        mpfr_div(r44502, r44501, r44497, MPFR_RNDN);
        mpfr_add(r44503, r44500, r44502, MPFR_RNDN);
        ;
        mpfr_sub(r44505, r44503, r44504, MPFR_RNDN);
        mpfr_mul(r44506, r44499, r44505, MPFR_RNDN);
        return mpfr_get_d(r44506, MPFR_RNDN);
}

static mpfr_t r44507, r44508, r44509, r44510, r44511, r44512, r44513, r44514, r44515, r44516, r44517;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44507, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44508);
        mpfr_init(r44509);
        mpfr_init(r44510);
        mpfr_init(r44511);
        mpfr_init_set_str(r44512, "0.1111111111111111", 10, MPFR_RNDN);
        mpfr_init(r44513);
        mpfr_init(r44514);
        mpfr_init_set_str(r44515, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44516);
        mpfr_init(r44517);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r44508, x, MPFR_RNDN);
        mpfr_sqrt(r44509, r44508, MPFR_RNDN);
        mpfr_mul(r44510, r44507, r44509, MPFR_RNDN);
        mpfr_set_d(r44511, y, MPFR_RNDN);
        ;
        mpfr_div(r44513, r44512, r44508, MPFR_RNDN);
        mpfr_add(r44514, r44511, r44513, MPFR_RNDN);
        ;
        mpfr_sub(r44516, r44514, r44515, MPFR_RNDN);
        mpfr_mul(r44517, r44510, r44516, MPFR_RNDN);
        return mpfr_get_d(r44517, MPFR_RNDN);
}

