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

double f_if(float x, float y) {
        float r43827 = x;
        float r43828 = y;
        float r43829 = r43827 + r43828;
        float r43830 = r43827 / r43829;
        float r43831 = log(r43830);
        float r43832 = r43827 * r43831;
        float r43833 = exp(r43832);
        float r43834 = r43833 / r43827;
        return r43834;
}

double f_id(double x, double y) {
        double r43835 = x;
        double r43836 = y;
        double r43837 = r43835 + r43836;
        double r43838 = r43835 / r43837;
        double r43839 = log(r43838);
        double r43840 = r43835 * r43839;
        double r43841 = exp(r43840);
        double r43842 = r43841 / r43835;
        return r43842;
}


double f_of(float x, float y) {
        float r43843 = y;
        float r43844 = -1.236076699891847e+90;
        bool r43845 = r43843 <= r43844;
        float r43846 = 1;
        float r43847 = r43846 / r43843;
        float r43848 = -r43847;
        float r43849 = exp(r43848);
        float r43850 = x;
        float r43851 = r43849 / r43850;
        float r43852 = 1056507017731.9486;
        bool r43853 = r43843 <= r43852;
        float r43854 = r43843 + r43850;
        float r43855 = r43850 / r43854;
        float r43856 = pow(r43855, r43850);
        float r43857 = r43856 / r43850;
        float r43858 = exp(r43857);
        float r43859 = log(r43858);
        float r43860 = r43853 ? r43857 : r43859;
        float r43861 = r43845 ? r43851 : r43860;
        return r43861;
}

double f_od(double x, double y) {
        double r43862 = y;
        double r43863 = -1.236076699891847e+90;
        bool r43864 = r43862 <= r43863;
        double r43865 = 1;
        double r43866 = r43865 / r43862;
        double r43867 = -r43866;
        double r43868 = exp(r43867);
        double r43869 = x;
        double r43870 = r43868 / r43869;
        double r43871 = 1056507017731.9486;
        bool r43872 = r43862 <= r43871;
        double r43873 = r43862 + r43869;
        double r43874 = r43869 / r43873;
        double r43875 = pow(r43874, r43869);
        double r43876 = r43875 / r43869;
        double r43877 = exp(r43876);
        double r43878 = log(r43877);
        double r43879 = r43872 ? r43876 : r43878;
        double r43880 = r43864 ? r43870 : r43879;
        return r43880;
}

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 r43881, r43882, r43883, r43884, r43885, r43886, r43887, r43888;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r43881);
        mpfr_init(r43882);
        mpfr_init(r43883);
        mpfr_init(r43884);
        mpfr_init(r43885);
        mpfr_init(r43886);
        mpfr_init(r43887);
        mpfr_init(r43888);
}

double f_im(double x, double y) {
        mpfr_set_d(r43881, x, MPFR_RNDN);
        mpfr_set_d(r43882, y, MPFR_RNDN);
        mpfr_add(r43883, r43881, r43882, MPFR_RNDN);
        mpfr_div(r43884, r43881, r43883, MPFR_RNDN);
        mpfr_log(r43885, r43884, MPFR_RNDN);
        mpfr_mul(r43886, r43881, r43885, MPFR_RNDN);
        mpfr_exp(r43887, r43886, MPFR_RNDN);
        mpfr_div(r43888, r43887, r43881, MPFR_RNDN);
        return mpfr_get_d(r43888, MPFR_RNDN);
}

static mpfr_t r43889, r43890, r43891, r43892, r43893, r43894, r43895, r43896, r43897, r43898, r43899, r43900, r43901, r43902, r43903, r43904, r43905, r43906, r43907;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r43889);
        mpfr_init_set_str(r43890, "-1.236076699891847e+90", 10, MPFR_RNDN);
        mpfr_init(r43891);
        mpfr_init_set_str(r43892, "1", 10, MPFR_RNDN);
        mpfr_init(r43893);
        mpfr_init(r43894);
        mpfr_init(r43895);
        mpfr_init(r43896);
        mpfr_init(r43897);
        mpfr_init_set_str(r43898, "1056507017731.9486", 10, MPFR_RNDN);
        mpfr_init(r43899);
        mpfr_init(r43900);
        mpfr_init(r43901);
        mpfr_init(r43902);
        mpfr_init(r43903);
        mpfr_init(r43904);
        mpfr_init(r43905);
        mpfr_init(r43906);
        mpfr_init(r43907);
}

