#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 r9304 = x;
        float r9305 = y;
        float r9306 = r9304 * r9305;
        float r9307 = z;
        float r9308 = r9306 + r9307;
        float r9309 = r9308 * r9305;
        float r9310 = 27464.7644705;
        float r9311 = r9309 + r9310;
        float r9312 = r9311 * r9305;
        float r9313 = 230661.510616;
        float r9314 = r9312 + r9313;
        float r9315 = r9314 * r9305;
        float r9316 = t;
        float r9317 = r9315 + r9316;
        float r9318 = a;
        float r9319 = r9305 + r9318;
        float r9320 = r9319 * r9305;
        float r9321 = b;
        float r9322 = r9320 + r9321;
        float r9323 = r9322 * r9305;
        float r9324 = c;
        float r9325 = r9323 + r9324;
        float r9326 = r9325 * r9305;
        float r9327 = i;
        float r9328 = r9326 + r9327;
        float r9329 = r9317 / r9328;
        return r9329;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r9330 = x;
        double r9331 = y;
        double r9332 = r9330 * r9331;
        double r9333 = z;
        double r9334 = r9332 + r9333;
        double r9335 = r9334 * r9331;
        double r9336 = 27464.7644705;
        double r9337 = r9335 + r9336;
        double r9338 = r9337 * r9331;
        double r9339 = 230661.510616;
        double r9340 = r9338 + r9339;
        double r9341 = r9340 * r9331;
        double r9342 = t;
        double r9343 = r9341 + r9342;
        double r9344 = a;
        double r9345 = r9331 + r9344;
        double r9346 = r9345 * r9331;
        double r9347 = b;
        double r9348 = r9346 + r9347;
        double r9349 = r9348 * r9331;
        double r9350 = c;
        double r9351 = r9349 + r9350;
        double r9352 = r9351 * r9331;
        double r9353 = i;
        double r9354 = r9352 + r9353;
        double r9355 = r9343 / r9354;
        return r9355;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r9356 = x;
        float r9357 = y;
        float r9358 = r9356 * r9357;
        float r9359 = z;
        float r9360 = r9358 + r9359;
        float r9361 = r9360 * r9357;
        float r9362 = 27464.7644705;
        float r9363 = r9361 + r9362;
        float r9364 = r9363 * r9357;
        float r9365 = 230661.510616;
        float r9366 = r9364 + r9365;
        float r9367 = r9366 * r9357;
        float r9368 = t;
        float r9369 = r9367 + r9368;
        float r9370 = a;
        float r9371 = r9357 + r9370;
        float r9372 = r9371 * r9357;
        float r9373 = b;
        float r9374 = r9372 + r9373;
        float r9375 = r9374 * r9357;
        float r9376 = c;
        float r9377 = r9375 + r9376;
        float r9378 = r9377 * r9357;
        float r9379 = i;
        float r9380 = r9378 + r9379;
        float r9381 = r9369 / r9380;
        return r9381;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r9382 = x;
        double r9383 = y;
        double r9384 = r9382 * r9383;
        double r9385 = z;
        double r9386 = r9384 + r9385;
        double r9387 = r9386 * r9383;
        double r9388 = 27464.7644705;
        double r9389 = r9387 + r9388;
        double r9390 = r9389 * r9383;
        double r9391 = 230661.510616;
        double r9392 = r9390 + r9391;
        double r9393 = r9392 * r9383;
        double r9394 = t;
        double r9395 = r9393 + r9394;
        double r9396 = a;
        double r9397 = r9383 + r9396;
        double r9398 = r9397 * r9383;
        double r9399 = b;
        double r9400 = r9398 + r9399;
        double r9401 = r9400 * r9383;
        double r9402 = c;
        double r9403 = r9401 + r9402;
        double r9404 = r9403 * r9383;
        double r9405 = i;
        double r9406 = r9404 + r9405;
        double r9407 = r9395 / r9406;
        return r9407;
}

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 r9408, r9409, r9410, r9411, r9412, r9413, r9414, r9415, r9416, r9417, r9418, r9419, r9420, r9421, r9422, r9423, r9424, r9425, r9426, r9427, r9428, r9429, r9430, r9431, r9432, r9433;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9408);
        mpfr_init(r9409);
        mpfr_init(r9410);
        mpfr_init(r9411);
        mpfr_init(r9412);
        mpfr_init(r9413);
        mpfr_init_set_str(r9414, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r9415);
        mpfr_init(r9416);
        mpfr_init_set_str(r9417, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r9418);
        mpfr_init(r9419);
        mpfr_init(r9420);
        mpfr_init(r9421);
        mpfr_init(r9422);
        mpfr_init(r9423);
        mpfr_init(r9424);
        mpfr_init(r9425);
        mpfr_init(r9426);
        mpfr_init(r9427);
        mpfr_init(r9428);
        mpfr_init(r9429);
        mpfr_init(r9430);
        mpfr_init(r9431);
        mpfr_init(r9432);
        mpfr_init(r9433);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9408, x, MPFR_RNDN);
        mpfr_set_d(r9409, y, MPFR_RNDN);
        mpfr_mul(r9410, r9408, r9409, MPFR_RNDN);
        mpfr_set_d(r9411, z, MPFR_RNDN);
        mpfr_add(r9412, r9410, r9411, MPFR_RNDN);
        mpfr_mul(r9413, r9412, r9409, MPFR_RNDN);
        ;
        mpfr_add(r9415, r9413, r9414, MPFR_RNDN);
        mpfr_mul(r9416, r9415, r9409, MPFR_RNDN);
        ;
        mpfr_add(r9418, r9416, r9417, MPFR_RNDN);
        mpfr_mul(r9419, r9418, r9409, MPFR_RNDN);
        mpfr_set_d(r9420, t, MPFR_RNDN);
        mpfr_add(r9421, r9419, r9420, MPFR_RNDN);
        mpfr_set_d(r9422, a, MPFR_RNDN);
        mpfr_add(r9423, r9409, r9422, MPFR_RNDN);
        mpfr_mul(r9424, r9423, r9409, MPFR_RNDN);
        mpfr_set_d(r9425, b, MPFR_RNDN);
        mpfr_add(r9426, r9424, r9425, MPFR_RNDN);
        mpfr_mul(r9427, r9426, r9409, MPFR_RNDN);
        mpfr_set_d(r9428, c, MPFR_RNDN);
        mpfr_add(r9429, r9427, r9428, MPFR_RNDN);
        mpfr_mul(r9430, r9429, r9409, MPFR_RNDN);
        mpfr_set_d(r9431, i, MPFR_RNDN);
        mpfr_add(r9432, r9430, r9431, MPFR_RNDN);
        mpfr_div(r9433, r9421, r9432, MPFR_RNDN);
        return mpfr_get_d(r9433, MPFR_RNDN);
}

