#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 r25655 = x;
        float r25656 = y;
        float r25657 = 2.0;
        float r25658 = z;
        float r25659 = t;
        float r25660 = a;
        float r25661 = r25659 + r25660;
        float r25662 = sqrt(r25661);
        float r25663 = r25658 * r25662;
        float r25664 = r25663 / r25659;
        float r25665 = b;
        float r25666 = c;
        float r25667 = r25665 - r25666;
        float r25668 = 5.0;
        float r25669 = 6.0;
        float r25670 = r25668 / r25669;
        float r25671 = r25660 + r25670;
        float r25672 = 3.0;
        float r25673 = r25659 * r25672;
        float r25674 = r25657 / r25673;
        float r25675 = r25671 - r25674;
        float r25676 = r25667 * r25675;
        float r25677 = r25664 - r25676;
        float r25678 = r25657 * r25677;
        float r25679 = exp(r25678);
        float r25680 = r25656 * r25679;
        float r25681 = r25655 + r25680;
        float r25682 = r25655 / r25681;
        return r25682;
}

double f_id(double x, double y, double z, double t, double a, double b, double c) {
        double r25683 = x;
        double r25684 = y;
        double r25685 = 2.0;
        double r25686 = z;
        double r25687 = t;
        double r25688 = a;
        double r25689 = r25687 + r25688;
        double r25690 = sqrt(r25689);
        double r25691 = r25686 * r25690;
        double r25692 = r25691 / r25687;
        double r25693 = b;
        double r25694 = c;
        double r25695 = r25693 - r25694;
        double r25696 = 5.0;
        double r25697 = 6.0;
        double r25698 = r25696 / r25697;
        double r25699 = r25688 + r25698;
        double r25700 = 3.0;
        double r25701 = r25687 * r25700;
        double r25702 = r25685 / r25701;
        double r25703 = r25699 - r25702;
        double r25704 = r25695 * r25703;
        double r25705 = r25692 - r25704;
        double r25706 = r25685 * r25705;
        double r25707 = exp(r25706);
        double r25708 = r25684 * r25707;
        double r25709 = r25683 + r25708;
        double r25710 = r25683 / r25709;
        return r25710;
}


double f_of(float x, float y, float z, float t, float a, float b, float c) {
        float r25711 = t;
        float r25712 = -7.376510151393317e-101;
        bool r25713 = r25711 <= r25712;
        float r25714 = 4.804327445905922e-184;
        bool r25715 = r25711 <= r25714;
        float r25716 = !r25715;
        bool r25717 = r25713 || r25716;
        float r25718 = x;
        float r25719 = y;
        float r25720 = 2.0;
        float r25721 = z;
        float r25722 = a;
        float r25723 = r25711 + r25722;
        float r25724 = sqrt(r25723);
        float r25725 = r25711 / r25724;
        float r25726 = r25721 / r25725;
        float r25727 = b;
        float r25728 = c;
        float r25729 = r25727 - r25728;
        float r25730 = 5.0;
        float r25731 = 6.0;
        float r25732 = r25730 / r25731;
        float r25733 = r25722 + r25732;
        float r25734 = 3.0;
        float r25735 = r25711 * r25734;
        float r25736 = r25720 / r25735;
        float r25737 = r25733 - r25736;
        float r25738 = r25729 * r25737;
        float r25739 = r25726 - r25738;
        float r25740 = r25720 * r25739;
        float r25741 = exp(r25740);
        float r25742 = r25719 * r25741;
        float r25743 = r25718 + r25742;
        float r25744 = r25718 / r25743;
        float r25745 = r25722 - r25732;
        float r25746 = r25721 * r25735;
        float r25747 = r25745 * r25746;
        float r25748 = r25733 * r25735;
        float r25749 = r25748 - r25720;
        float r25750 = r25745 * r25749;
        float r25751 = r25729 * r25711;
        float r25752 = r25751 / r25724;
        float r25753 = r25750 * r25752;
        float r25754 = r25747 - r25753;
        float r25755 = r25745 * r25735;
        float r25756 = r25725 * r25755;
        float r25757 = r25754 / r25756;
        float r25758 = r25720 * r25757;
        float r25759 = exp(r25758);
        float r25760 = r25759 * r25719;
        float r25761 = r25718 + r25760;
        float r25762 = r25718 / r25761;
        float r25763 = r25717 ? r25744 : r25762;
        return r25763;
}

