#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, D";

double f_if(float x, float y, float z, float t, float a, float b) {
        float r41910 = x;
        float r41911 = y;
        float r41912 = z;
        float r41913 = 3.13060547623;
        float r41914 = r41912 * r41913;
        float r41915 = 11.1667541262;
        float r41916 = r41914 + r41915;
        float r41917 = r41916 * r41912;
        float r41918 = t;
        float r41919 = r41917 + r41918;
        float r41920 = r41919 * r41912;
        float r41921 = a;
        float r41922 = r41920 + r41921;
        float r41923 = r41922 * r41912;
        float r41924 = b;
        float r41925 = r41923 + r41924;
        float r41926 = r41911 * r41925;
        float r41927 = 15.234687407;
        float r41928 = r41912 + r41927;
        float r41929 = r41928 * r41912;
        float r41930 = 31.4690115749;
        float r41931 = r41929 + r41930;
        float r41932 = r41931 * r41912;
        float r41933 = 11.9400905721;
        float r41934 = r41932 + r41933;
        float r41935 = r41934 * r41912;
        float r41936 = 0.607771387771;
        float r41937 = r41935 + r41936;
        float r41938 = r41926 / r41937;
        float r41939 = r41910 + r41938;
        return r41939;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r41940 = x;
        double r41941 = y;
        double r41942 = z;
        double r41943 = 3.13060547623;
        double r41944 = r41942 * r41943;
        double r41945 = 11.1667541262;
        double r41946 = r41944 + r41945;
        double r41947 = r41946 * r41942;
        double r41948 = t;
        double r41949 = r41947 + r41948;
        double r41950 = r41949 * r41942;
        double r41951 = a;
        double r41952 = r41950 + r41951;
        double r41953 = r41952 * r41942;
        double r41954 = b;
        double r41955 = r41953 + r41954;
        double r41956 = r41941 * r41955;
        double r41957 = 15.234687407;
        double r41958 = r41942 + r41957;
        double r41959 = r41958 * r41942;
        double r41960 = 31.4690115749;
        double r41961 = r41959 + r41960;
        double r41962 = r41961 * r41942;
        double r41963 = 11.9400905721;
        double r41964 = r41962 + r41963;
        double r41965 = r41964 * r41942;
        double r41966 = 0.607771387771;
        double r41967 = r41965 + r41966;
        double r41968 = r41956 / r41967;
        double r41969 = r41940 + r41968;
        return r41969;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r41970 = z;
        float r41971 = -1.6365020135425002e+69;
        bool r41972 = r41970 <= r41971;
        float r41973 = y;
        float r41974 = r41973 / r41970;
        float r41975 = t;
        float r41976 = r41975 / r41970;
        float r41977 = 36.527041698806414;
        float r41978 = r41976 - r41977;
        float r41979 = r41974 * r41978;
        float r41980 = x;
        float r41981 = 3.13060547623;
        float r41982 = r41973 * r41981;
        float r41983 = r41980 + r41982;
        float r41984 = r41979 + r41983;
        float r41985 = 1.9046950652676932e+26;
        bool r41986 = r41970 <= r41985;
        float r41987 = 1;
        float r41988 = r41973 / r41987;
        float r41989 = r41970 * r41981;
        float r41990 = 11.1667541262;
        float r41991 = r41989 + r41990;
        float r41992 = r41991 * r41970;
        float r41993 = r41992 + r41975;
        float r41994 = r41993 * r41970;
        float r41995 = a;
        float r41996 = r41994 + r41995;
        float r41997 = r41996 * r41970;
        float r41998 = b;
        float r41999 = r41997 + r41998;
        float r42000 = 15.234687407;
        float r42001 = r41970 + r42000;
        float r42002 = r42001 * r41970;
        float r42003 = 31.4690115749;
        float r42004 = r42002 + r42003;
        float r42005 = r42004 * r41970;
        float r42006 = 11.9400905721;
        float r42007 = r42005 + r42006;
        float r42008 = r42007 * r41970;
        float r42009 = 0.607771387771;
        float r42010 = r42008 + r42009;
        float r42011 = r41999 / r42010;
        float r42012 = r41988 * r42011;
        float r42013 = r41980 + r42012;
        float r42014 = r41986 ? r42013 : r41984;
        float r42015 = r41972 ? r41984 : r42014;
        return r42015;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r42016 = z;
        double r42017 = -1.6365020135425002e+69;
        bool r42018 = r42016 <= r42017;
        double r42019 = y;
        double r42020 = r42019 / r42016;
        double r42021 = t;
        double r42022 = r42021 / r42016;
        double r42023 = 36.527041698806414;
        double r42024 = r42022 - r42023;
        double r42025 = r42020 * r42024;
        double r42026 = x;
        double r42027 = 3.13060547623;
        double r42028 = r42019 * r42027;
        double r42029 = r42026 + r42028;
        double r42030 = r42025 + r42029;
        double r42031 = 1.9046950652676932e+26;
        bool r42032 = r42016 <= r42031;
        double r42033 = 1;
        double r42034 = r42019 / r42033;
        double r42035 = r42016 * r42027;
        double r42036 = 11.1667541262;
        double r42037 = r42035 + r42036;
        double r42038 = r42037 * r42016;
        double r42039 = r42038 + r42021;
        double r42040 = r42039 * r42016;
        double r42041 = a;
        double r42042 = r42040 + r42041;
        double r42043 = r42042 * r42016;
        double r42044 = b;
        double r42045 = r42043 + r42044;
        double r42046 = 15.234687407;
        double r42047 = r42016 + r42046;
        double r42048 = r42047 * r42016;
        double r42049 = 31.4690115749;
        double r42050 = r42048 + r42049;
        double r42051 = r42050 * r42016;
        double r42052 = 11.9400905721;
        double r42053 = r42051 + r42052;
        double r42054 = r42053 * r42016;
        double r42055 = 0.607771387771;
        double r42056 = r42054 + r42055;
        double r42057 = r42045 / r42056;
        double r42058 = r42034 * r42057;
        double r42059 = r42026 + r42058;
        double r42060 = r42032 ? r42059 : r42030;
        double r42061 = r42018 ? r42030 : r42060;
        return r42061;
}

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 r42062, r42063, r42064, r42065, r42066, r42067, r42068, r42069, r42070, r42071, r42072, r42073, r42074, r42075, r42076, r42077, r42078, r42079, r42080, r42081, r42082, r42083, r42084, r42085, r42086, r42087, r42088, r42089, r42090, r42091;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r42062);
        mpfr_init(r42063);
        mpfr_init(r42064);
        mpfr_init_set_str(r42065, "3.13060547623", 10, MPFR_RNDN);
        mpfr_init(r42066);
        mpfr_init_set_str(r42067, "11.1667541262", 10, MPFR_RNDN);
        mpfr_init(r42068);
        mpfr_init(r42069);
        mpfr_init(r42070);
        mpfr_init(r42071);
        mpfr_init(r42072);
        mpfr_init(r42073);
        mpfr_init(r42074);
        mpfr_init(r42075);
        mpfr_init(r42076);
        mpfr_init(r42077);
        mpfr_init(r42078);
        mpfr_init_set_str(r42079, "15.234687407", 10, MPFR_RNDN);
        mpfr_init(r42080);
        mpfr_init(r42081);
        mpfr_init_set_str(r42082, "31.4690115749", 10, MPFR_RNDN);
        mpfr_init(r42083);
        mpfr_init(r42084);
        mpfr_init_set_str(r42085, "11.9400905721", 10, MPFR_RNDN);
        mpfr_init(r42086);
        mpfr_init(r42087);
        mpfr_init_set_str(r42088, "0.607771387771", 10, MPFR_RNDN);
        mpfr_init(r42089);
        mpfr_init(r42090);
        mpfr_init(r42091);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r42062, x, MPFR_RNDN);
        mpfr_set_d(r42063, y, MPFR_RNDN);
        mpfr_set_d(r42064, z, MPFR_RNDN);
        ;
        mpfr_mul(r42066, r42064, r42065, MPFR_RNDN);
        ;
        mpfr_add(r42068, r42066, r42067, MPFR_RNDN);
        mpfr_mul(r42069, r42068, r42064, MPFR_RNDN);
        mpfr_set_d(r42070, t, MPFR_RNDN);
        mpfr_add(r42071, r42069, r42070, MPFR_RNDN);
        mpfr_mul(r42072, r42071, r42064, MPFR_RNDN);
        mpfr_set_d(r42073, a, MPFR_RNDN);
        mpfr_add(r42074, r42072, r42073, MPFR_RNDN);
        mpfr_mul(r42075, r42074, r42064, MPFR_RNDN);
        mpfr_set_d(r42076, b, MPFR_RNDN);
        mpfr_add(r42077, r42075, r42076, MPFR_RNDN);
        mpfr_mul(r42078, r42063, r42077, MPFR_RNDN);
        ;
        mpfr_add(r42080, r42064, r42079, MPFR_RNDN);
        mpfr_mul(r42081, r42080, r42064, MPFR_RNDN);
        ;
        mpfr_add(r42083, r42081, r42082, MPFR_RNDN);
        mpfr_mul(r42084, r42083, r42064, MPFR_RNDN);
        ;
        mpfr_add(r42086, r42084, r42085, MPFR_RNDN);
        mpfr_mul(r42087, r42086, r42064, MPFR_RNDN);
        ;
        mpfr_add(r42089, r42087, r42088, MPFR_RNDN);
        mpfr_div(r42090, r42078, r42089, MPFR_RNDN);
        mpfr_add(r42091, r42062, r42090, MPFR_RNDN);
        return mpfr_get_d(r42091, MPFR_RNDN);
}

