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

char *name = "NMSE problem 3.3.5";

double f_if(float x, float eps) {
        float r4617891 = x;
        float r4617892 = eps;
        float r4617893 = r4617891 + r4617892;
        float r4617894 = cos(r4617893);
        float r4617895 = cos(r4617891);
        float r4617896 = r4617894 - r4617895;
        return r4617896;
}

double f_id(double x, double eps) {
        double r4617897 = x;
        double r4617898 = eps;
        double r4617899 = r4617897 + r4617898;
        double r4617900 = cos(r4617899);
        double r4617901 = cos(r4617897);
        double r4617902 = r4617900 - r4617901;
        return r4617902;
}


double f_of(float x, float eps) {
        float r4617903 = eps;
        float r4617904 = -8.658073314327725e-05f;
        bool r4617905 = r4617903 <= r4617904;
        float r4617906 = x;
        float r4617907 = cos(r4617906);
        float r4617908 = cos(r4617903);
        float r4617909 = r4617907 * r4617908;
        float r4617910 = sin(r4617906);
        float r4617911 = r4617910 * (r4617910 * r4617910);
        float r4617912 = sin(r4617903);
        float r4617913 = r4617912 * (r4617912 * r4617912);
        float r4617914 = r4617911 * r4617913;
        float r4617915 = cbrt(r4617914);
        float r4617916 = r4617909 - r4617915;
        float r4617917 = r4617916 - r4617907;
        float r4617918 = -2.3361824468930465e-158f;
        bool r4617919 = r4617903 <= r4617918;
        float r4617920 = 0.5f;
        float r4617921 = r4617903 * r4617903;
        float r4617922 = r4617920 * r4617921;
        float r4617923 = r4617922 + r4617915;
        float r4617924 = -r4617923;
        float r4617925 = 4.1153145131375503e-94f;
        bool r4617926 = r4617903 <= r4617925;
        float r4617927 = 0.16666666666666666f;
        float r4617928 = r4617903 * r4617927;
        float r4617929 = r4617906 * (r4617906 * r4617906);
        float r4617930 = r4617928 * r4617929;
        float r4617931 = r4617920 * r4617903;
        float r4617932 = r4617931 + r4617906;
        float r4617933 = r4617903 * r4617932;
        float r4617934 = r4617930 - r4617933;
        float r4617935 = 3.384489567637978e-06f;
        bool r4617936 = r4617903 <= r4617935;
        float r4617937 = r4617936 ? r4617924 : r4617917;
        float r4617938 = r4617926 ? r4617934 : r4617937;
        float r4617939 = r4617919 ? r4617924 : r4617938;
        float r4617940 = r4617905 ? r4617917 : r4617939;
        return r4617940;
}

double f_od(double x, double eps) {
        double r4617941 = eps;
        double r4617942 = -8.658073314327725e-05;
        bool r4617943 = r4617941 <= r4617942;
        double r4617944 = x;
        double r4617945 = cos(r4617944);
        double r4617946 = cos(r4617941);
        double r4617947 = r4617945 * r4617946;
        double r4617948 = sin(r4617944);
        double r4617949 = r4617948 * (r4617948 * r4617948);
        double r4617950 = sin(r4617941);
        double r4617951 = r4617950 * (r4617950 * r4617950);
        double r4617952 = r4617949 * r4617951;
        double r4617953 = cbrt(r4617952);
        double r4617954 = r4617947 - r4617953;
        double r4617955 = r4617954 - r4617945;
        double r4617956 = -2.3361824468930465e-158;
        bool r4617957 = r4617941 <= r4617956;
        double r4617958 = 0.5;
        double r4617959 = r4617941 * r4617941;
        double r4617960 = r4617958 * r4617959;
        double r4617961 = r4617960 + r4617953;
        double r4617962 = -r4617961;
        double r4617963 = 4.1153145131375503e-94;
        bool r4617964 = r4617941 <= r4617963;
        double r4617965 = 0.16666666666666666;
        double r4617966 = r4617941 * r4617965;
        double r4617967 = r4617944 * (r4617944 * r4617944);
        double r4617968 = r4617966 * r4617967;
        double r4617969 = r4617958 * r4617941;
        double r4617970 = r4617969 + r4617944;
        double r4617971 = r4617941 * r4617970;
        double r4617972 = r4617968 - r4617971;
        double r4617973 = 3.384489567637978e-06;
        bool r4617974 = r4617941 <= r4617973;
        double r4617975 = r4617974 ? r4617962 : r4617955;
        double r4617976 = r4617964 ? r4617972 : r4617975;
        double r4617977 = r4617957 ? r4617962 : r4617976;
        double r4617978 = r4617943 ? r4617955 : r4617977;
        return r4617978;
}

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 r4617979, r4617980, r4617981, r4617982, r4617983, r4617984;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r4617979);
        mpfr_init(r4617980);
        mpfr_init(r4617981);
        mpfr_init(r4617982);
        mpfr_init(r4617983);
        mpfr_init(r4617984);
}

