#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 r25754 = 1;
        float r25755 = x;
        float r25756 = r25754 + r25755;
        float r25757 = log(r25756);
        return r25757;
}

double f_id(double x) {
        double r25758 = 1;
        double r25759 = x;
        double r25760 = r25758 + r25759;
        double r25761 = log(r25760);
        return r25761;
}


double f_of(float x) {
        float r25762 = x;
        float r25763 = 1;
        float r25764 = r25762 + r25763;
        float r25765 = log(r25764);
        float r25766 = 3;
        float r25767 = pow(r25765, r25766);
        float r25768 = sqrt(r25767);
        float r25769 = cbrt(r25768);
        float r25770 = r25769 * r25769;
        float r25771 = 0.0229992528663422;
        bool r25772 = r25770 <= r25771;
        float r25773 = 1/2;
        float r25774 = 1/3;
        float r25775 = r25762 * r25774;
        float r25776 = r25773 - r25775;
        float r25777 = r25762 * r25762;
        float r25778 = r25776 * r25777;
        float r25779 = r25762 - r25778;
        float r25780 = r25763 + r25762;
        float r25781 = log(r25780);
        float r25782 = r25772 ? r25779 : r25781;
        return r25782;
}

double f_od(double x) {
        double r25783 = x;
        double r25784 = 1;
        double r25785 = r25783 + r25784;
        double r25786 = log(r25785);
        double r25787 = 3;
        double r25788 = pow(r25786, r25787);
        double r25789 = sqrt(r25788);
        double r25790 = cbrt(r25789);
        double r25791 = r25790 * r25790;
        double r25792 = 0.0229992528663422;
        bool r25793 = r25791 <= r25792;
        double r25794 = 1/2;
        double r25795 = 1/3;
        double r25796 = r25783 * r25795;
        double r25797 = r25794 - r25796;
        double r25798 = r25783 * r25783;
        double r25799 = r25797 * r25798;
        double r25800 = r25783 - r25799;
        double r25801 = r25784 + r25783;
        double r25802 = log(r25801);
        double r25803 = r25793 ? r25800 : r25802;
        return r25803;
}

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 r25804, r25805, r25806, r25807;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r25804, "1", 10, MPFR_RNDN);
        mpfr_init(r25805);
        mpfr_init(r25806);
        mpfr_init(r25807);
}

double f_im(double x) {
        ;
        mpfr_set_d(r25805, x, MPFR_RNDN);
        mpfr_add(r25806, r25804, r25805, MPFR_RNDN);
        mpfr_log(r25807, r25806, MPFR_RNDN);
        return mpfr_get_d(r25807, MPFR_RNDN);
}

static mpfr_t r25808, r25809, r25810, r25811, r25812, r25813, r25814, r25815, r25816, r25817, r25818, r25819, r25820, r25821, r25822, r25823, r25824, r25825, r25826, r25827, r25828;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r25808);
        mpfr_init_set_str(r25809, "1", 10, MPFR_RNDN);
        mpfr_init(r25810);
        mpfr_init(r25811);
        mpfr_init_set_str(r25812, "3", 10, MPFR_RNDN);
        mpfr_init(r25813);
        mpfr_init(r25814);
        mpfr_init(r25815);
        mpfr_init(r25816);
        mpfr_init_set_str(r25817, "0.0229992528663422", 10, MPFR_RNDN);
        mpfr_init(r25818);
        mpfr_init_set_str(r25819, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r25820, "1/3", 10, MPFR_RNDN);
        mpfr_init(r25821);
        mpfr_init(r25822);
        mpfr_init(r25823);
        mpfr_init(r25824);
        mpfr_init(r25825);
        mpfr_init(r25826);
        mpfr_init(r25827);
        mpfr_init(r25828);
}

