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

char *name = "Numeric.SpecFunctions:invIncompleteBetaWorker 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 r19680 = x;
        float r19681 = y;
        float r19682 = 2.0f;
        float r19683 = z;
        float r19684 = t;
        float r19685 = a;
        float r19686 = r19684 + r19685;
        float r19687 = sqrt(r19686);
        float r19688 = r19683 * r19687;
        float r19689 = r19688 / r19684;
        float r19690 = b;
        float r19691 = c;
        float r19692 = r19690 - r19691;
        float r19693 = 5.0f;
        float r19694 = 6.0f;
        float r19695 = r19693 / r19694;
        float r19696 = r19685 + r19695;
        float r19697 = 3.0f;
        float r19698 = r19684 * r19697;
        float r19699 = r19682 / r19698;
        float r19700 = r19696 - r19699;
        float r19701 = r19692 * r19700;
        float r19702 = r19689 - r19701;
        float r19703 = r19682 * r19702;
        float r19704 = exp(r19703);
        float r19705 = r19681 * r19704;
        float r19706 = r19680 + r19705;
        float r19707 = r19680 / r19706;
        return r19707;
}

double f_id(double x, double y, double z, double t, double a, double b, double c) {
        double r19708 = x;
        double r19709 = y;
        double r19710 = 2.0;
        double r19711 = z;
        double r19712 = t;
        double r19713 = a;
        double r19714 = r19712 + r19713;
        double r19715 = sqrt(r19714);
        double r19716 = r19711 * r19715;
        double r19717 = r19716 / r19712;
        double r19718 = b;
        double r19719 = c;
        double r19720 = r19718 - r19719;
        double r19721 = 5.0;
        double r19722 = 6.0;
        double r19723 = r19721 / r19722;
        double r19724 = r19713 + r19723;
        double r19725 = 3.0;
        double r19726 = r19712 * r19725;
        double r19727 = r19710 / r19726;
        double r19728 = r19724 - r19727;
        double r19729 = r19720 * r19728;
        double r19730 = r19717 - r19729;
        double r19731 = r19710 * r19730;
        double r19732 = exp(r19731);
        double r19733 = r19709 * r19732;
        double r19734 = r19708 + r19733;
        double r19735 = r19708 / r19734;
        return r19735;
}


double f_of(float x, float y, float z, float t, float a, float b, float c) {
        float r19736 = t;
        float r19737 = 2.237233773871134e-299f;
        bool r19738 = r19736 <= r19737;
        float r19739 = x;
        float r19740 = y;
        float r19741 = 2.0f;
        float r19742 = z;
        float r19743 = a;
        float r19744 = r19736 + r19743;
        float r19745 = sqrt(r19744);
        float r19746 = r19736 / r19745;
        float r19747 = r19742 / r19746;
        float r19748 = b;
        float r19749 = c;
        float r19750 = r19748 - r19749;
        float r19751 = 5.0f;
        float r19752 = 6.0f;
        float r19753 = r19751 / r19752;
        float r19754 = r19743 + r19753;
        float r19755 = 3.0f;
        float r19756 = r19736 * r19755;
        float r19757 = r19741 / r19756;
        float r19758 = r19754 - r19757;
        float r19759 = r19750 * r19758;
        float r19760 = r19747 - r19759;
        float r19761 = r19741 * r19760;
        float r19762 = exp(r19761);
        float r19763 = r19740 * r19762;
        float r19764 = r19739 + r19763;
        float r19765 = r19739 / r19764;
        float r19766 = 2.375652348111882e-175f;
        bool r19767 = r19736 <= r19766;
        float r19768 = r19755 * r19736;
        float r19769 = r19768 * r19745;
        float r19770 = r19743 - r19753;
        float r19771 = r19770 * r19742;
        float r19772 = r19769 * r19771;
        float r19773 = r19753 + r19743;
        float r19774 = r19768 * r19773;
        float r19775 = r19774 - r19741;
        float r19776 = r19770 * r19775;
        float r19777 = r19750 * r19736;
        float r19778 = r19776 * r19777;
        float r19779 = r19772 - r19778;
        float r19780 = r19770 * r19756;
        float r19781 = r19736 * r19780;
        float r19782 = r19779 / r19781;
        float r19783 = r19741 * r19782;
        float r19784 = exp(r19783);
        float r19785 = r19740 * r19784;
        float r19786 = r19739 + r19785;
        float r19787 = r19739 / r19786;
        float r19788 = r19767 ? r19787 : r19765;
        float r19789 = r19738 ? r19765 : r19788;
        return r19789;
}

