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

double f_if(float x, float y, float z, float t, float a, float b) {
        float r25757 = x;
        float r25758 = y;
        float r25759 = z;
        float r25760 = log(r25759);
        float r25761 = r25758 * r25760;
        float r25762 = t;
        float r25763 = 1.0f;
        float r25764 = r25762 - r25763;
        float r25765 = a;
        float r25766 = log(r25765);
        float r25767 = r25764 * r25766;
        float r25768 = r25761 + r25767;
        float r25769 = b;
        float r25770 = r25768 - r25769;
        float r25771 = exp(r25770);
        float r25772 = r25757 * r25771;
        float r25773 = r25772 / r25758;
        return r25773;
}

double f_id(double x, double y, double z, double t, double a, double b) {
        double r25774 = x;
        double r25775 = y;
        double r25776 = z;
        double r25777 = log(r25776);
        double r25778 = r25775 * r25777;
        double r25779 = t;
        double r25780 = 1.0;
        double r25781 = r25779 - r25780;
        double r25782 = a;
        double r25783 = log(r25782);
        double r25784 = r25781 * r25783;
        double r25785 = r25778 + r25784;
        double r25786 = b;
        double r25787 = r25785 - r25786;
        double r25788 = exp(r25787);
        double r25789 = r25774 * r25788;
        double r25790 = r25789 / r25775;
        return r25790;
}


double f_of(float x, float y, float z, float t, float a, float b) {
        float r25791 = y;
        float r25792 = -6.408792807834615e+52f;
        bool r25793 = r25791 <= r25792;
        float r25794 = z;
        float r25795 = pow(r25794, r25791);
        float r25796 = x;
        float r25797 = r25795 * r25796;
        float r25798 = a;
        float r25799 = r25791 * r25798;
        float r25800 = r25797 / r25799;
        float r25801 = 1.0f;
        float r25802 = b;
        float r25803 = r25801 + r25802;
        float r25804 = t;
        float r25805 = log(r25798);
        float r25806 = r25804 * r25805;
        float r25807 = r25803 - r25806;
        float r25808 = r25800 / r25807;
        float r25809 = -69.525409230544f;
        bool r25810 = r25791 <= r25809;
        float r25811 = r25796 / r25791;
        float r25812 = log(r25794);
        float r25813 = r25796 * r25812;
        float r25814 = 0.5f;
        float r25815 = r25812 * r25812;
        float r25816 = r25796 * r25815;
        float r25817 = r25791 * r25816;
        float r25818 = r25814 * r25817;
        float r25819 = r25813 + r25818;
        float r25820 = r25811 + r25819;
        float r25821 = 1.0f;
        float r25822 = r25804 - r25821;
        float r25823 = r25805 * r25822;
        float r25824 = r25802 - r25823;
        float r25825 = exp(r25824);
        float r25826 = r25820 / r25825;
        float r25827 = 1.4591773572605082e-06f;
        bool r25828 = r25791 <= r25827;
        float r25829 = r25825 * r25791;
        float r25830 = r25797 / r25829;
        float r25831 = r25828 ? r25830 : r25808;
        float r25832 = r25810 ? r25826 : r25831;
        float r25833 = r25793 ? r25808 : r25832;
        return r25833;
}

double f_od(double x, double y, double z, double t, double a, double b) {
        double r25834 = y;
        double r25835 = -6.408792807834615e+52;
        bool r25836 = r25834 <= r25835;
        double r25837 = z;
        double r25838 = pow(r25837, r25834);
        double r25839 = x;
        double r25840 = r25838 * r25839;
        double r25841 = a;
        double r25842 = r25834 * r25841;
        double r25843 = r25840 / r25842;
        double r25844 = 1.0;
        double r25845 = b;
        double r25846 = r25844 + r25845;
        double r25847 = t;
        double r25848 = log(r25841);
        double r25849 = r25847 * r25848;
        double r25850 = r25846 - r25849;
        double r25851 = r25843 / r25850;
        double r25852 = -69.525409230544;
        bool r25853 = r25834 <= r25852;
        double r25854 = r25839 / r25834;
        double r25855 = log(r25837);
        double r25856 = r25839 * r25855;
        double r25857 = 0.5;
        double r25858 = r25855 * r25855;
        double r25859 = r25839 * r25858;
        double r25860 = r25834 * r25859;
        double r25861 = r25857 * r25860;
        double r25862 = r25856 + r25861;
        double r25863 = r25854 + r25862;
        double r25864 = 1.0;
        double r25865 = r25847 - r25864;
        double r25866 = r25848 * r25865;
        double r25867 = r25845 - r25866;
        double r25868 = exp(r25867);
        double r25869 = r25863 / r25868;
        double r25870 = 1.4591773572605082e-06;
        bool r25871 = r25834 <= r25870;
        double r25872 = r25868 * r25834;
        double r25873 = r25840 / r25872;
        double r25874 = r25871 ? r25873 : r25851;
        double r25875 = r25853 ? r25869 : r25874;
        double r25876 = r25836 ? r25851 : r25875;
        return r25876;
}

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 r25877, r25878, r25879, r25880, r25881, r25882, r25883, r25884, r25885, r25886, r25887, r25888, r25889, r25890, r25891, r25892, r25893;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r25877);
        mpfr_init(r25878);
        mpfr_init(r25879);
        mpfr_init(r25880);
        mpfr_init(r25881);
        mpfr_init(r25882);
        mpfr_init_set_str(r25883, "1.0", 10, MPFR_RNDN);
        mpfr_init(r25884);
        mpfr_init(r25885);
        mpfr_init(r25886);
        mpfr_init(r25887);
        mpfr_init(r25888);
        mpfr_init(r25889);
        mpfr_init(r25890);
        mpfr_init(r25891);
        mpfr_init(r25892);
        mpfr_init(r25893);
}

