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

double f_if(float x, float y, float z) {
        float r43812 = x;
        float r43813 = y;
        float r43814 = z;
        float r43815 = r43814 + r43813;
        float r43816 = r43813 / r43815;
        float r43817 = log(r43816);
        float r43818 = r43813 * r43817;
        float r43819 = exp(r43818);
        float r43820 = r43819 / r43813;
        float r43821 = r43812 + r43820;
        return r43821;
}

double f_id(double x, double y, double z) {
        double r43822 = x;
        double r43823 = y;
        double r43824 = z;
        double r43825 = r43824 + r43823;
        double r43826 = r43823 / r43825;
        double r43827 = log(r43826);
        double r43828 = r43823 * r43827;
        double r43829 = exp(r43828);
        double r43830 = r43829 / r43823;
        double r43831 = r43822 + r43830;
        return r43831;
}


double f_of(float x, float y, float z) {
        float r43832 = y;
        float r43833 = z;
        float r43834 = r43833 + r43832;
        float r43835 = r43832 / r43834;
        float r43836 = 0.0;
        bool r43837 = r43835 <= r43836;
        float r43838 = 1;
        float r43839 = r43838 / r43833;
        float r43840 = -r43839;
        float r43841 = exp(r43840);
        float r43842 = r43841 / r43832;
        float r43843 = x;
        float r43844 = r43842 + r43843;
        float r43845 = pow(r43835, r43832);
        float r43846 = 3;
        float r43847 = pow(r43845, r43846);
        float r43848 = cbrt(r43847);
        float r43849 = r43848 / r43832;
        float r43850 = r43849 + r43843;
        float r43851 = r43837 ? r43844 : r43850;
        return r43851;
}

double f_od(double x, double y, double z) {
        double r43852 = y;
        double r43853 = z;
        double r43854 = r43853 + r43852;
        double r43855 = r43852 / r43854;
        double r43856 = 0.0;
        bool r43857 = r43855 <= r43856;
        double r43858 = 1;
        double r43859 = r43858 / r43853;
        double r43860 = -r43859;
        double r43861 = exp(r43860);
        double r43862 = r43861 / r43852;
        double r43863 = x;
        double r43864 = r43862 + r43863;
        double r43865 = pow(r43855, r43852);
        double r43866 = 3;
        double r43867 = pow(r43865, r43866);
        double r43868 = cbrt(r43867);
        double r43869 = r43868 / r43852;
        double r43870 = r43869 + r43863;
        double r43871 = r43857 ? r43864 : r43870;
        return r43871;
}

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 r43872, r43873, r43874, r43875, r43876, r43877, r43878, r43879, r43880, r43881;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r43872);
        mpfr_init(r43873);
        mpfr_init(r43874);
        mpfr_init(r43875);
        mpfr_init(r43876);
        mpfr_init(r43877);
        mpfr_init(r43878);
        mpfr_init(r43879);
        mpfr_init(r43880);
        mpfr_init(r43881);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r43872, x, MPFR_RNDN);
        mpfr_set_d(r43873, y, MPFR_RNDN);
        mpfr_set_d(r43874, z, MPFR_RNDN);
        mpfr_add(r43875, r43874, r43873, MPFR_RNDN);
        mpfr_div(r43876, r43873, r43875, MPFR_RNDN);
        mpfr_log(r43877, r43876, MPFR_RNDN);
        mpfr_mul(r43878, r43873, r43877, MPFR_RNDN);
        mpfr_exp(r43879, r43878, MPFR_RNDN);
        mpfr_div(r43880, r43879, r43873, MPFR_RNDN);
        mpfr_add(r43881, r43872, r43880, MPFR_RNDN);
        return mpfr_get_d(r43881, MPFR_RNDN);
}

