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

char *name = "logq (problem 3.4.3)";

double f_if(float eps) {
        float r38783 = 1;
        float r38784 = eps;
        float r38785 = r38783 - r38784;
        float r38786 = r38783 + r38784;
        float r38787 = r38785 / r38786;
        float r38788 = log(r38787);
        return r38788;
}

double f_id(double eps) {
        double r38789 = 1;
        double r38790 = eps;
        double r38791 = r38789 - r38790;
        double r38792 = r38789 + r38790;
        double r38793 = r38791 / r38792;
        double r38794 = log(r38793);
        return r38794;
}


double f_of(float eps) {
        float r38795 = 2/3;
        float r38796 = eps;
        float r38797 = 3;
        float r38798 = pow(r38796, r38797);
        float r38799 = r38795 * r38798;
        float r38800 = 2/5;
        float r38801 = 5;
        float r38802 = pow(r38796, r38801);
        float r38803 = r38800 * r38802;
        float r38804 = 2;
        float r38805 = r38804 * r38796;
        float r38806 = r38803 + r38805;
        float r38807 = r38799 + r38806;
        float r38808 = -r38807;
        return r38808;
}

double f_od(double eps) {
        double r38809 = 2/3;
        double r38810 = eps;
        double r38811 = 3;
        double r38812 = pow(r38810, r38811);
        double r38813 = r38809 * r38812;
        double r38814 = 2/5;
        double r38815 = 5;
        double r38816 = pow(r38810, r38815);
        double r38817 = r38814 * r38816;
        double r38818 = 2;
        double r38819 = r38818 * r38810;
        double r38820 = r38817 + r38819;
        double r38821 = r38813 + r38820;
        double r38822 = -r38821;
        return r38822;
}

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 r38823, r38824, r38825, r38826, r38827, r38828;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38823, "1", 10, MPFR_RNDN);
        mpfr_init(r38824);
        mpfr_init(r38825);
        mpfr_init(r38826);
        mpfr_init(r38827);
        mpfr_init(r38828);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r38824, eps, MPFR_RNDN);
        mpfr_sub(r38825, r38823, r38824, MPFR_RNDN);
        mpfr_add(r38826, r38823, r38824, MPFR_RNDN);
        mpfr_div(r38827, r38825, r38826, MPFR_RNDN);
        mpfr_log(r38828, r38827, MPFR_RNDN);
        return mpfr_get_d(r38828, MPFR_RNDN);
}

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

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38829, "2/3", 10, MPFR_RNDN);
        mpfr_init(r38830);
        mpfr_init_set_str(r38831, "3", 10, MPFR_RNDN);
        mpfr_init(r38832);
        mpfr_init(r38833);
        mpfr_init_set_str(r38834, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r38835, "5", 10, MPFR_RNDN);
        mpfr_init(r38836);
        mpfr_init(r38837);
        mpfr_init_set_str(r38838, "2", 10, MPFR_RNDN);
        mpfr_init(r38839);
        mpfr_init(r38840);
        mpfr_init(r38841);
        mpfr_init(r38842);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r38830, eps, MPFR_RNDN);
        ;
        mpfr_pow(r38832, r38830, r38831, MPFR_RNDN);
        mpfr_mul(r38833, r38829, r38832, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r38836, r38830, r38835, MPFR_RNDN);
        mpfr_mul(r38837, r38834, r38836, MPFR_RNDN);
        ;
        mpfr_mul(r38839, r38838, r38830, MPFR_RNDN);
        mpfr_add(r38840, r38837, r38839, MPFR_RNDN);
        mpfr_add(r38841, r38833, r38840, MPFR_RNDN);
        mpfr_neg(r38842, r38841, MPFR_RNDN);
        return mpfr_get_d(r38842, MPFR_RNDN);
}

static mpfr_t r38843, r38844, r38845, r38846, r38847, r38848, r38849, r38850, r38851, r38852, r38853, r38854, r38855, r38856;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38843, "2/3", 10, MPFR_RNDN);
        mpfr_init(r38844);
        mpfr_init_set_str(r38845, "3", 10, MPFR_RNDN);
        mpfr_init(r38846);
        mpfr_init(r38847);
        mpfr_init_set_str(r38848, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r38849, "5", 10, MPFR_RNDN);
        mpfr_init(r38850);
        mpfr_init(r38851);
        mpfr_init_set_str(r38852, "2", 10, MPFR_RNDN);
        mpfr_init(r38853);
        mpfr_init(r38854);
        mpfr_init(r38855);
        mpfr_init(r38856);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r38844, eps, MPFR_RNDN);
        ;
        mpfr_pow(r38846, r38844, r38845, MPFR_RNDN);
        mpfr_mul(r38847, r38843, r38846, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r38850, r38844, r38849, MPFR_RNDN);
        mpfr_mul(r38851, r38848, r38850, MPFR_RNDN);
        ;
        mpfr_mul(r38853, r38852, r38844, MPFR_RNDN);
        mpfr_add(r38854, r38851, r38853, MPFR_RNDN);
        mpfr_add(r38855, r38847, r38854, MPFR_RNDN);
        mpfr_neg(r38856, r38855, MPFR_RNDN);
        return mpfr_get_d(r38856, MPFR_RNDN);
}

