#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "3frac (problem 3.3.3)";

double f_if(float x) {
        float r6238764 = 1;
        float r6238765 = x;
        float r6238766 = r6238765 + r6238764;
        float r6238767 = r6238764 / r6238766;
        float r6238768 = 2;
        float r6238769 = r6238768 / r6238765;
        float r6238770 = r6238767 - r6238769;
        float r6238771 = r6238765 - r6238764;
        float r6238772 = r6238764 / r6238771;
        float r6238773 = r6238770 + r6238772;
        return r6238773;
}

double f_id(double x) {
        double r6238774 = 1;
        double r6238775 = x;
        double r6238776 = r6238775 + r6238774;
        double r6238777 = r6238774 / r6238776;
        double r6238778 = 2;
        double r6238779 = r6238778 / r6238775;
        double r6238780 = r6238777 - r6238779;
        double r6238781 = r6238775 - r6238774;
        double r6238782 = r6238774 / r6238781;
        double r6238783 = r6238780 + r6238782;
        return r6238783;
}


double f_of(float x) {
        float r6238784 = x;
        float r6238785 = -116.08850033593242;
        bool r6238786 = r6238784 <= r6238785;
        float r6238787 = 2;
        float r6238788 = 7;
        float r6238789 = pow(r6238784, r6238788);
        float r6238790 = r6238787 / r6238789;
        float r6238791 = r6238787 / r6238784;
        float r6238792 = r6238784 * r6238784;
        float r6238793 = r6238791 / r6238792;
        float r6238794 = r6238790 + r6238793;
        float r6238795 = 5;
        float r6238796 = pow(r6238784, r6238795);
        float r6238797 = r6238787 / r6238796;
        float r6238798 = r6238794 + r6238797;
        float r6238799 = 131.68721628398322;
        bool r6238800 = r6238784 <= r6238799;
        float r6238801 = 1;
        float r6238802 = r6238801 + r6238784;
        float r6238803 = r6238801 / r6238802;
        float r6238804 = r6238784 - r6238801;
        float r6238805 = r6238801 / r6238804;
        float r6238806 = r6238805 - r6238791;
        float r6238807 = r6238803 + r6238806;
        float r6238808 = r6238800 ? r6238807 : r6238798;
        float r6238809 = r6238786 ? r6238798 : r6238808;
        return r6238809;
}

double f_od(double x) {
        double r6238810 = x;
        double r6238811 = -116.08850033593242;
        bool r6238812 = r6238810 <= r6238811;
        double r6238813 = 2;
        double r6238814 = 7;
        double r6238815 = pow(r6238810, r6238814);
        double r6238816 = r6238813 / r6238815;
        double r6238817 = r6238813 / r6238810;
        double r6238818 = r6238810 * r6238810;
        double r6238819 = r6238817 / r6238818;
        double r6238820 = r6238816 + r6238819;
        double r6238821 = 5;
        double r6238822 = pow(r6238810, r6238821);
        double r6238823 = r6238813 / r6238822;
        double r6238824 = r6238820 + r6238823;
        double r6238825 = 131.68721628398322;
        bool r6238826 = r6238810 <= r6238825;
        double r6238827 = 1;
        double r6238828 = r6238827 + r6238810;
        double r6238829 = r6238827 / r6238828;
        double r6238830 = r6238810 - r6238827;
        double r6238831 = r6238827 / r6238830;
        double r6238832 = r6238831 - r6238817;
        double r6238833 = r6238829 + r6238832;
        double r6238834 = r6238826 ? r6238833 : r6238824;
        double r6238835 = r6238812 ? r6238824 : r6238834;
        return r6238835;
}

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 r6238836, r6238837, r6238838, r6238839, r6238840, r6238841, r6238842, r6238843, r6238844, r6238845;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        mpfr_init_set_str(r6238836, "1", 10, MPFR_RNDN);
        mpfr_init(r6238837);
        mpfr_init(r6238838);
        mpfr_init(r6238839);
        mpfr_init_set_str(r6238840, "2", 10, MPFR_RNDN);
        mpfr_init(r6238841);
        mpfr_init(r6238842);
        mpfr_init(r6238843);
        mpfr_init(r6238844);
        mpfr_init(r6238845);
}

