#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 r10322 = 1;
        float r10323 = eps;
        float r10324 = r10322 - r10323;
        float r10325 = r10322 + r10323;
        float r10326 = r10324 / r10325;
        float r10327 = log(r10326);
        return r10327;
}

double f_id(double eps) {
        double r10328 = 1;
        double r10329 = eps;
        double r10330 = r10328 - r10329;
        double r10331 = r10328 + r10329;
        double r10332 = r10330 / r10331;
        double r10333 = log(r10332);
        return r10333;
}


double f_of(float eps) {
        float r10334 = 2/3;
        float r10335 = eps;
        float r10336 = 3;
        float r10337 = pow(r10335, r10336);
        float r10338 = r10334 * r10337;
        float r10339 = 2/5;
        float r10340 = 5;
        float r10341 = pow(r10335, r10340);
        float r10342 = r10339 * r10341;
        float r10343 = 2;
        float r10344 = r10343 * r10335;
        float r10345 = r10342 + r10344;
        float r10346 = r10338 + r10345;
        float r10347 = -r10346;
        return r10347;
}

double f_od(double eps) {
        double r10348 = 2/3;
        double r10349 = eps;
        double r10350 = 3;
        double r10351 = pow(r10349, r10350);
        double r10352 = r10348 * r10351;
        double r10353 = 2/5;
        double r10354 = 5;
        double r10355 = pow(r10349, r10354);
        double r10356 = r10353 * r10355;
        double r10357 = 2;
        double r10358 = r10357 * r10349;
        double r10359 = r10356 + r10358;
        double r10360 = r10352 + r10359;
        double r10361 = -r10360;
        return r10361;
}

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 r10362, r10363, r10364, r10365, r10366, r10367;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r10362, "1", 10, MPFR_RNDN);
        mpfr_init(r10363);
        mpfr_init(r10364);
        mpfr_init(r10365);
        mpfr_init(r10366);
        mpfr_init(r10367);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r10363, eps, MPFR_RNDN);
        mpfr_sub(r10364, r10362, r10363, MPFR_RNDN);
        mpfr_add(r10365, r10362, r10363, MPFR_RNDN);
        mpfr_div(r10366, r10364, r10365, MPFR_RNDN);
        mpfr_log(r10367, r10366, MPFR_RNDN);
        return mpfr_get_d(r10367, MPFR_RNDN);
}

static mpfr_t r10368, r10369, r10370, r10371, r10372, r10373, r10374, r10375, r10376, r10377, r10378, r10379, r10380, r10381;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r10368, "2/3", 10, MPFR_RNDN);
        mpfr_init(r10369);
        mpfr_init_set_str(r10370, "3", 10, MPFR_RNDN);
        mpfr_init(r10371);
        mpfr_init(r10372);
        mpfr_init_set_str(r10373, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r10374, "5", 10, MPFR_RNDN);
        mpfr_init(r10375);
        mpfr_init(r10376);
        mpfr_init_set_str(r10377, "2", 10, MPFR_RNDN);
        mpfr_init(r10378);
        mpfr_init(r10379);
        mpfr_init(r10380);
        mpfr_init(r10381);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r10369, eps, MPFR_RNDN);
        ;
        mpfr_pow(r10371, r10369, r10370, MPFR_RNDN);
        mpfr_mul(r10372, r10368, r10371, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r10375, r10369, r10374, MPFR_RNDN);
        mpfr_mul(r10376, r10373, r10375, MPFR_RNDN);
        ;
        mpfr_mul(r10378, r10377, r10369, MPFR_RNDN);
        mpfr_add(r10379, r10376, r10378, MPFR_RNDN);
        mpfr_add(r10380, r10372, r10379, MPFR_RNDN);
        mpfr_neg(r10381, r10380, MPFR_RNDN);
        return mpfr_get_d(r10381, MPFR_RNDN);
}

static mpfr_t r10382, r10383, r10384, r10385, r10386, r10387, r10388, r10389, r10390, r10391, r10392, r10393, r10394, r10395;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r10382, "2/3", 10, MPFR_RNDN);
        mpfr_init(r10383);
        mpfr_init_set_str(r10384, "3", 10, MPFR_RNDN);
        mpfr_init(r10385);
        mpfr_init(r10386);
        mpfr_init_set_str(r10387, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r10388, "5", 10, MPFR_RNDN);
        mpfr_init(r10389);
        mpfr_init(r10390);
        mpfr_init_set_str(r10391, "2", 10, MPFR_RNDN);
        mpfr_init(r10392);
        mpfr_init(r10393);
        mpfr_init(r10394);
        mpfr_init(r10395);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r10383, eps, MPFR_RNDN);
        ;
        mpfr_pow(r10385, r10383, r10384, MPFR_RNDN);
        mpfr_mul(r10386, r10382, r10385, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r10389, r10383, r10388, MPFR_RNDN);
        mpfr_mul(r10390, r10387, r10389, MPFR_RNDN);
        ;
        mpfr_mul(r10392, r10391, r10383, MPFR_RNDN);
        mpfr_add(r10393, r10390, r10392, MPFR_RNDN);
        mpfr_add(r10394, r10386, r10393, MPFR_RNDN);
        mpfr_neg(r10395, r10394, MPFR_RNDN);
        return mpfr_get_d(r10395, MPFR_RNDN);
}

