#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 r26422 = 1;
        float r26423 = eps;
        float r26424 = r26422 - r26423;
        float r26425 = r26422 + r26423;
        float r26426 = r26424 / r26425;
        float r26427 = log(r26426);
        return r26427;
}

double f_id(double eps) {
        double r26428 = 1;
        double r26429 = eps;
        double r26430 = r26428 - r26429;
        double r26431 = r26428 + r26429;
        double r26432 = r26430 / r26431;
        double r26433 = log(r26432);
        return r26433;
}


double f_of(float eps) {
        float r26434 = 2/3;
        float r26435 = eps;
        float r26436 = r26435 * r26435;
        float r26437 = 2;
        float r26438 = fma(r26434, r26436, r26437);
        float r26439 = -r26435;
        float r26440 = 2/5;
        float r26441 = -r26440;
        float r26442 = 5;
        float r26443 = pow(r26435, r26442);
        float r26444 = r26441 * r26443;
        float r26445 = fma(r26438, r26439, r26444);
        return r26445;
}

double f_od(double eps) {
        double r26446 = 2/3;
        double r26447 = eps;
        double r26448 = r26447 * r26447;
        double r26449 = 2;
        double r26450 = fma(r26446, r26448, r26449);
        double r26451 = -r26447;
        double r26452 = 2/5;
        double r26453 = -r26452;
        double r26454 = 5;
        double r26455 = pow(r26447, r26454);
        double r26456 = r26453 * r26455;
        double r26457 = fma(r26450, r26451, r26456);
        return r26457;
}

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 r26458, r26459, r26460, r26461, r26462, r26463;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26458, "1", 10, MPFR_RNDN);
        mpfr_init(r26459);
        mpfr_init(r26460);
        mpfr_init(r26461);
        mpfr_init(r26462);
        mpfr_init(r26463);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r26459, eps, MPFR_RNDN);
        mpfr_sub(r26460, r26458, r26459, MPFR_RNDN);
        mpfr_add(r26461, r26458, r26459, MPFR_RNDN);
        mpfr_div(r26462, r26460, r26461, MPFR_RNDN);
        mpfr_log(r26463, r26462, MPFR_RNDN);
        return mpfr_get_d(r26463, MPFR_RNDN);
}

static mpfr_t r26464, r26465, r26466, r26467, r26468, r26469, r26470, r26471, r26472, r26473, r26474, r26475;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26464, "2/3", 10, MPFR_RNDN);
        mpfr_init(r26465);
        mpfr_init(r26466);
        mpfr_init_set_str(r26467, "2", 10, MPFR_RNDN);
        mpfr_init(r26468);
        mpfr_init(r26469);
        mpfr_init_set_str(r26470, "2/5", 10, MPFR_RNDN);
        mpfr_init(r26471);
        mpfr_init_set_str(r26472, "5", 10, MPFR_RNDN);
        mpfr_init(r26473);
        mpfr_init(r26474);
        mpfr_init(r26475);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r26465, eps, MPFR_RNDN);
        mpfr_mul(r26466, r26465, r26465, MPFR_RNDN);
        ;
        mpfr_fma(r26468, r26464, r26466, r26467, MPFR_RNDN);
        mpfr_neg(r26469, r26465, MPFR_RNDN);
        ;
        mpfr_neg(r26471, r26470, MPFR_RNDN);
        ;
        mpfr_pow(r26473, r26465, r26472, MPFR_RNDN);
        mpfr_mul(r26474, r26471, r26473, MPFR_RNDN);
        mpfr_fma(r26475, r26468, r26469, r26474, MPFR_RNDN);
        return mpfr_get_d(r26475, MPFR_RNDN);
}

static mpfr_t r26476, r26477, r26478, r26479, r26480, r26481, r26482, r26483, r26484, r26485, r26486, r26487;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26476, "2/3", 10, MPFR_RNDN);
        mpfr_init(r26477);
        mpfr_init(r26478);
        mpfr_init_set_str(r26479, "2", 10, MPFR_RNDN);
        mpfr_init(r26480);
        mpfr_init(r26481);
        mpfr_init_set_str(r26482, "2/5", 10, MPFR_RNDN);
        mpfr_init(r26483);
        mpfr_init_set_str(r26484, "5", 10, MPFR_RNDN);
        mpfr_init(r26485);
        mpfr_init(r26486);
        mpfr_init(r26487);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r26477, eps, MPFR_RNDN);
        mpfr_mul(r26478, r26477, r26477, MPFR_RNDN);
        ;
        mpfr_fma(r26480, r26476, r26478, r26479, MPFR_RNDN);
        mpfr_neg(r26481, r26477, MPFR_RNDN);
        ;
        mpfr_neg(r26483, r26482, MPFR_RNDN);
        ;
        mpfr_pow(r26485, r26477, r26484, MPFR_RNDN);
        mpfr_mul(r26486, r26483, r26485, MPFR_RNDN);
        mpfr_fma(r26487, r26480, r26481, r26486, MPFR_RNDN);
        return mpfr_get_d(r26487, MPFR_RNDN);
}

