#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 r6238283 = 1;
        float r6238284 = eps;
        float r6238285 = r6238283 - r6238284;
        float r6238286 = r6238283 + r6238284;
        float r6238287 = r6238285 / r6238286;
        float r6238288 = log(r6238287);
        return r6238288;
}

double f_id(double eps) {
        double r6238289 = 1;
        double r6238290 = eps;
        double r6238291 = r6238289 - r6238290;
        double r6238292 = r6238289 + r6238290;
        double r6238293 = r6238291 / r6238292;
        double r6238294 = log(r6238293);
        return r6238294;
}


double f_of(float eps) {
        float r6238295 = 2/5;
        float r6238296 = eps;
        float r6238297 = 5;
        float r6238298 = pow(r6238296, r6238297);
        float r6238299 = r6238295 * r6238298;
        float r6238300 = 2;
        float r6238301 = r6238300 * r6238296;
        float r6238302 = 2/3;
        float r6238303 = 3;
        float r6238304 = pow(r6238296, r6238303);
        float r6238305 = r6238302 * r6238304;
        float r6238306 = r6238301 + r6238305;
        float r6238307 = r6238299 + r6238306;
        float r6238308 = -r6238307;
        return r6238308;
}

double f_od(double eps) {
        double r6238309 = 2/5;
        double r6238310 = eps;
        double r6238311 = 5;
        double r6238312 = pow(r6238310, r6238311);
        double r6238313 = r6238309 * r6238312;
        double r6238314 = 2;
        double r6238315 = r6238314 * r6238310;
        double r6238316 = 2/3;
        double r6238317 = 3;
        double r6238318 = pow(r6238310, r6238317);
        double r6238319 = r6238316 * r6238318;
        double r6238320 = r6238315 + r6238319;
        double r6238321 = r6238313 + r6238320;
        double r6238322 = -r6238321;
        return r6238322;
}

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 r6238323, r6238324, r6238325, r6238326, r6238327, r6238328;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r6238323, "1", 10, MPFR_RNDN);
        mpfr_init(r6238324);
        mpfr_init(r6238325);
        mpfr_init(r6238326);
        mpfr_init(r6238327);
        mpfr_init(r6238328);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r6238324, eps, MPFR_RNDN);
        mpfr_sub(r6238325, r6238323, r6238324, MPFR_RNDN);
        mpfr_add(r6238326, r6238323, r6238324, MPFR_RNDN);
        mpfr_div(r6238327, r6238325, r6238326, MPFR_RNDN);
        mpfr_log(r6238328, r6238327, MPFR_RNDN);
        return mpfr_get_d(r6238328, MPFR_RNDN);
}

static mpfr_t r6238329, r6238330, r6238331, r6238332, r6238333, r6238334, r6238335, r6238336, r6238337, r6238338, r6238339, r6238340, r6238341, r6238342;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r6238329, "2/5", 10, MPFR_RNDN);
        mpfr_init(r6238330);
        mpfr_init_set_str(r6238331, "5", 10, MPFR_RNDN);
        mpfr_init(r6238332);
        mpfr_init(r6238333);
        mpfr_init_set_str(r6238334, "2", 10, MPFR_RNDN);
        mpfr_init(r6238335);
        mpfr_init_set_str(r6238336, "2/3", 10, MPFR_RNDN);
        mpfr_init_set_str(r6238337, "3", 10, MPFR_RNDN);
        mpfr_init(r6238338);
        mpfr_init(r6238339);
        mpfr_init(r6238340);
        mpfr_init(r6238341);
        mpfr_init(r6238342);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r6238330, eps, MPFR_RNDN);
        ;
        mpfr_pow(r6238332, r6238330, r6238331, MPFR_RNDN);
        mpfr_mul(r6238333, r6238329, r6238332, MPFR_RNDN);
        ;
        mpfr_mul(r6238335, r6238334, r6238330, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r6238338, r6238330, r6238337, MPFR_RNDN);
        mpfr_mul(r6238339, r6238336, r6238338, MPFR_RNDN);
        mpfr_add(r6238340, r6238335, r6238339, MPFR_RNDN);
        mpfr_add(r6238341, r6238333, r6238340, MPFR_RNDN);
        mpfr_neg(r6238342, r6238341, MPFR_RNDN);
        return mpfr_get_d(r6238342, MPFR_RNDN);
}

static mpfr_t r6238343, r6238344, r6238345, r6238346, r6238347, r6238348, r6238349, r6238350, r6238351, r6238352, r6238353, r6238354, r6238355, r6238356;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r6238343, "2/5", 10, MPFR_RNDN);
        mpfr_init(r6238344);
        mpfr_init_set_str(r6238345, "5", 10, MPFR_RNDN);
        mpfr_init(r6238346);
        mpfr_init(r6238347);
        mpfr_init_set_str(r6238348, "2", 10, MPFR_RNDN);
        mpfr_init(r6238349);
        mpfr_init_set_str(r6238350, "2/3", 10, MPFR_RNDN);
        mpfr_init_set_str(r6238351, "3", 10, MPFR_RNDN);
        mpfr_init(r6238352);
        mpfr_init(r6238353);
        mpfr_init(r6238354);
        mpfr_init(r6238355);
        mpfr_init(r6238356);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r6238344, eps, MPFR_RNDN);
        ;
        mpfr_pow(r6238346, r6238344, r6238345, MPFR_RNDN);
        mpfr_mul(r6238347, r6238343, r6238346, MPFR_RNDN);
        ;
        mpfr_mul(r6238349, r6238348, r6238344, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r6238352, r6238344, r6238351, MPFR_RNDN);
        mpfr_mul(r6238353, r6238350, r6238352, MPFR_RNDN);
        mpfr_add(r6238354, r6238349, r6238353, MPFR_RNDN);
        mpfr_add(r6238355, r6238347, r6238354, MPFR_RNDN);
        mpfr_neg(r6238356, r6238355, MPFR_RNDN);
        return mpfr_get_d(r6238356, MPFR_RNDN);
}