static mpfr_t r43882, r43883, r43884, r43885, r43886, r43887, r43888, r43889, r43890, r43891, r43892, r43893, r43894, r43895, r43896, r43897, r43898, r43899, r43900, r43901;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r43882);
        mpfr_init(r43883);
        mpfr_init(r43884);
        mpfr_init(r43885);
        mpfr_init_set_str(r43886, "0.0", 10, MPFR_RNDN);
        mpfr_init(r43887);
        mpfr_init_set_str(r43888, "1", 10, MPFR_RNDN);
        mpfr_init(r43889);
        mpfr_init(r43890);
        mpfr_init(r43891);
        mpfr_init(r43892);
        mpfr_init(r43893);
        mpfr_init(r43894);
        mpfr_init(r43895);
        mpfr_init_set_str(r43896, "3", 10, MPFR_RNDN);
        mpfr_init(r43897);
        mpfr_init(r43898);
        mpfr_init(r43899);
        mpfr_init(r43900);
        mpfr_init(r43901);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r43882, y, MPFR_RNDN);
        mpfr_set_d(r43883, z, MPFR_RNDN);
        mpfr_add(r43884, r43883, r43882, MPFR_RNDN);
        mpfr_div(r43885, r43882, r43884, MPFR_RNDN);
        ;
        mpfr_set_si(r43887, mpfr_cmp(r43885, r43886) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r43889, r43888, r43883, MPFR_RNDN);
        mpfr_neg(r43890, r43889, MPFR_RNDN);
        mpfr_exp(r43891, r43890, MPFR_RNDN);
        mpfr_div(r43892, r43891, r43882, MPFR_RNDN);
        mpfr_set_d(r43893, x, MPFR_RNDN);
        mpfr_add(r43894, r43892, r43893, MPFR_RNDN);
        mpfr_pow(r43895, r43885, r43882, MPFR_RNDN);
        ;
        mpfr_pow(r43897, r43895, r43896, MPFR_RNDN);
        mpfr_cbrt(r43898, r43897, MPFR_RNDN);
        mpfr_div(r43899, r43898, r43882, MPFR_RNDN);
        mpfr_add(r43900, r43899, r43893, MPFR_RNDN);
        if (mpfr_get_si(r43887, MPFR_RNDN)) { mpfr_set(r43901, r43894, MPFR_RNDN); } else { mpfr_set(r43901, r43900, MPFR_RNDN); };
        return mpfr_get_d(r43901, MPFR_RNDN);
}

static mpfr_t r43902, r43903, r43904, r43905, r43906, r43907, r43908, r43909, r43910, r43911, r43912, r43913, r43914, r43915, r43916, r43917, r43918, r43919, r43920, r43921;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r43902);
        mpfr_init(r43903);
        mpfr_init(r43904);
        mpfr_init(r43905);
        mpfr_init_set_str(r43906, "0.0", 10, MPFR_RNDN);
        mpfr_init(r43907);
        mpfr_init_set_str(r43908, "1", 10, MPFR_RNDN);
        mpfr_init(r43909);
        mpfr_init(r43910);
        mpfr_init(r43911);
        mpfr_init(r43912);
        mpfr_init(r43913);
        mpfr_init(r43914);
        mpfr_init(r43915);
        mpfr_init_set_str(r43916, "3", 10, MPFR_RNDN);
        mpfr_init(r43917);
        mpfr_init(r43918);
        mpfr_init(r43919);
        mpfr_init(r43920);
        mpfr_init(r43921);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r43902, y, MPFR_RNDN);
        mpfr_set_d(r43903, z, MPFR_RNDN);
        mpfr_add(r43904, r43903, r43902, MPFR_RNDN);
        mpfr_div(r43905, r43902, r43904, MPFR_RNDN);
        ;
        mpfr_set_si(r43907, mpfr_cmp(r43905, r43906) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r43909, r43908, r43903, MPFR_RNDN);
        mpfr_neg(r43910, r43909, MPFR_RNDN);
        mpfr_exp(r43911, r43910, MPFR_RNDN);
        mpfr_div(r43912, r43911, r43902, MPFR_RNDN);
        mpfr_set_d(r43913, x, MPFR_RNDN);
        mpfr_add(r43914, r43912, r43913, MPFR_RNDN);
        mpfr_pow(r43915, r43905, r43902, MPFR_RNDN);
        ;
        mpfr_pow(r43917, r43915, r43916, MPFR_RNDN);
        mpfr_cbrt(r43918, r43917, MPFR_RNDN);
        mpfr_div(r43919, r43918, r43902, MPFR_RNDN);
        mpfr_add(r43920, r43919, r43913, MPFR_RNDN);
        if (mpfr_get_si(r43907, MPFR_RNDN)) { mpfr_set(r43921, r43914, MPFR_RNDN); } else { mpfr_set(r43921, r43920, MPFR_RNDN); };
        return mpfr_get_d(r43921, MPFR_RNDN);
}