double f_od(double x, double y, double z, double t, double a, double b, double c) {
        double r19790 = t;
        double r19791 = 2.237233773871134e-299;
        bool r19792 = r19790 <= r19791;
        double r19793 = x;
        double r19794 = y;
        double r19795 = 2.0;
        double r19796 = z;
        double r19797 = a;
        double r19798 = r19790 + r19797;
        double r19799 = sqrt(r19798);
        double r19800 = r19790 / r19799;
        double r19801 = r19796 / r19800;
        double r19802 = b;
        double r19803 = c;
        double r19804 = r19802 - r19803;
        double r19805 = 5.0;
        double r19806 = 6.0;
        double r19807 = r19805 / r19806;
        double r19808 = r19797 + r19807;
        double r19809 = 3.0;
        double r19810 = r19790 * r19809;
        double r19811 = r19795 / r19810;
        double r19812 = r19808 - r19811;
        double r19813 = r19804 * r19812;
        double r19814 = r19801 - r19813;
        double r19815 = r19795 * r19814;
        double r19816 = exp(r19815);
        double r19817 = r19794 * r19816;
        double r19818 = r19793 + r19817;
        double r19819 = r19793 / r19818;
        double r19820 = 2.375652348111882e-175;
        bool r19821 = r19790 <= r19820;
        double r19822 = r19809 * r19790;
        double r19823 = r19822 * r19799;
        double r19824 = r19797 - r19807;
        double r19825 = r19824 * r19796;
        double r19826 = r19823 * r19825;
        double r19827 = r19807 + r19797;
        double r19828 = r19822 * r19827;
        double r19829 = r19828 - r19795;
        double r19830 = r19824 * r19829;
        double r19831 = r19804 * r19790;
        double r19832 = r19830 * r19831;
        double r19833 = r19826 - r19832;
        double r19834 = r19824 * r19810;
        double r19835 = r19790 * r19834;
        double r19836 = r19833 / r19835;
        double r19837 = r19795 * r19836;
        double r19838 = exp(r19837);
        double r19839 = r19794 * r19838;
        double r19840 = r19793 + r19839;
        double r19841 = r19793 / r19840;
        double r19842 = r19821 ? r19841 : r19819;
        double r19843 = r19792 ? r19819 : r19842;
        return r19843;
}

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 r19844, r19845, r19846, r19847, r19848, r19849, r19850, r19851, r19852, r19853, r19854, r19855, r19856, r19857, r19858, r19859, r19860, r19861, r19862, r19863, r19864, r19865, r19866, r19867, r19868, r19869, r19870, r19871;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r19844);
        mpfr_init(r19845);
        mpfr_init_set_str(r19846, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19847);
        mpfr_init(r19848);
        mpfr_init(r19849);
        mpfr_init(r19850);
        mpfr_init(r19851);
        mpfr_init(r19852);
        mpfr_init(r19853);
        mpfr_init(r19854);
        mpfr_init(r19855);
        mpfr_init(r19856);
        mpfr_init_set_str(r19857, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r19858, "6.0", 10, MPFR_RNDN);
        mpfr_init(r19859);
        mpfr_init(r19860);
        mpfr_init_set_str(r19861, "3.0", 10, MPFR_RNDN);
        mpfr_init(r19862);
        mpfr_init(r19863);
        mpfr_init(r19864);
        mpfr_init(r19865);
        mpfr_init(r19866);
        mpfr_init(r19867);
        mpfr_init(r19868);
        mpfr_init(r19869);
        mpfr_init(r19870);
        mpfr_init(r19871);
}

