#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2";

double f_if(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r25274 = x;
        float r25275 = y;
        float r25276 = r25274 * r25275;
        float r25277 = z;
        float r25278 = r25276 + r25277;
        float r25279 = r25278 * r25275;
        float r25280 = 27464.7644705;
        float r25281 = r25279 + r25280;
        float r25282 = r25281 * r25275;
        float r25283 = 230661.510616;
        float r25284 = r25282 + r25283;
        float r25285 = r25284 * r25275;
        float r25286 = t;
        float r25287 = r25285 + r25286;
        float r25288 = a;
        float r25289 = r25275 + r25288;
        float r25290 = r25289 * r25275;
        float r25291 = b;
        float r25292 = r25290 + r25291;
        float r25293 = r25292 * r25275;
        float r25294 = c;
        float r25295 = r25293 + r25294;
        float r25296 = r25295 * r25275;
        float r25297 = i;
        float r25298 = r25296 + r25297;
        float r25299 = r25287 / r25298;
        return r25299;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r25300 = x;
        double r25301 = y;
        double r25302 = r25300 * r25301;
        double r25303 = z;
        double r25304 = r25302 + r25303;
        double r25305 = r25304 * r25301;
        double r25306 = 27464.7644705;
        double r25307 = r25305 + r25306;
        double r25308 = r25307 * r25301;
        double r25309 = 230661.510616;
        double r25310 = r25308 + r25309;
        double r25311 = r25310 * r25301;
        double r25312 = t;
        double r25313 = r25311 + r25312;
        double r25314 = a;
        double r25315 = r25301 + r25314;
        double r25316 = r25315 * r25301;
        double r25317 = b;
        double r25318 = r25316 + r25317;
        double r25319 = r25318 * r25301;
        double r25320 = c;
        double r25321 = r25319 + r25320;
        double r25322 = r25321 * r25301;
        double r25323 = i;
        double r25324 = r25322 + r25323;
        double r25325 = r25313 / r25324;
        return r25325;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r25326 = 1;
        float r25327 = y;
        float r25328 = a;
        float r25329 = r25327 + r25328;
        float r25330 = r25329 * r25327;
        float r25331 = b;
        float r25332 = r25330 + r25331;
        float r25333 = r25332 * r25327;
        float r25334 = c;
        float r25335 = r25333 + r25334;
        float r25336 = r25335 * r25327;
        float r25337 = i;
        float r25338 = r25336 + r25337;
        float r25339 = x;
        float r25340 = r25339 * r25327;
        float r25341 = z;
        float r25342 = r25340 + r25341;
        float r25343 = r25342 * r25327;
        float r25344 = 27464.7644705;
        float r25345 = r25343 + r25344;
        float r25346 = r25345 * r25327;
        float r25347 = 230661.510616;
        float r25348 = r25346 + r25347;
        float r25349 = r25348 * r25327;
        float r25350 = t;
        float r25351 = r25349 + r25350;
        float r25352 = r25338 / r25351;
        float r25353 = r25326 / r25352;
        return r25353;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r25354 = 1;
        double r25355 = y;
        double r25356 = a;
        double r25357 = r25355 + r25356;
        double r25358 = r25357 * r25355;
        double r25359 = b;
        double r25360 = r25358 + r25359;
        double r25361 = r25360 * r25355;
        double r25362 = c;
        double r25363 = r25361 + r25362;
        double r25364 = r25363 * r25355;
        double r25365 = i;
        double r25366 = r25364 + r25365;
        double r25367 = x;
        double r25368 = r25367 * r25355;
        double r25369 = z;
        double r25370 = r25368 + r25369;
        double r25371 = r25370 * r25355;
        double r25372 = 27464.7644705;
        double r25373 = r25371 + r25372;
        double r25374 = r25373 * r25355;
        double r25375 = 230661.510616;
        double r25376 = r25374 + r25375;
        double r25377 = r25376 * r25355;
        double r25378 = t;
        double r25379 = r25377 + r25378;
        double r25380 = r25366 / r25379;
        double r25381 = r25354 / r25380;
        return r25381;
}

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 r25382, r25383, r25384, r25385, r25386, r25387, r25388, r25389, r25390, r25391, r25392, r25393, r25394, r25395, r25396, r25397, r25398, r25399, r25400, r25401, r25402, r25403, r25404, r25405, r25406, r25407;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r25382);
        mpfr_init(r25383);
        mpfr_init(r25384);
        mpfr_init(r25385);
        mpfr_init(r25386);
        mpfr_init(r25387);
        mpfr_init_set_str(r25388, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r25389);
        mpfr_init(r25390);
        mpfr_init_set_str(r25391, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r25392);
        mpfr_init(r25393);
        mpfr_init(r25394);
        mpfr_init(r25395);
        mpfr_init(r25396);
        mpfr_init(r25397);
        mpfr_init(r25398);
        mpfr_init(r25399);
        mpfr_init(r25400);
        mpfr_init(r25401);
        mpfr_init(r25402);
        mpfr_init(r25403);
        mpfr_init(r25404);
        mpfr_init(r25405);
        mpfr_init(r25406);
        mpfr_init(r25407);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r25382, x, MPFR_RNDN);
        mpfr_set_d(r25383, y, MPFR_RNDN);
        mpfr_mul(r25384, r25382, r25383, MPFR_RNDN);
        mpfr_set_d(r25385, z, MPFR_RNDN);
        mpfr_add(r25386, r25384, r25385, MPFR_RNDN);
        mpfr_mul(r25387, r25386, r25383, MPFR_RNDN);
        ;
        mpfr_add(r25389, r25387, r25388, MPFR_RNDN);
        mpfr_mul(r25390, r25389, r25383, MPFR_RNDN);
        ;
        mpfr_add(r25392, r25390, r25391, MPFR_RNDN);
        mpfr_mul(r25393, r25392, r25383, MPFR_RNDN);
        mpfr_set_d(r25394, t, MPFR_RNDN);
        mpfr_add(r25395, r25393, r25394, MPFR_RNDN);
        mpfr_set_d(r25396, a, MPFR_RNDN);
        mpfr_add(r25397, r25383, r25396, MPFR_RNDN);
        mpfr_mul(r25398, r25397, r25383, MPFR_RNDN);
        mpfr_set_d(r25399, b, MPFR_RNDN);
        mpfr_add(r25400, r25398, r25399, MPFR_RNDN);
        mpfr_mul(r25401, r25400, r25383, MPFR_RNDN);
        mpfr_set_d(r25402, c, MPFR_RNDN);
        mpfr_add(r25403, r25401, r25402, MPFR_RNDN);
        mpfr_mul(r25404, r25403, r25383, MPFR_RNDN);
        mpfr_set_d(r25405, i, MPFR_RNDN);
        mpfr_add(r25406, r25404, r25405, MPFR_RNDN);
        mpfr_div(r25407, r25395, r25406, MPFR_RNDN);
        return mpfr_get_d(r25407, MPFR_RNDN);
}

