#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 r38703 = 1;
        float r38704 = eps;
        float r38705 = r38703 - r38704;
        float r38706 = r38703 + r38704;
        float r38707 = r38705 / r38706;
        float r38708 = log(r38707);
        return r38708;
}

double f_id(double eps) {
        double r38709 = 1;
        double r38710 = eps;
        double r38711 = r38709 - r38710;
        double r38712 = r38709 + r38710;
        double r38713 = r38711 / r38712;
        double r38714 = log(r38713);
        return r38714;
}


double f_of(float eps) {
        float r38715 = 2/3;
        float r38716 = eps;
        float r38717 = 3;
        float r38718 = pow(r38716, r38717);
        float r38719 = r38715 * r38718;
        float r38720 = 2/5;
        float r38721 = 5;
        float r38722 = pow(r38716, r38721);
        float r38723 = r38720 * r38722;
        float r38724 = 2;
        float r38725 = r38724 * r38716;
        float r38726 = r38723 + r38725;
        float r38727 = r38719 + r38726;
        float r38728 = -r38727;
        return r38728;
}

double f_od(double eps) {
        double r38729 = 2/3;
        double r38730 = eps;
        double r38731 = 3;
        double r38732 = pow(r38730, r38731);
        double r38733 = r38729 * r38732;
        double r38734 = 2/5;
        double r38735 = 5;
        double r38736 = pow(r38730, r38735);
        double r38737 = r38734 * r38736;
        double r38738 = 2;
        double r38739 = r38738 * r38730;
        double r38740 = r38737 + r38739;
        double r38741 = r38733 + r38740;
        double r38742 = -r38741;
        return r38742;
}

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 r38743, r38744, r38745, r38746, r38747, r38748;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38743, "1", 10, MPFR_RNDN);
        mpfr_init(r38744);
        mpfr_init(r38745);
        mpfr_init(r38746);
        mpfr_init(r38747);
        mpfr_init(r38748);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r38744, eps, MPFR_RNDN);
        mpfr_sub(r38745, r38743, r38744, MPFR_RNDN);
        mpfr_add(r38746, r38743, r38744, MPFR_RNDN);
        mpfr_div(r38747, r38745, r38746, MPFR_RNDN);
        mpfr_log(r38748, r38747, MPFR_RNDN);
        return mpfr_get_d(r38748, MPFR_RNDN);
}

static mpfr_t r38749, r38750, r38751, r38752, r38753, r38754, r38755, r38756, r38757, r38758, r38759, r38760, r38761, r38762;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38749, "2/3", 10, MPFR_RNDN);
        mpfr_init(r38750);
        mpfr_init_set_str(r38751, "3", 10, MPFR_RNDN);
        mpfr_init(r38752);
        mpfr_init(r38753);
        mpfr_init_set_str(r38754, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r38755, "5", 10, MPFR_RNDN);
        mpfr_init(r38756);
        mpfr_init(r38757);
        mpfr_init_set_str(r38758, "2", 10, MPFR_RNDN);
        mpfr_init(r38759);
        mpfr_init(r38760);
        mpfr_init(r38761);
        mpfr_init(r38762);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r38750, eps, MPFR_RNDN);
        ;
        mpfr_pow(r38752, r38750, r38751, MPFR_RNDN);
        mpfr_mul(r38753, r38749, r38752, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r38756, r38750, r38755, MPFR_RNDN);
        mpfr_mul(r38757, r38754, r38756, MPFR_RNDN);
        ;
        mpfr_mul(r38759, r38758, r38750, MPFR_RNDN);
        mpfr_add(r38760, r38757, r38759, MPFR_RNDN);
        mpfr_add(r38761, r38753, r38760, MPFR_RNDN);
        mpfr_neg(r38762, r38761, MPFR_RNDN);
        return mpfr_get_d(r38762, MPFR_RNDN);
}

static mpfr_t r38763, r38764, r38765, r38766, r38767, r38768, r38769, r38770, r38771, r38772, r38773, r38774, r38775, r38776;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38763, "2/3", 10, MPFR_RNDN);
        mpfr_init(r38764);
        mpfr_init_set_str(r38765, "3", 10, MPFR_RNDN);
        mpfr_init(r38766);
        mpfr_init(r38767);
        mpfr_init_set_str(r38768, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r38769, "5", 10, MPFR_RNDN);
        mpfr_init(r38770);
        mpfr_init(r38771);
        mpfr_init_set_str(r38772, "2", 10, MPFR_RNDN);
        mpfr_init(r38773);
        mpfr_init(r38774);
        mpfr_init(r38775);
        mpfr_init(r38776);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r38764, eps, MPFR_RNDN);
        ;
        mpfr_pow(r38766, r38764, r38765, MPFR_RNDN);
        mpfr_mul(r38767, r38763, r38766, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r38770, r38764, r38769, MPFR_RNDN);
        mpfr_mul(r38771, r38768, r38770, MPFR_RNDN);
        ;
        mpfr_mul(r38773, r38772, r38764, MPFR_RNDN);
        mpfr_add(r38774, r38771, r38773, MPFR_RNDN);
        mpfr_add(r38775, r38767, r38774, MPFR_RNDN);
        mpfr_neg(r38776, r38775, MPFR_RNDN);
        return mpfr_get_d(r38776, MPFR_RNDN);
}