double f_im(double x, double eps) {
        mpfr_set_d(r4617979, x, MPFR_RNDN);
        mpfr_set_d(r4617980, eps, MPFR_RNDN);
        mpfr_add(r4617981, r4617979, r4617980, MPFR_RNDN);
        mpfr_cos(r4617982, r4617981, MPFR_RNDN);
        mpfr_cos(r4617983, r4617979, MPFR_RNDN);
        mpfr_sub(r4617984, r4617982, r4617983, MPFR_RNDN);
        return mpfr_get_d(r4617984, MPFR_RNDN);
}

static mpfr_t r4617985, r4617986, r4617987, r4617988, r4617989, r4617990, r4617991, r4617992, r4617993, r4617994, r4617995, r4617996, r4617997, r4617998, r4617999, r4618000, r4618001, r4618002, r4618003, r4618004, r4618005, r4618006, r4618007, r4618008, r4618009, r4618010, r4618011, r4618012, r4618013, r4618014, r4618015, r4618016, r4618017, r4618018, r4618019, r4618020, r4618021, r4618022;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r4617985);
        mpfr_init_set_str(r4617986, "-8.658073314327725e-05", 10, MPFR_RNDN);
        mpfr_init(r4617987);
        mpfr_init(r4617988);
        mpfr_init(r4617989);
        mpfr_init(r4617990);
        mpfr_init(r4617991);
        mpfr_init(r4617992);
        mpfr_init(r4617993);
        mpfr_init(r4617994);
        mpfr_init(r4617995);
        mpfr_init(r4617996);
        mpfr_init(r4617997);
        mpfr_init(r4617998);
        mpfr_init(r4617999);
        mpfr_init_set_str(r4618000, "-2.3361824468930465e-158", 10, MPFR_RNDN);
        mpfr_init(r4618001);
        mpfr_init_set_str(r4618002, "1/2", 10, MPFR_RNDN);
        mpfr_init(r4618003);
        mpfr_init(r4618004);
        mpfr_init(r4618005);
        mpfr_init(r4618006);
        mpfr_init_set_str(r4618007, "4.1153145131375503e-94", 10, MPFR_RNDN);
        mpfr_init(r4618008);
        mpfr_init_set_str(r4618009, "1/6", 10, MPFR_RNDN);
        mpfr_init(r4618010);
        mpfr_init(r4618011);
        mpfr_init(r4618012);
        mpfr_init(r4618013);
        mpfr_init(r4618014);
        mpfr_init(r4618015);
        mpfr_init(r4618016);
        mpfr_init_set_str(r4618017, "3.384489567637978e-06", 10, MPFR_RNDN);
        mpfr_init(r4618018);
        mpfr_init(r4618019);
        mpfr_init(r4618020);
        mpfr_init(r4618021);
        mpfr_init(r4618022);
}

