#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 r6215997 = 1;
        float r6215998 = x;
        float r6215999 = r6215998 + r6215997;
        float r6216000 = r6215997 / r6215999;
        float r6216001 = 2;
        float r6216002 = r6216001 / r6215998;
        float r6216003 = r6216000 - r6216002;
        float r6216004 = r6215998 - r6215997;
        float r6216005 = r6215997 / r6216004;
        float r6216006 = r6216003 + r6216005;
        return r6216006;
}

double f_id(double x) {
        double r6216007 = 1;
        double r6216008 = x;
        double r6216009 = r6216008 + r6216007;
        double r6216010 = r6216007 / r6216009;
        double r6216011 = 2;
        double r6216012 = r6216011 / r6216008;
        double r6216013 = r6216010 - r6216012;
        double r6216014 = r6216008 - r6216007;
        double r6216015 = r6216007 / r6216014;
        double r6216016 = r6216013 + r6216015;
        return r6216016;
}


double f_of(float x) {
        float r6216017 = x;
        float r6216018 = -116.08850033593242;
        bool r6216019 = r6216017 <= r6216018;
        float r6216020 = 2;
        float r6216021 = 7;
        float r6216022 = pow(r6216017, r6216021);
        float r6216023 = r6216020 / r6216022;
        float r6216024 = r6216020 / r6216017;
        float r6216025 = r6216017 * r6216017;
        float r6216026 = r6216024 / r6216025;
        float r6216027 = r6216023 + r6216026;
        float r6216028 = 5;
        float r6216029 = pow(r6216017, r6216028);
        float r6216030 = r6216020 / r6216029;
        float r6216031 = r6216027 + r6216030;
        float r6216032 = 131.68721628398322;
        bool r6216033 = r6216017 <= r6216032;
        float r6216034 = 1;
        float r6216035 = r6216034 + r6216017;
        float r6216036 = r6216034 / r6216035;
        float r6216037 = r6216017 - r6216034;
        float r6216038 = r6216034 / r6216037;
        float r6216039 = r6216038 - r6216024;
        float r6216040 = r6216036 + r6216039;
        float r6216041 = r6216033 ? r6216040 : r6216031;
        float r6216042 = r6216019 ? r6216031 : r6216041;
        return r6216042;
}

double f_od(double x) {
        double r6216043 = x;
        double r6216044 = -116.08850033593242;
        bool r6216045 = r6216043 <= r6216044;
        double r6216046 = 2;
        double r6216047 = 7;
        double r6216048 = pow(r6216043, r6216047);
        double r6216049 = r6216046 / r6216048;
        double r6216050 = r6216046 / r6216043;
        double r6216051 = r6216043 * r6216043;
        double r6216052 = r6216050 / r6216051;
        double r6216053 = r6216049 + r6216052;
        double r6216054 = 5;
        double r6216055 = pow(r6216043, r6216054);
        double r6216056 = r6216046 / r6216055;
        double r6216057 = r6216053 + r6216056;
        double r6216058 = 131.68721628398322;
        bool r6216059 = r6216043 <= r6216058;
        double r6216060 = 1;
        double r6216061 = r6216060 + r6216043;
        double r6216062 = r6216060 / r6216061;
        double r6216063 = r6216043 - r6216060;
        double r6216064 = r6216060 / r6216063;
        double r6216065 = r6216064 - r6216050;
        double r6216066 = r6216062 + r6216065;
        double r6216067 = r6216059 ? r6216066 : r6216057;
        double r6216068 = r6216045 ? r6216057 : r6216067;
        return r6216068;
}

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 r6216069, r6216070, r6216071, r6216072, r6216073, r6216074, r6216075, r6216076, r6216077, r6216078;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1168);
        mpfr_init_set_str(r6216069, "1", 10, MPFR_RNDN);
        mpfr_init(r6216070);
        mpfr_init(r6216071);
        mpfr_init(r6216072);
        mpfr_init_set_str(r6216073, "2", 10, MPFR_RNDN);
        mpfr_init(r6216074);
        mpfr_init(r6216075);
        mpfr_init(r6216076);
        mpfr_init(r6216077);
        mpfr_init(r6216078);
}

