#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 r6215448 = 1;
        float r6215449 = eps;
        float r6215450 = r6215448 - r6215449;
        float r6215451 = r6215448 + r6215449;
        float r6215452 = r6215450 / r6215451;
        float r6215453 = log(r6215452);
        return r6215453;
}

double f_id(double eps) {
        double r6215454 = 1;
        double r6215455 = eps;
        double r6215456 = r6215454 - r6215455;
        double r6215457 = r6215454 + r6215455;
        double r6215458 = r6215456 / r6215457;
        double r6215459 = log(r6215458);
        return r6215459;
}


double f_of(float eps) {
        float r6215460 = 2/5;
        float r6215461 = eps;
        float r6215462 = 5;
        float r6215463 = pow(r6215461, r6215462);
        float r6215464 = r6215460 * r6215463;
        float r6215465 = 2;
        float r6215466 = r6215465 * r6215461;
        float r6215467 = 2/3;
        float r6215468 = 3;
        float r6215469 = pow(r6215461, r6215468);
        float r6215470 = r6215467 * r6215469;
        float r6215471 = r6215466 + r6215470;
        float r6215472 = r6215464 + r6215471;
        float r6215473 = -r6215472;
        return r6215473;
}

double f_od(double eps) {
        double r6215474 = 2/5;
        double r6215475 = eps;
        double r6215476 = 5;
        double r6215477 = pow(r6215475, r6215476);
        double r6215478 = r6215474 * r6215477;
        double r6215479 = 2;
        double r6215480 = r6215479 * r6215475;
        double r6215481 = 2/3;
        double r6215482 = 3;
        double r6215483 = pow(r6215475, r6215482);
        double r6215484 = r6215481 * r6215483;
        double r6215485 = r6215480 + r6215484;
        double r6215486 = r6215478 + r6215485;
        double r6215487 = -r6215486;
        return r6215487;
}

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 r6215488, r6215489, r6215490, r6215491, r6215492, r6215493;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r6215488, "1", 10, MPFR_RNDN);
        mpfr_init(r6215489);
        mpfr_init(r6215490);
        mpfr_init(r6215491);
        mpfr_init(r6215492);
        mpfr_init(r6215493);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r6215489, eps, MPFR_RNDN);
        mpfr_sub(r6215490, r6215488, r6215489, MPFR_RNDN);
        mpfr_add(r6215491, r6215488, r6215489, MPFR_RNDN);
        mpfr_div(r6215492, r6215490, r6215491, MPFR_RNDN);
        mpfr_log(r6215493, r6215492, MPFR_RNDN);
        return mpfr_get_d(r6215493, MPFR_RNDN);
}

static mpfr_t r6215494, r6215495, r6215496, r6215497, r6215498, r6215499, r6215500, r6215501, r6215502, r6215503, r6215504, r6215505, r6215506, r6215507;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r6215494, "2/5", 10, MPFR_RNDN);
        mpfr_init(r6215495);
        mpfr_init_set_str(r6215496, "5", 10, MPFR_RNDN);
        mpfr_init(r6215497);
        mpfr_init(r6215498);
        mpfr_init_set_str(r6215499, "2", 10, MPFR_RNDN);
        mpfr_init(r6215500);
        mpfr_init_set_str(r6215501, "2/3", 10, MPFR_RNDN);
        mpfr_init_set_str(r6215502, "3", 10, MPFR_RNDN);
        mpfr_init(r6215503);
        mpfr_init(r6215504);
        mpfr_init(r6215505);
        mpfr_init(r6215506);
        mpfr_init(r6215507);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r6215495, eps, MPFR_RNDN);
        ;
        mpfr_pow(r6215497, r6215495, r6215496, MPFR_RNDN);
        mpfr_mul(r6215498, r6215494, r6215497, MPFR_RNDN);
        ;
        mpfr_mul(r6215500, r6215499, r6215495, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r6215503, r6215495, r6215502, MPFR_RNDN);
        mpfr_mul(r6215504, r6215501, r6215503, MPFR_RNDN);
        mpfr_add(r6215505, r6215500, r6215504, MPFR_RNDN);
        mpfr_add(r6215506, r6215498, r6215505, MPFR_RNDN);
        mpfr_neg(r6215507, r6215506, MPFR_RNDN);
        return mpfr_get_d(r6215507, MPFR_RNDN);
}

static mpfr_t r6215508, r6215509, r6215510, r6215511, r6215512, r6215513, r6215514, r6215515, r6215516, r6215517, r6215518, r6215519, r6215520, r6215521;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r6215508, "2/5", 10, MPFR_RNDN);
        mpfr_init(r6215509);
        mpfr_init_set_str(r6215510, "5", 10, MPFR_RNDN);
        mpfr_init(r6215511);
        mpfr_init(r6215512);
        mpfr_init_set_str(r6215513, "2", 10, MPFR_RNDN);
        mpfr_init(r6215514);
        mpfr_init_set_str(r6215515, "2/3", 10, MPFR_RNDN);
        mpfr_init_set_str(r6215516, "3", 10, MPFR_RNDN);
        mpfr_init(r6215517);
        mpfr_init(r6215518);
        mpfr_init(r6215519);
        mpfr_init(r6215520);
        mpfr_init(r6215521);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r6215509, eps, MPFR_RNDN);
        ;
        mpfr_pow(r6215511, r6215509, r6215510, MPFR_RNDN);
        mpfr_mul(r6215512, r6215508, r6215511, MPFR_RNDN);
        ;
        mpfr_mul(r6215514, r6215513, r6215509, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r6215517, r6215509, r6215516, MPFR_RNDN);
        mpfr_mul(r6215518, r6215515, r6215517, MPFR_RNDN);
        mpfr_add(r6215519, r6215514, r6215518, MPFR_RNDN);
        mpfr_add(r6215520, r6215512, r6215519, MPFR_RNDN);
        mpfr_neg(r6215521, r6215520, MPFR_RNDN);
        return mpfr_get_d(r6215521, MPFR_RNDN);
}