double f_fm(double x, double y) {
        mpfr_set_d(r43889, y, MPFR_RNDN);
        ;
        mpfr_set_si(r43891, mpfr_cmp(r43889, r43890) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r43893, r43892, r43889, MPFR_RNDN);
        mpfr_neg(r43894, r43893, MPFR_RNDN);
        mpfr_exp(r43895, r43894, MPFR_RNDN);
        mpfr_set_d(r43896, x, MPFR_RNDN);
        mpfr_div(r43897, r43895, r43896, MPFR_RNDN);
        ;
        mpfr_set_si(r43899, mpfr_cmp(r43889, r43898) <= 0, MPFR_RNDN);
        mpfr_add(r43900, r43889, r43896, MPFR_RNDN);
        mpfr_div(r43901, r43896, r43900, MPFR_RNDN);
        mpfr_pow(r43902, r43901, r43896, MPFR_RNDN);
        mpfr_div(r43903, r43902, r43896, MPFR_RNDN);
        mpfr_exp(r43904, r43903, MPFR_RNDN);
        mpfr_log(r43905, r43904, MPFR_RNDN);
        if (mpfr_get_si(r43899, MPFR_RNDN)) { mpfr_set(r43906, r43903, MPFR_RNDN); } else { mpfr_set(r43906, r43905, MPFR_RNDN); };
        if (mpfr_get_si(r43891, MPFR_RNDN)) { mpfr_set(r43907, r43897, MPFR_RNDN); } else { mpfr_set(r43907, r43906, MPFR_RNDN); };
        return mpfr_get_d(r43907, MPFR_RNDN);
}

static mpfr_t r43908, r43909, r43910, r43911, r43912, r43913, r43914, r43915, r43916, r43917, r43918, r43919, r43920, r43921, r43922, r43923, r43924, r43925, r43926;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r43908);
        mpfr_init_set_str(r43909, "-1.236076699891847e+90", 10, MPFR_RNDN);
        mpfr_init(r43910);
        mpfr_init_set_str(r43911, "1", 10, MPFR_RNDN);
        mpfr_init(r43912);
        mpfr_init(r43913);
        mpfr_init(r43914);
        mpfr_init(r43915);
        mpfr_init(r43916);
        mpfr_init_set_str(r43917, "1056507017731.9486", 10, MPFR_RNDN);
        mpfr_init(r43918);
        mpfr_init(r43919);
        mpfr_init(r43920);
        mpfr_init(r43921);
        mpfr_init(r43922);
        mpfr_init(r43923);
        mpfr_init(r43924);
        mpfr_init(r43925);
        mpfr_init(r43926);
}

double f_dm(double x, double y) {
        mpfr_set_d(r43908, y, MPFR_RNDN);
        ;
        mpfr_set_si(r43910, mpfr_cmp(r43908, r43909) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r43912, r43911, r43908, MPFR_RNDN);
        mpfr_neg(r43913, r43912, MPFR_RNDN);
        mpfr_exp(r43914, r43913, MPFR_RNDN);
        mpfr_set_d(r43915, x, MPFR_RNDN);
        mpfr_div(r43916, r43914, r43915, MPFR_RNDN);
        ;
        mpfr_set_si(r43918, mpfr_cmp(r43908, r43917) <= 0, MPFR_RNDN);
        mpfr_add(r43919, r43908, r43915, MPFR_RNDN);
        mpfr_div(r43920, r43915, r43919, MPFR_RNDN);
        mpfr_pow(r43921, r43920, r43915, MPFR_RNDN);
        mpfr_div(r43922, r43921, r43915, MPFR_RNDN);
        mpfr_exp(r43923, r43922, MPFR_RNDN);
        mpfr_log(r43924, r43923, MPFR_RNDN);
        if (mpfr_get_si(r43918, MPFR_RNDN)) { mpfr_set(r43925, r43922, MPFR_RNDN); } else { mpfr_set(r43925, r43924, MPFR_RNDN); };
        if (mpfr_get_si(r43910, MPFR_RNDN)) { mpfr_set(r43926, r43916, MPFR_RNDN); } else { mpfr_set(r43926, r43925, MPFR_RNDN); };
        return mpfr_get_d(r43926, MPFR_RNDN);
}