double f_fm(double x, double eps) {
        mpfr_set_d(r4617985, eps, MPFR_RNDN);
        ;
        mpfr_set_si(r4617987, mpfr_cmp(r4617985, r4617986) <= 0, MPFR_RNDN);
        mpfr_set_d(r4617988, x, MPFR_RNDN);
        mpfr_cos(r4617989, r4617988, MPFR_RNDN);
        mpfr_cos(r4617990, r4617985, MPFR_RNDN);
        mpfr_mul(r4617991, r4617989, r4617990, MPFR_RNDN);
        mpfr_sin(r4617992, r4617988, MPFR_RNDN);
        mpfr_mul(r4617993, r4617992, r4617992, MPFR_RNDN); mpfr_mul(r4617993, r4617993, r4617992, MPFR_RNDN);
        mpfr_sin(r4617994, r4617985, MPFR_RNDN);
        mpfr_mul(r4617995, r4617994, r4617994, MPFR_RNDN); mpfr_mul(r4617995, r4617995, r4617994, MPFR_RNDN);
        mpfr_mul(r4617996, r4617993, r4617995, MPFR_RNDN);
        mpfr_cbrt(r4617997, r4617996, MPFR_RNDN);
        mpfr_sub(r4617998, r4617991, r4617997, MPFR_RNDN);
        mpfr_sub(r4617999, r4617998, r4617989, MPFR_RNDN);
        ;
        mpfr_set_si(r4618001, mpfr_cmp(r4617985, r4618000) <= 0, MPFR_RNDN);
        ;
        mpfr_sqr(r4618003, r4617985, MPFR_RNDN);
        mpfr_mul(r4618004, r4618002, r4618003, MPFR_RNDN);
        mpfr_add(r4618005, r4618004, r4617997, MPFR_RNDN);
        mpfr_neg(r4618006, r4618005, MPFR_RNDN);
        ;
        mpfr_set_si(r4618008, mpfr_cmp(r4617985, r4618007) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r4618010, r4617985, r4618009, MPFR_RNDN);
        mpfr_mul(r4618011, r4617988, r4617988, MPFR_RNDN); mpfr_mul(r4618011, r4618011, r4617988, MPFR_RNDN);
        mpfr_mul(r4618012, r4618010, r4618011, MPFR_RNDN);
        mpfr_mul(r4618013, r4618002, r4617985, MPFR_RNDN);
        mpfr_add(r4618014, r4618013, r4617988, MPFR_RNDN);
        mpfr_mul(r4618015, r4617985, r4618014, MPFR_RNDN);
        mpfr_sub(r4618016, r4618012, r4618015, MPFR_RNDN);
        ;
        mpfr_set_si(r4618018, mpfr_cmp(r4617985, r4618017) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r4618018, MPFR_RNDN)) { mpfr_set(r4618019, r4618006, MPFR_RNDN); } else { mpfr_set(r4618019, r4617999, MPFR_RNDN); };
        if (mpfr_get_si(r4618008, MPFR_RNDN)) { mpfr_set(r4618020, r4618016, MPFR_RNDN); } else { mpfr_set(r4618020, r4618019, MPFR_RNDN); };
        if (mpfr_get_si(r4618001, MPFR_RNDN)) { mpfr_set(r4618021, r4618006, MPFR_RNDN); } else { mpfr_set(r4618021, r4618020, MPFR_RNDN); };
        if (mpfr_get_si(r4617987, MPFR_RNDN)) { mpfr_set(r4618022, r4617999, MPFR_RNDN); } else { mpfr_set(r4618022, r4618021, MPFR_RNDN); };
        return mpfr_get_d(r4618022, MPFR_RNDN);
}

static mpfr_t r4618023, r4618024, r4618025, r4618026, r4618027, r4618028, r4618029, r4618030, r4618031, r4618032, r4618033, r4618034, r4618035, r4618036, r4618037, r4618038, r4618039, r4618040, r4618041, r4618042, r4618043, r4618044, r4618045, r4618046, r4618047, r4618048, r4618049, r4618050, r4618051, r4618052, r4618053, r4618054, r4618055, r4618056, r4618057, r4618058, r4618059, r4618060;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r4618023);
        mpfr_init_set_str(r4618024, "-8.658073314327725e-05", 10, MPFR_RNDN);
        mpfr_init(r4618025);
        mpfr_init(r4618026);
        mpfr_init(r4618027);
        mpfr_init(r4618028);
        mpfr_init(r4618029);
        mpfr_init(r4618030);
        mpfr_init(r4618031);
        mpfr_init(r4618032);
        mpfr_init(r4618033);
        mpfr_init(r4618034);
        mpfr_init(r4618035);
        mpfr_init(r4618036);
        mpfr_init(r4618037);
        mpfr_init_set_str(r4618038, "-2.3361824468930465e-158", 10, MPFR_RNDN);
        mpfr_init(r4618039);
        mpfr_init_set_str(r4618040, "1/2", 10, MPFR_RNDN);
        mpfr_init(r4618041);
        mpfr_init(r4618042);
        mpfr_init(r4618043);
        mpfr_init(r4618044);
        mpfr_init_set_str(r4618045, "4.1153145131375503e-94", 10, MPFR_RNDN);
        mpfr_init(r4618046);
        mpfr_init_set_str(r4618047, "1/6", 10, MPFR_RNDN);
        mpfr_init(r4618048);
        mpfr_init(r4618049);
        mpfr_init(r4618050);
        mpfr_init(r4618051);
        mpfr_init(r4618052);
        mpfr_init(r4618053);
        mpfr_init(r4618054);
        mpfr_init_set_str(r4618055, "3.384489567637978e-06", 10, MPFR_RNDN);
        mpfr_init(r4618056);
        mpfr_init(r4618057);
        mpfr_init(r4618058);
        mpfr_init(r4618059);
        mpfr_init(r4618060);
}

