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

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

double f_if(float x, float y, float z, float t, float a, float b) {
        float r44803 = x;
        float r44804 = y;
        float r44805 = z;
        float r44806 = log(r44805);
        float r44807 = r44804 * r44806;
        float r44808 = t;
        float r44809 = 1.0;
        float r44810 = r44808 - r44809;
        float r44811 = a;
        float r44812 = log(r44811);
        float r44813 = r44810 * r44812;
        float r44814 = r44807 + r44813;
        float r44815 = b;
        float r44816 = r44814 - r44815;
        float r44817 = exp(r44816);
        float r44818 = r44803 * r44817;
        float r44819 = r44818 / r44804;
        return r44819;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r44820 = x;
        double r44821 = y;
        double r44822 = z;
        double r44823 = log(r44822);
        double r44824 = r44821 * r44823;
        double r44825 = t;
        double r44826 = 1.0;
        double r44827 = r44825 - r44826;
        double r44828 = a;
        double r44829 = log(r44828);
        double r44830 = r44827 * r44829;
        double r44831 = r44824 + r44830;
        double r44832 = b;
        double r44833 = r44831 - r44832;
        double r44834 = exp(r44833);
        double r44835 = r44820 * r44834;
        double r44836 = r44835 / r44821;
        return r44836;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r44837 = y;
        float r44838 = -4.81901803570697e-133;
        bool r44839 = r44837 <= r44838;
        float r44840 = x;
        float r44841 = r44840 / r44837;
        float r44842 = a;
        float r44843 = log(r44842);
        float r44844 = t;
        float r44845 = 1.0;
        float r44846 = r44844 - r44845;
        float r44847 = r44843 * r44846;
        float r44848 = b;
        float r44849 = z;
        float r44850 = log(r44849);
        float r44851 = r44850 * r44837;
        float r44852 = r44848 - r44851;
        float r44853 = r44847 - r44852;
        float r44854 = exp(r44853);
        float r44855 = r44841 * r44854;
        float r44856 = 0.26022260549807996;
        bool r44857 = r44837 <= r44856;
        float r44858 = pow(r44842, r44846);
        float r44859 = exp(r44848);
        float r44860 = pow(r44849, r44837);
        float r44861 = r44859 / r44860;
        float r44862 = r44858 / r44861;
        float r44863 = r44840 * r44862;
        float r44864 = r44863 / r44837;
        float r44865 = r44857 ? r44864 : r44855;
        float r44866 = r44839 ? r44855 : r44865;
        return r44866;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r44867 = y;
        double r44868 = -4.81901803570697e-133;
        bool r44869 = r44867 <= r44868;
        double r44870 = x;
        double r44871 = r44870 / r44867;
        double r44872 = a;
        double r44873 = log(r44872);
        double r44874 = t;
        double r44875 = 1.0;
        double r44876 = r44874 - r44875;
        double r44877 = r44873 * r44876;
        double r44878 = b;
        double r44879 = z;
        double r44880 = log(r44879);
        double r44881 = r44880 * r44867;
        double r44882 = r44878 - r44881;
        double r44883 = r44877 - r44882;
        double r44884 = exp(r44883);
        double r44885 = r44871 * r44884;
        double r44886 = 0.26022260549807996;
        bool r44887 = r44867 <= r44886;
        double r44888 = pow(r44872, r44876);
        double r44889 = exp(r44878);
        double r44890 = pow(r44879, r44867);
        double r44891 = r44889 / r44890;
        double r44892 = r44888 / r44891;
        double r44893 = r44870 * r44892;
        double r44894 = r44893 / r44867;
        double r44895 = r44887 ? r44894 : r44885;
        double r44896 = r44869 ? r44885 : r44895;
        return r44896;
}

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 r44897, r44898, r44899, r44900, r44901, r44902, r44903, r44904, r44905, r44906, r44907, r44908, r44909, r44910, r44911, r44912, r44913;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r44897);
        mpfr_init(r44898);
        mpfr_init(r44899);
        mpfr_init(r44900);
        mpfr_init(r44901);
        mpfr_init(r44902);
        mpfr_init_set_str(r44903, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44904);
        mpfr_init(r44905);
        mpfr_init(r44906);
        mpfr_init(r44907);
        mpfr_init(r44908);
        mpfr_init(r44909);
        mpfr_init(r44910);
        mpfr_init(r44911);
        mpfr_init(r44912);
        mpfr_init(r44913);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r44897, x, MPFR_RNDN);
        mpfr_set_d(r44898, y, MPFR_RNDN);
        mpfr_set_d(r44899, z, MPFR_RNDN);
        mpfr_log(r44900, r44899, MPFR_RNDN);
        mpfr_mul(r44901, r44898, r44900, MPFR_RNDN);
        mpfr_set_d(r44902, t, MPFR_RNDN);
        ;
        mpfr_sub(r44904, r44902, r44903, MPFR_RNDN);
        mpfr_set_d(r44905, a, MPFR_RNDN);
        mpfr_log(r44906, r44905, MPFR_RNDN);
        mpfr_mul(r44907, r44904, r44906, MPFR_RNDN);
        mpfr_add(r44908, r44901, r44907, MPFR_RNDN);
        mpfr_set_d(r44909, b, MPFR_RNDN);
        mpfr_sub(r44910, r44908, r44909, MPFR_RNDN);
        mpfr_exp(r44911, r44910, MPFR_RNDN);
        mpfr_mul(r44912, r44897, r44911, MPFR_RNDN);
        mpfr_div(r44913, r44912, r44898, MPFR_RNDN);
        return mpfr_get_d(r44913, MPFR_RNDN);
}

