#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 r25140 = x;
        float r25141 = y;
        float r25142 = r25140 * r25141;
        float r25143 = z;
        float r25144 = r25142 + r25143;
        float r25145 = r25144 * r25141;
        float r25146 = 27464.7644705;
        float r25147 = r25145 + r25146;
        float r25148 = r25147 * r25141;
        float r25149 = 230661.510616;
        float r25150 = r25148 + r25149;
        float r25151 = r25150 * r25141;
        float r25152 = t;
        float r25153 = r25151 + r25152;
        float r25154 = a;
        float r25155 = r25141 + r25154;
        float r25156 = r25155 * r25141;
        float r25157 = b;
        float r25158 = r25156 + r25157;
        float r25159 = r25158 * r25141;
        float r25160 = c;
        float r25161 = r25159 + r25160;
        float r25162 = r25161 * r25141;
        float r25163 = i;
        float r25164 = r25162 + r25163;
        float r25165 = r25153 / r25164;
        return r25165;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r25166 = x;
        double r25167 = y;
        double r25168 = r25166 * r25167;
        double r25169 = z;
        double r25170 = r25168 + r25169;
        double r25171 = r25170 * r25167;
        double r25172 = 27464.7644705;
        double r25173 = r25171 + r25172;
        double r25174 = r25173 * r25167;
        double r25175 = 230661.510616;
        double r25176 = r25174 + r25175;
        double r25177 = r25176 * r25167;
        double r25178 = t;
        double r25179 = r25177 + r25178;
        double r25180 = a;
        double r25181 = r25167 + r25180;
        double r25182 = r25181 * r25167;
        double r25183 = b;
        double r25184 = r25182 + r25183;
        double r25185 = r25184 * r25167;
        double r25186 = c;
        double r25187 = r25185 + r25186;
        double r25188 = r25187 * r25167;
        double r25189 = i;
        double r25190 = r25188 + r25189;
        double r25191 = r25179 / r25190;
        return r25191;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r25192 = x;
        float r25193 = y;
        float r25194 = r25192 * r25193;
        float r25195 = z;
        float r25196 = r25194 + r25195;
        float r25197 = r25196 * r25193;
        float r25198 = 27464.7644705;
        float r25199 = r25197 + r25198;
        float r25200 = r25199 * r25193;
        float r25201 = 230661.510616;
        float r25202 = r25200 + r25201;
        float r25203 = r25202 * r25193;
        float r25204 = t;
        float r25205 = r25203 + r25204;
        float r25206 = 1;
        float r25207 = a;
        float r25208 = r25193 + r25207;
        float r25209 = r25208 * r25193;
        float r25210 = b;
        float r25211 = r25209 + r25210;
        float r25212 = r25211 * r25193;
        float r25213 = c;
        float r25214 = r25212 + r25213;
        float r25215 = r25214 * r25193;
        float r25216 = i;
        float r25217 = r25215 + r25216;
        float r25218 = r25206 / r25217;
        float r25219 = r25205 * r25218;
        return r25219;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r25220 = x;
        double r25221 = y;
        double r25222 = r25220 * r25221;
        double r25223 = z;
        double r25224 = r25222 + r25223;
        double r25225 = r25224 * r25221;
        double r25226 = 27464.7644705;
        double r25227 = r25225 + r25226;
        double r25228 = r25227 * r25221;
        double r25229 = 230661.510616;
        double r25230 = r25228 + r25229;
        double r25231 = r25230 * r25221;
        double r25232 = t;
        double r25233 = r25231 + r25232;
        double r25234 = 1;
        double r25235 = a;
        double r25236 = r25221 + r25235;
        double r25237 = r25236 * r25221;
        double r25238 = b;
        double r25239 = r25237 + r25238;
        double r25240 = r25239 * r25221;
        double r25241 = c;
        double r25242 = r25240 + r25241;
        double r25243 = r25242 * r25221;
        double r25244 = i;
        double r25245 = r25243 + r25244;
        double r25246 = r25234 / r25245;
        double r25247 = r25233 * r25246;
        return r25247;
}

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 r25248, r25249, r25250, r25251, r25252, r25253, r25254, r25255, r25256, r25257, r25258, r25259, r25260, r25261, r25262, r25263, r25264, r25265, r25266, r25267, r25268, r25269, r25270, r25271, r25272, r25273;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r25248);
        mpfr_init(r25249);
        mpfr_init(r25250);
        mpfr_init(r25251);
        mpfr_init(r25252);
        mpfr_init(r25253);
        mpfr_init_set_str(r25254, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r25255);
        mpfr_init(r25256);
        mpfr_init_set_str(r25257, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r25258);
        mpfr_init(r25259);
        mpfr_init(r25260);
        mpfr_init(r25261);
        mpfr_init(r25262);
        mpfr_init(r25263);
        mpfr_init(r25264);
        mpfr_init(r25265);
        mpfr_init(r25266);
        mpfr_init(r25267);
        mpfr_init(r25268);
        mpfr_init(r25269);
        mpfr_init(r25270);
        mpfr_init(r25271);
        mpfr_init(r25272);
        mpfr_init(r25273);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r25248, x, MPFR_RNDN);
        mpfr_set_d(r25249, y, MPFR_RNDN);
        mpfr_mul(r25250, r25248, r25249, MPFR_RNDN);
        mpfr_set_d(r25251, z, MPFR_RNDN);
        mpfr_add(r25252, r25250, r25251, MPFR_RNDN);
        mpfr_mul(r25253, r25252, r25249, MPFR_RNDN);
        ;
        mpfr_add(r25255, r25253, r25254, MPFR_RNDN);
        mpfr_mul(r25256, r25255, r25249, MPFR_RNDN);
        ;
        mpfr_add(r25258, r25256, r25257, MPFR_RNDN);
        mpfr_mul(r25259, r25258, r25249, MPFR_RNDN);
        mpfr_set_d(r25260, t, MPFR_RNDN);
        mpfr_add(r25261, r25259, r25260, MPFR_RNDN);
        mpfr_set_d(r25262, a, MPFR_RNDN);
        mpfr_add(r25263, r25249, r25262, MPFR_RNDN);
        mpfr_mul(r25264, r25263, r25249, MPFR_RNDN);
        mpfr_set_d(r25265, b, MPFR_RNDN);
        mpfr_add(r25266, r25264, r25265, MPFR_RNDN);
        mpfr_mul(r25267, r25266, r25249, MPFR_RNDN);
        mpfr_set_d(r25268, c, MPFR_RNDN);
        mpfr_add(r25269, r25267, r25268, MPFR_RNDN);
        mpfr_mul(r25270, r25269, r25249, MPFR_RNDN);
        mpfr_set_d(r25271, i, MPFR_RNDN);
        mpfr_add(r25272, r25270, r25271, MPFR_RNDN);
        mpfr_div(r25273, r25261, r25272, MPFR_RNDN);
        return mpfr_get_d(r25273, MPFR_RNDN);
}

