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

char *name = "NMSE problem 3.3.3";

double f_if(float x) {
        float r5353930 = 1.0f;
        float r5353931 = x;
        float r5353932 = r5353931 + r5353930;
        float r5353933 = r5353930 / r5353932;
        float r5353934 = 2.0f;
        float r5353935 = r5353934 / r5353931;
        float r5353936 = r5353933 - r5353935;
        float r5353937 = r5353931 - r5353930;
        float r5353938 = r5353930 / r5353937;
        float r5353939 = r5353936 + r5353938;
        return r5353939;
}

double f_id(double x) {
        double r5353940 = 1.0;
        double r5353941 = x;
        double r5353942 = r5353941 + r5353940;
        double r5353943 = r5353940 / r5353942;
        double r5353944 = 2.0;
        double r5353945 = r5353944 / r5353941;
        double r5353946 = r5353943 - r5353945;
        double r5353947 = r5353941 - r5353940;
        double r5353948 = r5353940 / r5353947;
        double r5353949 = r5353946 + r5353948;
        return r5353949;
}


double f_of(float x) {
        float r5353950 = x;
        float r5353951 = -17360.73116012661f;
        bool r5353952 = r5353950 <= r5353951;
        float r5353953 = 2.0f;
        float r5353954 = 7.0f;
        float r5353955 = pow(r5353950, r5353954);
        float r5353956 = r5353953 / r5353955;
        float r5353957 = r5353950 * (r5353950 * r5353950);
        float r5353958 = r5353953 / r5353957;
        float r5353959 = 5.0f;
        float r5353960 = pow(r5353950, r5353959);
        float r5353961 = r5353953 / r5353960;
        float r5353962 = r5353958 + r5353961;
        float r5353963 = r5353956 + r5353962;
        float r5353964 = 151370699.13763306f;
        bool r5353965 = r5353950 <= r5353964;
        float r5353966 = r5353950 - r5353953;
        float r5353967 = r5353953 * r5353950;
        float r5353968 = r5353966 - r5353967;
        float r5353969 = 1.0f;
        float r5353970 = r5353950 - r5353969;
        float r5353971 = r5353968 * r5353970;
        float r5353972 = r5353950 * r5353950;
        float r5353973 = r5353950 + r5353972;
        float r5353974 = r5353971 + r5353973;
        float r5353975 = r5353950 + r5353969;
        float r5353976 = r5353975 * r5353950;
        float r5353977 = r5353976 * r5353970;
        float r5353978 = r5353974 / r5353977;
        float r5353979 = r5353965 ? r5353978 : r5353963;
        float r5353980 = r5353952 ? r5353963 : r5353979;
        return r5353980;
}

double f_od(double x) {
        double r5353981 = x;
        double r5353982 = -17360.73116012661;
        bool r5353983 = r5353981 <= r5353982;
        double r5353984 = 2.0;
        double r5353985 = 7.0;
        double r5353986 = pow(r5353981, r5353985);
        double r5353987 = r5353984 / r5353986;
        double r5353988 = r5353981 * (r5353981 * r5353981);
        double r5353989 = r5353984 / r5353988;
        double r5353990 = 5.0;
        double r5353991 = pow(r5353981, r5353990);
        double r5353992 = r5353984 / r5353991;
        double r5353993 = r5353989 + r5353992;
        double r5353994 = r5353987 + r5353993;
        double r5353995 = 151370699.13763306;
        bool r5353996 = r5353981 <= r5353995;
        double r5353997 = r5353981 - r5353984;
        double r5353998 = r5353984 * r5353981;
        double r5353999 = r5353997 - r5353998;
        double r5354000 = 1.0;
        double r5354001 = r5353981 - r5354000;
        double r5354002 = r5353999 * r5354001;
        double r5354003 = r5353981 * r5353981;
        double r5354004 = r5353981 + r5354003;
        double r5354005 = r5354002 + r5354004;
        double r5354006 = r5353981 + r5354000;
        double r5354007 = r5354006 * r5353981;
        double r5354008 = r5354007 * r5354001;
        double r5354009 = r5354005 / r5354008;
        double r5354010 = r5353996 ? r5354009 : r5353994;
        double r5354011 = r5353983 ? r5353994 : r5354010;
        return r5354011;
}

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 r5354012, r5354013, r5354014, r5354015, r5354016, r5354017, r5354018, r5354019, r5354020, r5354021;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r5354012, "1", 10, MPFR_RNDN);
        mpfr_init(r5354013);
        mpfr_init(r5354014);
        mpfr_init(r5354015);
        mpfr_init_set_str(r5354016, "2", 10, MPFR_RNDN);
        mpfr_init(r5354017);
        mpfr_init(r5354018);
        mpfr_init(r5354019);
        mpfr_init(r5354020);
        mpfr_init(r5354021);
}