double f_im(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r19844, x, MPFR_RNDN);
        mpfr_set_d(r19845, y, MPFR_RNDN);
        ;
        mpfr_set_d(r19847, z, MPFR_RNDN);
        mpfr_set_d(r19848, t, MPFR_RNDN);
        mpfr_set_d(r19849, a, MPFR_RNDN);
        mpfr_add(r19850, r19848, r19849, MPFR_RNDN);
        mpfr_sqrt(r19851, r19850, MPFR_RNDN);
        mpfr_mul(r19852, r19847, r19851, MPFR_RNDN);
        mpfr_div(r19853, r19852, r19848, MPFR_RNDN);
        mpfr_set_d(r19854, b, MPFR_RNDN);
        mpfr_set_d(r19855, c, MPFR_RNDN);
        mpfr_sub(r19856, r19854, r19855, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19859, r19857, r19858, MPFR_RNDN);
        mpfr_add(r19860, r19849, r19859, MPFR_RNDN);
        ;
        mpfr_mul(r19862, r19848, r19861, MPFR_RNDN);
        mpfr_div(r19863, r19846, r19862, MPFR_RNDN);
        mpfr_sub(r19864, r19860, r19863, MPFR_RNDN);
        mpfr_mul(r19865, r19856, r19864, MPFR_RNDN);
        mpfr_sub(r19866, r19853, r19865, MPFR_RNDN);
        mpfr_mul(r19867, r19846, r19866, MPFR_RNDN);
        mpfr_exp(r19868, r19867, MPFR_RNDN);
        mpfr_mul(r19869, r19845, r19868, MPFR_RNDN);
        mpfr_add(r19870, r19844, r19869, MPFR_RNDN);
        mpfr_div(r19871, r19844, r19870, MPFR_RNDN);
        return mpfr_get_d(r19871, MPFR_RNDN);
}

