#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, B";

double f_if(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r42973 = x;
        float r42974 = y;
        float r42975 = log(r42974);
        float r42976 = r42973 * r42975;
        float r42977 = z;
        float r42978 = r42976 + r42977;
        float r42979 = t;
        float r42980 = r42978 + r42979;
        float r42981 = a;
        float r42982 = r42980 + r42981;
        float r42983 = b;
        float r42984 = 0.5;
        float r42985 = r42983 - r42984;
        float r42986 = c;
        float r42987 = log(r42986);
        float r42988 = r42985 * r42987;
        float r42989 = r42982 + r42988;
        float r42990 = i;
        float r42991 = r42974 * r42990;
        float r42992 = r42989 + r42991;
        return r42992;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r42993 = x;
        double r42994 = y;
        double r42995 = log(r42994);
        double r42996 = r42993 * r42995;
        double r42997 = z;
        double r42998 = r42996 + r42997;
        double r42999 = t;
        double r43000 = r42998 + r42999;
        double r43001 = a;
        double r43002 = r43000 + r43001;
        double r43003 = b;
        double r43004 = 0.5;
        double r43005 = r43003 - r43004;
        double r43006 = c;
        double r43007 = log(r43006);
        double r43008 = r43005 * r43007;
        double r43009 = r43002 + r43008;
        double r43010 = i;
        double r43011 = r42994 * r43010;
        double r43012 = r43009 + r43011;
        return r43012;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i) {
        float r43013 = x;
        float r43014 = y;
        float r43015 = log(r43014);
        float r43016 = r43013 * r43015;
        float r43017 = z;
        float r43018 = r43016 + r43017;
        float r43019 = t;
        float r43020 = r43018 + r43019;
        float r43021 = a;
        float r43022 = r43020 + r43021;
        float r43023 = b;
        float r43024 = 0.5;
        float r43025 = r43023 - r43024;
        float r43026 = c;
        float r43027 = log(r43026);
        float r43028 = r43025 * r43027;
        float r43029 = r43022 + r43028;
        float r43030 = i;
        float r43031 = r43014 * r43030;
        float r43032 = r43029 + r43031;
        return r43032;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r43033 = x;
        double r43034 = y;
        double r43035 = log(r43034);
        double r43036 = r43033 * r43035;
        double r43037 = z;
        double r43038 = r43036 + r43037;
        double r43039 = t;
        double r43040 = r43038 + r43039;
        double r43041 = a;
        double r43042 = r43040 + r43041;
        double r43043 = b;
        double r43044 = 0.5;
        double r43045 = r43043 - r43044;
        double r43046 = c;
        double r43047 = log(r43046);
        double r43048 = r43045 * r43047;
        double r43049 = r43042 + r43048;
        double r43050 = i;
        double r43051 = r43034 * r43050;
        double r43052 = r43049 + r43051;
        return r43052;
}

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 r43053, r43054, r43055, r43056, r43057, r43058, r43059, r43060, r43061, r43062, r43063, r43064, r43065, r43066, r43067, r43068, r43069, r43070, r43071, r43072;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init(r43053);
        mpfr_init(r43054);
        mpfr_init(r43055);
        mpfr_init(r43056);
        mpfr_init(r43057);
        mpfr_init(r43058);
        mpfr_init(r43059);
        mpfr_init(r43060);
        mpfr_init(r43061);
        mpfr_init(r43062);
        mpfr_init(r43063);
        mpfr_init_set_str(r43064, "0.5", 10, MPFR_RNDN);
        mpfr_init(r43065);
        mpfr_init(r43066);
        mpfr_init(r43067);
        mpfr_init(r43068);
        mpfr_init(r43069);
        mpfr_init(r43070);
        mpfr_init(r43071);
        mpfr_init(r43072);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r43053, x, MPFR_RNDN);
        mpfr_set_d(r43054, y, MPFR_RNDN);
        mpfr_log(r43055, r43054, MPFR_RNDN);
        mpfr_mul(r43056, r43053, r43055, MPFR_RNDN);
        mpfr_set_d(r43057, z, MPFR_RNDN);
        mpfr_add(r43058, r43056, r43057, MPFR_RNDN);
        mpfr_set_d(r43059, t, MPFR_RNDN);
        mpfr_add(r43060, r43058, r43059, MPFR_RNDN);
        mpfr_set_d(r43061, a, MPFR_RNDN);
        mpfr_add(r43062, r43060, r43061, MPFR_RNDN);
        mpfr_set_d(r43063, b, MPFR_RNDN);
        ;
        mpfr_sub(r43065, r43063, r43064, MPFR_RNDN);
        mpfr_set_d(r43066, c, MPFR_RNDN);
        mpfr_log(r43067, r43066, MPFR_RNDN);
        mpfr_mul(r43068, r43065, r43067, MPFR_RNDN);
        mpfr_add(r43069, r43062, r43068, MPFR_RNDN);
        mpfr_set_d(r43070, i, MPFR_RNDN);
        mpfr_mul(r43071, r43054, r43070, MPFR_RNDN);
        mpfr_add(r43072, r43069, r43071, MPFR_RNDN);
        return mpfr_get_d(r43072, MPFR_RNDN);
}