static mpfr_t r44914, r44915, r44916, r44917, r44918, r44919, r44920, r44921, r44922, r44923, r44924, r44925, r44926, r44927, r44928, r44929, r44930, r44931, r44932, r44933, r44934, r44935, r44936, r44937, r44938, r44939, r44940, r44941, r44942, r44943;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r44914);
        mpfr_init_set_str(r44915, "-4.81901803570697e-133", 10, MPFR_RNDN);
        mpfr_init(r44916);
        mpfr_init(r44917);
        mpfr_init(r44918);
        mpfr_init(r44919);
        mpfr_init(r44920);
        mpfr_init(r44921);
        mpfr_init_set_str(r44922, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44923);
        mpfr_init(r44924);
        mpfr_init(r44925);
        mpfr_init(r44926);
        mpfr_init(r44927);
        mpfr_init(r44928);
        mpfr_init(r44929);
        mpfr_init(r44930);
        mpfr_init(r44931);
        mpfr_init(r44932);
        mpfr_init_set_str(r44933, "0.26022260549807996", 10, MPFR_RNDN);
        mpfr_init(r44934);
        mpfr_init(r44935);
        mpfr_init(r44936);
        mpfr_init(r44937);
        mpfr_init(r44938);
        mpfr_init(r44939);
        mpfr_init(r44940);
        mpfr_init(r44941);
        mpfr_init(r44942);
        mpfr_init(r44943);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r44914, y, MPFR_RNDN);
        ;
        mpfr_set_si(r44916, mpfr_cmp(r44914, r44915) <= 0, MPFR_RNDN);
        mpfr_set_d(r44917, x, MPFR_RNDN);
        mpfr_div(r44918, r44917, r44914, MPFR_RNDN);
        mpfr_set_d(r44919, a, MPFR_RNDN);
        mpfr_log(r44920, r44919, MPFR_RNDN);
        mpfr_set_d(r44921, t, MPFR_RNDN);
        ;
        mpfr_sub(r44923, r44921, r44922, MPFR_RNDN);
        mpfr_mul(r44924, r44920, r44923, MPFR_RNDN);
        mpfr_set_d(r44925, b, MPFR_RNDN);
        mpfr_set_d(r44926, z, MPFR_RNDN);
        mpfr_log(r44927, r44926, MPFR_RNDN);
        mpfr_mul(r44928, r44927, r44914, MPFR_RNDN);
        mpfr_sub(r44929, r44925, r44928, MPFR_RNDN);
        mpfr_sub(r44930, r44924, r44929, MPFR_RNDN);
        mpfr_exp(r44931, r44930, MPFR_RNDN);
        mpfr_mul(r44932, r44918, r44931, MPFR_RNDN);
        ;
        mpfr_set_si(r44934, mpfr_cmp(r44914, r44933) <= 0, MPFR_RNDN);
        mpfr_pow(r44935, r44919, r44923, MPFR_RNDN);
        mpfr_exp(r44936, r44925, MPFR_RNDN);
        mpfr_pow(r44937, r44926, r44914, MPFR_RNDN);
        mpfr_div(r44938, r44936, r44937, MPFR_RNDN);
        mpfr_div(r44939, r44935, r44938, MPFR_RNDN);
        mpfr_mul(r44940, r44917, r44939, MPFR_RNDN);
        mpfr_div(r44941, r44940, r44914, MPFR_RNDN);
        if (mpfr_get_si(r44934, MPFR_RNDN)) { mpfr_set(r44942, r44941, MPFR_RNDN); } else { mpfr_set(r44942, r44932, MPFR_RNDN); };
        if (mpfr_get_si(r44916, MPFR_RNDN)) { mpfr_set(r44943, r44932, MPFR_RNDN); } else { mpfr_set(r44943, r44942, MPFR_RNDN); };
        return mpfr_get_d(r44943, MPFR_RNDN);
}

