#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 r11871665 = 1;
        float r11871666 = eps;
        float r11871667 = r11871665 - r11871666;
        float r11871668 = r11871665 + r11871666;
        float r11871669 = r11871667 / r11871668;
        float r11871670 = log(r11871669);
        return r11871670;
}

double f_id(double eps) {
        double r11871671 = 1;
        double r11871672 = eps;
        double r11871673 = r11871671 - r11871672;
        double r11871674 = r11871671 + r11871672;
        double r11871675 = r11871673 / r11871674;
        double r11871676 = log(r11871675);
        return r11871676;
}


double f_of(float eps) {
        float r11871677 = 2/5;
        float r11871678 = eps;
        float r11871679 = 5;
        float r11871680 = pow(r11871678, r11871679);
        float r11871681 = r11871677 * r11871680;
        float r11871682 = 2;
        float r11871683 = r11871682 * r11871678;
        float r11871684 = 2/3;
        float r11871685 = 3;
        float r11871686 = pow(r11871678, r11871685);
        float r11871687 = r11871684 * r11871686;
        float r11871688 = r11871683 + r11871687;
        float r11871689 = r11871681 + r11871688;
        float r11871690 = -r11871689;
        return r11871690;
}

double f_od(double eps) {
        double r11871691 = 2/5;
        double r11871692 = eps;
        double r11871693 = 5;
        double r11871694 = pow(r11871692, r11871693);
        double r11871695 = r11871691 * r11871694;
        double r11871696 = 2;
        double r11871697 = r11871696 * r11871692;
        double r11871698 = 2/3;
        double r11871699 = 3;
        double r11871700 = pow(r11871692, r11871699);
        double r11871701 = r11871698 * r11871700;
        double r11871702 = r11871697 + r11871701;
        double r11871703 = r11871695 + r11871702;
        double r11871704 = -r11871703;
        return r11871704;
}

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 r11871705, r11871706, r11871707, r11871708, r11871709, r11871710;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11871705, "1", 10, MPFR_RNDN);
        mpfr_init(r11871706);
        mpfr_init(r11871707);
        mpfr_init(r11871708);
        mpfr_init(r11871709);
        mpfr_init(r11871710);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r11871706, eps, MPFR_RNDN);
        mpfr_sub(r11871707, r11871705, r11871706, MPFR_RNDN);
        mpfr_add(r11871708, r11871705, r11871706, MPFR_RNDN);
        mpfr_div(r11871709, r11871707, r11871708, MPFR_RNDN);
        mpfr_log(r11871710, r11871709, MPFR_RNDN);
        return mpfr_get_d(r11871710, MPFR_RNDN);
}

static mpfr_t r11871711, r11871712, r11871713, r11871714, r11871715, r11871716, r11871717, r11871718, r11871719, r11871720, r11871721, r11871722, r11871723, r11871724;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11871711, "2/5", 10, MPFR_RNDN);
        mpfr_init(r11871712);
        mpfr_init_set_str(r11871713, "5", 10, MPFR_RNDN);
        mpfr_init(r11871714);
        mpfr_init(r11871715);
        mpfr_init_set_str(r11871716, "2", 10, MPFR_RNDN);
        mpfr_init(r11871717);
        mpfr_init_set_str(r11871718, "2/3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11871719, "3", 10, MPFR_RNDN);
        mpfr_init(r11871720);
        mpfr_init(r11871721);
        mpfr_init(r11871722);
        mpfr_init(r11871723);
        mpfr_init(r11871724);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r11871712, eps, MPFR_RNDN);
        ;
        mpfr_pow(r11871714, r11871712, r11871713, MPFR_RNDN);
        mpfr_mul(r11871715, r11871711, r11871714, MPFR_RNDN);
        ;
        mpfr_mul(r11871717, r11871716, r11871712, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r11871720, r11871712, r11871719, MPFR_RNDN);
        mpfr_mul(r11871721, r11871718, r11871720, MPFR_RNDN);
        mpfr_add(r11871722, r11871717, r11871721, MPFR_RNDN);
        mpfr_add(r11871723, r11871715, r11871722, MPFR_RNDN);
        mpfr_neg(r11871724, r11871723, MPFR_RNDN);
        return mpfr_get_d(r11871724, MPFR_RNDN);
}

static mpfr_t r11871725, r11871726, r11871727, r11871728, r11871729, r11871730, r11871731, r11871732, r11871733, r11871734, r11871735, r11871736, r11871737, r11871738;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11871725, "2/5", 10, MPFR_RNDN);
        mpfr_init(r11871726);
        mpfr_init_set_str(r11871727, "5", 10, MPFR_RNDN);
        mpfr_init(r11871728);
        mpfr_init(r11871729);
        mpfr_init_set_str(r11871730, "2", 10, MPFR_RNDN);
        mpfr_init(r11871731);
        mpfr_init_set_str(r11871732, "2/3", 10, MPFR_RNDN);
        mpfr_init_set_str(r11871733, "3", 10, MPFR_RNDN);
        mpfr_init(r11871734);
        mpfr_init(r11871735);
        mpfr_init(r11871736);
        mpfr_init(r11871737);
        mpfr_init(r11871738);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r11871726, eps, MPFR_RNDN);
        ;
        mpfr_pow(r11871728, r11871726, r11871727, MPFR_RNDN);
        mpfr_mul(r11871729, r11871725, r11871728, MPFR_RNDN);
        ;
        mpfr_mul(r11871731, r11871730, r11871726, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r11871734, r11871726, r11871733, MPFR_RNDN);
        mpfr_mul(r11871735, r11871732, r11871734, MPFR_RNDN);
        mpfr_add(r11871736, r11871731, r11871735, MPFR_RNDN);
        mpfr_add(r11871737, r11871729, r11871736, MPFR_RNDN);
        mpfr_neg(r11871738, r11871737, MPFR_RNDN);
        return mpfr_get_d(r11871738, MPFR_RNDN);
}

