#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 r26490 = 1;
        float r26491 = eps;
        float r26492 = r26490 - r26491;
        float r26493 = r26490 + r26491;
        float r26494 = r26492 / r26493;
        float r26495 = log(r26494);
        return r26495;
}

double f_id(double eps) {
        double r26496 = 1;
        double r26497 = eps;
        double r26498 = r26496 - r26497;
        double r26499 = r26496 + r26497;
        double r26500 = r26498 / r26499;
        double r26501 = log(r26500);
        return r26501;
}


double f_of(float eps) {
        float r26502 = 2/3;
        float r26503 = eps;
        float r26504 = 3;
        float r26505 = pow(r26503, r26504);
        float r26506 = r26502 * r26505;
        float r26507 = 2/5;
        float r26508 = 5;
        float r26509 = pow(r26503, r26508);
        float r26510 = r26507 * r26509;
        float r26511 = 2;
        float r26512 = r26511 * r26503;
        float r26513 = r26510 + r26512;
        float r26514 = r26506 + r26513;
        float r26515 = -r26514;
        return r26515;
}

double f_od(double eps) {
        double r26516 = 2/3;
        double r26517 = eps;
        double r26518 = 3;
        double r26519 = pow(r26517, r26518);
        double r26520 = r26516 * r26519;
        double r26521 = 2/5;
        double r26522 = 5;
        double r26523 = pow(r26517, r26522);
        double r26524 = r26521 * r26523;
        double r26525 = 2;
        double r26526 = r26525 * r26517;
        double r26527 = r26524 + r26526;
        double r26528 = r26520 + r26527;
        double r26529 = -r26528;
        return r26529;
}

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 r26530, r26531, r26532, r26533, r26534, r26535;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26530, "1", 10, MPFR_RNDN);
        mpfr_init(r26531);
        mpfr_init(r26532);
        mpfr_init(r26533);
        mpfr_init(r26534);
        mpfr_init(r26535);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r26531, eps, MPFR_RNDN);
        mpfr_sub(r26532, r26530, r26531, MPFR_RNDN);
        mpfr_add(r26533, r26530, r26531, MPFR_RNDN);
        mpfr_div(r26534, r26532, r26533, MPFR_RNDN);
        mpfr_log(r26535, r26534, MPFR_RNDN);
        return mpfr_get_d(r26535, MPFR_RNDN);
}

static mpfr_t r26536, r26537, r26538, r26539, r26540, r26541, r26542, r26543, r26544, r26545, r26546, r26547, r26548, r26549;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26536, "2/3", 10, MPFR_RNDN);
        mpfr_init(r26537);
        mpfr_init_set_str(r26538, "3", 10, MPFR_RNDN);
        mpfr_init(r26539);
        mpfr_init(r26540);
        mpfr_init_set_str(r26541, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r26542, "5", 10, MPFR_RNDN);
        mpfr_init(r26543);
        mpfr_init(r26544);
        mpfr_init_set_str(r26545, "2", 10, MPFR_RNDN);
        mpfr_init(r26546);
        mpfr_init(r26547);
        mpfr_init(r26548);
        mpfr_init(r26549);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r26537, eps, MPFR_RNDN);
        ;
        mpfr_pow(r26539, r26537, r26538, MPFR_RNDN);
        mpfr_mul(r26540, r26536, r26539, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26543, r26537, r26542, MPFR_RNDN);
        mpfr_mul(r26544, r26541, r26543, MPFR_RNDN);
        ;
        mpfr_mul(r26546, r26545, r26537, MPFR_RNDN);
        mpfr_add(r26547, r26544, r26546, MPFR_RNDN);
        mpfr_add(r26548, r26540, r26547, MPFR_RNDN);
        mpfr_neg(r26549, r26548, MPFR_RNDN);
        return mpfr_get_d(r26549, MPFR_RNDN);
}

static mpfr_t r26550, r26551, r26552, r26553, r26554, r26555, r26556, r26557, r26558, r26559, r26560, r26561, r26562, r26563;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26550, "2/3", 10, MPFR_RNDN);
        mpfr_init(r26551);
        mpfr_init_set_str(r26552, "3", 10, MPFR_RNDN);
        mpfr_init(r26553);
        mpfr_init(r26554);
        mpfr_init_set_str(r26555, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r26556, "5", 10, MPFR_RNDN);
        mpfr_init(r26557);
        mpfr_init(r26558);
        mpfr_init_set_str(r26559, "2", 10, MPFR_RNDN);
        mpfr_init(r26560);
        mpfr_init(r26561);
        mpfr_init(r26562);
        mpfr_init(r26563);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r26551, eps, MPFR_RNDN);
        ;
        mpfr_pow(r26553, r26551, r26552, MPFR_RNDN);
        mpfr_mul(r26554, r26550, r26553, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r26557, r26551, r26556, MPFR_RNDN);
        mpfr_mul(r26558, r26555, r26557, MPFR_RNDN);
        ;
        mpfr_mul(r26560, r26559, r26551, MPFR_RNDN);
        mpfr_add(r26561, r26558, r26560, MPFR_RNDN);
        mpfr_add(r26562, r26554, r26561, MPFR_RNDN);
        mpfr_neg(r26563, r26562, MPFR_RNDN);
        return mpfr_get_d(r26563, MPFR_RNDN);
}