double f_im(double x) {
        ;
        mpfr_set_d(r6216070, x, MPFR_RNDN);
        mpfr_add(r6216071, r6216070, r6216069, MPFR_RNDN);
        mpfr_div(r6216072, r6216069, r6216071, MPFR_RNDN);
        ;
        mpfr_div(r6216074, r6216073, r6216070, MPFR_RNDN);
        mpfr_sub(r6216075, r6216072, r6216074, MPFR_RNDN);
        mpfr_sub(r6216076, r6216070, r6216069, MPFR_RNDN);
        mpfr_div(r6216077, r6216069, r6216076, MPFR_RNDN);
        mpfr_add(r6216078, r6216075, r6216077, MPFR_RNDN);
        return mpfr_get_d(r6216078, MPFR_RNDN);
}

static mpfr_t r6216079, r6216080, r6216081, r6216082, r6216083, r6216084, r6216085, r6216086, r6216087, r6216088, r6216089, r6216090, r6216091, r6216092, r6216093, r6216094, r6216095, r6216096, r6216097, r6216098, r6216099, r6216100, r6216101, r6216102, r6216103, r6216104;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r6216079);
        mpfr_init_set_str(r6216080, "-116.08850033593242", 10, MPFR_RNDN);
        mpfr_init(r6216081);
        mpfr_init_set_str(r6216082, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r6216083, "7", 10, MPFR_RNDN);
        mpfr_init(r6216084);
        mpfr_init(r6216085);
        mpfr_init(r6216086);
        mpfr_init(r6216087);
        mpfr_init(r6216088);
        mpfr_init(r6216089);
        mpfr_init_set_str(r6216090, "5", 10, MPFR_RNDN);
        mpfr_init(r6216091);
        mpfr_init(r6216092);
        mpfr_init(r6216093);
        mpfr_init_set_str(r6216094, "131.68721628398322", 10, MPFR_RNDN);
        mpfr_init(r6216095);
        mpfr_init_set_str(r6216096, "1", 10, MPFR_RNDN);
        mpfr_init(r6216097);
        mpfr_init(r6216098);
        mpfr_init(r6216099);
        mpfr_init(r6216100);
        mpfr_init(r6216101);
        mpfr_init(r6216102);
        mpfr_init(r6216103);
        mpfr_init(r6216104);
}

double f_fm(double x) {
        mpfr_set_d(r6216079, x, MPFR_RNDN);
        ;
        mpfr_set_si(r6216081, mpfr_cmp(r6216079, r6216080) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r6216084, r6216079, r6216083, MPFR_RNDN);
        mpfr_div(r6216085, r6216082, r6216084, MPFR_RNDN);
        mpfr_div(r6216086, r6216082, r6216079, MPFR_RNDN);
        mpfr_mul(r6216087, r6216079, r6216079, MPFR_RNDN);
        mpfr_div(r6216088, r6216086, r6216087, MPFR_RNDN);
        mpfr_add(r6216089, r6216085, r6216088, MPFR_RNDN);
        ;
        mpfr_pow(r6216091, r6216079, r6216090, MPFR_RNDN);
        mpfr_div(r6216092, r6216082, r6216091, MPFR_RNDN);
        mpfr_add(r6216093, r6216089, r6216092, MPFR_RNDN);
        ;
        mpfr_set_si(r6216095, mpfr_cmp(r6216079, r6216094) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r6216097, r6216096, r6216079, MPFR_RNDN);
        mpfr_div(r6216098, r6216096, r6216097, MPFR_RNDN);
        mpfr_sub(r6216099, r6216079, r6216096, MPFR_RNDN);
        mpfr_div(r6216100, r6216096, r6216099, MPFR_RNDN);
        mpfr_sub(r6216101, r6216100, r6216086, MPFR_RNDN);
        mpfr_add(r6216102, r6216098, r6216101, MPFR_RNDN);
        if (mpfr_get_si(r6216095, MPFR_RNDN)) { mpfr_set(r6216103, r6216102, MPFR_RNDN); } else { mpfr_set(r6216103, r6216093, MPFR_RNDN); };
        if (mpfr_get_si(r6216081, MPFR_RNDN)) { mpfr_set(r6216104, r6216093, MPFR_RNDN); } else { mpfr_set(r6216104, r6216103, MPFR_RNDN); };
        return mpfr_get_d(r6216104, MPFR_RNDN);
}

