#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 r38866 = 1;
        float r38867 = eps;
        float r38868 = r38866 - r38867;
        float r38869 = r38866 + r38867;
        float r38870 = r38868 / r38869;
        float r38871 = log(r38870);
        return r38871;
}

double f_id(double eps) {
        double r38872 = 1;
        double r38873 = eps;
        double r38874 = r38872 - r38873;
        double r38875 = r38872 + r38873;
        double r38876 = r38874 / r38875;
        double r38877 = log(r38876);
        return r38877;
}


double f_of(float eps) {
        float r38878 = 2/3;
        float r38879 = eps;
        float r38880 = 3;
        float r38881 = pow(r38879, r38880);
        float r38882 = r38878 * r38881;
        float r38883 = 2/5;
        float r38884 = 5;
        float r38885 = pow(r38879, r38884);
        float r38886 = r38883 * r38885;
        float r38887 = 2;
        float r38888 = r38887 * r38879;
        float r38889 = r38886 + r38888;
        float r38890 = r38882 + r38889;
        float r38891 = -r38890;
        return r38891;
}

double f_od(double eps) {
        double r38892 = 2/3;
        double r38893 = eps;
        double r38894 = 3;
        double r38895 = pow(r38893, r38894);
        double r38896 = r38892 * r38895;
        double r38897 = 2/5;
        double r38898 = 5;
        double r38899 = pow(r38893, r38898);
        double r38900 = r38897 * r38899;
        double r38901 = 2;
        double r38902 = r38901 * r38893;
        double r38903 = r38900 + r38902;
        double r38904 = r38896 + r38903;
        double r38905 = -r38904;
        return r38905;
}

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 r38906, r38907, r38908, r38909, r38910, r38911;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38906, "1", 10, MPFR_RNDN);
        mpfr_init(r38907);
        mpfr_init(r38908);
        mpfr_init(r38909);
        mpfr_init(r38910);
        mpfr_init(r38911);
}

double f_im(double eps) {
        ;
        mpfr_set_d(r38907, eps, MPFR_RNDN);
        mpfr_sub(r38908, r38906, r38907, MPFR_RNDN);
        mpfr_add(r38909, r38906, r38907, MPFR_RNDN);
        mpfr_div(r38910, r38908, r38909, MPFR_RNDN);
        mpfr_log(r38911, r38910, MPFR_RNDN);
        return mpfr_get_d(r38911, MPFR_RNDN);
}

static mpfr_t r38912, r38913, r38914, r38915, r38916, r38917, r38918, r38919, r38920, r38921, r38922, r38923, r38924, r38925;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38912, "2/3", 10, MPFR_RNDN);
        mpfr_init(r38913);
        mpfr_init_set_str(r38914, "3", 10, MPFR_RNDN);
        mpfr_init(r38915);
        mpfr_init(r38916);
        mpfr_init_set_str(r38917, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r38918, "5", 10, MPFR_RNDN);
        mpfr_init(r38919);
        mpfr_init(r38920);
        mpfr_init_set_str(r38921, "2", 10, MPFR_RNDN);
        mpfr_init(r38922);
        mpfr_init(r38923);
        mpfr_init(r38924);
        mpfr_init(r38925);
}

double f_fm(double eps) {
        ;
        mpfr_set_d(r38913, eps, MPFR_RNDN);
        ;
        mpfr_pow(r38915, r38913, r38914, MPFR_RNDN);
        mpfr_mul(r38916, r38912, r38915, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r38919, r38913, r38918, MPFR_RNDN);
        mpfr_mul(r38920, r38917, r38919, MPFR_RNDN);
        ;
        mpfr_mul(r38922, r38921, r38913, MPFR_RNDN);
        mpfr_add(r38923, r38920, r38922, MPFR_RNDN);
        mpfr_add(r38924, r38916, r38923, MPFR_RNDN);
        mpfr_neg(r38925, r38924, MPFR_RNDN);
        return mpfr_get_d(r38925, MPFR_RNDN);
}

static mpfr_t r38926, r38927, r38928, r38929, r38930, r38931, r38932, r38933, r38934, r38935, r38936, r38937, r38938, r38939;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r38926, "2/3", 10, MPFR_RNDN);
        mpfr_init(r38927);
        mpfr_init_set_str(r38928, "3", 10, MPFR_RNDN);
        mpfr_init(r38929);
        mpfr_init(r38930);
        mpfr_init_set_str(r38931, "2/5", 10, MPFR_RNDN);
        mpfr_init_set_str(r38932, "5", 10, MPFR_RNDN);
        mpfr_init(r38933);
        mpfr_init(r38934);
        mpfr_init_set_str(r38935, "2", 10, MPFR_RNDN);
        mpfr_init(r38936);
        mpfr_init(r38937);
        mpfr_init(r38938);
        mpfr_init(r38939);
}

double f_dm(double eps) {
        ;
        mpfr_set_d(r38927, eps, MPFR_RNDN);
        ;
        mpfr_pow(r38929, r38927, r38928, MPFR_RNDN);
        mpfr_mul(r38930, r38926, r38929, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r38933, r38927, r38932, MPFR_RNDN);
        mpfr_mul(r38934, r38931, r38933, MPFR_RNDN);
        ;
        mpfr_mul(r38936, r38935, r38927, MPFR_RNDN);
        mpfr_add(r38937, r38934, r38936, MPFR_RNDN);
        mpfr_add(r38938, r38930, r38937, MPFR_RNDN);
        mpfr_neg(r38939, r38938, MPFR_RNDN);
        return mpfr_get_d(r38939, MPFR_RNDN);
}