double f_dm(double x, double eps) {
        mpfr_set_d(r4618023, eps, MPFR_RNDN);
        ;
        mpfr_set_si(r4618025, mpfr_cmp(r4618023, r4618024) <= 0, MPFR_RNDN);
        mpfr_set_d(r4618026, x, MPFR_RNDN);
        mpfr_cos(r4618027, r4618026, MPFR_RNDN);
        mpfr_cos(r4618028, r4618023, MPFR_RNDN);
        mpfr_mul(r4618029, r4618027, r4618028, MPFR_RNDN);
        mpfr_sin(r4618030, r4618026, MPFR_RNDN);
        mpfr_mul(r4618031, r4618030, r4618030, MPFR_RNDN); mpfr_mul(r4618031, r4618031, r4618030, MPFR_RNDN);
        mpfr_sin(r4618032, r4618023, MPFR_RNDN);
        mpfr_mul(r4618033, r4618032, r4618032, MPFR_RNDN); mpfr_mul(r4618033, r4618033, r4618032, MPFR_RNDN);
        mpfr_mul(r4618034, r4618031, r4618033, MPFR_RNDN);
        mpfr_cbrt(r4618035, r4618034, MPFR_RNDN);
        mpfr_sub(r4618036, r4618029, r4618035, MPFR_RNDN);
        mpfr_sub(r4618037, r4618036, r4618027, MPFR_RNDN);
        ;
        mpfr_set_si(r4618039, mpfr_cmp(r4618023, r4618038) <= 0, MPFR_RNDN);
        ;
        mpfr_sqr(r4618041, r4618023, MPFR_RNDN);
        mpfr_mul(r4618042, r4618040, r4618041, MPFR_RNDN);
        mpfr_add(r4618043, r4618042, r4618035, MPFR_RNDN);
        mpfr_neg(r4618044, r4618043, MPFR_RNDN);
        ;
        mpfr_set_si(r4618046, mpfr_cmp(r4618023, r4618045) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r4618048, r4618023, r4618047, MPFR_RNDN);
        mpfr_mul(r4618049, r4618026, r4618026, MPFR_RNDN); mpfr_mul(r4618049, r4618049, r4618026, MPFR_RNDN);
        mpfr_mul(r4618050, r4618048, r4618049, MPFR_RNDN);
        mpfr_mul(r4618051, r4618040, r4618023, MPFR_RNDN);
        mpfr_add(r4618052, r4618051, r4618026, MPFR_RNDN);
        mpfr_mul(r4618053, r4618023, r4618052, MPFR_RNDN);
        mpfr_sub(r4618054, r4618050, r4618053, MPFR_RNDN);
        ;
        mpfr_set_si(r4618056, mpfr_cmp(r4618023, r4618055) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r4618056, MPFR_RNDN)) { mpfr_set(r4618057, r4618044, MPFR_RNDN); } else { mpfr_set(r4618057, r4618037, MPFR_RNDN); };
        if (mpfr_get_si(r4618046, MPFR_RNDN)) { mpfr_set(r4618058, r4618054, MPFR_RNDN); } else { mpfr_set(r4618058, r4618057, MPFR_RNDN); };
        if (mpfr_get_si(r4618039, MPFR_RNDN)) { mpfr_set(r4618059, r4618044, MPFR_RNDN); } else { mpfr_set(r4618059, r4618058, MPFR_RNDN); };
        if (mpfr_get_si(r4618025, MPFR_RNDN)) { mpfr_set(r4618060, r4618037, MPFR_RNDN); } else { mpfr_set(r4618060, r4618059, MPFR_RNDN); };
        return mpfr_get_d(r4618060, MPFR_RNDN);
}

