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

char *name = "ln(1 + x)";

double f_if(float x) {
        float r38777 = 1;
        float r38778 = x;
        float r38779 = r38777 + r38778;
        float r38780 = log(r38779);
        return r38780;
}

double f_id(double x) {
        double r38781 = 1;
        double r38782 = x;
        double r38783 = r38781 + r38782;
        double r38784 = log(r38783);
        return r38784;
}


double f_of(float x) {
        float r38785 = x;
        float r38786 = 0.802860764679358;
        bool r38787 = r38785 <= r38786;
        float r38788 = r38785 * r38785;
        float r38789 = 1/3;
        float r38790 = r38785 * r38789;
        float r38791 = 1/2;
        float r38792 = r38790 - r38791;
        float r38793 = r38788 * r38792;
        float r38794 = r38785 + r38793;
        float r38795 = 1;
        float r38796 = r38795 + r38785;
        float r38797 = log(r38796);
        float r38798 = r38787 ? r38794 : r38797;
        return r38798;
}

double f_od(double x) {
        double r38799 = x;
        double r38800 = 0.802860764679358;
        bool r38801 = r38799 <= r38800;
        double r38802 = r38799 * r38799;
        double r38803 = 1/3;
        double r38804 = r38799 * r38803;
        double r38805 = 1/2;
        double r38806 = r38804 - r38805;
        double r38807 = r38802 * r38806;
        double r38808 = r38799 + r38807;
        double r38809 = 1;
        double r38810 = r38809 + r38799;
        double r38811 = log(r38810);
        double r38812 = r38801 ? r38808 : r38811;
        return r38812;
}

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 r38813, r38814, r38815, r38816;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38813, "1", 10, MPFR_RNDN);
        mpfr_init(r38814);
        mpfr_init(r38815);
        mpfr_init(r38816);
}

double f_im(double x) {
        ;
        mpfr_set_d(r38814, x, MPFR_RNDN);
        mpfr_add(r38815, r38813, r38814, MPFR_RNDN);
        mpfr_log(r38816, r38815, MPFR_RNDN);
        return mpfr_get_d(r38816, MPFR_RNDN);
}

static mpfr_t r38817, r38818, r38819, r38820, r38821, r38822, r38823, r38824, r38825, r38826, r38827, r38828, r38829, r38830;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r38817);
        mpfr_init_set_str(r38818, "0.802860764679358", 10, MPFR_RNDN);
        mpfr_init(r38819);
        mpfr_init(r38820);
        mpfr_init_set_str(r38821, "1/3", 10, MPFR_RNDN);
        mpfr_init(r38822);
        mpfr_init_set_str(r38823, "1/2", 10, MPFR_RNDN);
        mpfr_init(r38824);
        mpfr_init(r38825);
        mpfr_init(r38826);
        mpfr_init_set_str(r38827, "1", 10, MPFR_RNDN);
        mpfr_init(r38828);
        mpfr_init(r38829);
        mpfr_init(r38830);
}

double f_fm(double x) {
        mpfr_set_d(r38817, x, MPFR_RNDN);
        ;
        mpfr_set_si(r38819, mpfr_cmp(r38817, r38818) <= 0, MPFR_RNDN);
        mpfr_mul(r38820, r38817, r38817, MPFR_RNDN);
        ;
        mpfr_mul(r38822, r38817, r38821, MPFR_RNDN);
        ;
        mpfr_sub(r38824, r38822, r38823, MPFR_RNDN);
        mpfr_mul(r38825, r38820, r38824, MPFR_RNDN);
        mpfr_add(r38826, r38817, r38825, MPFR_RNDN);
        ;
        mpfr_add(r38828, r38827, r38817, MPFR_RNDN);
        mpfr_log(r38829, r38828, MPFR_RNDN);
        if (mpfr_get_si(r38819, MPFR_RNDN)) { mpfr_set(r38830, r38826, MPFR_RNDN); } else { mpfr_set(r38830, r38829, MPFR_RNDN); };
        return mpfr_get_d(r38830, MPFR_RNDN);
}

static mpfr_t r38831, r38832, r38833, r38834, r38835, r38836, r38837, r38838, r38839, r38840, r38841, r38842, r38843, r38844;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r38831);
        mpfr_init_set_str(r38832, "0.802860764679358", 10, MPFR_RNDN);
        mpfr_init(r38833);
        mpfr_init(r38834);
        mpfr_init_set_str(r38835, "1/3", 10, MPFR_RNDN);
        mpfr_init(r38836);
        mpfr_init_set_str(r38837, "1/2", 10, MPFR_RNDN);
        mpfr_init(r38838);
        mpfr_init(r38839);
        mpfr_init(r38840);
        mpfr_init_set_str(r38841, "1", 10, MPFR_RNDN);
        mpfr_init(r38842);
        mpfr_init(r38843);
        mpfr_init(r38844);
}

double f_dm(double x) {
        mpfr_set_d(r38831, x, MPFR_RNDN);
        ;
        mpfr_set_si(r38833, mpfr_cmp(r38831, r38832) <= 0, MPFR_RNDN);
        mpfr_mul(r38834, r38831, r38831, MPFR_RNDN);
        ;
        mpfr_mul(r38836, r38831, r38835, MPFR_RNDN);
        ;
        mpfr_sub(r38838, r38836, r38837, MPFR_RNDN);
        mpfr_mul(r38839, r38834, r38838, MPFR_RNDN);
        mpfr_add(r38840, r38831, r38839, MPFR_RNDN);
        ;
        mpfr_add(r38842, r38841, r38831, MPFR_RNDN);
        mpfr_log(r38843, r38842, MPFR_RNDN);
        if (mpfr_get_si(r38833, MPFR_RNDN)) { mpfr_set(r38844, r38840, MPFR_RNDN); } else { mpfr_set(r38844, r38843, MPFR_RNDN); };
        return mpfr_get_d(r38844, MPFR_RNDN);
}