static mpfr_t r9434, r9435, r9436, r9437, r9438, r9439, r9440, r9441, r9442, r9443, r9444, r9445, r9446, r9447, r9448, r9449, r9450, r9451, r9452, r9453, r9454, r9455, r9456, r9457, r9458, r9459;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9434);
        mpfr_init(r9435);
        mpfr_init(r9436);
        mpfr_init(r9437);
        mpfr_init(r9438);
        mpfr_init(r9439);
        mpfr_init_set_str(r9440, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r9441);
        mpfr_init(r9442);
        mpfr_init_set_str(r9443, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r9444);
        mpfr_init(r9445);
        mpfr_init(r9446);
        mpfr_init(r9447);
        mpfr_init(r9448);
        mpfr_init(r9449);
        mpfr_init(r9450);
        mpfr_init(r9451);
        mpfr_init(r9452);
        mpfr_init(r9453);
        mpfr_init(r9454);
        mpfr_init(r9455);
        mpfr_init(r9456);
        mpfr_init(r9457);
        mpfr_init(r9458);
        mpfr_init(r9459);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9434, x, MPFR_RNDN);
        mpfr_set_d(r9435, y, MPFR_RNDN);
        mpfr_mul(r9436, r9434, r9435, MPFR_RNDN);
        mpfr_set_d(r9437, z, MPFR_RNDN);
        mpfr_add(r9438, r9436, r9437, MPFR_RNDN);
        mpfr_mul(r9439, r9438, r9435, MPFR_RNDN);
        ;
        mpfr_add(r9441, r9439, r9440, MPFR_RNDN);
        mpfr_mul(r9442, r9441, r9435, MPFR_RNDN);
        ;
        mpfr_add(r9444, r9442, r9443, MPFR_RNDN);
        mpfr_mul(r9445, r9444, r9435, MPFR_RNDN);
        mpfr_set_d(r9446, t, MPFR_RNDN);
        mpfr_add(r9447, r9445, r9446, MPFR_RNDN);
        mpfr_set_d(r9448, a, MPFR_RNDN);
        mpfr_add(r9449, r9435, r9448, MPFR_RNDN);
        mpfr_mul(r9450, r9449, r9435, MPFR_RNDN);
        mpfr_set_d(r9451, b, MPFR_RNDN);
        mpfr_add(r9452, r9450, r9451, MPFR_RNDN);
        mpfr_mul(r9453, r9452, r9435, MPFR_RNDN);
        mpfr_set_d(r9454, c, MPFR_RNDN);
        mpfr_add(r9455, r9453, r9454, MPFR_RNDN);
        mpfr_mul(r9456, r9455, r9435, MPFR_RNDN);
        mpfr_set_d(r9457, i, MPFR_RNDN);
        mpfr_add(r9458, r9456, r9457, MPFR_RNDN);
        mpfr_div(r9459, r9447, r9458, MPFR_RNDN);
        return mpfr_get_d(r9459, MPFR_RNDN);
}

