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

char *name = "sintan (problem 3.4.5)";

double f_if(float x) {
        float r6213898 = x;
        float r6213899 = sin(r6213898);
        float r6213900 = r6213898 - r6213899;
        float r6213901 = tan(r6213898);
        float r6213902 = r6213898 - r6213901;
        float r6213903 = r6213900 / r6213902;
        return r6213903;
}

double f_id(double x) {
        double r6213904 = x;
        double r6213905 = sin(r6213904);
        double r6213906 = r6213904 - r6213905;
        double r6213907 = tan(r6213904);
        double r6213908 = r6213904 - r6213907;
        double r6213909 = r6213906 / r6213908;
        return r6213909;
}


double f_of(float x) {
        float r6213910 = x;
        float r6213911 = -0.041372472737496835;
        bool r6213912 = r6213910 <= r6213911;
        float r6213913 = sin(r6213910);
        float r6213914 = r6213910 - r6213913;
        float r6213915 = tan(r6213910);
        float r6213916 = r6213910 - r6213915;
        float r6213917 = r6213914 / r6213916;
        float r6213918 = 0.030907026834446228;
        bool r6213919 = r6213910 <= r6213918;
        float r6213920 = 4;
        float r6213921 = pow(r6213910, r6213920);
        float r6213922 = 1/2;
        float r6213923 = exp(r6213922);
        float r6213924 = r6213921 / r6213923;
        float r6213925 = 351/22400;
        float r6213926 = r6213924 * r6213925;
        float r6213927 = r6213910 * r6213910;
        float r6213928 = 9/40;
        float r6213929 = r6213923 / r6213928;
        float r6213930 = r6213927 / r6213929;
        float r6213931 = -r6213922;
        float r6213932 = exp(r6213931);
        float r6213933 = r6213930 + r6213932;
        float r6213934 = r6213926 + r6213933;
        float r6213935 = log(r6213934);
        float r6213936 = r6213919 ? r6213935 : r6213917;
        float r6213937 = r6213912 ? r6213917 : r6213936;
        return r6213937;
}

double f_od(double x) {
        double r6213938 = x;
        double r6213939 = -0.041372472737496835;
        bool r6213940 = r6213938 <= r6213939;
        double r6213941 = sin(r6213938);
        double r6213942 = r6213938 - r6213941;
        double r6213943 = tan(r6213938);
        double r6213944 = r6213938 - r6213943;
        double r6213945 = r6213942 / r6213944;
        double r6213946 = 0.030907026834446228;
        bool r6213947 = r6213938 <= r6213946;
        double r6213948 = 4;
        double r6213949 = pow(r6213938, r6213948);
        double r6213950 = 1/2;
        double r6213951 = exp(r6213950);
        double r6213952 = r6213949 / r6213951;
        double r6213953 = 351/22400;
        double r6213954 = r6213952 * r6213953;
        double r6213955 = r6213938 * r6213938;
        double r6213956 = 9/40;
        double r6213957 = r6213951 / r6213956;
        double r6213958 = r6213955 / r6213957;
        double r6213959 = -r6213950;
        double r6213960 = exp(r6213959);
        double r6213961 = r6213958 + r6213960;
        double r6213962 = r6213954 + r6213961;
        double r6213963 = log(r6213962);
        double r6213964 = r6213947 ? r6213963 : r6213945;
        double r6213965 = r6213940 ? r6213945 : r6213964;
        return r6213965;
}

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 r6213966, r6213967, r6213968, r6213969, r6213970, r6213971;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2448);
        mpfr_init(r6213966);
        mpfr_init(r6213967);
        mpfr_init(r6213968);
        mpfr_init(r6213969);
        mpfr_init(r6213970);
        mpfr_init(r6213971);
}

double f_im(double x) {
        mpfr_set_d(r6213966, x, MPFR_RNDN);
        mpfr_sin(r6213967, r6213966, MPFR_RNDN);
        mpfr_sub(r6213968, r6213966, r6213967, MPFR_RNDN);
        mpfr_tan(r6213969, r6213966, MPFR_RNDN);
        mpfr_sub(r6213970, r6213966, r6213969, MPFR_RNDN);
        mpfr_div(r6213971, r6213968, r6213970, MPFR_RNDN);
        return mpfr_get_d(r6213971, MPFR_RNDN);
}