double f_im(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r25877, x, MPFR_RNDN);
        mpfr_set_d(r25878, y, MPFR_RNDN);
        mpfr_set_d(r25879, z, MPFR_RNDN);
        mpfr_log(r25880, r25879, MPFR_RNDN);
        mpfr_mul(r25881, r25878, r25880, MPFR_RNDN);
        mpfr_set_d(r25882, t, MPFR_RNDN);
        ;
        mpfr_sub(r25884, r25882, r25883, MPFR_RNDN);
        mpfr_set_d(r25885, a, MPFR_RNDN);
        mpfr_log(r25886, r25885, MPFR_RNDN);
        mpfr_mul(r25887, r25884, r25886, MPFR_RNDN);
        mpfr_add(r25888, r25881, r25887, MPFR_RNDN);
        mpfr_set_d(r25889, b, MPFR_RNDN);
        mpfr_sub(r25890, r25888, r25889, MPFR_RNDN);
        mpfr_exp(r25891, r25890, MPFR_RNDN);
        mpfr_mul(r25892, r25877, r25891, MPFR_RNDN);
        mpfr_div(r25893, r25892, r25878, MPFR_RNDN);
        return mpfr_get_d(r25893, MPFR_RNDN);
}

static mpfr_t r25894, r25895, r25896, r25897, r25898, r25899, r25900, r25901, r25902, r25903, r25904, r25905, r25906, r25907, r25908, r25909, r25910, r25911, r25912, r25913, r25914, r25915, r25916, r25917, r25918, r25919, r25920, r25921, r25922, r25923, r25924, r25925, r25926, r25927, r25928, r25929, r25930, r25931, r25932, r25933, r25934, r25935, r25936;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r25894);
        mpfr_init_set_str(r25895, "-6.408792807834615e+52", 10, MPFR_RNDN);
        mpfr_init(r25896);
        mpfr_init(r25897);
        mpfr_init(r25898);
        mpfr_init(r25899);
        mpfr_init(r25900);
        mpfr_init(r25901);
        mpfr_init(r25902);
        mpfr_init(r25903);
        mpfr_init_set_str(r25904, "1", 10, MPFR_RNDN);
        mpfr_init(r25905);
        mpfr_init(r25906);
        mpfr_init(r25907);
        mpfr_init(r25908);
        mpfr_init(r25909);
        mpfr_init(r25910);
        mpfr_init(r25911);
        mpfr_init_set_str(r25912, "-69.525409230544", 10, MPFR_RNDN);
        mpfr_init(r25913);
        mpfr_init(r25914);
        mpfr_init(r25915);
        mpfr_init(r25916);
        mpfr_init_set_str(r25917, "1/2", 10, MPFR_RNDN);
        mpfr_init(r25918);
        mpfr_init(r25919);
        mpfr_init(r25920);
        mpfr_init(r25921);
        mpfr_init(r25922);
        mpfr_init(r25923);
        mpfr_init_set_str(r25924, "1.0", 10, MPFR_RNDN);
        mpfr_init(r25925);
        mpfr_init(r25926);
        mpfr_init(r25927);
        mpfr_init(r25928);
        mpfr_init(r25929);
        mpfr_init_set_str(r25930, "1.4591773572605082e-06", 10, MPFR_RNDN);
        mpfr_init(r25931);
        mpfr_init(r25932);
        mpfr_init(r25933);
        mpfr_init(r25934);
        mpfr_init(r25935);
        mpfr_init(r25936);
}