static mpfr_t r9460, r9461, r9462, r9463, r9464, r9465, r9466, r9467, r9468, r9469, r9470, r9471, r9472, r9473, r9474, r9475, r9476, r9477, r9478, r9479, r9480, r9481, r9482, r9483, r9484, r9485;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9460);
        mpfr_init(r9461);
        mpfr_init(r9462);
        mpfr_init(r9463);
        mpfr_init(r9464);
        mpfr_init(r9465);
        mpfr_init_set_str(r9466, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r9467);
        mpfr_init(r9468);
        mpfr_init_set_str(r9469, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r9470);
        mpfr_init(r9471);
        mpfr_init(r9472);
        mpfr_init(r9473);
        mpfr_init(r9474);
        mpfr_init(r9475);
        mpfr_init(r9476);
        mpfr_init(r9477);
        mpfr_init(r9478);
        mpfr_init(r9479);
        mpfr_init(r9480);
        mpfr_init(r9481);
        mpfr_init(r9482);
        mpfr_init(r9483);
        mpfr_init(r9484);
        mpfr_init(r9485);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9460, x, MPFR_RNDN);
        mpfr_set_d(r9461, y, MPFR_RNDN);
        mpfr_mul(r9462, r9460, r9461, MPFR_RNDN);
        mpfr_set_d(r9463, z, MPFR_RNDN);
        mpfr_add(r9464, r9462, r9463, MPFR_RNDN);
        mpfr_mul(r9465, r9464, r9461, MPFR_RNDN);
        ;
        mpfr_add(r9467, r9465, r9466, MPFR_RNDN);
        mpfr_mul(r9468, r9467, r9461, MPFR_RNDN);
        ;
        mpfr_add(r9470, r9468, r9469, MPFR_RNDN);
        mpfr_mul(r9471, r9470, r9461, MPFR_RNDN);
        mpfr_set_d(r9472, t, MPFR_RNDN);
        mpfr_add(r9473, r9471, r9472, MPFR_RNDN);
        mpfr_set_d(r9474, a, MPFR_RNDN);
        mpfr_add(r9475, r9461, r9474, MPFR_RNDN);
        mpfr_mul(r9476, r9475, r9461, MPFR_RNDN);
        mpfr_set_d(r9477, b, MPFR_RNDN);
        mpfr_add(r9478, r9476, r9477, MPFR_RNDN);
        mpfr_mul(r9479, r9478, r9461, MPFR_RNDN);
        mpfr_set_d(r9480, c, MPFR_RNDN);
        mpfr_add(r9481, r9479, r9480, MPFR_RNDN);
        mpfr_mul(r9482, r9481, r9461, MPFR_RNDN);
        mpfr_set_d(r9483, i, MPFR_RNDN);
        mpfr_add(r9484, r9482, r9483, MPFR_RNDN);
        mpfr_div(r9485, r9473, r9484, MPFR_RNDN);
        return mpfr_get_d(r9485, MPFR_RNDN);
}