static mpfr_t r43073, r43074, r43075, r43076, r43077, r43078, r43079, r43080, r43081, r43082, r43083, r43084, r43085, r43086, r43087, r43088, r43089, r43090, r43091, r43092;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init(r43073);
        mpfr_init(r43074);
        mpfr_init(r43075);
        mpfr_init(r43076);
        mpfr_init(r43077);
        mpfr_init(r43078);
        mpfr_init(r43079);
        mpfr_init(r43080);
        mpfr_init(r43081);
        mpfr_init(r43082);
        mpfr_init(r43083);
        mpfr_init_set_str(r43084, "0.5", 10, MPFR_RNDN);
        mpfr_init(r43085);
        mpfr_init(r43086);
        mpfr_init(r43087);
        mpfr_init(r43088);
        mpfr_init(r43089);
        mpfr_init(r43090);
        mpfr_init(r43091);
        mpfr_init(r43092);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r43073, x, MPFR_RNDN);
        mpfr_set_d(r43074, y, MPFR_RNDN);
        mpfr_log(r43075, r43074, MPFR_RNDN);
        mpfr_mul(r43076, r43073, r43075, MPFR_RNDN);
        mpfr_set_d(r43077, z, MPFR_RNDN);
        mpfr_add(r43078, r43076, r43077, MPFR_RNDN);
        mpfr_set_d(r43079, t, MPFR_RNDN);
        mpfr_add(r43080, r43078, r43079, MPFR_RNDN);
        mpfr_set_d(r43081, a, MPFR_RNDN);
        mpfr_add(r43082, r43080, r43081, MPFR_RNDN);
        mpfr_set_d(r43083, b, MPFR_RNDN);
        ;
        mpfr_sub(r43085, r43083, r43084, MPFR_RNDN);
        mpfr_set_d(r43086, c, MPFR_RNDN);
        mpfr_log(r43087, r43086, MPFR_RNDN);
        mpfr_mul(r43088, r43085, r43087, MPFR_RNDN);
        mpfr_add(r43089, r43082, r43088, MPFR_RNDN);
        mpfr_set_d(r43090, i, MPFR_RNDN);
        mpfr_mul(r43091, r43074, r43090, MPFR_RNDN);
        mpfr_add(r43092, r43089, r43091, MPFR_RNDN);
        return mpfr_get_d(r43092, MPFR_RNDN);
}

static mpfr_t r43093, r43094, r43095, r43096, r43097, r43098, r43099, r43100, r43101, r43102, r43103, r43104, r43105, r43106, r43107, r43108, r43109, r43110, r43111, r43112;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init(r43093);
        mpfr_init(r43094);
        mpfr_init(r43095);
        mpfr_init(r43096);
        mpfr_init(r43097);
        mpfr_init(r43098);
        mpfr_init(r43099);
        mpfr_init(r43100);
        mpfr_init(r43101);
        mpfr_init(r43102);
        mpfr_init(r43103);
        mpfr_init_set_str(r43104, "0.5", 10, MPFR_RNDN);
        mpfr_init(r43105);
        mpfr_init(r43106);
        mpfr_init(r43107);
        mpfr_init(r43108);
        mpfr_init(r43109);
        mpfr_init(r43110);
        mpfr_init(r43111);
        mpfr_init(r43112);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i) {
        mpfr_set_d(r43093, x, MPFR_RNDN);
        mpfr_set_d(r43094, y, MPFR_RNDN);
        mpfr_log(r43095, r43094, MPFR_RNDN);
        mpfr_mul(r43096, r43093, r43095, MPFR_RNDN);
        mpfr_set_d(r43097, z, MPFR_RNDN);
        mpfr_add(r43098, r43096, r43097, MPFR_RNDN);
        mpfr_set_d(r43099, t, MPFR_RNDN);
        mpfr_add(r43100, r43098, r43099, MPFR_RNDN);
        mpfr_set_d(r43101, a, MPFR_RNDN);
        mpfr_add(r43102, r43100, r43101, MPFR_RNDN);
        mpfr_set_d(r43103, b, MPFR_RNDN);
        ;
        mpfr_sub(r43105, r43103, r43104, MPFR_RNDN);
        mpfr_set_d(r43106, c, MPFR_RNDN);
        mpfr_log(r43107, r43106, MPFR_RNDN);
        mpfr_mul(r43108, r43105, r43107, MPFR_RNDN);
        mpfr_add(r43109, r43102, r43108, MPFR_RNDN);
        mpfr_set_d(r43110, i, MPFR_RNDN);
        mpfr_mul(r43111, r43094, r43110, MPFR_RNDN);
        mpfr_add(r43112, r43109, r43111, MPFR_RNDN);
        return mpfr_get_d(r43112, MPFR_RNDN);
}