double f_fm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r25894, y, MPFR_RNDN);
        ;
        mpfr_set_si(r25896, mpfr_cmp(r25894, r25895) <= 0, MPFR_RNDN);
        mpfr_set_d(r25897, z, MPFR_RNDN);
        mpfr_pow(r25898, r25897, r25894, MPFR_RNDN);
        mpfr_set_d(r25899, x, MPFR_RNDN);
        mpfr_mul(r25900, r25898, r25899, MPFR_RNDN);
        mpfr_set_d(r25901, a, MPFR_RNDN);
        mpfr_mul(r25902, r25894, r25901, MPFR_RNDN);
        mpfr_div(r25903, r25900, r25902, MPFR_RNDN);
        ;
        mpfr_set_d(r25905, b, MPFR_RNDN);
        mpfr_add(r25906, r25904, r25905, MPFR_RNDN);
        mpfr_set_d(r25907, t, MPFR_RNDN);
        mpfr_log(r25908, r25901, MPFR_RNDN);
        mpfr_mul(r25909, r25907, r25908, MPFR_RNDN);
        mpfr_sub(r25910, r25906, r25909, MPFR_RNDN);
        mpfr_div(r25911, r25903, r25910, MPFR_RNDN);
        ;
        mpfr_set_si(r25913, mpfr_cmp(r25894, r25912) <= 0, MPFR_RNDN);
        mpfr_div(r25914, r25899, r25894, MPFR_RNDN);
        mpfr_log(r25915, r25897, MPFR_RNDN);
        mpfr_mul(r25916, r25899, r25915, MPFR_RNDN);
        ;
        mpfr_sqr(r25918, r25915, MPFR_RNDN);
        mpfr_mul(r25919, r25899, r25918, MPFR_RNDN);
        mpfr_mul(r25920, r25894, r25919, MPFR_RNDN);
        mpfr_mul(r25921, r25917, r25920, MPFR_RNDN);
        mpfr_add(r25922, r25916, r25921, MPFR_RNDN);
        mpfr_add(r25923, r25914, r25922, MPFR_RNDN);
        ;
        mpfr_sub(r25925, r25907, r25924, MPFR_RNDN);
        mpfr_mul(r25926, r25908, r25925, MPFR_RNDN);
        mpfr_sub(r25927, r25905, r25926, MPFR_RNDN);
        mpfr_exp(r25928, r25927, MPFR_RNDN);
        mpfr_div(r25929, r25923, r25928, MPFR_RNDN);
        ;
        mpfr_set_si(r25931, mpfr_cmp(r25894, r25930) <= 0, MPFR_RNDN);
        mpfr_mul(r25932, r25928, r25894, MPFR_RNDN);
        mpfr_div(r25933, r25900, r25932, MPFR_RNDN);
        if (mpfr_get_si(r25931, MPFR_RNDN)) { mpfr_set(r25934, r25933, MPFR_RNDN); } else { mpfr_set(r25934, r25911, MPFR_RNDN); };
        if (mpfr_get_si(r25913, MPFR_RNDN)) { mpfr_set(r25935, r25929, MPFR_RNDN); } else { mpfr_set(r25935, r25934, MPFR_RNDN); };
        if (mpfr_get_si(r25896, MPFR_RNDN)) { mpfr_set(r25936, r25911, MPFR_RNDN); } else { mpfr_set(r25936, r25935, MPFR_RNDN); };
        return mpfr_get_d(r25936, MPFR_RNDN);
}

static mpfr_t r25937, r25938, r25939, r25940, r25941, r25942, r25943, r25944, r25945, r25946, r25947, r25948, r25949, r25950, r25951, r25952, r25953, r25954, r25955, r25956, r25957, r25958, r25959, r25960, r25961, r25962, r25963, r25964, r25965, r25966, r25967, r25968, r25969, r25970, r25971, r25972, r25973, r25974, r25975, r25976, r25977, r25978, r25979;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r25937);
        mpfr_init_set_str(r25938, "-6.408792807834615e+52", 10, MPFR_RNDN);
        mpfr_init(r25939);
        mpfr_init(r25940);
        mpfr_init(r25941);
        mpfr_init(r25942);
        mpfr_init(r25943);
        mpfr_init(r25944);
        mpfr_init(r25945);
        mpfr_init(r25946);
        mpfr_init_set_str(r25947, "1", 10, MPFR_RNDN);
        mpfr_init(r25948);
        mpfr_init(r25949);
        mpfr_init(r25950);
        mpfr_init(r25951);
        mpfr_init(r25952);
        mpfr_init(r25953);
        mpfr_init(r25954);
        mpfr_init_set_str(r25955, "-69.525409230544", 10, MPFR_RNDN);
        mpfr_init(r25956);
        mpfr_init(r25957);
        mpfr_init(r25958);
        mpfr_init(r25959);
        mpfr_init_set_str(r25960, "1/2", 10, MPFR_RNDN);
        mpfr_init(r25961);
        mpfr_init(r25962);
        mpfr_init(r25963);
        mpfr_init(r25964);
        mpfr_init(r25965);
        mpfr_init(r25966);
        mpfr_init_set_str(r25967, "1.0", 10, MPFR_RNDN);
        mpfr_init(r25968);
        mpfr_init(r25969);
        mpfr_init(r25970);
        mpfr_init(r25971);
        mpfr_init(r25972);
        mpfr_init_set_str(r25973, "1.4591773572605082e-06", 10, MPFR_RNDN);
        mpfr_init(r25974);
        mpfr_init(r25975);
        mpfr_init(r25976);
        mpfr_init(r25977);
        mpfr_init(r25978);
        mpfr_init(r25979);
}