double f_fm(double x) {
        mpfr_set_d(r25808, x, MPFR_RNDN);
        ;
        mpfr_add(r25810, r25808, r25809, MPFR_RNDN);
        mpfr_log(r25811, r25810, MPFR_RNDN);
        ;
        mpfr_pow(r25813, r25811, r25812, MPFR_RNDN);
        mpfr_sqrt(r25814, r25813, MPFR_RNDN);
        mpfr_cbrt(r25815, r25814, MPFR_RNDN);
        mpfr_mul(r25816, r25815, r25815, MPFR_RNDN);
        ;
        mpfr_set_si(r25818, mpfr_cmp(r25816, r25817) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r25821, r25808, r25820, MPFR_RNDN);
        mpfr_sub(r25822, r25819, r25821, MPFR_RNDN);
        mpfr_mul(r25823, r25808, r25808, MPFR_RNDN);
        mpfr_mul(r25824, r25822, r25823, MPFR_RNDN);
        mpfr_sub(r25825, r25808, r25824, MPFR_RNDN);
        mpfr_add(r25826, r25809, r25808, MPFR_RNDN);
        mpfr_log(r25827, r25826, MPFR_RNDN);
        if (mpfr_get_si(r25818, MPFR_RNDN)) { mpfr_set(r25828, r25825, MPFR_RNDN); } else { mpfr_set(r25828, r25827, MPFR_RNDN); };
        return mpfr_get_d(r25828, MPFR_RNDN);
}

static mpfr_t r25829, r25830, r25831, r25832, r25833, r25834, r25835, r25836, r25837, r25838, r25839, r25840, r25841, r25842, r25843, r25844, r25845, r25846, r25847, r25848, r25849;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r25829);
        mpfr_init_set_str(r25830, "1", 10, MPFR_RNDN);
        mpfr_init(r25831);
        mpfr_init(r25832);
        mpfr_init_set_str(r25833, "3", 10, MPFR_RNDN);
        mpfr_init(r25834);
        mpfr_init(r25835);
        mpfr_init(r25836);
        mpfr_init(r25837);
        mpfr_init_set_str(r25838, "0.0229992528663422", 10, MPFR_RNDN);
        mpfr_init(r25839);
        mpfr_init_set_str(r25840, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r25841, "1/3", 10, MPFR_RNDN);
        mpfr_init(r25842);
        mpfr_init(r25843);
        mpfr_init(r25844);
        mpfr_init(r25845);
        mpfr_init(r25846);
        mpfr_init(r25847);
        mpfr_init(r25848);
        mpfr_init(r25849);
}

double f_dm(double x) {
        mpfr_set_d(r25829, x, MPFR_RNDN);
        ;
        mpfr_add(r25831, r25829, r25830, MPFR_RNDN);
        mpfr_log(r25832, r25831, MPFR_RNDN);
        ;
        mpfr_pow(r25834, r25832, r25833, MPFR_RNDN);
        mpfr_sqrt(r25835, r25834, MPFR_RNDN);
        mpfr_cbrt(r25836, r25835, MPFR_RNDN);
        mpfr_mul(r25837, r25836, r25836, MPFR_RNDN);
        ;
        mpfr_set_si(r25839, mpfr_cmp(r25837, r25838) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r25842, r25829, r25841, MPFR_RNDN);
        mpfr_sub(r25843, r25840, r25842, MPFR_RNDN);
        mpfr_mul(r25844, r25829, r25829, MPFR_RNDN);
        mpfr_mul(r25845, r25843, r25844, MPFR_RNDN);
        mpfr_sub(r25846, r25829, r25845, MPFR_RNDN);
        mpfr_add(r25847, r25830, r25829, MPFR_RNDN);
        mpfr_log(r25848, r25847, MPFR_RNDN);
        if (mpfr_get_si(r25839, MPFR_RNDN)) { mpfr_set(r25849, r25846, MPFR_RNDN); } else { mpfr_set(r25849, r25848, MPFR_RNDN); };
        return mpfr_get_d(r25849, MPFR_RNDN);
}