double f_im(double x) {
        ;
        mpfr_set_d(r6238837, x, MPFR_RNDN);
        mpfr_add(r6238838, r6238837, r6238836, MPFR_RNDN);
        mpfr_div(r6238839, r6238836, r6238838, MPFR_RNDN);
        ;
        mpfr_div(r6238841, r6238840, r6238837, MPFR_RNDN);
        mpfr_sub(r6238842, r6238839, r6238841, MPFR_RNDN);
        mpfr_sub(r6238843, r6238837, r6238836, MPFR_RNDN);
        mpfr_div(r6238844, r6238836, r6238843, MPFR_RNDN);
        mpfr_add(r6238845, r6238842, r6238844, MPFR_RNDN);
        return mpfr_get_d(r6238845, MPFR_RNDN);
}

static mpfr_t r6238846, r6238847, r6238848, r6238849, r6238850, r6238851, r6238852, r6238853, r6238854, r6238855, r6238856, r6238857, r6238858, r6238859, r6238860, r6238861, r6238862, r6238863, r6238864, r6238865, r6238866, r6238867, r6238868, r6238869, r6238870, r6238871;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r6238846);
        mpfr_init_set_str(r6238847, "-116.08850033593242", 10, MPFR_RNDN);
        mpfr_init(r6238848);
        mpfr_init_set_str(r6238849, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r6238850, "7", 10, MPFR_RNDN);
        mpfr_init(r6238851);
        mpfr_init(r6238852);
        mpfr_init(r6238853);
        mpfr_init(r6238854);
        mpfr_init(r6238855);
        mpfr_init(r6238856);
        mpfr_init_set_str(r6238857, "5", 10, MPFR_RNDN);
        mpfr_init(r6238858);
        mpfr_init(r6238859);
        mpfr_init(r6238860);
        mpfr_init_set_str(r6238861, "131.68721628398322", 10, MPFR_RNDN);
        mpfr_init(r6238862);
        mpfr_init_set_str(r6238863, "1", 10, MPFR_RNDN);
        mpfr_init(r6238864);
        mpfr_init(r6238865);
        mpfr_init(r6238866);
        mpfr_init(r6238867);
        mpfr_init(r6238868);
        mpfr_init(r6238869);
        mpfr_init(r6238870);
        mpfr_init(r6238871);
}

double f_fm(double x) {
        mpfr_set_d(r6238846, x, MPFR_RNDN);
        ;
        mpfr_set_si(r6238848, mpfr_cmp(r6238846, r6238847) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r6238851, r6238846, r6238850, MPFR_RNDN);
        mpfr_div(r6238852, r6238849, r6238851, MPFR_RNDN);
        mpfr_div(r6238853, r6238849, r6238846, MPFR_RNDN);
        mpfr_mul(r6238854, r6238846, r6238846, MPFR_RNDN);
        mpfr_div(r6238855, r6238853, r6238854, MPFR_RNDN);
        mpfr_add(r6238856, r6238852, r6238855, MPFR_RNDN);
        ;
        mpfr_pow(r6238858, r6238846, r6238857, MPFR_RNDN);
        mpfr_div(r6238859, r6238849, r6238858, MPFR_RNDN);
        mpfr_add(r6238860, r6238856, r6238859, MPFR_RNDN);
        ;
        mpfr_set_si(r6238862, mpfr_cmp(r6238846, r6238861) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r6238864, r6238863, r6238846, MPFR_RNDN);
        mpfr_div(r6238865, r6238863, r6238864, MPFR_RNDN);
        mpfr_sub(r6238866, r6238846, r6238863, MPFR_RNDN);
        mpfr_div(r6238867, r6238863, r6238866, MPFR_RNDN);
        mpfr_sub(r6238868, r6238867, r6238853, MPFR_RNDN);
        mpfr_add(r6238869, r6238865, r6238868, MPFR_RNDN);
        if (mpfr_get_si(r6238862, MPFR_RNDN)) { mpfr_set(r6238870, r6238869, MPFR_RNDN); } else { mpfr_set(r6238870, r6238860, MPFR_RNDN); };
        if (mpfr_get_si(r6238848, MPFR_RNDN)) { mpfr_set(r6238871, r6238860, MPFR_RNDN); } else { mpfr_set(r6238871, r6238870, MPFR_RNDN); };
        return mpfr_get_d(r6238871, MPFR_RNDN);
}