double f_dm(double x, double y, double z, double t, double a, double b) {
        mpfr_set_d(r25937, y, MPFR_RNDN);
        ;
        mpfr_set_si(r25939, mpfr_cmp(r25937, r25938) <= 0, MPFR_RNDN);
        mpfr_set_d(r25940, z, MPFR_RNDN);
        mpfr_pow(r25941, r25940, r25937, MPFR_RNDN);
        mpfr_set_d(r25942, x, MPFR_RNDN);
        mpfr_mul(r25943, r25941, r25942, MPFR_RNDN);
        mpfr_set_d(r25944, a, MPFR_RNDN);
        mpfr_mul(r25945, r25937, r25944, MPFR_RNDN);
        mpfr_div(r25946, r25943, r25945, MPFR_RNDN);
        ;
        mpfr_set_d(r25948, b, MPFR_RNDN);
        mpfr_add(r25949, r25947, r25948, MPFR_RNDN);
        mpfr_set_d(r25950, t, MPFR_RNDN);
        mpfr_log(r25951, r25944, MPFR_RNDN);
        mpfr_mul(r25952, r25950, r25951, MPFR_RNDN);
        mpfr_sub(r25953, r25949, r25952, MPFR_RNDN);
        mpfr_div(r25954, r25946, r25953, MPFR_RNDN);
        ;
        mpfr_set_si(r25956, mpfr_cmp(r25937, r25955) <= 0, MPFR_RNDN);
        mpfr_div(r25957, r25942, r25937, MPFR_RNDN);
        mpfr_log(r25958, r25940, MPFR_RNDN);
        mpfr_mul(r25959, r25942, r25958, MPFR_RNDN);
        ;
        mpfr_sqr(r25961, r25958, MPFR_RNDN);
        mpfr_mul(r25962, r25942, r25961, MPFR_RNDN);
        mpfr_mul(r25963, r25937, r25962, MPFR_RNDN);
        mpfr_mul(r25964, r25960, r25963, MPFR_RNDN);
        mpfr_add(r25965, r25959, r25964, MPFR_RNDN);
        mpfr_add(r25966, r25957, r25965, MPFR_RNDN);
        ;
        mpfr_sub(r25968, r25950, r25967, MPFR_RNDN);
        mpfr_mul(r25969, r25951, r25968, MPFR_RNDN);
        mpfr_sub(r25970, r25948, r25969, MPFR_RNDN);
        mpfr_exp(r25971, r25970, MPFR_RNDN);
        mpfr_div(r25972, r25966, r25971, MPFR_RNDN);
        ;
        mpfr_set_si(r25974, mpfr_cmp(r25937, r25973) <= 0, MPFR_RNDN);
        mpfr_mul(r25975, r25971, r25937, MPFR_RNDN);
        mpfr_div(r25976, r25943, r25975, MPFR_RNDN);
        if (mpfr_get_si(r25974, MPFR_RNDN)) { mpfr_set(r25977, r25976, MPFR_RNDN); } else { mpfr_set(r25977, r25954, MPFR_RNDN); };
        if (mpfr_get_si(r25956, MPFR_RNDN)) { mpfr_set(r25978, r25972, MPFR_RNDN); } else { mpfr_set(r25978, r25977, MPFR_RNDN); };
        if (mpfr_get_si(r25939, MPFR_RNDN)) { mpfr_set(r25979, r25954, MPFR_RNDN); } else { mpfr_set(r25979, r25978, MPFR_RNDN); };
        return mpfr_get_d(r25979, MPFR_RNDN);
}