double f_od(double x, double y, double z, double t, double a, double b, double c) {
        double r25764 = t;
        double r25765 = -7.376510151393317e-101;
        bool r25766 = r25764 <= r25765;
        double r25767 = 4.804327445905922e-184;
        bool r25768 = r25764 <= r25767;
        double r25769 = !r25768;
        bool r25770 = r25766 || r25769;
        double r25771 = x;
        double r25772 = y;
        double r25773 = 2.0;
        double r25774 = z;
        double r25775 = a;
        double r25776 = r25764 + r25775;
        double r25777 = sqrt(r25776);
        double r25778 = r25764 / r25777;
        double r25779 = r25774 / r25778;
        double r25780 = b;
        double r25781 = c;
        double r25782 = r25780 - r25781;
        double r25783 = 5.0;
        double r25784 = 6.0;
        double r25785 = r25783 / r25784;
        double r25786 = r25775 + r25785;
        double r25787 = 3.0;
        double r25788 = r25764 * r25787;
        double r25789 = r25773 / r25788;
        double r25790 = r25786 - r25789;
        double r25791 = r25782 * r25790;
        double r25792 = r25779 - r25791;
        double r25793 = r25773 * r25792;
        double r25794 = exp(r25793);
        double r25795 = r25772 * r25794;
        double r25796 = r25771 + r25795;
        double r25797 = r25771 / r25796;
        double r25798 = r25775 - r25785;
        double r25799 = r25774 * r25788;
        double r25800 = r25798 * r25799;
        double r25801 = r25786 * r25788;
        double r25802 = r25801 - r25773;
        double r25803 = r25798 * r25802;
        double r25804 = r25782 * r25764;
        double r25805 = r25804 / r25777;
        double r25806 = r25803 * r25805;
        double r25807 = r25800 - r25806;
        double r25808 = r25798 * r25788;
        double r25809 = r25778 * r25808;
        double r25810 = r25807 / r25809;
        double r25811 = r25773 * r25810;
        double r25812 = exp(r25811);
        double r25813 = r25812 * r25772;
        double r25814 = r25771 + r25813;
        double r25815 = r25771 / r25814;
        double r25816 = r25770 ? r25797 : r25815;
        return r25816;
}

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 r25817, r25818, r25819, r25820, r25821, r25822, r25823, r25824, r25825, r25826, r25827, r25828, r25829, r25830, r25831, r25832, r25833, r25834, r25835, r25836, r25837, r25838, r25839, r25840, r25841, r25842, r25843, r25844;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r25817);
        mpfr_init(r25818);
        mpfr_init_set_str(r25819, "2.0", 10, MPFR_RNDN);
        mpfr_init(r25820);
        mpfr_init(r25821);
        mpfr_init(r25822);
        mpfr_init(r25823);
        mpfr_init(r25824);
        mpfr_init(r25825);
        mpfr_init(r25826);
        mpfr_init(r25827);
        mpfr_init(r25828);
        mpfr_init(r25829);
        mpfr_init_set_str(r25830, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r25831, "6.0", 10, MPFR_RNDN);
        mpfr_init(r25832);
        mpfr_init(r25833);
        mpfr_init_set_str(r25834, "3.0", 10, MPFR_RNDN);
        mpfr_init(r25835);
        mpfr_init(r25836);
        mpfr_init(r25837);
        mpfr_init(r25838);
        mpfr_init(r25839);
        mpfr_init(r25840);
        mpfr_init(r25841);
        mpfr_init(r25842);
        mpfr_init(r25843);
        mpfr_init(r25844);
}