static mpfr_t r6238872, r6238873, r6238874, r6238875, r6238876, r6238877, r6238878, r6238879, r6238880, r6238881, r6238882, r6238883, r6238884, r6238885, r6238886, r6238887, r6238888, r6238889, r6238890, r6238891, r6238892, r6238893, r6238894, r6238895, r6238896, r6238897;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r6238872);
        mpfr_init_set_str(r6238873, "-116.08850033593242", 10, MPFR_RNDN);
        mpfr_init(r6238874);
        mpfr_init_set_str(r6238875, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r6238876, "7", 10, MPFR_RNDN);
        mpfr_init(r6238877);
        mpfr_init(r6238878);
        mpfr_init(r6238879);
        mpfr_init(r6238880);
        mpfr_init(r6238881);
        mpfr_init(r6238882);
        mpfr_init_set_str(r6238883, "5", 10, MPFR_RNDN);
        mpfr_init(r6238884);
        mpfr_init(r6238885);
        mpfr_init(r6238886);
        mpfr_init_set_str(r6238887, "131.68721628398322", 10, MPFR_RNDN);
        mpfr_init(r6238888);
        mpfr_init_set_str(r6238889, "1", 10, MPFR_RNDN);
        mpfr_init(r6238890);
        mpfr_init(r6238891);
        mpfr_init(r6238892);
        mpfr_init(r6238893);
        mpfr_init(r6238894);
        mpfr_init(r6238895);
        mpfr_init(r6238896);
        mpfr_init(r6238897);
}

double f_dm(double x) {
        mpfr_set_d(r6238872, x, MPFR_RNDN);
        ;
        mpfr_set_si(r6238874, mpfr_cmp(r6238872, r6238873) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r6238877, r6238872, r6238876, MPFR_RNDN);
        mpfr_div(r6238878, r6238875, r6238877, MPFR_RNDN);
        mpfr_div(r6238879, r6238875, r6238872, MPFR_RNDN);
        mpfr_mul(r6238880, r6238872, r6238872, MPFR_RNDN);
        mpfr_div(r6238881, r6238879, r6238880, MPFR_RNDN);
        mpfr_add(r6238882, r6238878, r6238881, MPFR_RNDN);
        ;
        mpfr_pow(r6238884, r6238872, r6238883, MPFR_RNDN);
        mpfr_div(r6238885, r6238875, r6238884, MPFR_RNDN);
        mpfr_add(r6238886, r6238882, r6238885, MPFR_RNDN);
        ;
        mpfr_set_si(r6238888, mpfr_cmp(r6238872, r6238887) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r6238890, r6238889, r6238872, MPFR_RNDN);
        mpfr_div(r6238891, r6238889, r6238890, MPFR_RNDN);
        mpfr_sub(r6238892, r6238872, r6238889, MPFR_RNDN);
        mpfr_div(r6238893, r6238889, r6238892, MPFR_RNDN);
        mpfr_sub(r6238894, r6238893, r6238879, MPFR_RNDN);
        mpfr_add(r6238895, r6238891, r6238894, MPFR_RNDN);
        if (mpfr_get_si(r6238888, MPFR_RNDN)) { mpfr_set(r6238896, r6238895, MPFR_RNDN); } else { mpfr_set(r6238896, r6238886, MPFR_RNDN); };
        if (mpfr_get_si(r6238874, MPFR_RNDN)) { mpfr_set(r6238897, r6238886, MPFR_RNDN); } else { mpfr_set(r6238897, r6238896, MPFR_RNDN); };
        return mpfr_get_d(r6238897, MPFR_RNDN);
}

