#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 r9292 = x;
        float r9293 = y;
        float r9294 = r9292 * r9293;
        float r9295 = z;
        float r9296 = r9294 + r9295;
        float r9297 = r9296 * r9293;
        float r9298 = 27464.7644705;
        float r9299 = r9297 + r9298;
        float r9300 = r9299 * r9293;
        float r9301 = 230661.510616;
        float r9302 = r9300 + r9301;
        float r9303 = r9302 * r9293;
        float r9304 = t;
        float r9305 = r9303 + r9304;
        float r9306 = a;
        float r9307 = r9293 + r9306;
        float r9308 = r9307 * r9293;
        float r9309 = b;
        float r9310 = r9308 + r9309;
        float r9311 = r9310 * r9293;
        float r9312 = c;
        float r9313 = r9311 + r9312;
        float r9314 = r9313 * r9293;
        float r9315 = i;
        float r9316 = r9314 + r9315;
        float r9317 = r9305 / r9316;
        return r9317;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r9318 = x;
        double r9319 = y;
        double r9320 = r9318 * r9319;
        double r9321 = z;
        double r9322 = r9320 + r9321;
        double r9323 = r9322 * r9319;
        double r9324 = 27464.7644705;
        double r9325 = r9323 + r9324;
        double r9326 = r9325 * r9319;
        double r9327 = 230661.510616;
        double r9328 = r9326 + r9327;
        double r9329 = r9328 * r9319;
        double r9330 = t;
        double r9331 = r9329 + r9330;
        double r9332 = a;
        double r9333 = r9319 + r9332;
        double r9334 = r9333 * r9319;
        double r9335 = b;
        double r9336 = r9334 + r9335;
        double r9337 = r9336 * r9319;
        double r9338 = c;
        double r9339 = r9337 + r9338;
        double r9340 = r9339 * r9319;
        double r9341 = i;
        double r9342 = r9340 + r9341;
        double r9343 = r9331 / r9342;
        return r9343;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r9344 = y;
        float r9345 = -2.0574620682300267e+32;
        bool r9346 = r9344 <= r9345;
        float r9347 = 1.1489600686818634e+60;
        bool r9348 = r9344 <= r9347;
        float r9349 = !r9348;
        bool r9350 = r9346 || r9349;
        float r9351 = x;
        float r9352 = z;
        float r9353 = r9352 / r9344;
        float r9354 = r9351 + r9353;
        float r9355 = t;
        float r9356 = 230661.510616;
        float r9357 = 27464.7644705;
        float r9358 = r9351 * r9344;
        float r9359 = r9352 + r9358;
        float r9360 = r9344 * r9359;
        float r9361 = r9357 + r9360;
        float r9362 = r9344 * r9361;
        float r9363 = r9356 + r9362;
        float r9364 = r9344 * r9363;
        float r9365 = r9355 + r9364;
        float r9366 = i;
        float r9367 = a;
        float r9368 = r9344 + r9367;
        float r9369 = r9344 * r9368;
        float r9370 = b;
        float r9371 = r9369 + r9370;
        float r9372 = r9371 * r9344;
        float r9373 = c;
        float r9374 = r9372 + r9373;
        float r9375 = r9344 * r9374;
        float r9376 = r9366 + r9375;
        float r9377 = r9365 / r9376;
        float r9378 = r9350 ? r9354 : r9377;
        return r9378;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r9379 = y;
        double r9380 = -2.0574620682300267e+32;
        bool r9381 = r9379 <= r9380;
        double r9382 = 1.1489600686818634e+60;
        bool r9383 = r9379 <= r9382;
        double r9384 = !r9383;
        bool r9385 = r9381 || r9384;
        double r9386 = x;
        double r9387 = z;
        double r9388 = r9387 / r9379;
        double r9389 = r9386 + r9388;
        double r9390 = t;
        double r9391 = 230661.510616;
        double r9392 = 27464.7644705;
        double r9393 = r9386 * r9379;
        double r9394 = r9387 + r9393;
        double r9395 = r9379 * r9394;
        double r9396 = r9392 + r9395;
        double r9397 = r9379 * r9396;
        double r9398 = r9391 + r9397;
        double r9399 = r9379 * r9398;
        double r9400 = r9390 + r9399;
        double r9401 = i;
        double r9402 = a;
        double r9403 = r9379 + r9402;
        double r9404 = r9379 * r9403;
        double r9405 = b;
        double r9406 = r9404 + r9405;
        double r9407 = r9406 * r9379;
        double r9408 = c;
        double r9409 = r9407 + r9408;
        double r9410 = r9379 * r9409;
        double r9411 = r9401 + r9410;
        double r9412 = r9400 / r9411;
        double r9413 = r9385 ? r9389 : r9412;
        return r9413;
}

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 r9414, r9415, r9416, r9417, r9418, r9419, r9420, r9421, r9422, r9423, r9424, r9425, r9426, r9427, r9428, r9429, r9430, r9431, r9432, r9433, r9434, r9435, r9436, r9437, r9438, r9439;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9414);
        mpfr_init(r9415);
        mpfr_init(r9416);
        mpfr_init(r9417);
        mpfr_init(r9418);
        mpfr_init(r9419);
        mpfr_init_set_str(r9420, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r9421);
        mpfr_init(r9422);
        mpfr_init_set_str(r9423, "230661.510616", 10, MPFR_RNDN);
        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);
        mpfr_init(r9434);
        mpfr_init(r9435);
        mpfr_init(r9436);
        mpfr_init(r9437);
        mpfr_init(r9438);
        mpfr_init(r9439);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9414, x, MPFR_RNDN);
        mpfr_set_d(r9415, y, MPFR_RNDN);
        mpfr_mul(r9416, r9414, r9415, MPFR_RNDN);
        mpfr_set_d(r9417, z, MPFR_RNDN);
        mpfr_add(r9418, r9416, r9417, MPFR_RNDN);
        mpfr_mul(r9419, r9418, r9415, MPFR_RNDN);
        ;
        mpfr_add(r9421, r9419, r9420, MPFR_RNDN);
        mpfr_mul(r9422, r9421, r9415, MPFR_RNDN);
        ;
        mpfr_add(r9424, r9422, r9423, MPFR_RNDN);
        mpfr_mul(r9425, r9424, r9415, MPFR_RNDN);
        mpfr_set_d(r9426, t, MPFR_RNDN);
        mpfr_add(r9427, r9425, r9426, MPFR_RNDN);
        mpfr_set_d(r9428, a, MPFR_RNDN);
        mpfr_add(r9429, r9415, r9428, MPFR_RNDN);
        mpfr_mul(r9430, r9429, r9415, MPFR_RNDN);
        mpfr_set_d(r9431, b, MPFR_RNDN);
        mpfr_add(r9432, r9430, r9431, MPFR_RNDN);
        mpfr_mul(r9433, r9432, r9415, MPFR_RNDN);
        mpfr_set_d(r9434, c, MPFR_RNDN);
        mpfr_add(r9435, r9433, r9434, MPFR_RNDN);
        mpfr_mul(r9436, r9435, r9415, MPFR_RNDN);
        mpfr_set_d(r9437, i, MPFR_RNDN);
        mpfr_add(r9438, r9436, r9437, MPFR_RNDN);
        mpfr_div(r9439, r9427, r9438, MPFR_RNDN);
        return mpfr_get_d(r9439, MPFR_RNDN);
}

