#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 r34813 = 1.0f;
        float r34814 = x;
        float r34815 = r34813 + r34814;
        float r34816 = log(r34815);
        return r34816;
}

double f_id(double x) {
        double r34817 = 1.0;
        double r34818 = x;
        double r34819 = r34817 + r34818;
        double r34820 = log(r34819);
        return r34820;
}


double f_of(float x) {
        float r34821 = x;
        float r34822 = 15.465634390463869f;
        bool r34823 = r34821 <= r34822;
        float r34824 = r34821 * r34821;
        float r34825 = 0.5f;
        float r34826 = 0.3333333333333333f;
        float r34827 = r34826 * r34821;
        float r34828 = r34825 - r34827;
        float r34829 = r34824 * r34828;
        float r34830 = r34821 - r34829;
        float r34831 = 1.0f;
        float r34832 = r34831 + r34821;
        float r34833 = log(r34832);
        float r34834 = r34823 ? r34830 : r34833;
        return r34834;
}

double f_od(double x) {
        double r34835 = x;
        double r34836 = 15.465634390463869;
        bool r34837 = r34835 <= r34836;
        double r34838 = r34835 * r34835;
        double r34839 = 0.5;
        double r34840 = 0.3333333333333333;
        double r34841 = r34840 * r34835;
        double r34842 = r34839 - r34841;
        double r34843 = r34838 * r34842;
        double r34844 = r34835 - r34843;
        double r34845 = 1.0;
        double r34846 = r34845 + r34835;
        double r34847 = log(r34846);
        double r34848 = r34837 ? r34844 : r34847;
        return r34848;
}

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 r34849, r34850, r34851, r34852;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r34849, "1", 10, MPFR_RNDN);
        mpfr_init(r34850);
        mpfr_init(r34851);
        mpfr_init(r34852);
}

double f_im(double x) {
        ;
        mpfr_set_d(r34850, x, MPFR_RNDN);
        mpfr_add(r34851, r34849, r34850, MPFR_RNDN);
        mpfr_log(r34852, r34851, MPFR_RNDN);
        return mpfr_get_d(r34852, MPFR_RNDN);
}

static mpfr_t r34853, r34854, r34855, r34856, r34857, r34858, r34859, r34860, r34861, r34862, r34863, r34864, r34865, r34866;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r34853);
        mpfr_init_set_str(r34854, "15.465634390463869", 10, MPFR_RNDN);
        mpfr_init(r34855);
        mpfr_init(r34856);
        mpfr_init_set_str(r34857, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r34858, "1/3", 10, MPFR_RNDN);
        mpfr_init(r34859);
        mpfr_init(r34860);
        mpfr_init(r34861);
        mpfr_init(r34862);
        mpfr_init_set_str(r34863, "1", 10, MPFR_RNDN);
        mpfr_init(r34864);
        mpfr_init(r34865);
        mpfr_init(r34866);
}

double f_fm(double x) {
        mpfr_set_d(r34853, x, MPFR_RNDN);
        ;
        mpfr_set_si(r34855, mpfr_cmp(r34853, r34854) <= 0, MPFR_RNDN);
        mpfr_mul(r34856, r34853, r34853, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r34859, r34858, r34853, MPFR_RNDN);
        mpfr_sub(r34860, r34857, r34859, MPFR_RNDN);
        mpfr_mul(r34861, r34856, r34860, MPFR_RNDN);
        mpfr_sub(r34862, r34853, r34861, MPFR_RNDN);
        ;
        mpfr_add(r34864, r34863, r34853, MPFR_RNDN);
        mpfr_log(r34865, r34864, MPFR_RNDN);
        if (mpfr_get_si(r34855, MPFR_RNDN)) { mpfr_set(r34866, r34862, MPFR_RNDN); } else { mpfr_set(r34866, r34865, MPFR_RNDN); };
        return mpfr_get_d(r34866, MPFR_RNDN);
}

static mpfr_t r34867, r34868, r34869, r34870, r34871, r34872, r34873, r34874, r34875, r34876, r34877, r34878, r34879, r34880;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r34867);
        mpfr_init_set_str(r34868, "15.465634390463869", 10, MPFR_RNDN);
        mpfr_init(r34869);
        mpfr_init(r34870);
        mpfr_init_set_str(r34871, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r34872, "1/3", 10, MPFR_RNDN);
        mpfr_init(r34873);
        mpfr_init(r34874);
        mpfr_init(r34875);
        mpfr_init(r34876);
        mpfr_init_set_str(r34877, "1", 10, MPFR_RNDN);
        mpfr_init(r34878);
        mpfr_init(r34879);
        mpfr_init(r34880);
}

double f_dm(double x) {
        mpfr_set_d(r34867, x, MPFR_RNDN);
        ;
        mpfr_set_si(r34869, mpfr_cmp(r34867, r34868) <= 0, MPFR_RNDN);
        mpfr_mul(r34870, r34867, r34867, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r34873, r34872, r34867, MPFR_RNDN);
        mpfr_sub(r34874, r34871, r34873, MPFR_RNDN);
        mpfr_mul(r34875, r34870, r34874, MPFR_RNDN);
        mpfr_sub(r34876, r34867, r34875, MPFR_RNDN);
        ;
        mpfr_add(r34878, r34877, r34867, MPFR_RNDN);
        mpfr_log(r34879, r34878, MPFR_RNDN);
        if (mpfr_get_si(r34869, MPFR_RNDN)) { mpfr_set(r34880, r34876, MPFR_RNDN); } else { mpfr_set(r34880, r34879, MPFR_RNDN); };
        return mpfr_get_d(r34880, MPFR_RNDN);
}

