#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 r9312 = x;
        float r9313 = y;
        float r9314 = r9312 * r9313;
        float r9315 = z;
        float r9316 = r9314 + r9315;
        float r9317 = r9316 * r9313;
        float r9318 = 27464.7644705;
        float r9319 = r9317 + r9318;
        float r9320 = r9319 * r9313;
        float r9321 = 230661.510616;
        float r9322 = r9320 + r9321;
        float r9323 = r9322 * r9313;
        float r9324 = t;
        float r9325 = r9323 + r9324;
        float r9326 = a;
        float r9327 = r9313 + r9326;
        float r9328 = r9327 * r9313;
        float r9329 = b;
        float r9330 = r9328 + r9329;
        float r9331 = r9330 * r9313;
        float r9332 = c;
        float r9333 = r9331 + r9332;
        float r9334 = r9333 * r9313;
        float r9335 = i;
        float r9336 = r9334 + r9335;
        float r9337 = r9325 / r9336;
        return r9337;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r9338 = x;
        double r9339 = y;
        double r9340 = r9338 * r9339;
        double r9341 = z;
        double r9342 = r9340 + r9341;
        double r9343 = r9342 * r9339;
        double r9344 = 27464.7644705;
        double r9345 = r9343 + r9344;
        double r9346 = r9345 * r9339;
        double r9347 = 230661.510616;
        double r9348 = r9346 + r9347;
        double r9349 = r9348 * r9339;
        double r9350 = t;
        double r9351 = r9349 + r9350;
        double r9352 = a;
        double r9353 = r9339 + r9352;
        double r9354 = r9353 * r9339;
        double r9355 = b;
        double r9356 = r9354 + r9355;
        double r9357 = r9356 * r9339;
        double r9358 = c;
        double r9359 = r9357 + r9358;
        double r9360 = r9359 * r9339;
        double r9361 = i;
        double r9362 = r9360 + r9361;
        double r9363 = r9351 / r9362;
        return r9363;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r9364 = x;
        float r9365 = y;
        float r9366 = r9364 * r9365;
        float r9367 = z;
        float r9368 = r9366 + r9367;
        float r9369 = r9368 * r9365;
        float r9370 = 27464.7644705;
        float r9371 = r9369 + r9370;
        float r9372 = r9371 * r9365;
        float r9373 = 230661.510616;
        float r9374 = r9372 + r9373;
        float r9375 = cbrt(r9374);
        float r9376 = r9375 * r9375;
        float r9377 = r9375 * r9365;
        float r9378 = r9376 * r9377;
        float r9379 = t;
        float r9380 = r9378 + r9379;
        float r9381 = a;
        float r9382 = r9365 + r9381;
        float r9383 = r9382 * r9365;
        float r9384 = b;
        float r9385 = r9383 + r9384;
        float r9386 = r9385 * r9365;
        float r9387 = c;
        float r9388 = r9386 + r9387;
        float r9389 = r9388 * r9365;
        float r9390 = i;
        float r9391 = r9389 + r9390;
        float r9392 = r9380 / r9391;
        return r9392;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r9393 = x;
        double r9394 = y;
        double r9395 = r9393 * r9394;
        double r9396 = z;
        double r9397 = r9395 + r9396;
        double r9398 = r9397 * r9394;
        double r9399 = 27464.7644705;
        double r9400 = r9398 + r9399;
        double r9401 = r9400 * r9394;
        double r9402 = 230661.510616;
        double r9403 = r9401 + r9402;
        double r9404 = cbrt(r9403);
        double r9405 = r9404 * r9404;
        double r9406 = r9404 * r9394;
        double r9407 = r9405 * r9406;
        double r9408 = t;
        double r9409 = r9407 + r9408;
        double r9410 = a;
        double r9411 = r9394 + r9410;
        double r9412 = r9411 * r9394;
        double r9413 = b;
        double r9414 = r9412 + r9413;
        double r9415 = r9414 * r9394;
        double r9416 = c;
        double r9417 = r9415 + r9416;
        double r9418 = r9417 * r9394;
        double r9419 = i;
        double r9420 = r9418 + r9419;
        double r9421 = r9409 / r9420;
        return r9421;
}

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 r9422, r9423, r9424, r9425, r9426, r9427, r9428, r9429, r9430, r9431, r9432, r9433, r9434, r9435, r9436, r9437, r9438, r9439, r9440, r9441, r9442, r9443, r9444, r9445, r9446, r9447;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9422);
        mpfr_init(r9423);
        mpfr_init(r9424);
        mpfr_init(r9425);
        mpfr_init(r9426);
        mpfr_init(r9427);
        mpfr_init_set_str(r9428, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r9429);
        mpfr_init(r9430);
        mpfr_init_set_str(r9431, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r9432);
        mpfr_init(r9433);
        mpfr_init(r9434);
        mpfr_init(r9435);
        mpfr_init(r9436);
        mpfr_init(r9437);
        mpfr_init(r9438);
        mpfr_init(r9439);
        mpfr_init(r9440);
        mpfr_init(r9441);
        mpfr_init(r9442);
        mpfr_init(r9443);
        mpfr_init(r9444);
        mpfr_init(r9445);
        mpfr_init(r9446);
        mpfr_init(r9447);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9422, x, MPFR_RNDN);
        mpfr_set_d(r9423, y, MPFR_RNDN);
        mpfr_mul(r9424, r9422, r9423, MPFR_RNDN);
        mpfr_set_d(r9425, z, MPFR_RNDN);
        mpfr_add(r9426, r9424, r9425, MPFR_RNDN);
        mpfr_mul(r9427, r9426, r9423, MPFR_RNDN);
        ;
        mpfr_add(r9429, r9427, r9428, MPFR_RNDN);
        mpfr_mul(r9430, r9429, r9423, MPFR_RNDN);
        ;
        mpfr_add(r9432, r9430, r9431, MPFR_RNDN);
        mpfr_mul(r9433, r9432, r9423, MPFR_RNDN);
        mpfr_set_d(r9434, t, MPFR_RNDN);
        mpfr_add(r9435, r9433, r9434, MPFR_RNDN);
        mpfr_set_d(r9436, a, MPFR_RNDN);
        mpfr_add(r9437, r9423, r9436, MPFR_RNDN);
        mpfr_mul(r9438, r9437, r9423, MPFR_RNDN);
        mpfr_set_d(r9439, b, MPFR_RNDN);
        mpfr_add(r9440, r9438, r9439, MPFR_RNDN);
        mpfr_mul(r9441, r9440, r9423, MPFR_RNDN);
        mpfr_set_d(r9442, c, MPFR_RNDN);
        mpfr_add(r9443, r9441, r9442, MPFR_RNDN);
        mpfr_mul(r9444, r9443, r9423, MPFR_RNDN);
        mpfr_set_d(r9445, i, MPFR_RNDN);
        mpfr_add(r9446, r9444, r9445, MPFR_RNDN);
        mpfr_div(r9447, r9435, r9446, MPFR_RNDN);
        return mpfr_get_d(r9447, MPFR_RNDN);
}