static mpfr_t r25274, r25275, r25276, r25277, r25278, r25279, r25280, r25281, r25282, r25283, r25284, r25285, r25286, r25287, r25288, r25289, r25290, r25291, r25292, r25293, r25294, r25295, r25296, r25297, r25298, r25299, r25300, r25301;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r25274);
        mpfr_init(r25275);
        mpfr_init(r25276);
        mpfr_init(r25277);
        mpfr_init(r25278);
        mpfr_init(r25279);
        mpfr_init_set_str(r25280, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r25281);
        mpfr_init(r25282);
        mpfr_init_set_str(r25283, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r25284);
        mpfr_init(r25285);
        mpfr_init(r25286);
        mpfr_init(r25287);
        mpfr_init_set_str(r25288, "1", 10, MPFR_RNDN);
        mpfr_init(r25289);
        mpfr_init(r25290);
        mpfr_init(r25291);
        mpfr_init(r25292);
        mpfr_init(r25293);
        mpfr_init(r25294);
        mpfr_init(r25295);
        mpfr_init(r25296);
        mpfr_init(r25297);
        mpfr_init(r25298);
        mpfr_init(r25299);
        mpfr_init(r25300);
        mpfr_init(r25301);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r25274, x, MPFR_RNDN);
        mpfr_set_d(r25275, y, MPFR_RNDN);
        mpfr_mul(r25276, r25274, r25275, MPFR_RNDN);
        mpfr_set_d(r25277, z, MPFR_RNDN);
        mpfr_add(r25278, r25276, r25277, MPFR_RNDN);
        mpfr_mul(r25279, r25278, r25275, MPFR_RNDN);
        ;
        mpfr_add(r25281, r25279, r25280, MPFR_RNDN);
        mpfr_mul(r25282, r25281, r25275, MPFR_RNDN);
        ;
        mpfr_add(r25284, r25282, r25283, MPFR_RNDN);
        mpfr_mul(r25285, r25284, r25275, MPFR_RNDN);
        mpfr_set_d(r25286, t, MPFR_RNDN);
        mpfr_add(r25287, r25285, r25286, MPFR_RNDN);
        ;
        mpfr_set_d(r25289, a, MPFR_RNDN);
        mpfr_add(r25290, r25275, r25289, MPFR_RNDN);
        mpfr_mul(r25291, r25290, r25275, MPFR_RNDN);
        mpfr_set_d(r25292, b, MPFR_RNDN);
        mpfr_add(r25293, r25291, r25292, MPFR_RNDN);
        mpfr_mul(r25294, r25293, r25275, MPFR_RNDN);
        mpfr_set_d(r25295, c, MPFR_RNDN);
        mpfr_add(r25296, r25294, r25295, MPFR_RNDN);
        mpfr_mul(r25297, r25296, r25275, MPFR_RNDN);
        mpfr_set_d(r25298, i, MPFR_RNDN);
        mpfr_add(r25299, r25297, r25298, MPFR_RNDN);
        mpfr_div(r25300, r25288, r25299, MPFR_RNDN);
        mpfr_mul(r25301, r25287, r25300, MPFR_RNDN);
        return mpfr_get_d(r25301, MPFR_RNDN);
}

