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

char *name = "logs (example 3.8)";

double f_if(float n) {
        float r4416795 = n;
        float r4416796 = 1;
        float r4416797 = r4416795 + r4416796;
        float r4416798 = log(r4416797);
        float r4416799 = r4416797 * r4416798;
        float r4416800 = log(r4416795);
        float r4416801 = r4416795 * r4416800;
        float r4416802 = r4416799 - r4416801;
        float r4416803 = r4416802 - r4416796;
        return r4416803;
}

double f_id(double n) {
        double r4416804 = n;
        double r4416805 = 1;
        double r4416806 = r4416804 + r4416805;
        double r4416807 = log(r4416806);
        double r4416808 = r4416806 * r4416807;
        double r4416809 = log(r4416804);
        double r4416810 = r4416804 * r4416809;
        double r4416811 = r4416808 - r4416810;
        double r4416812 = r4416811 - r4416805;
        return r4416812;
}


double f_of(float n) {
        float r4416813 = 1;
        float r4416814 = n;
        float r4416815 = r4416813 + r4416814;
        float r4416816 = log(r4416815);
        float r4416817 = r4416816 * r4416815;
        float r4416818 = -r4416814;
        float r4416819 = log(r4416814);
        float r4416820 = r4416818 * r4416819;
        float r4416821 = r4416813 + r4416820;
        float r4416822 = r4416817 - r4416821;
        return r4416822;
}

double f_od(double n) {
        double r4416823 = 1;
        double r4416824 = n;
        double r4416825 = r4416823 + r4416824;
        double r4416826 = log(r4416825);
        double r4416827 = r4416826 * r4416825;
        double r4416828 = -r4416824;
        double r4416829 = log(r4416824);
        double r4416830 = r4416828 * r4416829;
        double r4416831 = r4416823 + r4416830;
        double r4416832 = r4416827 - r4416831;
        return r4416832;
}

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 r4416833, r4416834, r4416835, r4416836, r4416837, r4416838, r4416839, r4416840, r4416841;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r4416833);
        mpfr_init_set_str(r4416834, "1", 10, MPFR_RNDN);
        mpfr_init(r4416835);
        mpfr_init(r4416836);
        mpfr_init(r4416837);
        mpfr_init(r4416838);
        mpfr_init(r4416839);
        mpfr_init(r4416840);
        mpfr_init(r4416841);
}

double f_im(double n) {
        mpfr_set_d(r4416833, n, MPFR_RNDN);
        ;
        mpfr_add(r4416835, r4416833, r4416834, MPFR_RNDN);
        mpfr_log(r4416836, r4416835, MPFR_RNDN);
        mpfr_mul(r4416837, r4416835, r4416836, MPFR_RNDN);
        mpfr_log(r4416838, r4416833, MPFR_RNDN);
        mpfr_mul(r4416839, r4416833, r4416838, MPFR_RNDN);
        mpfr_sub(r4416840, r4416837, r4416839, MPFR_RNDN);
        mpfr_sub(r4416841, r4416840, r4416834, MPFR_RNDN);
        return mpfr_get_d(r4416841, MPFR_RNDN);
}

static mpfr_t r4416842, r4416843, r4416844, r4416845, r4416846, r4416847, r4416848, r4416849, r4416850, r4416851;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r4416842, "1", 10, MPFR_RNDN);
        mpfr_init(r4416843);
        mpfr_init(r4416844);
        mpfr_init(r4416845);
        mpfr_init(r4416846);
        mpfr_init(r4416847);
        mpfr_init(r4416848);
        mpfr_init(r4416849);
        mpfr_init(r4416850);
        mpfr_init(r4416851);
}

double f_fm(double n) {
        ;
        mpfr_set_d(r4416843, n, MPFR_RNDN);
        mpfr_add(r4416844, r4416842, r4416843, MPFR_RNDN);
        mpfr_log(r4416845, r4416844, MPFR_RNDN);
        mpfr_mul(r4416846, r4416845, r4416844, MPFR_RNDN);
        mpfr_neg(r4416847, r4416843, MPFR_RNDN);
        mpfr_log(r4416848, r4416843, MPFR_RNDN);
        mpfr_mul(r4416849, r4416847, r4416848, MPFR_RNDN);
        mpfr_add(r4416850, r4416842, r4416849, MPFR_RNDN);
        mpfr_sub(r4416851, r4416846, r4416850, MPFR_RNDN);
        return mpfr_get_d(r4416851, MPFR_RNDN);
}

static mpfr_t r4416852, r4416853, r4416854, r4416855, r4416856, r4416857, r4416858, r4416859, r4416860, r4416861;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r4416852, "1", 10, MPFR_RNDN);
        mpfr_init(r4416853);
        mpfr_init(r4416854);
        mpfr_init(r4416855);
        mpfr_init(r4416856);
        mpfr_init(r4416857);
        mpfr_init(r4416858);
        mpfr_init(r4416859);
        mpfr_init(r4416860);
        mpfr_init(r4416861);
}

double f_dm(double n) {
        ;
        mpfr_set_d(r4416853, n, MPFR_RNDN);
        mpfr_add(r4416854, r4416852, r4416853, MPFR_RNDN);
        mpfr_log(r4416855, r4416854, MPFR_RNDN);
        mpfr_mul(r4416856, r4416855, r4416854, MPFR_RNDN);
        mpfr_neg(r4416857, r4416853, MPFR_RNDN);
        mpfr_log(r4416858, r4416853, MPFR_RNDN);
        mpfr_mul(r4416859, r4416857, r4416858, MPFR_RNDN);
        mpfr_add(r4416860, r4416852, r4416859, MPFR_RNDN);
        mpfr_sub(r4416861, r4416856, r4416860, MPFR_RNDN);
        return mpfr_get_d(r4416861, MPFR_RNDN);
}

