#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 r39215 = 1;
        float r39216 = eps;
        float r39217 = r39215 - r39216;
        float r39218 = r39215 + r39216;
        float r39219 = r39217 / r39218;
        float r39220 = log(r39219);
        return r39220;
}

double f_id(double eps) {
        double r39221 = 1;
        double r39222 = eps;
        double r39223 = r39221 - r39222;
        double r39224 = r39221 + r39222;
        double r39225 = r39223 / r39224;
        double r39226 = log(r39225);
        return r39226;
}


double f_of(float eps) {
        float r39227 = 2/3;
        float r39228 = eps;
        float r39229 = 3;
        float r39230 = pow(r39228, r39229);
        float r39231 = r39227 * r39230;
        float r39232 = 2/5;
        float r39233 = 5;
        float r39234 = pow(r39228, r39233);
        float r39235 = r39232 * r39234;
        float r39236 = 2;
        float r39237 = r39236 * r39228;
        float r39238 = r39235 + r39237;
        float r39239 = r39231 + r39238;
        float r39240 = -r39239;
        return r39240;
}

double f_od(double eps) {
        double r39241 = 2/3;
        double r39242 = eps;
        double r39243 = 3;
        double r39244 = pow(r39242, r39243);
        double r39245 = r39241 * r39244;
        double r39246 = 2/5;
        double r39247 = 5;
        double r39248 = pow(r39242, r39247);
        double r39249 = r39246 * r39248;
        double r39250 = 2;
        double r39251 = r39250 * r39242;
        double r39252 = r39249 + r39251;
        double r39253 = r39245 + r39252;
        double r39254 = -r39253;
        return r39254;
}

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 r39255, r39256, r39257, r39258, r39259, r39260;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r39255, "1", 10, MPFR_RNDN);
        mpfr_init(r39256);
        mpfr_init(r39257);
        mpfr_init(r39258);
        mpfr_init(r39259);
        mpfr_init(r39260);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r39256, eps, MPFR_RNDN);
        mpfr_sub(r39257, r39255, r39256, MPFR_RNDN);
        mpfr_add(r39258, r39255, r39256, MPFR_RNDN);
        mpfr_div(r39259, r39257, r39258, MPFR_RNDN);
        mpfr_log(r39260, r39259, MPFR_RNDN);
        return mpfr_get_d(r39260, MPFR_RNDN);
}

static mpfr_t r39261, r39262, r39263, r39264, r39265, r39266, r39267, r39268, r39269, r39270, r39271, r39272, r39273, r39274;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r39261, "2/3", 10, MPFR_RNDN);
        mpfr_init(r39262);
        mpfr_init_set_str(r39263, "3", 10, MPFR_RNDN);
        mpfr_init(r39264);
        mpfr_init(r39265);
        mpfr_init_set_str(r39266, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r39267, "5", 10, MPFR_RNDN);
        mpfr_init(r39268);
        mpfr_init(r39269);
        mpfr_init_set_str(r39270, "2", 10, MPFR_RNDN);
        mpfr_init(r39271);
        mpfr_init(r39272);
        mpfr_init(r39273);
        mpfr_init(r39274);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r39262, eps, MPFR_RNDN);
        ;
        mpfr_pow(r39264, r39262, r39263, MPFR_RNDN);
        mpfr_mul(r39265, r39261, r39264, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r39268, r39262, r39267, MPFR_RNDN);
        mpfr_mul(r39269, r39266, r39268, MPFR_RNDN);
        ;
        mpfr_mul(r39271, r39270, r39262, MPFR_RNDN);
        mpfr_add(r39272, r39269, r39271, MPFR_RNDN);
        mpfr_add(r39273, r39265, r39272, MPFR_RNDN);
        mpfr_neg(r39274, r39273, MPFR_RNDN);
        return mpfr_get_d(r39274, MPFR_RNDN);
}

static mpfr_t r39275, r39276, r39277, r39278, r39279, r39280, r39281, r39282, r39283, r39284, r39285, r39286, r39287, r39288;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r39275, "2/3", 10, MPFR_RNDN);
        mpfr_init(r39276);
        mpfr_init_set_str(r39277, "3", 10, MPFR_RNDN);
        mpfr_init(r39278);
        mpfr_init(r39279);
        mpfr_init_set_str(r39280, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r39281, "5", 10, MPFR_RNDN);
        mpfr_init(r39282);
        mpfr_init(r39283);
        mpfr_init_set_str(r39284, "2", 10, MPFR_RNDN);
        mpfr_init(r39285);
        mpfr_init(r39286);
        mpfr_init(r39287);
        mpfr_init(r39288);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r39276, eps, MPFR_RNDN);
        ;
        mpfr_pow(r39278, r39276, r39277, MPFR_RNDN);
        mpfr_mul(r39279, r39275, r39278, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r39282, r39276, r39281, MPFR_RNDN);
        mpfr_mul(r39283, r39280, r39282, MPFR_RNDN);
        ;
        mpfr_mul(r39285, r39284, r39276, MPFR_RNDN);
        mpfr_add(r39286, r39283, r39285, MPFR_RNDN);
        mpfr_add(r39287, r39279, r39286, MPFR_RNDN);
        mpfr_neg(r39288, r39287, MPFR_RNDN);
        return mpfr_get_d(r39288, MPFR_RNDN);
}