static mpfr_t r25302, r25303, r25304, r25305, r25306, r25307, r25308, r25309, r25310, r25311, r25312, r25313, r25314, r25315, r25316, r25317, r25318, r25319, r25320, r25321, r25322, r25323, r25324, r25325, r25326, r25327, r25328, r25329;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r25302);
        mpfr_init(r25303);
        mpfr_init(r25304);
        mpfr_init(r25305);
        mpfr_init(r25306);
        mpfr_init(r25307);
        mpfr_init_set_str(r25308, "27464.7644705", 10, MPFR_RNDN);
        mpfr_init(r25309);
        mpfr_init(r25310);
        mpfr_init_set_str(r25311, "230661.510616", 10, MPFR_RNDN);
        mpfr_init(r25312);
        mpfr_init(r25313);
        mpfr_init(r25314);
        mpfr_init(r25315);
        mpfr_init_set_str(r25316, "1", 10, MPFR_RNDN);
        mpfr_init(r25317);
        mpfr_init(r25318);
        mpfr_init(r25319);
        mpfr_init(r25320);
        mpfr_init(r25321);
        mpfr_init(r25322);
        mpfr_init(r25323);
        mpfr_init(r25324);
        mpfr_init(r25325);
        mpfr_init(r25326);
        mpfr_init(r25327);
        mpfr_init(r25328);
        mpfr_init(r25329);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r25302, x, MPFR_RNDN);
        mpfr_set_d(r25303, y, MPFR_RNDN);
        mpfr_mul(r25304, r25302, r25303, MPFR_RNDN);
        mpfr_set_d(r25305, z, MPFR_RNDN);
        mpfr_add(r25306, r25304, r25305, MPFR_RNDN);
        mpfr_mul(r25307, r25306, r25303, MPFR_RNDN);
        ;
        mpfr_add(r25309, r25307, r25308, MPFR_RNDN);
        mpfr_mul(r25310, r25309, r25303, MPFR_RNDN);
        ;
        mpfr_add(r25312, r25310, r25311, MPFR_RNDN);
        mpfr_mul(r25313, r25312, r25303, MPFR_RNDN);
        mpfr_set_d(r25314, t, MPFR_RNDN);
        mpfr_add(r25315, r25313, r25314, MPFR_RNDN);
        ;
        mpfr_set_d(r25317, a, MPFR_RNDN);
        mpfr_add(r25318, r25303, r25317, MPFR_RNDN);
        mpfr_mul(r25319, r25318, r25303, MPFR_RNDN);
        mpfr_set_d(r25320, b, MPFR_RNDN);
        mpfr_add(r25321, r25319, r25320, MPFR_RNDN);
        mpfr_mul(r25322, r25321, r25303, MPFR_RNDN);
        mpfr_set_d(r25323, c, MPFR_RNDN);
        mpfr_add(r25324, r25322, r25323, MPFR_RNDN);
        mpfr_mul(r25325, r25324, r25303, MPFR_RNDN);
        mpfr_set_d(r25326, i, MPFR_RNDN);
        mpfr_add(r25327, r25325, r25326, MPFR_RNDN);
        mpfr_div(r25328, r25316, r25327, MPFR_RNDN);
        mpfr_mul(r25329, r25315, r25328, MPFR_RNDN);
        return mpfr_get_d(r25329, MPFR_RNDN);
}