double f_im(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r25817, x, MPFR_RNDN);
        mpfr_set_d(r25818, y, MPFR_RNDN);
        ;
        mpfr_set_d(r25820, z, MPFR_RNDN);
        mpfr_set_d(r25821, t, MPFR_RNDN);
        mpfr_set_d(r25822, a, MPFR_RNDN);
        mpfr_add(r25823, r25821, r25822, MPFR_RNDN);
        mpfr_sqrt(r25824, r25823, MPFR_RNDN);
        mpfr_mul(r25825, r25820, r25824, MPFR_RNDN);
        mpfr_div(r25826, r25825, r25821, MPFR_RNDN);
        mpfr_set_d(r25827, b, MPFR_RNDN);
        mpfr_set_d(r25828, c, MPFR_RNDN);
        mpfr_sub(r25829, r25827, r25828, MPFR_RNDN);
        ;
        ;
        mpfr_div(r25832, r25830, r25831, MPFR_RNDN);
        mpfr_add(r25833, r25822, r25832, MPFR_RNDN);
        ;
        mpfr_mul(r25835, r25821, r25834, MPFR_RNDN);
        mpfr_div(r25836, r25819, r25835, MPFR_RNDN);
        mpfr_sub(r25837, r25833, r25836, MPFR_RNDN);
        mpfr_mul(r25838, r25829, r25837, MPFR_RNDN);
        mpfr_sub(r25839, r25826, r25838, MPFR_RNDN);
        mpfr_mul(r25840, r25819, r25839, MPFR_RNDN);
        mpfr_exp(r25841, r25840, MPFR_RNDN);
        mpfr_mul(r25842, r25818, r25841, MPFR_RNDN);
        mpfr_add(r25843, r25817, r25842, MPFR_RNDN);
        mpfr_div(r25844, r25817, r25843, MPFR_RNDN);
        return mpfr_get_d(r25844, MPFR_RNDN);
}