static mpfr_t r19872, r19873, r19874, r19875, r19876, r19877, r19878, r19879, r19880, r19881, r19882, r19883, r19884, r19885, r19886, r19887, r19888, r19889, r19890, r19891, r19892, r19893, r19894, r19895, r19896, r19897, r19898, r19899, r19900, r19901, r19902, r19903, r19904, r19905, r19906, r19907, r19908, r19909, r19910, r19911, r19912, r19913, r19914, r19915, r19916, r19917, r19918, r19919, r19920, r19921, r19922, r19923, r19924, r19925;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r19872);
        mpfr_init_set_str(r19873, "2.237233773871134e-299", 10, MPFR_RNDN);
        mpfr_init(r19874);
        mpfr_init(r19875);
        mpfr_init(r19876);
        mpfr_init_set_str(r19877, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19878);
        mpfr_init(r19879);
        mpfr_init(r19880);
        mpfr_init(r19881);
        mpfr_init(r19882);
        mpfr_init(r19883);
        mpfr_init(r19884);
        mpfr_init(r19885);
        mpfr_init(r19886);
        mpfr_init_set_str(r19887, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r19888, "6.0", 10, MPFR_RNDN);
        mpfr_init(r19889);
        mpfr_init(r19890);
        mpfr_init_set_str(r19891, "3.0", 10, MPFR_RNDN);
        mpfr_init(r19892);
        mpfr_init(r19893);
        mpfr_init(r19894);
        mpfr_init(r19895);
        mpfr_init(r19896);
        mpfr_init(r19897);
        mpfr_init(r19898);
        mpfr_init(r19899);
        mpfr_init(r19900);
        mpfr_init(r19901);
        mpfr_init_set_str(r19902, "2.375652348111882e-175", 10, MPFR_RNDN);
        mpfr_init(r19903);
        mpfr_init(r19904);
        mpfr_init(r19905);
        mpfr_init(r19906);
        mpfr_init(r19907);
        mpfr_init(r19908);
        mpfr_init(r19909);
        mpfr_init(r19910);
        mpfr_init(r19911);
        mpfr_init(r19912);
        mpfr_init(r19913);
        mpfr_init(r19914);
        mpfr_init(r19915);
        mpfr_init(r19916);
        mpfr_init(r19917);
        mpfr_init(r19918);
        mpfr_init(r19919);
        mpfr_init(r19920);
        mpfr_init(r19921);
        mpfr_init(r19922);
        mpfr_init(r19923);
        mpfr_init(r19924);
        mpfr_init(r19925);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r19872, t, MPFR_RNDN);
        ;
        mpfr_set_si(r19874, mpfr_cmp(r19872, r19873) <= 0, MPFR_RNDN);
        mpfr_set_d(r19875, x, MPFR_RNDN);
        mpfr_set_d(r19876, y, MPFR_RNDN);
        ;
        mpfr_set_d(r19878, z, MPFR_RNDN);
        mpfr_set_d(r19879, a, MPFR_RNDN);
        mpfr_add(r19880, r19872, r19879, MPFR_RNDN);
        mpfr_sqrt(r19881, r19880, MPFR_RNDN);
        mpfr_div(r19882, r19872, r19881, MPFR_RNDN);
        mpfr_div(r19883, r19878, r19882, MPFR_RNDN);
        mpfr_set_d(r19884, b, MPFR_RNDN);
        mpfr_set_d(r19885, c, MPFR_RNDN);
        mpfr_sub(r19886, r19884, r19885, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19889, r19887, r19888, MPFR_RNDN);
        mpfr_add(r19890, r19879, r19889, MPFR_RNDN);
        ;
        mpfr_mul(r19892, r19872, r19891, MPFR_RNDN);
        mpfr_div(r19893, r19877, r19892, MPFR_RNDN);
        mpfr_sub(r19894, r19890, r19893, MPFR_RNDN);
        mpfr_mul(r19895, r19886, r19894, MPFR_RNDN);
        mpfr_sub(r19896, r19883, r19895, MPFR_RNDN);
        mpfr_mul(r19897, r19877, r19896, MPFR_RNDN);
        mpfr_exp(r19898, r19897, MPFR_RNDN);
        mpfr_mul(r19899, r19876, r19898, MPFR_RNDN);
        mpfr_add(r19900, r19875, r19899, MPFR_RNDN);
        mpfr_div(r19901, r19875, r19900, MPFR_RNDN);
        ;
        mpfr_set_si(r19903, mpfr_cmp(r19872, r19902) <= 0, MPFR_RNDN);
        mpfr_mul(r19904, r19891, r19872, MPFR_RNDN);
        mpfr_mul(r19905, r19904, r19881, MPFR_RNDN);
        mpfr_sub(r19906, r19879, r19889, MPFR_RNDN);
        mpfr_mul(r19907, r19906, r19878, MPFR_RNDN);
        mpfr_mul(r19908, r19905, r19907, MPFR_RNDN);
        mpfr_add(r19909, r19889, r19879, MPFR_RNDN);
        mpfr_mul(r19910, r19904, r19909, MPFR_RNDN);
        mpfr_sub(r19911, r19910, r19877, MPFR_RNDN);
        mpfr_mul(r19912, r19906, r19911, MPFR_RNDN);
        mpfr_mul(r19913, r19886, r19872, MPFR_RNDN);
        mpfr_mul(r19914, r19912, r19913, MPFR_RNDN);
        mpfr_sub(r19915, r19908, r19914, MPFR_RNDN);
        mpfr_mul(r19916, r19906, r19892, MPFR_RNDN);
        mpfr_mul(r19917, r19872, r19916, MPFR_RNDN);
        mpfr_div(r19918, r19915, r19917, MPFR_RNDN);
        mpfr_mul(r19919, r19877, r19918, MPFR_RNDN);
        mpfr_exp(r19920, r19919, MPFR_RNDN);
        mpfr_mul(r19921, r19876, r19920, MPFR_RNDN);
        mpfr_add(r19922, r19875, r19921, MPFR_RNDN);
        mpfr_div(r19923, r19875, r19922, MPFR_RNDN);
        if (mpfr_get_si(r19903, MPFR_RNDN)) { mpfr_set(r19924, r19923, MPFR_RNDN); } else { mpfr_set(r19924, r19901, MPFR_RNDN); };
        if (mpfr_get_si(r19874, MPFR_RNDN)) { mpfr_set(r19925, r19901, MPFR_RNDN); } else { mpfr_set(r19925, r19924, MPFR_RNDN); };
        return mpfr_get_d(r19925, MPFR_RNDN);
}