static mpfr_t r44944, r44945, r44946, r44947, r44948, r44949, r44950, r44951, r44952, r44953, r44954, r44955, r44956, r44957, r44958, r44959, r44960, r44961, r44962, r44963, r44964, r44965, r44966, r44967, r44968, r44969, r44970, r44971, r44972, r44973;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r44944);
        mpfr_init_set_str(r44945, "-4.81901803570697e-133", 10, MPFR_RNDN);
        mpfr_init(r44946);
        mpfr_init(r44947);
        mpfr_init(r44948);
        mpfr_init(r44949);
        mpfr_init(r44950);
        mpfr_init(r44951);
        mpfr_init_set_str(r44952, "1.0", 10, MPFR_RNDN);
        mpfr_init(r44953);
        mpfr_init(r44954);
        mpfr_init(r44955);
        mpfr_init(r44956);
        mpfr_init(r44957);
        mpfr_init(r44958);
        mpfr_init(r44959);
        mpfr_init(r44960);
        mpfr_init(r44961);
        mpfr_init(r44962);
        mpfr_init_set_str(r44963, "0.26022260549807996", 10, MPFR_RNDN);
        mpfr_init(r44964);
        mpfr_init(r44965);
        mpfr_init(r44966);
        mpfr_init(r44967);
        mpfr_init(r44968);
        mpfr_init(r44969);
        mpfr_init(r44970);
        mpfr_init(r44971);
        mpfr_init(r44972);
        mpfr_init(r44973);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r44944, y, MPFR_RNDN);
        ;
        mpfr_set_si(r44946, mpfr_cmp(r44944, r44945) <= 0, MPFR_RNDN);
        mpfr_set_d(r44947, x, MPFR_RNDN);
        mpfr_div(r44948, r44947, r44944, MPFR_RNDN);
        mpfr_set_d(r44949, a, MPFR_RNDN);
        mpfr_log(r44950, r44949, MPFR_RNDN);
        mpfr_set_d(r44951, t, MPFR_RNDN);
        ;
        mpfr_sub(r44953, r44951, r44952, MPFR_RNDN);
        mpfr_mul(r44954, r44950, r44953, MPFR_RNDN);
        mpfr_set_d(r44955, b, MPFR_RNDN);
        mpfr_set_d(r44956, z, MPFR_RNDN);
        mpfr_log(r44957, r44956, MPFR_RNDN);
        mpfr_mul(r44958, r44957, r44944, MPFR_RNDN);
        mpfr_sub(r44959, r44955, r44958, MPFR_RNDN);
        mpfr_sub(r44960, r44954, r44959, MPFR_RNDN);
        mpfr_exp(r44961, r44960, MPFR_RNDN);
        mpfr_mul(r44962, r44948, r44961, MPFR_RNDN);
        ;
        mpfr_set_si(r44964, mpfr_cmp(r44944, r44963) <= 0, MPFR_RNDN);
        mpfr_pow(r44965, r44949, r44953, MPFR_RNDN);
        mpfr_exp(r44966, r44955, MPFR_RNDN);
        mpfr_pow(r44967, r44956, r44944, MPFR_RNDN);
        mpfr_div(r44968, r44966, r44967, MPFR_RNDN);
        mpfr_div(r44969, r44965, r44968, MPFR_RNDN);
        mpfr_mul(r44970, r44947, r44969, MPFR_RNDN);
        mpfr_div(r44971, r44970, r44944, MPFR_RNDN);
        if (mpfr_get_si(r44964, MPFR_RNDN)) { mpfr_set(r44972, r44971, MPFR_RNDN); } else { mpfr_set(r44972, r44962, MPFR_RNDN); };
        if (mpfr_get_si(r44946, MPFR_RNDN)) { mpfr_set(r44973, r44962, MPFR_RNDN); } else { mpfr_set(r44973, r44972, MPFR_RNDN); };
        return mpfr_get_d(r44973, MPFR_RNDN);
}