static mpfr_t r25408, r25409, r25410, r25411, r25412, r25413, r25414, r25415, r25416, r25417, r25418, r25419, r25420, r25421, r25422, r25423, r25424, r25425, r25426, r25427, r25428, r25429, r25430, r25431, r25432, r25433, r25434, r25435;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25408, "1", 10, MPFR_RNDN);
        mpfr_init(r25409);
        mpfr_init(r25410);
        mpfr_init(r25411);
        mpfr_init(r25412);
        mpfr_init(r25413);
        mpfr_init(r25414);
        mpfr_init(r25415);
        mpfr_init(r25416);
        mpfr_init(r25417);
        mpfr_init(r25418);
        mpfr_init(r25419);
        mpfr_init(r25420);
        mpfr_init(r25421);
        mpfr_init(r25422);
        mpfr_init(r25423);
        mpfr_init(r25424);
        mpfr_init(r25425);
        mpfr_init_set_str(r25426, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r25427);
        mpfr_init(r25428);
        mpfr_init_set_str(r25429, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r25430);
        mpfr_init(r25431);
        mpfr_init(r25432);
        mpfr_init(r25433);
        mpfr_init(r25434);
        mpfr_init(r25435);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i) {
        ;
        mpfr_set_d(r25409, y, MPFR_RNDN);
        mpfr_set_d(r25410, a, MPFR_RNDN);
        mpfr_add(r25411, r25409, r25410, MPFR_RNDN);
        mpfr_mul(r25412, r25411, r25409, MPFR_RNDN);
        mpfr_set_d(r25413, b, MPFR_RNDN);
        mpfr_add(r25414, r25412, r25413, MPFR_RNDN);
        mpfr_mul(r25415, r25414, r25409, MPFR_RNDN);
        mpfr_set_d(r25416, c, MPFR_RNDN);
        mpfr_add(r25417, r25415, r25416, MPFR_RNDN);
        mpfr_mul(r25418, r25417, r25409, MPFR_RNDN);
        mpfr_set_d(r25419, i, MPFR_RNDN);
        mpfr_add(r25420, r25418, r25419, MPFR_RNDN);
        mpfr_set_d(r25421, x, MPFR_RNDN);
        mpfr_mul(r25422, r25421, r25409, MPFR_RNDN);
        mpfr_set_d(r25423, z, MPFR_RNDN);
        mpfr_add(r25424, r25422, r25423, MPFR_RNDN);
        mpfr_mul(r25425, r25424, r25409, MPFR_RNDN);
        ;
        mpfr_add(r25427, r25425, r25426, MPFR_RNDN);
        mpfr_mul(r25428, r25427, r25409, MPFR_RNDN);
        ;
        mpfr_add(r25430, r25428, r25429, MPFR_RNDN);
        mpfr_mul(r25431, r25430, r25409, MPFR_RNDN);
        mpfr_set_d(r25432, t, MPFR_RNDN);
        mpfr_add(r25433, r25431, r25432, MPFR_RNDN);
        mpfr_div(r25434, r25420, r25433, MPFR_RNDN);
        mpfr_div(r25435, r25408, r25434, MPFR_RNDN);
        return mpfr_get_d(r25435, MPFR_RNDN);
}