static mpfr_t r6216105, r6216106, r6216107, r6216108, r6216109, r6216110, r6216111, r6216112, r6216113, r6216114, r6216115, r6216116, r6216117, r6216118, r6216119, r6216120, r6216121, r6216122, r6216123, r6216124, r6216125, r6216126, r6216127, r6216128, r6216129, r6216130;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1168);
        mpfr_init(r6216105);
        mpfr_init_set_str(r6216106, "-116.08850033593242", 10, MPFR_RNDN);
        mpfr_init(r6216107);
        mpfr_init_set_str(r6216108, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r6216109, "7", 10, MPFR_RNDN);
        mpfr_init(r6216110);
        mpfr_init(r6216111);
        mpfr_init(r6216112);
        mpfr_init(r6216113);
        mpfr_init(r6216114);
        mpfr_init(r6216115);
        mpfr_init_set_str(r6216116, "5", 10, MPFR_RNDN);
        mpfr_init(r6216117);
        mpfr_init(r6216118);
        mpfr_init(r6216119);
        mpfr_init_set_str(r6216120, "131.68721628398322", 10, MPFR_RNDN);
        mpfr_init(r6216121);
        mpfr_init_set_str(r6216122, "1", 10, MPFR_RNDN);
        mpfr_init(r6216123);
        mpfr_init(r6216124);
        mpfr_init(r6216125);
        mpfr_init(r6216126);
        mpfr_init(r6216127);
        mpfr_init(r6216128);
        mpfr_init(r6216129);
        mpfr_init(r6216130);
}

double f_dm(double x) {
        mpfr_set_d(r6216105, x, MPFR_RNDN);
        ;
        mpfr_set_si(r6216107, mpfr_cmp(r6216105, r6216106) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r6216110, r6216105, r6216109, MPFR_RNDN);
        mpfr_div(r6216111, r6216108, r6216110, MPFR_RNDN);
        mpfr_div(r6216112, r6216108, r6216105, MPFR_RNDN);
        mpfr_mul(r6216113, r6216105, r6216105, MPFR_RNDN);
        mpfr_div(r6216114, r6216112, r6216113, MPFR_RNDN);
        mpfr_add(r6216115, r6216111, r6216114, MPFR_RNDN);
        ;
        mpfr_pow(r6216117, r6216105, r6216116, MPFR_RNDN);
        mpfr_div(r6216118, r6216108, r6216117, MPFR_RNDN);
        mpfr_add(r6216119, r6216115, r6216118, MPFR_RNDN);
        ;
        mpfr_set_si(r6216121, mpfr_cmp(r6216105, r6216120) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r6216123, r6216122, r6216105, MPFR_RNDN);
        mpfr_div(r6216124, r6216122, r6216123, MPFR_RNDN);
        mpfr_sub(r6216125, r6216105, r6216122, MPFR_RNDN);
        mpfr_div(r6216126, r6216122, r6216125, MPFR_RNDN);
        mpfr_sub(r6216127, r6216126, r6216112, MPFR_RNDN);
        mpfr_add(r6216128, r6216124, r6216127, MPFR_RNDN);
        if (mpfr_get_si(r6216121, MPFR_RNDN)) { mpfr_set(r6216129, r6216128, MPFR_RNDN); } else { mpfr_set(r6216129, r6216119, MPFR_RNDN); };
        if (mpfr_get_si(r6216107, MPFR_RNDN)) { mpfr_set(r6216130, r6216119, MPFR_RNDN); } else { mpfr_set(r6216130, r6216129, MPFR_RNDN); };
        return mpfr_get_d(r6216130, MPFR_RNDN);
}