static mpfr_t r42092, r42093, r42094, r42095, r42096, r42097, r42098, r42099, r42100, r42101, r42102, r42103, r42104, r42105, r42106, r42107, r42108, r42109, r42110, r42111, r42112, r42113, r42114, r42115, r42116, r42117, r42118, r42119, r42120, r42121, r42122, r42123, r42124, r42125, r42126, r42127, r42128, r42129, r42130, r42131, r42132, r42133, r42134, r42135, r42136, r42137;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r42092);
        mpfr_init_set_str(r42093, "-1.6365020135425002e+69", 10, MPFR_RNDN);
        mpfr_init(r42094);
        mpfr_init(r42095);
        mpfr_init(r42096);
        mpfr_init(r42097);
        mpfr_init(r42098);
        mpfr_init_set_str(r42099, "36.527041698806414", 10, MPFR_RNDN);
        mpfr_init(r42100);
        mpfr_init(r42101);
        mpfr_init(r42102);
        mpfr_init_set_str(r42103, "3.13060547623", 10, MPFR_RNDN);
        mpfr_init(r42104);
        mpfr_init(r42105);
        mpfr_init(r42106);
        mpfr_init_set_str(r42107, "1.9046950652676932e+26", 10, MPFR_RNDN);
        mpfr_init(r42108);
        mpfr_init_set_str(r42109, "1", 10, MPFR_RNDN);
        mpfr_init(r42110);
        mpfr_init(r42111);
        mpfr_init_set_str(r42112, "11.1667541262", 10, MPFR_RNDN);
        mpfr_init(r42113);
        mpfr_init(r42114);
        mpfr_init(r42115);
        mpfr_init(r42116);
        mpfr_init(r42117);
        mpfr_init(r42118);
        mpfr_init(r42119);
        mpfr_init(r42120);
        mpfr_init(r42121);
        mpfr_init_set_str(r42122, "15.234687407", 10, MPFR_RNDN);
        mpfr_init(r42123);
        mpfr_init(r42124);
        mpfr_init_set_str(r42125, "31.4690115749", 10, MPFR_RNDN);
        mpfr_init(r42126);
        mpfr_init(r42127);
        mpfr_init_set_str(r42128, "11.9400905721", 10, MPFR_RNDN);
        mpfr_init(r42129);
        mpfr_init(r42130);
        mpfr_init_set_str(r42131, "0.607771387771", 10, MPFR_RNDN);
        mpfr_init(r42132);
        mpfr_init(r42133);
        mpfr_init(r42134);
        mpfr_init(r42135);
        mpfr_init(r42136);
        mpfr_init(r42137);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r42092, z, MPFR_RNDN);
        ;
        mpfr_set_si(r42094, mpfr_cmp(r42092, r42093) <= 0, MPFR_RNDN);
        mpfr_set_d(r42095, y, MPFR_RNDN);
        mpfr_div(r42096, r42095, r42092, MPFR_RNDN);
        mpfr_set_d(r42097, t, MPFR_RNDN);
        mpfr_div(r42098, r42097, r42092, MPFR_RNDN);
        ;
        mpfr_sub(r42100, r42098, r42099, MPFR_RNDN);
        mpfr_mul(r42101, r42096, r42100, MPFR_RNDN);
        mpfr_set_d(r42102, x, MPFR_RNDN);
        ;
        mpfr_mul(r42104, r42095, r42103, MPFR_RNDN);
        mpfr_add(r42105, r42102, r42104, MPFR_RNDN);
        mpfr_add(r42106, r42101, r42105, MPFR_RNDN);
        ;
        mpfr_set_si(r42108, mpfr_cmp(r42092, r42107) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r42110, r42095, r42109, MPFR_RNDN);
        mpfr_mul(r42111, r42092, r42103, MPFR_RNDN);
        ;
        mpfr_add(r42113, r42111, r42112, MPFR_RNDN);
        mpfr_mul(r42114, r42113, r42092, MPFR_RNDN);
        mpfr_add(r42115, r42114, r42097, MPFR_RNDN);
        mpfr_mul(r42116, r42115, r42092, MPFR_RNDN);
        mpfr_set_d(r42117, a, MPFR_RNDN);
        mpfr_add(r42118, r42116, r42117, MPFR_RNDN);
        mpfr_mul(r42119, r42118, r42092, MPFR_RNDN);
        mpfr_set_d(r42120, b, MPFR_RNDN);
        mpfr_add(r42121, r42119, r42120, MPFR_RNDN);
        ;
        mpfr_add(r42123, r42092, r42122, MPFR_RNDN);
        mpfr_mul(r42124, r42123, r42092, MPFR_RNDN);
        ;
        mpfr_add(r42126, r42124, r42125, MPFR_RNDN);
        mpfr_mul(r42127, r42126, r42092, MPFR_RNDN);
        ;
        mpfr_add(r42129, r42127, r42128, MPFR_RNDN);
        mpfr_mul(r42130, r42129, r42092, MPFR_RNDN);
        ;
        mpfr_add(r42132, r42130, r42131, MPFR_RNDN);
        mpfr_div(r42133, r42121, r42132, MPFR_RNDN);
        mpfr_mul(r42134, r42110, r42133, MPFR_RNDN);
        mpfr_add(r42135, r42102, r42134, MPFR_RNDN);
        if (mpfr_get_si(r42108, MPFR_RNDN)) { mpfr_set(r42136, r42135, MPFR_RNDN); } else { mpfr_set(r42136, r42106, MPFR_RNDN); };
        if (mpfr_get_si(r42094, MPFR_RNDN)) { mpfr_set(r42137, r42106, MPFR_RNDN); } else { mpfr_set(r42137, r42136, MPFR_RNDN); };
        return mpfr_get_d(r42137, MPFR_RNDN);
}

