#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 r38940 = 1;
        float r38941 = x;
        float r38942 = r38940 + r38941;
        float r38943 = log(r38942);
        return r38943;
}

double f_id(double x) {
        double r38944 = 1;
        double r38945 = x;
        double r38946 = r38944 + r38945;
        double r38947 = log(r38946);
        return r38947;
}


double f_of(float x) {
        float r38948 = x;
        float r38949 = 0.00010417168329262867;
        bool r38950 = r38948 <= r38949;
        float r38951 = r38948 * r38948;
        float r38952 = 1/3;
        float r38953 = r38948 * r38952;
        float r38954 = 1/2;
        float r38955 = r38953 - r38954;
        float r38956 = r38951 * r38955;
        float r38957 = r38948 + r38956;
        float r38958 = 1;
        float r38959 = r38958 + r38948;
        float r38960 = log(r38959);
        float r38961 = r38950 ? r38957 : r38960;
        return r38961;
}

double f_od(double x) {
        double r38962 = x;
        double r38963 = 0.00010417168329262867;
        bool r38964 = r38962 <= r38963;
        double r38965 = r38962 * r38962;
        double r38966 = 1/3;
        double r38967 = r38962 * r38966;
        double r38968 = 1/2;
        double r38969 = r38967 - r38968;
        double r38970 = r38965 * r38969;
        double r38971 = r38962 + r38970;
        double r38972 = 1;
        double r38973 = r38972 + r38962;
        double r38974 = log(r38973);
        double r38975 = r38964 ? r38971 : r38974;
        return r38975;
}

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 r38976, r38977, r38978, r38979;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38976, "1", 10, MPFR_RNDN);
        mpfr_init(r38977);
        mpfr_init(r38978);
        mpfr_init(r38979);
}

double f_im(double x) {
        ;
        mpfr_set_d(r38977, x, MPFR_RNDN);
        mpfr_add(r38978, r38976, r38977, MPFR_RNDN);
        mpfr_log(r38979, r38978, MPFR_RNDN);
        return mpfr_get_d(r38979, MPFR_RNDN);
}

static mpfr_t r38980, r38981, r38982, r38983, r38984, r38985, r38986, r38987, r38988, r38989, r38990, r38991, r38992, r38993;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r38980);
        mpfr_init_set_str(r38981, "0.00010417168329262867", 10, MPFR_RNDN);
        mpfr_init(r38982);
        mpfr_init(r38983);
        mpfr_init_set_str(r38984, "1/3", 10, MPFR_RNDN);
        mpfr_init(r38985);
        mpfr_init_set_str(r38986, "1/2", 10, MPFR_RNDN);
        mpfr_init(r38987);
        mpfr_init(r38988);
        mpfr_init(r38989);
        mpfr_init_set_str(r38990, "1", 10, MPFR_RNDN);
        mpfr_init(r38991);
        mpfr_init(r38992);
        mpfr_init(r38993);
}

double f_fm(double x) {
        mpfr_set_d(r38980, x, MPFR_RNDN);
        ;
        mpfr_set_si(r38982, mpfr_cmp(r38980, r38981) <= 0, MPFR_RNDN);
        mpfr_mul(r38983, r38980, r38980, MPFR_RNDN);
        ;
        mpfr_mul(r38985, r38980, r38984, MPFR_RNDN);
        ;
        mpfr_sub(r38987, r38985, r38986, MPFR_RNDN);
        mpfr_mul(r38988, r38983, r38987, MPFR_RNDN);
        mpfr_add(r38989, r38980, r38988, MPFR_RNDN);
        ;
        mpfr_add(r38991, r38990, r38980, MPFR_RNDN);
        mpfr_log(r38992, r38991, MPFR_RNDN);
        if (mpfr_get_si(r38982, MPFR_RNDN)) { mpfr_set(r38993, r38989, MPFR_RNDN); } else { mpfr_set(r38993, r38992, MPFR_RNDN); };
        return mpfr_get_d(r38993, MPFR_RNDN);
}

static mpfr_t r38994, r38995, r38996, r38997, r38998, r38999, r39000, r39001, r39002, r39003, r39004, r39005, r39006, r39007;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r38994);
        mpfr_init_set_str(r38995, "0.00010417168329262867", 10, MPFR_RNDN);
        mpfr_init(r38996);
        mpfr_init(r38997);
        mpfr_init_set_str(r38998, "1/3", 10, MPFR_RNDN);
        mpfr_init(r38999);
        mpfr_init_set_str(r39000, "1/2", 10, MPFR_RNDN);
        mpfr_init(r39001);
        mpfr_init(r39002);
        mpfr_init(r39003);
        mpfr_init_set_str(r39004, "1", 10, MPFR_RNDN);
        mpfr_init(r39005);
        mpfr_init(r39006);
        mpfr_init(r39007);
}

double f_dm(double x) {
        mpfr_set_d(r38994, x, MPFR_RNDN);
        ;
        mpfr_set_si(r38996, mpfr_cmp(r38994, r38995) <= 0, MPFR_RNDN);
        mpfr_mul(r38997, r38994, r38994, MPFR_RNDN);
        ;
        mpfr_mul(r38999, r38994, r38998, MPFR_RNDN);
        ;
        mpfr_sub(r39001, r38999, r39000, MPFR_RNDN);
        mpfr_mul(r39002, r38997, r39001, MPFR_RNDN);
        mpfr_add(r39003, r38994, r39002, MPFR_RNDN);
        ;
        mpfr_add(r39005, r39004, r38994, MPFR_RNDN);
        mpfr_log(r39006, r39005, MPFR_RNDN);
        if (mpfr_get_si(r38996, MPFR_RNDN)) { mpfr_set(r39007, r39003, MPFR_RNDN); } else { mpfr_set(r39007, r39006, MPFR_RNDN); };
        return mpfr_get_d(r39007, MPFR_RNDN);
}