static mpfr_t r9440, r9441, r9442, r9443, r9444, r9445, r9446, r9447, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9440);
        mpfr_init_set_str(r9441, "-2.0574620682300267e+32", 10, MPFR_RNDN);
        mpfr_init(r9442);
        mpfr_init_set_str(r9443, "1.1489600686818634e+60", 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_set_str(r9452, "230661.510616", 10, MPFR_RNDN);
        mpfr_init_set_str(r9453, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r9454);
        mpfr_init(r9455);
        mpfr_init(r9456);
        mpfr_init(r9457);
        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);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9440, y, MPFR_RNDN);
        ;
        mpfr_set_si(r9442, mpfr_cmp(r9440, r9441) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9444, mpfr_cmp(r9440, r9443) <= 0, MPFR_RNDN);
        mpfr_set_si(r9445, !mpfr_get_si(r9444, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9446, mpfr_get_si(r9442, MPFR_RNDN) || mpfr_get_si(r9445, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r9447, x, MPFR_RNDN);
        mpfr_set_d(r9448, z, MPFR_RNDN);
        mpfr_div(r9449, r9448, r9440, MPFR_RNDN);
        mpfr_add(r9450, r9447, r9449, MPFR_RNDN);
        mpfr_set_d(r9451, t, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9454, r9447, r9440, MPFR_RNDN);
        mpfr_add(r9455, r9448, r9454, MPFR_RNDN);
        mpfr_mul(r9456, r9440, r9455, MPFR_RNDN);
        mpfr_add(r9457, r9453, r9456, MPFR_RNDN);
        mpfr_mul(r9458, r9440, r9457, MPFR_RNDN);
        mpfr_add(r9459, r9452, r9458, MPFR_RNDN);
        mpfr_mul(r9460, r9440, r9459, MPFR_RNDN);
        mpfr_add(r9461, r9451, r9460, MPFR_RNDN);
        mpfr_set_d(r9462, i, MPFR_RNDN);
        mpfr_set_d(r9463, a, MPFR_RNDN);
        mpfr_add(r9464, r9440, r9463, MPFR_RNDN);
        mpfr_mul(r9465, r9440, r9464, MPFR_RNDN);
        mpfr_set_d(r9466, b, MPFR_RNDN);
        mpfr_add(r9467, r9465, r9466, MPFR_RNDN);
        mpfr_mul(r9468, r9467, r9440, MPFR_RNDN);
        mpfr_set_d(r9469, c, MPFR_RNDN);
        mpfr_add(r9470, r9468, r9469, MPFR_RNDN);
        mpfr_mul(r9471, r9440, r9470, MPFR_RNDN);
        mpfr_add(r9472, r9462, r9471, MPFR_RNDN);
        mpfr_div(r9473, r9461, r9472, MPFR_RNDN);
        if (mpfr_get_si(r9446, MPFR_RNDN)) { mpfr_set(r9474, r9450, MPFR_RNDN); } else { mpfr_set(r9474, r9473, MPFR_RNDN); };
        return mpfr_get_d(r9474, MPFR_RNDN);
}

static mpfr_t r9475, r9476, 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, r9506, r9507, r9508, r9509;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9475);
        mpfr_init_set_str(r9476, "-2.0574620682300267e+32", 10, MPFR_RNDN);
        mpfr_init(r9477);
        mpfr_init_set_str(r9478, "1.1489600686818634e+60", 10, MPFR_RNDN);
        mpfr_init(r9479);
        mpfr_init(r9480);
        mpfr_init(r9481);
        mpfr_init(r9482);
        mpfr_init(r9483);
        mpfr_init(r9484);
        mpfr_init(r9485);
        mpfr_init(r9486);
        mpfr_init_set_str(r9487, "230661.510616", 10, MPFR_RNDN);
        mpfr_init_set_str(r9488, "27464.7644705", 10, MPFR_RNDN);
        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);
        mpfr_init(r9506);
        mpfr_init(r9507);
        mpfr_init(r9508);
        mpfr_init(r9509);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r9475, y, MPFR_RNDN);
        ;
        mpfr_set_si(r9477, mpfr_cmp(r9475, r9476) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9479, mpfr_cmp(r9475, r9478) <= 0, MPFR_RNDN);
        mpfr_set_si(r9480, !mpfr_get_si(r9479, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r9481, mpfr_get_si(r9477, MPFR_RNDN) || mpfr_get_si(r9480, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r9482, x, MPFR_RNDN);
        mpfr_set_d(r9483, z, MPFR_RNDN);
        mpfr_div(r9484, r9483, r9475, MPFR_RNDN);
        mpfr_add(r9485, r9482, r9484, MPFR_RNDN);
        mpfr_set_d(r9486, t, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9489, r9482, r9475, MPFR_RNDN);
        mpfr_add(r9490, r9483, r9489, MPFR_RNDN);
        mpfr_mul(r9491, r9475, r9490, MPFR_RNDN);
        mpfr_add(r9492, r9488, r9491, MPFR_RNDN);
        mpfr_mul(r9493, r9475, r9492, MPFR_RNDN);
        mpfr_add(r9494, r9487, r9493, MPFR_RNDN);
        mpfr_mul(r9495, r9475, r9494, MPFR_RNDN);
        mpfr_add(r9496, r9486, r9495, MPFR_RNDN);
        mpfr_set_d(r9497, i, MPFR_RNDN);
        mpfr_set_d(r9498, a, MPFR_RNDN);
        mpfr_add(r9499, r9475, r9498, MPFR_RNDN);
        mpfr_mul(r9500, r9475, r9499, MPFR_RNDN);
        mpfr_set_d(r9501, b, MPFR_RNDN);
        mpfr_add(r9502, r9500, r9501, MPFR_RNDN);
        mpfr_mul(r9503, r9502, r9475, MPFR_RNDN);
        mpfr_set_d(r9504, c, MPFR_RNDN);
        mpfr_add(r9505, r9503, r9504, MPFR_RNDN);
        mpfr_mul(r9506, r9475, r9505, MPFR_RNDN);
        mpfr_add(r9507, r9497, r9506, MPFR_RNDN);
        mpfr_div(r9508, r9496, r9507, MPFR_RNDN);
        if (mpfr_get_si(r9481, MPFR_RNDN)) { mpfr_set(r9509, r9485, MPFR_RNDN); } else { mpfr_set(r9509, r9508, MPFR_RNDN); };
        return mpfr_get_d(r9509, MPFR_RNDN);
}