static mpfr_t r25436, r25437, r25438, r25439, r25440, r25441, r25442, r25443, r25444, r25445, r25446, r25447, r25448, r25449, r25450, r25451, r25452, r25453, r25454, r25455, r25456, r25457, r25458, r25459, r25460, r25461, r25462, r25463;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25436, "1", 10, MPFR_RNDN);
        mpfr_init(r25437);
        mpfr_init(r25438);
        mpfr_init(r25439);
        mpfr_init(r25440);
        mpfr_init(r25441);
        mpfr_init(r25442);
        mpfr_init(r25443);
        mpfr_init(r25444);
        mpfr_init(r25445);
        mpfr_init(r25446);
        mpfr_init(r25447);
        mpfr_init(r25448);
        mpfr_init(r25449);
        mpfr_init(r25450);
        mpfr_init(r25451);
        mpfr_init(r25452);
        mpfr_init(r25453);
        mpfr_init_set_str(r25454, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r25455);
        mpfr_init(r25456);
        mpfr_init_set_str(r25457, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r25458);
        mpfr_init(r25459);
        mpfr_init(r25460);
        mpfr_init(r25461);
        mpfr_init(r25462);
        mpfr_init(r25463);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i) {
        ;
        mpfr_set_d(r25437, y, MPFR_RNDN);
        mpfr_set_d(r25438, a, MPFR_RNDN);
        mpfr_add(r25439, r25437, r25438, MPFR_RNDN);
        mpfr_mul(r25440, r25439, r25437, MPFR_RNDN);
        mpfr_set_d(r25441, b, MPFR_RNDN);
        mpfr_add(r25442, r25440, r25441, MPFR_RNDN);
        mpfr_mul(r25443, r25442, r25437, MPFR_RNDN);
        mpfr_set_d(r25444, c, MPFR_RNDN);
        mpfr_add(r25445, r25443, r25444, MPFR_RNDN);
        mpfr_mul(r25446, r25445, r25437, MPFR_RNDN);
        mpfr_set_d(r25447, i, MPFR_RNDN);
        mpfr_add(r25448, r25446, r25447, MPFR_RNDN);
        mpfr_set_d(r25449, x, MPFR_RNDN);
        mpfr_mul(r25450, r25449, r25437, MPFR_RNDN);
        mpfr_set_d(r25451, z, MPFR_RNDN);
        mpfr_add(r25452, r25450, r25451, MPFR_RNDN);
        mpfr_mul(r25453, r25452, r25437, MPFR_RNDN);
        ;
        mpfr_add(r25455, r25453, r25454, MPFR_RNDN);
        mpfr_mul(r25456, r25455, r25437, MPFR_RNDN);
        ;
        mpfr_add(r25458, r25456, r25457, MPFR_RNDN);
        mpfr_mul(r25459, r25458, r25437, MPFR_RNDN);
        mpfr_set_d(r25460, t, MPFR_RNDN);
        mpfr_add(r25461, r25459, r25460, MPFR_RNDN);
        mpfr_div(r25462, r25448, r25461, MPFR_RNDN);
        mpfr_div(r25463, r25436, r25462, MPFR_RNDN);
        return mpfr_get_d(r25463, MPFR_RNDN);
}