static mpfr_t r19926, r19927, r19928, r19929, r19930, r19931, r19932, r19933, r19934, r19935, r19936, r19937, r19938, r19939, r19940, r19941, r19942, r19943, r19944, r19945, r19946, r19947, r19948, r19949, r19950, r19951, r19952, r19953, r19954, r19955, r19956, r19957, r19958, r19959, r19960, r19961, r19962, r19963, r19964, r19965, r19966, r19967, r19968, r19969, r19970, r19971, r19972, r19973, r19974, r19975, r19976, r19977, r19978, r19979;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r19926);
        mpfr_init_set_str(r19927, "2.237233773871134e-299", 10, MPFR_RNDN);
        mpfr_init(r19928);
        mpfr_init(r19929);
        mpfr_init(r19930);
        mpfr_init_set_str(r19931, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19932);
        mpfr_init(r19933);
        mpfr_init(r19934);
        mpfr_init(r19935);
        mpfr_init(r19936);
        mpfr_init(r19937);
        mpfr_init(r19938);
        mpfr_init(r19939);
        mpfr_init(r19940);
        mpfr_init_set_str(r19941, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r19942, "6.0", 10, MPFR_RNDN);
        mpfr_init(r19943);
        mpfr_init(r19944);
        mpfr_init_set_str(r19945, "3.0", 10, MPFR_RNDN);
        mpfr_init(r19946);
        mpfr_init(r19947);
        mpfr_init(r19948);
        mpfr_init(r19949);
        mpfr_init(r19950);
        mpfr_init(r19951);
        mpfr_init(r19952);
        mpfr_init(r19953);
        mpfr_init(r19954);
        mpfr_init(r19955);
        mpfr_init_set_str(r19956, "2.375652348111882e-175", 10, MPFR_RNDN);
        mpfr_init(r19957);
        mpfr_init(r19958);
        mpfr_init(r19959);
        mpfr_init(r19960);
        mpfr_init(r19961);
        mpfr_init(r19962);
        mpfr_init(r19963);
        mpfr_init(r19964);
        mpfr_init(r19965);
        mpfr_init(r19966);
        mpfr_init(r19967);
        mpfr_init(r19968);
        mpfr_init(r19969);
        mpfr_init(r19970);
        mpfr_init(r19971);
        mpfr_init(r19972);
        mpfr_init(r19973);
        mpfr_init(r19974);
        mpfr_init(r19975);
        mpfr_init(r19976);
        mpfr_init(r19977);
        mpfr_init(r19978);
        mpfr_init(r19979);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r19926, t, MPFR_RNDN);
        ;
        mpfr_set_si(r19928, mpfr_cmp(r19926, r19927) <= 0, MPFR_RNDN);
        mpfr_set_d(r19929, x, MPFR_RNDN);
        mpfr_set_d(r19930, y, MPFR_RNDN);
        ;
        mpfr_set_d(r19932, z, MPFR_RNDN);
        mpfr_set_d(r19933, a, MPFR_RNDN);
        mpfr_add(r19934, r19926, r19933, MPFR_RNDN);
        mpfr_sqrt(r19935, r19934, MPFR_RNDN);
        mpfr_div(r19936, r19926, r19935, MPFR_RNDN);
        mpfr_div(r19937, r19932, r19936, MPFR_RNDN);
        mpfr_set_d(r19938, b, MPFR_RNDN);
        mpfr_set_d(r19939, c, MPFR_RNDN);
        mpfr_sub(r19940, r19938, r19939, MPFR_RNDN);
        ;
        ;
        mpfr_div(r19943, r19941, r19942, MPFR_RNDN);
        mpfr_add(r19944, r19933, r19943, MPFR_RNDN);
        ;
        mpfr_mul(r19946, r19926, r19945, MPFR_RNDN);
        mpfr_div(r19947, r19931, r19946, MPFR_RNDN);
        mpfr_sub(r19948, r19944, r19947, MPFR_RNDN);
        mpfr_mul(r19949, r19940, r19948, MPFR_RNDN);
        mpfr_sub(r19950, r19937, r19949, MPFR_RNDN);
        mpfr_mul(r19951, r19931, r19950, MPFR_RNDN);
        mpfr_exp(r19952, r19951, MPFR_RNDN);
        mpfr_mul(r19953, r19930, r19952, MPFR_RNDN);
        mpfr_add(r19954, r19929, r19953, MPFR_RNDN);
        mpfr_div(r19955, r19929, r19954, MPFR_RNDN);
        ;
        mpfr_set_si(r19957, mpfr_cmp(r19926, r19956) <= 0, MPFR_RNDN);
        mpfr_mul(r19958, r19945, r19926, MPFR_RNDN);
        mpfr_mul(r19959, r19958, r19935, MPFR_RNDN);
        mpfr_sub(r19960, r19933, r19943, MPFR_RNDN);
        mpfr_mul(r19961, r19960, r19932, MPFR_RNDN);
        mpfr_mul(r19962, r19959, r19961, MPFR_RNDN);
        mpfr_add(r19963, r19943, r19933, MPFR_RNDN);
        mpfr_mul(r19964, r19958, r19963, MPFR_RNDN);
        mpfr_sub(r19965, r19964, r19931, MPFR_RNDN);
        mpfr_mul(r19966, r19960, r19965, MPFR_RNDN);
        mpfr_mul(r19967, r19940, r19926, MPFR_RNDN);
        mpfr_mul(r19968, r19966, r19967, MPFR_RNDN);
        mpfr_sub(r19969, r19962, r19968, MPFR_RNDN);
        mpfr_mul(r19970, r19960, r19946, MPFR_RNDN);
        mpfr_mul(r19971, r19926, r19970, MPFR_RNDN);
        mpfr_div(r19972, r19969, r19971, MPFR_RNDN);
        mpfr_mul(r19973, r19931, r19972, MPFR_RNDN);
        mpfr_exp(r19974, r19973, MPFR_RNDN);
        mpfr_mul(r19975, r19930, r19974, MPFR_RNDN);
        mpfr_add(r19976, r19929, r19975, MPFR_RNDN);
        mpfr_div(r19977, r19929, r19976, MPFR_RNDN);
        if (mpfr_get_si(r19957, MPFR_RNDN)) { mpfr_set(r19978, r19977, MPFR_RNDN); } else { mpfr_set(r19978, r19955, MPFR_RNDN); };
        if (mpfr_get_si(r19928, MPFR_RNDN)) { mpfr_set(r19979, r19955, MPFR_RNDN); } else { mpfr_set(r19979, r19978, MPFR_RNDN); };
        return mpfr_get_d(r19979, MPFR_RNDN);
}