static mpfr_t r6213972, r6213973, r6213974, r6213975, r6213976, r6213977, r6213978, r6213979, r6213980, r6213981, r6213982, r6213983, r6213984, r6213985, r6213986, r6213987, r6213988, r6213989, r6213990, r6213991, r6213992, r6213993, r6213994, r6213995, r6213996, r6213997, r6213998, r6213999;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r6213972);
        mpfr_init_set_str(r6213973, "-0.041372472737496835", 10, MPFR_RNDN);
        mpfr_init(r6213974);
        mpfr_init(r6213975);
        mpfr_init(r6213976);
        mpfr_init(r6213977);
        mpfr_init(r6213978);
        mpfr_init(r6213979);
        mpfr_init_set_str(r6213980, "0.030907026834446228", 10, MPFR_RNDN);
        mpfr_init(r6213981);
        mpfr_init_set_str(r6213982, "4", 10, MPFR_RNDN);
        mpfr_init(r6213983);
        mpfr_init_set_str(r6213984, "1/2", 10, MPFR_RNDN);
        mpfr_init(r6213985);
        mpfr_init(r6213986);
        mpfr_init_set_str(r6213987, "351/22400", 10, MPFR_RNDN);
        mpfr_init(r6213988);
        mpfr_init(r6213989);
        mpfr_init_set_str(r6213990, "9/40", 10, MPFR_RNDN);
        mpfr_init(r6213991);
        mpfr_init(r6213992);
        mpfr_init(r6213993);
        mpfr_init(r6213994);
        mpfr_init(r6213995);
        mpfr_init(r6213996);
        mpfr_init(r6213997);
        mpfr_init(r6213998);
        mpfr_init(r6213999);
}

double f_fm(double x) {
        mpfr_set_d(r6213972, x, MPFR_RNDN);
        ;
        mpfr_set_si(r6213974, mpfr_cmp(r6213972, r6213973) <= 0, MPFR_RNDN);
        mpfr_sin(r6213975, r6213972, MPFR_RNDN);
        mpfr_sub(r6213976, r6213972, r6213975, MPFR_RNDN);
        mpfr_tan(r6213977, r6213972, MPFR_RNDN);
        mpfr_sub(r6213978, r6213972, r6213977, MPFR_RNDN);
        mpfr_div(r6213979, r6213976, r6213978, MPFR_RNDN);
        ;
        mpfr_set_si(r6213981, mpfr_cmp(r6213972, r6213980) <= 0, MPFR_RNDN);
        ;
        mpfr_pow(r6213983, r6213972, r6213982, MPFR_RNDN);
        ;
        mpfr_exp(r6213985, r6213984, MPFR_RNDN);
        mpfr_div(r6213986, r6213983, r6213985, MPFR_RNDN);
        ;
        mpfr_mul(r6213988, r6213986, r6213987, MPFR_RNDN);
        mpfr_mul(r6213989, r6213972, r6213972, MPFR_RNDN);
        ;
        mpfr_div(r6213991, r6213985, r6213990, MPFR_RNDN);
        mpfr_div(r6213992, r6213989, r6213991, MPFR_RNDN);
        mpfr_neg(r6213993, r6213984, MPFR_RNDN);
        mpfr_exp(r6213994, r6213993, MPFR_RNDN);
        mpfr_add(r6213995, r6213992, r6213994, MPFR_RNDN);
        mpfr_add(r6213996, r6213988, r6213995, MPFR_RNDN);
        mpfr_log(r6213997, r6213996, MPFR_RNDN);
        if (mpfr_get_si(r6213981, MPFR_RNDN)) { mpfr_set(r6213998, r6213997, MPFR_RNDN); } else { mpfr_set(r6213998, r6213979, MPFR_RNDN); };
        if (mpfr_get_si(r6213974, MPFR_RNDN)) { mpfr_set(r6213999, r6213979, MPFR_RNDN); } else { mpfr_set(r6213999, r6213998, MPFR_RNDN); };
        return mpfr_get_d(r6213999, MPFR_RNDN);
}

