#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 r26460 = 1;
        float r26461 = eps;
        float r26462 = r26460 - r26461;
        float r26463 = r26460 + r26461;
        float r26464 = r26462 / r26463;
        float r26465 = log(r26464);
        return r26465;
}

double f_id(double eps) {
        double r26466 = 1;
        double r26467 = eps;
        double r26468 = r26466 - r26467;
        double r26469 = r26466 + r26467;
        double r26470 = r26468 / r26469;
        double r26471 = log(r26470);
        return r26471;
}


double f_of(float eps) {
        float r26472 = 2/3;
        float r26473 = eps;
        float r26474 = 3;
        float r26475 = pow(r26473, r26474);
        float r26476 = r26472 * r26475;
        float r26477 = 2/5;
        float r26478 = 5;
        float r26479 = pow(r26473, r26478);
        float r26480 = r26477 * r26479;
        float r26481 = 2;
        float r26482 = r26481 * r26473;
        float r26483 = r26480 + r26482;
        float r26484 = r26476 + r26483;
        float r26485 = -r26484;
        return r26485;
}

double f_od(double eps) {
        double r26486 = 2/3;
        double r26487 = eps;
        double r26488 = 3;
        double r26489 = pow(r26487, r26488);
        double r26490 = r26486 * r26489;
        double r26491 = 2/5;
        double r26492 = 5;
        double r26493 = pow(r26487, r26492);
        double r26494 = r26491 * r26493;
        double r26495 = 2;
        double r26496 = r26495 * r26487;
        double r26497 = r26494 + r26496;
        double r26498 = r26490 + r26497;
        double r26499 = -r26498;
        return r26499;
}

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 r26500, r26501, r26502, r26503, r26504, r26505;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26500, "1", 10, MPFR_RNDN);
        mpfr_init(r26501);
        mpfr_init(r26502);
        mpfr_init(r26503);
        mpfr_init(r26504);
        mpfr_init(r26505);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r26501, eps, MPFR_RNDN);
        mpfr_sub(r26502, r26500, r26501, MPFR_RNDN);
        mpfr_add(r26503, r26500, r26501, MPFR_RNDN);
        mpfr_div(r26504, r26502, r26503, MPFR_RNDN);
        mpfr_log(r26505, r26504, MPFR_RNDN);
        return mpfr_get_d(r26505, MPFR_RNDN);
}

static mpfr_t r26506, r26507, r26508, r26509, r26510, r26511, r26512, r26513, r26514, r26515, r26516, r26517, r26518, r26519;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26506, "2/3", 10, MPFR_RNDN);
        mpfr_init(r26507);
        mpfr_init_set_str(r26508, "3", 10, MPFR_RNDN);
        mpfr_init(r26509);
        mpfr_init(r26510);
        mpfr_init_set_str(r26511, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r26512, "5", 10, MPFR_RNDN);
        mpfr_init(r26513);
        mpfr_init(r26514);
        mpfr_init_set_str(r26515, "2", 10, MPFR_RNDN);
        mpfr_init(r26516);
        mpfr_init(r26517);
        mpfr_init(r26518);
        mpfr_init(r26519);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r26507, eps, MPFR_RNDN);
        ;
        mpfr_pow(r26509, r26507, r26508, MPFR_RNDN);
        mpfr_mul(r26510, r26506, r26509, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26513, r26507, r26512, MPFR_RNDN);
        mpfr_mul(r26514, r26511, r26513, MPFR_RNDN);
        ;
        mpfr_mul(r26516, r26515, r26507, MPFR_RNDN);
        mpfr_add(r26517, r26514, r26516, MPFR_RNDN);
        mpfr_add(r26518, r26510, r26517, MPFR_RNDN);
        mpfr_neg(r26519, r26518, MPFR_RNDN);
        return mpfr_get_d(r26519, MPFR_RNDN);
}

static mpfr_t r26520, r26521, r26522, r26523, r26524, r26525, r26526, r26527, r26528, r26529, r26530, r26531, r26532, r26533;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26520, "2/3", 10, MPFR_RNDN);
        mpfr_init(r26521);
        mpfr_init_set_str(r26522, "3", 10, MPFR_RNDN);
        mpfr_init(r26523);
        mpfr_init(r26524);
        mpfr_init_set_str(r26525, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r26526, "5", 10, MPFR_RNDN);
        mpfr_init(r26527);
        mpfr_init(r26528);
        mpfr_init_set_str(r26529, "2", 10, MPFR_RNDN);
        mpfr_init(r26530);
        mpfr_init(r26531);
        mpfr_init(r26532);
        mpfr_init(r26533);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r26521, eps, MPFR_RNDN);
        ;
        mpfr_pow(r26523, r26521, r26522, MPFR_RNDN);
        mpfr_mul(r26524, r26520, r26523, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26527, r26521, r26526, MPFR_RNDN);
        mpfr_mul(r26528, r26525, r26527, MPFR_RNDN);
        ;
        mpfr_mul(r26530, r26529, r26521, MPFR_RNDN);
        mpfr_add(r26531, r26528, r26530, MPFR_RNDN);
        mpfr_add(r26532, r26524, r26531, MPFR_RNDN);
        mpfr_neg(r26533, r26532, MPFR_RNDN);
        return mpfr_get_d(r26533, MPFR_RNDN);
}