static mpfr_t r9448, r9449, r9450, r9451, r9452, r9453, r9454, r9455, r9456, r9457, r9458, r9459, r9460, r9461, r9462, r9463, r9464, r9465, r9466, r9467, r9468, r9469, r9470, r9471, r9472, r9473, r9474, r9475, r9476;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9448);
        mpfr_init(r9449);
        mpfr_init(r9450);
        mpfr_init(r9451);
        mpfr_init(r9452);
        mpfr_init(r9453);
        mpfr_init_set_str(r9454, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r9455);
        mpfr_init(r9456);
        mpfr_init_set_str(r9457, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r9458);
        mpfr_init(r9459);
        mpfr_init(r9460);
        mpfr_init(r9461);
        mpfr_init(r9462);
        mpfr_init(r9463);
        mpfr_init(r9464);
        mpfr_init(r9465);
        mpfr_init(r9466);
        mpfr_init(r9467);
        mpfr_init(r9468);
        mpfr_init(r9469);
        mpfr_init(r9470);
        mpfr_init(r9471);
        mpfr_init(r9472);
        mpfr_init(r9473);
        mpfr_init(r9474);
        mpfr_init(r9475);
        mpfr_init(r9476);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9448, x, MPFR_RNDN);
        mpfr_set_d(r9449, y, MPFR_RNDN);
        mpfr_mul(r9450, r9448, r9449, MPFR_RNDN);
        mpfr_set_d(r9451, z, MPFR_RNDN);
        mpfr_add(r9452, r9450, r9451, MPFR_RNDN);
        mpfr_mul(r9453, r9452, r9449, MPFR_RNDN);
        ;
        mpfr_add(r9455, r9453, r9454, MPFR_RNDN);
        mpfr_mul(r9456, r9455, r9449, MPFR_RNDN);
        ;
        mpfr_add(r9458, r9456, r9457, MPFR_RNDN);
        mpfr_cbrt(r9459, r9458, MPFR_RNDN);
        mpfr_mul(r9460, r9459, r9459, MPFR_RNDN);
        mpfr_mul(r9461, r9459, r9449, MPFR_RNDN);
        mpfr_mul(r9462, r9460, r9461, MPFR_RNDN);
        mpfr_set_d(r9463, t, MPFR_RNDN);
        mpfr_add(r9464, r9462, r9463, MPFR_RNDN);
        mpfr_set_d(r9465, a, MPFR_RNDN);
        mpfr_add(r9466, r9449, r9465, MPFR_RNDN);
        mpfr_mul(r9467, r9466, r9449, MPFR_RNDN);
        mpfr_set_d(r9468, b, MPFR_RNDN);
        mpfr_add(r9469, r9467, r9468, MPFR_RNDN);
        mpfr_mul(r9470, r9469, r9449, MPFR_RNDN);
        mpfr_set_d(r9471, c, MPFR_RNDN);
        mpfr_add(r9472, r9470, r9471, MPFR_RNDN);
        mpfr_mul(r9473, r9472, r9449, MPFR_RNDN);
        mpfr_set_d(r9474, i, MPFR_RNDN);
        mpfr_add(r9475, r9473, r9474, MPFR_RNDN);
        mpfr_div(r9476, r9464, r9475, MPFR_RNDN);
        return mpfr_get_d(r9476, MPFR_RNDN);
}