static mpfr_t r6214000, r6214001, r6214002, r6214003, r6214004, r6214005, r6214006, r6214007, r6214008, r6214009, r6214010, r6214011, r6214012, r6214013, r6214014, r6214015, r6214016, r6214017, r6214018, r6214019, r6214020, r6214021, r6214022, r6214023, r6214024, r6214025, r6214026, r6214027;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r6214000);
        mpfr_init_set_str(r6214001, "-0.041372472737496835", 10, MPFR_RNDN);
        mpfr_init(r6214002);
        mpfr_init(r6214003);
        mpfr_init(r6214004);
        mpfr_init(r6214005);
        mpfr_init(r6214006);
        mpfr_init(r6214007);
        mpfr_init_set_str(r6214008, "0.030907026834446228", 10, MPFR_RNDN);
        mpfr_init(r6214009);
        mpfr_init_set_str(r6214010, "4", 10, MPFR_RNDN);
        mpfr_init(r6214011);
        mpfr_init_set_str(r6214012, "1/2", 10, MPFR_RNDN);
        mpfr_init(r6214013);
        mpfr_init(r6214014);
        mpfr_init_set_str(r6214015, "351/22400", 10, MPFR_RNDN);
        mpfr_init(r6214016);
        mpfr_init(r6214017);
        mpfr_init_set_str(r6214018, "9/40", 10, MPFR_RNDN);
        mpfr_init(r6214019);
        mpfr_init(r6214020);
        mpfr_init(r6214021);
        mpfr_init(r6214022);
        mpfr_init(r6214023);
        mpfr_init(r6214024);
        mpfr_init(r6214025);
        mpfr_init(r6214026);
        mpfr_init(r6214027);
}

double f_dm(double x) {
        mpfr_set_d(r6214000, x, MPFR_RNDN);
        ;
        mpfr_set_si(r6214002, mpfr_cmp(r6214000, r6214001) <= 0, MPFR_RNDN);
        mpfr_sin(r6214003, r6214000, MPFR_RNDN);
        mpfr_sub(r6214004, r6214000, r6214003, MPFR_RNDN);
        mpfr_tan(r6214005, r6214000, MPFR_RNDN);
        mpfr_sub(r6214006, r6214000, r6214005, MPFR_RNDN);
        mpfr_div(r6214007, r6214004, r6214006, MPFR_RNDN);
        ;
        mpfr_set_si(r6214009, mpfr_cmp(r6214000, r6214008) <= 0, MPFR_RNDN);
        ;
        mpfr_pow(r6214011, r6214000, r6214010, MPFR_RNDN);
        ;
        mpfr_exp(r6214013, r6214012, MPFR_RNDN);
        mpfr_div(r6214014, r6214011, r6214013, MPFR_RNDN);
        ;
        mpfr_mul(r6214016, r6214014, r6214015, MPFR_RNDN);
        mpfr_mul(r6214017, r6214000, r6214000, MPFR_RNDN);
        ;
        mpfr_div(r6214019, r6214013, r6214018, MPFR_RNDN);
        mpfr_div(r6214020, r6214017, r6214019, MPFR_RNDN);
        mpfr_neg(r6214021, r6214012, MPFR_RNDN);
        mpfr_exp(r6214022, r6214021, MPFR_RNDN);
        mpfr_add(r6214023, r6214020, r6214022, MPFR_RNDN);
        mpfr_add(r6214024, r6214016, r6214023, MPFR_RNDN);
        mpfr_log(r6214025, r6214024, MPFR_RNDN);
        if (mpfr_get_si(r6214009, MPFR_RNDN)) { mpfr_set(r6214026, r6214025, MPFR_RNDN); } else { mpfr_set(r6214026, r6214007, MPFR_RNDN); };
        if (mpfr_get_si(r6214002, MPFR_RNDN)) { mpfr_set(r6214027, r6214007, MPFR_RNDN); } else { mpfr_set(r6214027, r6214026, MPFR_RNDN); };
        return mpfr_get_d(r6214027, MPFR_RNDN);
}