double f_im(double x) {
        ;
        mpfr_set_d(r5354013, x, MPFR_RNDN);
        mpfr_add(r5354014, r5354013, r5354012, MPFR_RNDN);
        mpfr_div(r5354015, r5354012, r5354014, MPFR_RNDN);
        ;
        mpfr_div(r5354017, r5354016, r5354013, MPFR_RNDN);
        mpfr_sub(r5354018, r5354015, r5354017, MPFR_RNDN);
        mpfr_sub(r5354019, r5354013, r5354012, MPFR_RNDN);
        mpfr_div(r5354020, r5354012, r5354019, MPFR_RNDN);
        mpfr_add(r5354021, r5354018, r5354020, MPFR_RNDN);
        return mpfr_get_d(r5354021, MPFR_RNDN);
}

static mpfr_t r5354022, r5354023, r5354024, r5354025, r5354026, r5354027, r5354028, r5354029, r5354030, r5354031, r5354032, r5354033, r5354034, r5354035, r5354036, r5354037, r5354038, r5354039, r5354040, r5354041, r5354042, r5354043, r5354044, r5354045, r5354046, r5354047, r5354048, r5354049, r5354050, r5354051, r5354052;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r5354022);
        mpfr_init_set_str(r5354023, "-17360.73116012661", 10, MPFR_RNDN);
        mpfr_init(r5354024);
        mpfr_init_set_str(r5354025, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r5354026, "7", 10, MPFR_RNDN);
        mpfr_init(r5354027);
        mpfr_init(r5354028);
        mpfr_init(r5354029);
        mpfr_init(r5354030);
        mpfr_init_set_str(r5354031, "5", 10, MPFR_RNDN);
        mpfr_init(r5354032);
        mpfr_init(r5354033);
        mpfr_init(r5354034);
        mpfr_init(r5354035);
        mpfr_init_set_str(r5354036, "151370699.13763306", 10, MPFR_RNDN);
        mpfr_init(r5354037);
        mpfr_init(r5354038);
        mpfr_init(r5354039);
        mpfr_init(r5354040);
        mpfr_init_set_str(r5354041, "1", 10, MPFR_RNDN);
        mpfr_init(r5354042);
        mpfr_init(r5354043);
        mpfr_init(r5354044);
        mpfr_init(r5354045);
        mpfr_init(r5354046);
        mpfr_init(r5354047);
        mpfr_init(r5354048);
        mpfr_init(r5354049);
        mpfr_init(r5354050);
        mpfr_init(r5354051);
        mpfr_init(r5354052);
}

double f_fm(double x) {
        mpfr_set_d(r5354022, x, MPFR_RNDN);
        ;
        mpfr_set_si(r5354024, mpfr_cmp(r5354022, r5354023) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r5354027, r5354022, r5354026, MPFR_RNDN);
        mpfr_div(r5354028, r5354025, r5354027, MPFR_RNDN);
        mpfr_mul(r5354029, r5354022, r5354022, MPFR_RNDN); mpfr_mul(r5354029, r5354029, r5354022, MPFR_RNDN);
        mpfr_div(r5354030, r5354025, r5354029, MPFR_RNDN);
        ;
        mpfr_pow(r5354032, r5354022, r5354031, MPFR_RNDN);
        mpfr_div(r5354033, r5354025, r5354032, MPFR_RNDN);
        mpfr_add(r5354034, r5354030, r5354033, MPFR_RNDN);
        mpfr_add(r5354035, r5354028, r5354034, MPFR_RNDN);
        ;
        mpfr_set_si(r5354037, mpfr_cmp(r5354022, r5354036) <= 0, MPFR_RNDN);
        mpfr_sub(r5354038, r5354022, r5354025, MPFR_RNDN);
        mpfr_mul(r5354039, r5354025, r5354022, MPFR_RNDN);
        mpfr_sub(r5354040, r5354038, r5354039, MPFR_RNDN);
        ;
        mpfr_sub(r5354042, r5354022, r5354041, MPFR_RNDN);
        mpfr_mul(r5354043, r5354040, r5354042, MPFR_RNDN);
        mpfr_mul(r5354044, r5354022, r5354022, MPFR_RNDN);
        mpfr_add(r5354045, r5354022, r5354044, MPFR_RNDN);
        mpfr_add(r5354046, r5354043, r5354045, MPFR_RNDN);
        mpfr_add(r5354047, r5354022, r5354041, MPFR_RNDN);
        mpfr_mul(r5354048, r5354047, r5354022, MPFR_RNDN);
        mpfr_mul(r5354049, r5354048, r5354042, MPFR_RNDN);
        mpfr_div(r5354050, r5354046, r5354049, MPFR_RNDN);
        if (mpfr_get_si(r5354037, MPFR_RNDN)) { mpfr_set(r5354051, r5354050, MPFR_RNDN); } else { mpfr_set(r5354051, r5354035, MPFR_RNDN); };
        if (mpfr_get_si(r5354024, MPFR_RNDN)) { mpfr_set(r5354052, r5354035, MPFR_RNDN); } else { mpfr_set(r5354052, r5354051, MPFR_RNDN); };
        return mpfr_get_d(r5354052, MPFR_RNDN);
}

