#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 r44522 = 3.0;
        float r44523 = x;
        float r44524 = sqrt(r44523);
        float r44525 = r44522 * r44524;
        float r44526 = y;
        float r44527 = 1.0;
        float r44528 = 9.0;
        float r44529 = r44523 * r44528;
        float r44530 = r44527 / r44529;
        float r44531 = r44526 + r44530;
        float r44532 = r44531 - r44527;
        float r44533 = r44525 * r44532;
        return r44533;
}

double f_id(double x, double y) {
        double r44534 = 3.0;
        double r44535 = x;
        double r44536 = sqrt(r44535);
        double r44537 = r44534 * r44536;
        double r44538 = y;
        double r44539 = 1.0;
        double r44540 = 9.0;
        double r44541 = r44535 * r44540;
        double r44542 = r44539 / r44541;
        double r44543 = r44538 + r44542;
        double r44544 = r44543 - r44539;
        double r44545 = r44537 * r44544;
        return r44545;
}


double f_of(float x, float y) {
        float r44546 = 3.0;
        float r44547 = x;
        float r44548 = sqrt(r44547);
        float r44549 = r44546 * r44548;
        float r44550 = y;
        float r44551 = 0.1111111111111111;
        float r44552 = r44551 / r44547;
        float r44553 = r44550 + r44552;
        float r44554 = 1.0;
        float r44555 = r44553 - r44554;
        float r44556 = r44549 * r44555;
        return r44556;
}

double f_od(double x, double y) {
        double r44557 = 3.0;
        double r44558 = x;
        double r44559 = sqrt(r44558);
        double r44560 = r44557 * r44559;
        double r44561 = y;
        double r44562 = 0.1111111111111111;
        double r44563 = r44562 / r44558;
        double r44564 = r44561 + r44563;
        double r44565 = 1.0;
        double r44566 = r44564 - r44565;
        double r44567 = r44560 * r44566;
        return r44567;
}

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 r44568, r44569, r44570, r44571, r44572, r44573, r44574, r44575, r44576, r44577, r44578, r44579;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44568, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44569);
        mpfr_init(r44570);
        mpfr_init(r44571);
        mpfr_init(r44572);
        mpfr_init_set_str(r44573, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r44574, "9.0", 10, MPFR_RNDN);
        mpfr_init(r44575);
        mpfr_init(r44576);
        mpfr_init(r44577);
        mpfr_init(r44578);
        mpfr_init(r44579);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r44569, x, MPFR_RNDN);
        mpfr_sqrt(r44570, r44569, MPFR_RNDN);
        mpfr_mul(r44571, r44568, r44570, MPFR_RNDN);
        mpfr_set_d(r44572, y, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r44575, r44569, r44574, MPFR_RNDN);
        mpfr_div(r44576, r44573, r44575, MPFR_RNDN);
        mpfr_add(r44577, r44572, r44576, MPFR_RNDN);
        mpfr_sub(r44578, r44577, r44573, MPFR_RNDN);
        mpfr_mul(r44579, r44571, r44578, MPFR_RNDN);
        return mpfr_get_d(r44579, MPFR_RNDN);
}

static mpfr_t r44580, r44581, r44582, r44583, r44584, r44585, r44586, r44587, r44588, r44589, r44590;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44580, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44581);
        mpfr_init(r44582);
        mpfr_init(r44583);
        mpfr_init(r44584);
        mpfr_init_set_str(r44585, "0.1111111111111111", 10, MPFR_RNDN);
        mpfr_init(r44586);
        mpfr_init(r44587);
        mpfr_init_set_str(r44588, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44589);
        mpfr_init(r44590);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r44581, x, MPFR_RNDN);
        mpfr_sqrt(r44582, r44581, MPFR_RNDN);
        mpfr_mul(r44583, r44580, r44582, MPFR_RNDN);
        mpfr_set_d(r44584, y, MPFR_RNDN);
        ;
        mpfr_div(r44586, r44585, r44581, MPFR_RNDN);
        mpfr_add(r44587, r44584, r44586, MPFR_RNDN);
        ;
        mpfr_sub(r44589, r44587, r44588, MPFR_RNDN);
        mpfr_mul(r44590, r44583, r44589, MPFR_RNDN);
        return mpfr_get_d(r44590, MPFR_RNDN);
}

static mpfr_t r44591, r44592, r44593, r44594, r44595, r44596, r44597, r44598, r44599, r44600, r44601;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r44591, "3.0", 10, MPFR_RNDN);
        mpfr_init(r44592);
        mpfr_init(r44593);
        mpfr_init(r44594);
        mpfr_init(r44595);
        mpfr_init_set_str(r44596, "0.1111111111111111", 10, MPFR_RNDN);
        mpfr_init(r44597);
        mpfr_init(r44598);
        mpfr_init_set_str(r44599, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44600);
        mpfr_init(r44601);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r44592, x, MPFR_RNDN);
        mpfr_sqrt(r44593, r44592, MPFR_RNDN);
        mpfr_mul(r44594, r44591, r44593, MPFR_RNDN);
        mpfr_set_d(r44595, y, MPFR_RNDN);
        ;
        mpfr_div(r44597, r44596, r44592, MPFR_RNDN);
        mpfr_add(r44598, r44595, r44597, MPFR_RNDN);
        ;
        mpfr_sub(r44600, r44598, r44599, MPFR_RNDN);
        mpfr_mul(r44601, r44594, r44600, MPFR_RNDN);
        return mpfr_get_d(r44601, MPFR_RNDN);
}