static mpfr_t r25845, r25846, r25847, r25848, r25849, r25850, r25851, r25852, r25853, r25854, r25855, r25856, r25857, r25858, r25859, r25860, r25861, r25862, r25863, r25864, r25865, r25866, r25867, r25868, r25869, r25870, r25871, r25872, r25873, r25874, r25875, r25876, r25877, r25878, r25879, r25880, r25881, r25882, r25883, r25884, r25885, r25886, r25887, r25888, r25889, r25890, r25891, r25892, r25893, r25894, r25895, r25896, r25897;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r25845);
        mpfr_init_set_str(r25846, "-7.376510151393317e-101", 10, MPFR_RNDN);
        mpfr_init(r25847);
        mpfr_init_set_str(r25848, "4.804327445905922e-184", 10, MPFR_RNDN);
        mpfr_init(r25849);
        mpfr_init(r25850);
        mpfr_init(r25851);
        mpfr_init(r25852);
        mpfr_init(r25853);
        mpfr_init_set_str(r25854, "2.0", 10, MPFR_RNDN);
        mpfr_init(r25855);
        mpfr_init(r25856);
        mpfr_init(r25857);
        mpfr_init(r25858);
        mpfr_init(r25859);
        mpfr_init(r25860);
        mpfr_init(r25861);
        mpfr_init(r25862);
        mpfr_init(r25863);
        mpfr_init_set_str(r25864, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r25865, "6.0", 10, MPFR_RNDN);
        mpfr_init(r25866);
        mpfr_init(r25867);
        mpfr_init_set_str(r25868, "3.0", 10, MPFR_RNDN);
        mpfr_init(r25869);
        mpfr_init(r25870);
        mpfr_init(r25871);
        mpfr_init(r25872);
        mpfr_init(r25873);
        mpfr_init(r25874);
        mpfr_init(r25875);
        mpfr_init(r25876);
        mpfr_init(r25877);
        mpfr_init(r25878);
        mpfr_init(r25879);
        mpfr_init(r25880);
        mpfr_init(r25881);
        mpfr_init(r25882);
        mpfr_init(r25883);
        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);
        mpfr_init(r25894);
        mpfr_init(r25895);
        mpfr_init(r25896);
        mpfr_init(r25897);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r25845, t, MPFR_RNDN);
        ;
        mpfr_set_si(r25847, mpfr_cmp(r25845, r25846) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r25849, mpfr_cmp(r25845, r25848) <= 0, MPFR_RNDN);
        mpfr_set_si(r25850, !mpfr_get_si(r25849, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r25851, mpfr_get_si(r25847, MPFR_RNDN) || mpfr_get_si(r25850, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r25852, x, MPFR_RNDN);
        mpfr_set_d(r25853, y, MPFR_RNDN);
        ;
        mpfr_set_d(r25855, z, MPFR_RNDN);
        mpfr_set_d(r25856, a, MPFR_RNDN);
        mpfr_add(r25857, r25845, r25856, MPFR_RNDN);
        mpfr_sqrt(r25858, r25857, MPFR_RNDN);
        mpfr_div(r25859, r25845, r25858, MPFR_RNDN);
        mpfr_div(r25860, r25855, r25859, MPFR_RNDN);
        mpfr_set_d(r25861, b, MPFR_RNDN);
        mpfr_set_d(r25862, c, MPFR_RNDN);
        mpfr_sub(r25863, r25861, r25862, MPFR_RNDN);
        ;
        ;
        mpfr_div(r25866, r25864, r25865, MPFR_RNDN);
        mpfr_add(r25867, r25856, r25866, MPFR_RNDN);
        ;
        mpfr_mul(r25869, r25845, r25868, MPFR_RNDN);
        mpfr_div(r25870, r25854, r25869, MPFR_RNDN);
        mpfr_sub(r25871, r25867, r25870, MPFR_RNDN);
        mpfr_mul(r25872, r25863, r25871, MPFR_RNDN);
        mpfr_sub(r25873, r25860, r25872, MPFR_RNDN);
        mpfr_mul(r25874, r25854, r25873, MPFR_RNDN);
        mpfr_exp(r25875, r25874, MPFR_RNDN);
        mpfr_mul(r25876, r25853, r25875, MPFR_RNDN);
        mpfr_add(r25877, r25852, r25876, MPFR_RNDN);
        mpfr_div(r25878, r25852, r25877, MPFR_RNDN);
        mpfr_sub(r25879, r25856, r25866, MPFR_RNDN);
        mpfr_mul(r25880, r25855, r25869, MPFR_RNDN);
        mpfr_mul(r25881, r25879, r25880, MPFR_RNDN);
        mpfr_mul(r25882, r25867, r25869, MPFR_RNDN);
        mpfr_sub(r25883, r25882, r25854, MPFR_RNDN);
        mpfr_mul(r25884, r25879, r25883, MPFR_RNDN);
        mpfr_mul(r25885, r25863, r25845, MPFR_RNDN);
        mpfr_div(r25886, r25885, r25858, MPFR_RNDN);
        mpfr_mul(r25887, r25884, r25886, MPFR_RNDN);
        mpfr_sub(r25888, r25881, r25887, MPFR_RNDN);
        mpfr_mul(r25889, r25879, r25869, MPFR_RNDN);
        mpfr_mul(r25890, r25859, r25889, MPFR_RNDN);
        mpfr_div(r25891, r25888, r25890, MPFR_RNDN);
        mpfr_mul(r25892, r25854, r25891, MPFR_RNDN);
        mpfr_exp(r25893, r25892, MPFR_RNDN);
        mpfr_mul(r25894, r25893, r25853, MPFR_RNDN);
        mpfr_add(r25895, r25852, r25894, MPFR_RNDN);
        mpfr_div(r25896, r25852, r25895, MPFR_RNDN);
        if (mpfr_get_si(r25851, MPFR_RNDN)) { mpfr_set(r25897, r25878, MPFR_RNDN); } else { mpfr_set(r25897, r25896, MPFR_RNDN); };
        return mpfr_get_d(r25897, MPFR_RNDN);
}

static mpfr_t 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, r25937, r25938, r25939, r25940, r25941, r25942, r25943, r25944, r25945, r25946, r25947, r25948, r25949, r25950;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r25898);
        mpfr_init_set_str(r25899, "-7.376510151393317e-101", 10, MPFR_RNDN);
        mpfr_init(r25900);
        mpfr_init_set_str(r25901, "4.804327445905922e-184", 10, MPFR_RNDN);
        mpfr_init(r25902);
        mpfr_init(r25903);
        mpfr_init(r25904);
        mpfr_init(r25905);
        mpfr_init(r25906);
        mpfr_init_set_str(r25907, "2.0", 10, MPFR_RNDN);
        mpfr_init(r25908);
        mpfr_init(r25909);
        mpfr_init(r25910);
        mpfr_init(r25911);
        mpfr_init(r25912);
        mpfr_init(r25913);
        mpfr_init(r25914);
        mpfr_init(r25915);
        mpfr_init(r25916);
        mpfr_init_set_str(r25917, "5.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r25918, "6.0", 10, MPFR_RNDN);
        mpfr_init(r25919);
        mpfr_init(r25920);
        mpfr_init_set_str(r25921, "3.0", 10, MPFR_RNDN);
        mpfr_init(r25922);
        mpfr_init(r25923);
        mpfr_init(r25924);
        mpfr_init(r25925);
        mpfr_init(r25926);
        mpfr_init(r25927);
        mpfr_init(r25928);
        mpfr_init(r25929);
        mpfr_init(r25930);
        mpfr_init(r25931);
        mpfr_init(r25932);
        mpfr_init(r25933);
        mpfr_init(r25934);
        mpfr_init(r25935);
        mpfr_init(r25936);
        mpfr_init(r25937);
        mpfr_init(r25938);
        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(r25947);
        mpfr_init(r25948);
        mpfr_init(r25949);
        mpfr_init(r25950);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c) {
        mpfr_set_d(r25898, t, MPFR_RNDN);
        ;
        mpfr_set_si(r25900, mpfr_cmp(r25898, r25899) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r25902, mpfr_cmp(r25898, r25901) <= 0, MPFR_RNDN);
        mpfr_set_si(r25903, !mpfr_get_si(r25902, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r25904, mpfr_get_si(r25900, MPFR_RNDN) || mpfr_get_si(r25903, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r25905, x, MPFR_RNDN);
        mpfr_set_d(r25906, y, MPFR_RNDN);
        ;
        mpfr_set_d(r25908, z, MPFR_RNDN);
        mpfr_set_d(r25909, a, MPFR_RNDN);
        mpfr_add(r25910, r25898, r25909, MPFR_RNDN);
        mpfr_sqrt(r25911, r25910, MPFR_RNDN);
        mpfr_div(r25912, r25898, r25911, MPFR_RNDN);
        mpfr_div(r25913, r25908, r25912, MPFR_RNDN);
        mpfr_set_d(r25914, b, MPFR_RNDN);
        mpfr_set_d(r25915, c, MPFR_RNDN);
        mpfr_sub(r25916, r25914, r25915, MPFR_RNDN);
        ;
        ;
        mpfr_div(r25919, r25917, r25918, MPFR_RNDN);
        mpfr_add(r25920, r25909, r25919, MPFR_RNDN);
        ;
        mpfr_mul(r25922, r25898, r25921, MPFR_RNDN);
        mpfr_div(r25923, r25907, r25922, MPFR_RNDN);
        mpfr_sub(r25924, r25920, r25923, MPFR_RNDN);
        mpfr_mul(r25925, r25916, r25924, MPFR_RNDN);
        mpfr_sub(r25926, r25913, r25925, MPFR_RNDN);
        mpfr_mul(r25927, r25907, r25926, MPFR_RNDN);
        mpfr_exp(r25928, r25927, MPFR_RNDN);
        mpfr_mul(r25929, r25906, r25928, MPFR_RNDN);
        mpfr_add(r25930, r25905, r25929, MPFR_RNDN);
        mpfr_div(r25931, r25905, r25930, MPFR_RNDN);
        mpfr_sub(r25932, r25909, r25919, MPFR_RNDN);
        mpfr_mul(r25933, r25908, r25922, MPFR_RNDN);
        mpfr_mul(r25934, r25932, r25933, MPFR_RNDN);
        mpfr_mul(r25935, r25920, r25922, MPFR_RNDN);
        mpfr_sub(r25936, r25935, r25907, MPFR_RNDN);
        mpfr_mul(r25937, r25932, r25936, MPFR_RNDN);
        mpfr_mul(r25938, r25916, r25898, MPFR_RNDN);
        mpfr_div(r25939, r25938, r25911, MPFR_RNDN);
        mpfr_mul(r25940, r25937, r25939, MPFR_RNDN);
        mpfr_sub(r25941, r25934, r25940, MPFR_RNDN);
        mpfr_mul(r25942, r25932, r25922, MPFR_RNDN);
        mpfr_mul(r25943, r25912, r25942, MPFR_RNDN);
        mpfr_div(r25944, r25941, r25943, MPFR_RNDN);
        mpfr_mul(r25945, r25907, r25944, MPFR_RNDN);
        mpfr_exp(r25946, r25945, MPFR_RNDN);
        mpfr_mul(r25947, r25946, r25906, MPFR_RNDN);
        mpfr_add(r25948, r25905, r25947, MPFR_RNDN);
        mpfr_div(r25949, r25905, r25948, MPFR_RNDN);
        if (mpfr_get_si(r25904, MPFR_RNDN)) { mpfr_set(r25950, r25931, MPFR_RNDN); } else { mpfr_set(r25950, r25949, MPFR_RNDN); };
        return mpfr_get_d(r25950, MPFR_RNDN);
}