static mpfr_t r5354053, r5354054, r5354055, r5354056, r5354057, r5354058, r5354059, r5354060, r5354061, r5354062, r5354063, r5354064, r5354065, r5354066, r5354067, r5354068, r5354069, r5354070, r5354071, r5354072, r5354073, r5354074, r5354075, r5354076, r5354077, r5354078, r5354079, r5354080, r5354081, r5354082, r5354083;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r5354053);
        mpfr_init_set_str(r5354054, "-17360.73116012661", 10, MPFR_RNDN);
        mpfr_init(r5354055);
        mpfr_init_set_str(r5354056, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r5354057, "7", 10, MPFR_RNDN);
        mpfr_init(r5354058);
        mpfr_init(r5354059);
        mpfr_init(r5354060);
        mpfr_init(r5354061);
        mpfr_init_set_str(r5354062, "5", 10, MPFR_RNDN);
        mpfr_init(r5354063);
        mpfr_init(r5354064);
        mpfr_init(r5354065);
        mpfr_init(r5354066);
        mpfr_init_set_str(r5354067, "151370699.13763306", 10, MPFR_RNDN);
        mpfr_init(r5354068);
        mpfr_init(r5354069);
        mpfr_init(r5354070);
        mpfr_init(r5354071);
        mpfr_init_set_str(r5354072, "1", 10, MPFR_RNDN);
        mpfr_init(r5354073);
        mpfr_init(r5354074);
        mpfr_init(r5354075);
        mpfr_init(r5354076);
        mpfr_init(r5354077);
        mpfr_init(r5354078);
        mpfr_init(r5354079);
        mpfr_init(r5354080);
        mpfr_init(r5354081);
        mpfr_init(r5354082);
        mpfr_init(r5354083);
}

double f_dm(double x) {
        mpfr_set_d(r5354053, x, MPFR_RNDN);
        ;
        mpfr_set_si(r5354055, mpfr_cmp(r5354053, r5354054) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r5354058, r5354053, r5354057, MPFR_RNDN);
        mpfr_div(r5354059, r5354056, r5354058, MPFR_RNDN);
        mpfr_mul(r5354060, r5354053, r5354053, MPFR_RNDN); mpfr_mul(r5354060, r5354060, r5354053, MPFR_RNDN);
        mpfr_div(r5354061, r5354056, r5354060, MPFR_RNDN);
        ;
        mpfr_pow(r5354063, r5354053, r5354062, MPFR_RNDN);
        mpfr_div(r5354064, r5354056, r5354063, MPFR_RNDN);
        mpfr_add(r5354065, r5354061, r5354064, MPFR_RNDN);
        mpfr_add(r5354066, r5354059, r5354065, MPFR_RNDN);
        ;
        mpfr_set_si(r5354068, mpfr_cmp(r5354053, r5354067) <= 0, MPFR_RNDN);
        mpfr_sub(r5354069, r5354053, r5354056, MPFR_RNDN);
        mpfr_mul(r5354070, r5354056, r5354053, MPFR_RNDN);
        mpfr_sub(r5354071, r5354069, r5354070, MPFR_RNDN);
        ;
        mpfr_sub(r5354073, r5354053, r5354072, MPFR_RNDN);
        mpfr_mul(r5354074, r5354071, r5354073, MPFR_RNDN);
        mpfr_mul(r5354075, r5354053, r5354053, MPFR_RNDN);
        mpfr_add(r5354076, r5354053, r5354075, MPFR_RNDN);
        mpfr_add(r5354077, r5354074, r5354076, MPFR_RNDN);
        mpfr_add(r5354078, r5354053, r5354072, MPFR_RNDN);
        mpfr_mul(r5354079, r5354078, r5354053, MPFR_RNDN);
        mpfr_mul(r5354080, r5354079, r5354073, MPFR_RNDN);
        mpfr_div(r5354081, r5354077, r5354080, MPFR_RNDN);
        if (mpfr_get_si(r5354068, MPFR_RNDN)) { mpfr_set(r5354082, r5354081, MPFR_RNDN); } else { mpfr_set(r5354082, r5354066, MPFR_RNDN); };
        if (mpfr_get_si(r5354055, MPFR_RNDN)) { mpfr_set(r5354083, r5354066, MPFR_RNDN); } else { mpfr_set(r5354083, r5354082, MPFR_RNDN); };
        return mpfr_get_d(r5354083, MPFR_RNDN);
}