static mpfr_t r9477, r9478, r9479, r9480, r9481, r9482, r9483, r9484, r9485, r9486, r9487, r9488, r9489, r9490, r9491, r9492, r9493, r9494, r9495, r9496, r9497, r9498, r9499, r9500, r9501, r9502, r9503, r9504, r9505;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9477);
        mpfr_init(r9478);
        mpfr_init(r9479);
        mpfr_init(r9480);
        mpfr_init(r9481);
        mpfr_init(r9482);
        mpfr_init_set_str(r9483, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r9484);
        mpfr_init(r9485);
        mpfr_init_set_str(r9486, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r9487);
        mpfr_init(r9488);
        mpfr_init(r9489);
        mpfr_init(r9490);
        mpfr_init(r9491);
        mpfr_init(r9492);
        mpfr_init(r9493);
        mpfr_init(r9494);
        mpfr_init(r9495);
        mpfr_init(r9496);
        mpfr_init(r9497);
        mpfr_init(r9498);
        mpfr_init(r9499);
        mpfr_init(r9500);
        mpfr_init(r9501);
        mpfr_init(r9502);
        mpfr_init(r9503);
        mpfr_init(r9504);
        mpfr_init(r9505);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9477, x, MPFR_RNDN);
        mpfr_set_d(r9478, y, MPFR_RNDN);
        mpfr_mul(r9479, r9477, r9478, MPFR_RNDN);
        mpfr_set_d(r9480, z, MPFR_RNDN);
        mpfr_add(r9481, r9479, r9480, MPFR_RNDN);
        mpfr_mul(r9482, r9481, r9478, MPFR_RNDN);
        ;
        mpfr_add(r9484, r9482, r9483, MPFR_RNDN);
        mpfr_mul(r9485, r9484, r9478, MPFR_RNDN);
        ;
        mpfr_add(r9487, r9485, r9486, MPFR_RNDN);
        mpfr_cbrt(r9488, r9487, MPFR_RNDN);
        mpfr_mul(r9489, r9488, r9488, MPFR_RNDN);
        mpfr_mul(r9490, r9488, r9478, MPFR_RNDN);
        mpfr_mul(r9491, r9489, r9490, MPFR_RNDN);
        mpfr_set_d(r9492, t, MPFR_RNDN);
        mpfr_add(r9493, r9491, r9492, MPFR_RNDN);
        mpfr_set_d(r9494, a, MPFR_RNDN);
        mpfr_add(r9495, r9478, r9494, MPFR_RNDN);
        mpfr_mul(r9496, r9495, r9478, MPFR_RNDN);
        mpfr_set_d(r9497, b, MPFR_RNDN);
        mpfr_add(r9498, r9496, r9497, MPFR_RNDN);
        mpfr_mul(r9499, r9498, r9478, MPFR_RNDN);
        mpfr_set_d(r9500, c, MPFR_RNDN);
        mpfr_add(r9501, r9499, r9500, MPFR_RNDN);
        mpfr_mul(r9502, r9501, r9478, MPFR_RNDN);
        mpfr_set_d(r9503, i, MPFR_RNDN);
        mpfr_add(r9504, r9502, r9503, MPFR_RNDN);
        mpfr_div(r9505, r9493, r9504, MPFR_RNDN);
        return mpfr_get_d(r9505, MPFR_RNDN);
}

