#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 r26464 = 1;
        float r26465 = eps;
        float r26466 = r26464 - r26465;
        float r26467 = r26464 + r26465;
        float r26468 = r26466 / r26467;
        float r26469 = log(r26468);
        return r26469;
}

double f_id(double eps) {
        double r26470 = 1;
        double r26471 = eps;
        double r26472 = r26470 - r26471;
        double r26473 = r26470 + r26471;
        double r26474 = r26472 / r26473;
        double r26475 = log(r26474);
        return r26475;
}


double f_of(float eps) {
        float r26476 = 2/3;
        float r26477 = eps;
        float r26478 = 3;
        float r26479 = pow(r26477, r26478);
        float r26480 = r26476 * r26479;
        float r26481 = 2/5;
        float r26482 = 5;
        float r26483 = pow(r26477, r26482);
        float r26484 = r26481 * r26483;
        float r26485 = 2;
        float r26486 = r26485 * r26477;
        float r26487 = r26484 + r26486;
        float r26488 = r26480 + r26487;
        float r26489 = -r26488;
        return r26489;
}

double f_od(double eps) {
        double r26490 = 2/3;
        double r26491 = eps;
        double r26492 = 3;
        double r26493 = pow(r26491, r26492);
        double r26494 = r26490 * r26493;
        double r26495 = 2/5;
        double r26496 = 5;
        double r26497 = pow(r26491, r26496);
        double r26498 = r26495 * r26497;
        double r26499 = 2;
        double r26500 = r26499 * r26491;
        double r26501 = r26498 + r26500;
        double r26502 = r26494 + r26501;
        double r26503 = -r26502;
        return r26503;
}

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 r26504, r26505, r26506, r26507, r26508, r26509;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26504, "1", 10, MPFR_RNDN);
        mpfr_init(r26505);
        mpfr_init(r26506);
        mpfr_init(r26507);
        mpfr_init(r26508);
        mpfr_init(r26509);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r26505, eps, MPFR_RNDN);
        mpfr_sub(r26506, r26504, r26505, MPFR_RNDN);
        mpfr_add(r26507, r26504, r26505, MPFR_RNDN);
        mpfr_div(r26508, r26506, r26507, MPFR_RNDN);
        mpfr_log(r26509, r26508, MPFR_RNDN);
        return mpfr_get_d(r26509, MPFR_RNDN);
}

static mpfr_t r26510, r26511, r26512, r26513, r26514, r26515, r26516, r26517, r26518, r26519, r26520, r26521, r26522, r26523;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26510, "2/3", 10, MPFR_RNDN);
        mpfr_init(r26511);
        mpfr_init_set_str(r26512, "3", 10, MPFR_RNDN);
        mpfr_init(r26513);
        mpfr_init(r26514);
        mpfr_init_set_str(r26515, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r26516, "5", 10, MPFR_RNDN);
        mpfr_init(r26517);
        mpfr_init(r26518);
        mpfr_init_set_str(r26519, "2", 10, MPFR_RNDN);
        mpfr_init(r26520);
        mpfr_init(r26521);
        mpfr_init(r26522);
        mpfr_init(r26523);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r26511, eps, MPFR_RNDN);
        ;
        mpfr_pow(r26513, r26511, r26512, MPFR_RNDN);
        mpfr_mul(r26514, r26510, r26513, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26517, r26511, r26516, MPFR_RNDN);
        mpfr_mul(r26518, r26515, r26517, MPFR_RNDN);
        ;
        mpfr_mul(r26520, r26519, r26511, MPFR_RNDN);
        mpfr_add(r26521, r26518, r26520, MPFR_RNDN);
        mpfr_add(r26522, r26514, r26521, MPFR_RNDN);
        mpfr_neg(r26523, r26522, MPFR_RNDN);
        return mpfr_get_d(r26523, MPFR_RNDN);
}

static mpfr_t r26524, r26525, r26526, r26527, r26528, r26529, r26530, r26531, r26532, r26533, r26534, r26535, r26536, r26537;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26524, "2/3", 10, MPFR_RNDN);
        mpfr_init(r26525);
        mpfr_init_set_str(r26526, "3", 10, MPFR_RNDN);
        mpfr_init(r26527);
        mpfr_init(r26528);
        mpfr_init_set_str(r26529, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r26530, "5", 10, MPFR_RNDN);
        mpfr_init(r26531);
        mpfr_init(r26532);
        mpfr_init_set_str(r26533, "2", 10, MPFR_RNDN);
        mpfr_init(r26534);
        mpfr_init(r26535);
        mpfr_init(r26536);
        mpfr_init(r26537);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r26525, eps, MPFR_RNDN);
        ;
        mpfr_pow(r26527, r26525, r26526, MPFR_RNDN);
        mpfr_mul(r26528, r26524, r26527, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26531, r26525, r26530, MPFR_RNDN);
        mpfr_mul(r26532, r26529, r26531, MPFR_RNDN);
        ;
        mpfr_mul(r26534, r26533, r26525, MPFR_RNDN);
        mpfr_add(r26535, r26532, r26534, MPFR_RNDN);
        mpfr_add(r26536, r26528, r26535, MPFR_RNDN);
        mpfr_neg(r26537, r26536, MPFR_RNDN);
        return mpfr_get_d(r26537, MPFR_RNDN);
}

