#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 r38546 = 1;
        float r38547 = eps;
        float r38548 = r38546 - r38547;
        float r38549 = r38546 + r38547;
        float r38550 = r38548 / r38549;
        float r38551 = log(r38550);
        return r38551;
}

double f_id(double eps) {
        double r38552 = 1;
        double r38553 = eps;
        double r38554 = r38552 - r38553;
        double r38555 = r38552 + r38553;
        double r38556 = r38554 / r38555;
        double r38557 = log(r38556);
        return r38557;
}


double f_of(float eps) {
        float r38558 = 2/3;
        float r38559 = eps;
        float r38560 = 3;
        float r38561 = pow(r38559, r38560);
        float r38562 = r38558 * r38561;
        float r38563 = 2/5;
        float r38564 = 5;
        float r38565 = pow(r38559, r38564);
        float r38566 = r38563 * r38565;
        float r38567 = 2;
        float r38568 = r38567 * r38559;
        float r38569 = r38566 + r38568;
        float r38570 = r38562 + r38569;
        float r38571 = -r38570;
        return r38571;
}

double f_od(double eps) {
        double r38572 = 2/3;
        double r38573 = eps;
        double r38574 = 3;
        double r38575 = pow(r38573, r38574);
        double r38576 = r38572 * r38575;
        double r38577 = 2/5;
        double r38578 = 5;
        double r38579 = pow(r38573, r38578);
        double r38580 = r38577 * r38579;
        double r38581 = 2;
        double r38582 = r38581 * r38573;
        double r38583 = r38580 + r38582;
        double r38584 = r38576 + r38583;
        double r38585 = -r38584;
        return r38585;
}

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 r38586, r38587, r38588, r38589, r38590, r38591;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38586, "1", 10, MPFR_RNDN);
        mpfr_init(r38587);
        mpfr_init(r38588);
        mpfr_init(r38589);
        mpfr_init(r38590);
        mpfr_init(r38591);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r38587, eps, MPFR_RNDN);
        mpfr_sub(r38588, r38586, r38587, MPFR_RNDN);
        mpfr_add(r38589, r38586, r38587, MPFR_RNDN);
        mpfr_div(r38590, r38588, r38589, MPFR_RNDN);
        mpfr_log(r38591, r38590, MPFR_RNDN);
        return mpfr_get_d(r38591, MPFR_RNDN);
}

static mpfr_t r38592, r38593, r38594, r38595, r38596, r38597, r38598, r38599, r38600, r38601, r38602, r38603, r38604, r38605;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38592, "2/3", 10, MPFR_RNDN);
        mpfr_init(r38593);
        mpfr_init_set_str(r38594, "3", 10, MPFR_RNDN);
        mpfr_init(r38595);
        mpfr_init(r38596);
        mpfr_init_set_str(r38597, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r38598, "5", 10, MPFR_RNDN);
        mpfr_init(r38599);
        mpfr_init(r38600);
        mpfr_init_set_str(r38601, "2", 10, MPFR_RNDN);
        mpfr_init(r38602);
        mpfr_init(r38603);
        mpfr_init(r38604);
        mpfr_init(r38605);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r38593, eps, MPFR_RNDN);
        ;
        mpfr_pow(r38595, r38593, r38594, MPFR_RNDN);
        mpfr_mul(r38596, r38592, r38595, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r38599, r38593, r38598, MPFR_RNDN);
        mpfr_mul(r38600, r38597, r38599, MPFR_RNDN);
        ;
        mpfr_mul(r38602, r38601, r38593, MPFR_RNDN);
        mpfr_add(r38603, r38600, r38602, MPFR_RNDN);
        mpfr_add(r38604, r38596, r38603, MPFR_RNDN);
        mpfr_neg(r38605, r38604, MPFR_RNDN);
        return mpfr_get_d(r38605, MPFR_RNDN);
}

static mpfr_t r38606, r38607, r38608, r38609, r38610, r38611, r38612, r38613, r38614, r38615, r38616, r38617, r38618, r38619;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38606, "2/3", 10, MPFR_RNDN);
        mpfr_init(r38607);
        mpfr_init_set_str(r38608, "3", 10, MPFR_RNDN);
        mpfr_init(r38609);
        mpfr_init(r38610);
        mpfr_init_set_str(r38611, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r38612, "5", 10, MPFR_RNDN);
        mpfr_init(r38613);
        mpfr_init(r38614);
        mpfr_init_set_str(r38615, "2", 10, MPFR_RNDN);
        mpfr_init(r38616);
        mpfr_init(r38617);
        mpfr_init(r38618);
        mpfr_init(r38619);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r38607, eps, MPFR_RNDN);
        ;
        mpfr_pow(r38609, r38607, r38608, MPFR_RNDN);
        mpfr_mul(r38610, r38606, r38609, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r38613, r38607, r38612, MPFR_RNDN);
        mpfr_mul(r38614, r38611, r38613, MPFR_RNDN);
        ;
        mpfr_mul(r38616, r38615, r38607, MPFR_RNDN);
        mpfr_add(r38617, r38614, r38616, MPFR_RNDN);
        mpfr_add(r38618, r38610, r38617, MPFR_RNDN);
        mpfr_neg(r38619, r38618, MPFR_RNDN);
        return mpfr_get_d(r38619, MPFR_RNDN);
}

