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

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


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

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

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 r26506, r26507, r26508, r26509, r26510, r26511;

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

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

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

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

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

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

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

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