static mpfr_t r42138, r42139, r42140, r42141, r42142, r42143, r42144, r42145, r42146, r42147, r42148, r42149, r42150, r42151, r42152, r42153, r42154, r42155, r42156, r42157, r42158, r42159, r42160, r42161, r42162, r42163, r42164, r42165, r42166, r42167, r42168, r42169, r42170, r42171, r42172, r42173, r42174, r42175, r42176, r42177, r42178, r42179, r42180, r42181, r42182, r42183;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r42138);
        mpfr_init_set_str(r42139, "-1.6365020135425002e+69", 10, MPFR_RNDN);
        mpfr_init(r42140);
        mpfr_init(r42141);
        mpfr_init(r42142);
        mpfr_init(r42143);
        mpfr_init(r42144);
        mpfr_init_set_str(r42145, "36.527041698806414", 10, MPFR_RNDN);
        mpfr_init(r42146);
        mpfr_init(r42147);
        mpfr_init(r42148);
        mpfr_init_set_str(r42149, "3.13060547623", 10, MPFR_RNDN);
        mpfr_init(r42150);
        mpfr_init(r42151);
        mpfr_init(r42152);
        mpfr_init_set_str(r42153, "1.9046950652676932e+26", 10, MPFR_RNDN);
        mpfr_init(r42154);
        mpfr_init_set_str(r42155, "1", 10, MPFR_RNDN);
        mpfr_init(r42156);
        mpfr_init(r42157);
        mpfr_init_set_str(r42158, "11.1667541262", 10, MPFR_RNDN);
        mpfr_init(r42159);
        mpfr_init(r42160);
        mpfr_init(r42161);
        mpfr_init(r42162);
        mpfr_init(r42163);
        mpfr_init(r42164);
        mpfr_init(r42165);
        mpfr_init(r42166);
        mpfr_init(r42167);
        mpfr_init_set_str(r42168, "15.234687407", 10, MPFR_RNDN);
        mpfr_init(r42169);
        mpfr_init(r42170);
        mpfr_init_set_str(r42171, "31.4690115749", 10, MPFR_RNDN);
        mpfr_init(r42172);
        mpfr_init(r42173);
        mpfr_init_set_str(r42174, "11.9400905721", 10, MPFR_RNDN);
        mpfr_init(r42175);
        mpfr_init(r42176);
        mpfr_init_set_str(r42177, "0.607771387771", 10, MPFR_RNDN);
        mpfr_init(r42178);
        mpfr_init(r42179);
        mpfr_init(r42180);
        mpfr_init(r42181);
        mpfr_init(r42182);
        mpfr_init(r42183);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r42138, z, MPFR_RNDN);
        ;
        mpfr_set_si(r42140, mpfr_cmp(r42138, r42139) <= 0, MPFR_RNDN);
        mpfr_set_d(r42141, y, MPFR_RNDN);
        mpfr_div(r42142, r42141, r42138, MPFR_RNDN);
        mpfr_set_d(r42143, t, MPFR_RNDN);
        mpfr_div(r42144, r42143, r42138, MPFR_RNDN);
        ;
        mpfr_sub(r42146, r42144, r42145, MPFR_RNDN);
        mpfr_mul(r42147, r42142, r42146, MPFR_RNDN);
        mpfr_set_d(r42148, x, MPFR_RNDN);
        ;
        mpfr_mul(r42150, r42141, r42149, MPFR_RNDN);
        mpfr_add(r42151, r42148, r42150, MPFR_RNDN);
        mpfr_add(r42152, r42147, r42151, MPFR_RNDN);
        ;
        mpfr_set_si(r42154, mpfr_cmp(r42138, r42153) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r42156, r42141, r42155, MPFR_RNDN);
        mpfr_mul(r42157, r42138, r42149, MPFR_RNDN);
        ;
        mpfr_add(r42159, r42157, r42158, MPFR_RNDN);
        mpfr_mul(r42160, r42159, r42138, MPFR_RNDN);
        mpfr_add(r42161, r42160, r42143, MPFR_RNDN);
        mpfr_mul(r42162, r42161, r42138, MPFR_RNDN);
        mpfr_set_d(r42163, a, MPFR_RNDN);
        mpfr_add(r42164, r42162, r42163, MPFR_RNDN);
        mpfr_mul(r42165, r42164, r42138, MPFR_RNDN);
        mpfr_set_d(r42166, b, MPFR_RNDN);
        mpfr_add(r42167, r42165, r42166, MPFR_RNDN);
        ;
        mpfr_add(r42169, r42138, r42168, MPFR_RNDN);
        mpfr_mul(r42170, r42169, r42138, MPFR_RNDN);
        ;
        mpfr_add(r42172, r42170, r42171, MPFR_RNDN);
        mpfr_mul(r42173, r42172, r42138, MPFR_RNDN);
        ;
        mpfr_add(r42175, r42173, r42174, MPFR_RNDN);
        mpfr_mul(r42176, r42175, r42138, MPFR_RNDN);
        ;
        mpfr_add(r42178, r42176, r42177, MPFR_RNDN);
        mpfr_div(r42179, r42167, r42178, MPFR_RNDN);
        mpfr_mul(r42180, r42156, r42179, MPFR_RNDN);
        mpfr_add(r42181, r42148, r42180, MPFR_RNDN);
        if (mpfr_get_si(r42154, MPFR_RNDN)) { mpfr_set(r42182, r42181, MPFR_RNDN); } else { mpfr_set(r42182, r42152, MPFR_RNDN); };
        if (mpfr_get_si(r42140, MPFR_RNDN)) { mpfr_set(r42183, r42152, MPFR_RNDN); } else { mpfr_set(r42183, r42182, MPFR_RNDN); };
        return mpfr_get_d(r42183, MPFR_RNDN);
}

