#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 r6236729 = x;
        float r6236730 = sin(r6236729);
        float r6236731 = r6236729 - r6236730;
        float r6236732 = tan(r6236729);
        float r6236733 = r6236729 - r6236732;
        float r6236734 = r6236731 / r6236733;
        return r6236734;
}

double f_id(double x) {
        double r6236735 = x;
        double r6236736 = sin(r6236735);
        double r6236737 = r6236735 - r6236736;
        double r6236738 = tan(r6236735);
        double r6236739 = r6236735 - r6236738;
        double r6236740 = r6236737 / r6236739;
        return r6236740;
}


double f_of(float x) {
        float r6236741 = x;
        float r6236742 = -0.041372472737496835;
        bool r6236743 = r6236741 <= r6236742;
        float r6236744 = sin(r6236741);
        float r6236745 = r6236741 - r6236744;
        float r6236746 = tan(r6236741);
        float r6236747 = r6236741 - r6236746;
        float r6236748 = r6236745 / r6236747;
        float r6236749 = 0.030907026834446228;
        bool r6236750 = r6236741 <= r6236749;
        float r6236751 = 4;
        float r6236752 = pow(r6236741, r6236751);
        float r6236753 = 1/2;
        float r6236754 = exp(r6236753);
        float r6236755 = r6236752 / r6236754;
        float r6236756 = 351/22400;
        float r6236757 = r6236755 * r6236756;
        float r6236758 = r6236741 * r6236741;
        float r6236759 = 9/40;
        float r6236760 = r6236754 / r6236759;
        float r6236761 = r6236758 / r6236760;
        float r6236762 = -r6236753;
        float r6236763 = exp(r6236762);
        float r6236764 = r6236761 + r6236763;
        float r6236765 = r6236757 + r6236764;
        float r6236766 = log(r6236765);
        float r6236767 = r6236750 ? r6236766 : r6236748;
        float r6236768 = r6236743 ? r6236748 : r6236767;
        return r6236768;
}

double f_od(double x) {
        double r6236769 = x;
        double r6236770 = -0.041372472737496835;
        bool r6236771 = r6236769 <= r6236770;
        double r6236772 = sin(r6236769);
        double r6236773 = r6236769 - r6236772;
        double r6236774 = tan(r6236769);
        double r6236775 = r6236769 - r6236774;
        double r6236776 = r6236773 / r6236775;
        double r6236777 = 0.030907026834446228;
        bool r6236778 = r6236769 <= r6236777;
        double r6236779 = 4;
        double r6236780 = pow(r6236769, r6236779);
        double r6236781 = 1/2;
        double r6236782 = exp(r6236781);
        double r6236783 = r6236780 / r6236782;
        double r6236784 = 351/22400;
        double r6236785 = r6236783 * r6236784;
        double r6236786 = r6236769 * r6236769;
        double r6236787 = 9/40;
        double r6236788 = r6236782 / r6236787;
        double r6236789 = r6236786 / r6236788;
        double r6236790 = -r6236781;
        double r6236791 = exp(r6236790);
        double r6236792 = r6236789 + r6236791;
        double r6236793 = r6236785 + r6236792;
        double r6236794 = log(r6236793);
        double r6236795 = r6236778 ? r6236794 : r6236776;
        double r6236796 = r6236771 ? r6236776 : r6236795;
        return r6236796;
}

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 r6236797, r6236798, r6236799, r6236800, r6236801, r6236802;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2448);
        mpfr_init(r6236797);
        mpfr_init(r6236798);
        mpfr_init(r6236799);
        mpfr_init(r6236800);
        mpfr_init(r6236801);
        mpfr_init(r6236802);
}

double f_im(double x) {
        mpfr_set_d(r6236797, x, MPFR_RNDN);
        mpfr_sin(r6236798, r6236797, MPFR_RNDN);
        mpfr_sub(r6236799, r6236797, r6236798, MPFR_RNDN);
        mpfr_tan(r6236800, r6236797, MPFR_RNDN);
        mpfr_sub(r6236801, r6236797, r6236800, MPFR_RNDN);
        mpfr_div(r6236802, r6236799, r6236801, MPFR_RNDN);
        return mpfr_get_d(r6236802, MPFR_RNDN);
}

static mpfr_t r6236803, r6236804, r6236805, r6236806, r6236807, r6236808, r6236809, r6236810, r6236811, r6236812, r6236813, r6236814, r6236815, r6236816, r6236817, r6236818, r6236819, r6236820, r6236821, r6236822, r6236823, r6236824, r6236825, r6236826, r6236827, r6236828, r6236829, r6236830;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r6236803);
        mpfr_init_set_str(r6236804, "-0.041372472737496835", 10, MPFR_RNDN);
        mpfr_init(r6236805);
        mpfr_init(r6236806);
        mpfr_init(r6236807);
        mpfr_init(r6236808);
        mpfr_init(r6236809);
        mpfr_init(r6236810);
        mpfr_init_set_str(r6236811, "0.030907026834446228", 10, MPFR_RNDN);
        mpfr_init(r6236812);
        mpfr_init_set_str(r6236813, "4", 10, MPFR_RNDN);
        mpfr_init(r6236814);
        mpfr_init_set_str(r6236815, "1/2", 10, MPFR_RNDN);
        mpfr_init(r6236816);
        mpfr_init(r6236817);
        mpfr_init_set_str(r6236818, "351/22400", 10, MPFR_RNDN);
        mpfr_init(r6236819);
        mpfr_init(r6236820);
        mpfr_init_set_str(r6236821, "9/40", 10, MPFR_RNDN);
        mpfr_init(r6236822);
        mpfr_init(r6236823);
        mpfr_init(r6236824);
        mpfr_init(r6236825);
        mpfr_init(r6236826);
        mpfr_init(r6236827);
        mpfr_init(r6236828);
        mpfr_init(r6236829);
        mpfr_init(r6236830);
}

double f_fm(double x) {
        mpfr_set_d(r6236803, x, MPFR_RNDN);
        ;
        mpfr_set_si(r6236805, mpfr_cmp(r6236803, r6236804) <= 0, MPFR_RNDN);
        mpfr_sin(r6236806, r6236803, MPFR_RNDN);
        mpfr_sub(r6236807, r6236803, r6236806, MPFR_RNDN);
        mpfr_tan(r6236808, r6236803, MPFR_RNDN);
        mpfr_sub(r6236809, r6236803, r6236808, MPFR_RNDN);
        mpfr_div(r6236810, r6236807, r6236809, MPFR_RNDN);
        ;
        mpfr_set_si(r6236812, mpfr_cmp(r6236803, r6236811) <= 0, MPFR_RNDN);
        ;
        mpfr_pow(r6236814, r6236803, r6236813, MPFR_RNDN);
        ;
        mpfr_exp(r6236816, r6236815, MPFR_RNDN);
        mpfr_div(r6236817, r6236814, r6236816, MPFR_RNDN);
        ;
        mpfr_mul(r6236819, r6236817, r6236818, MPFR_RNDN);
        mpfr_mul(r6236820, r6236803, r6236803, MPFR_RNDN);
        ;
        mpfr_div(r6236822, r6236816, r6236821, MPFR_RNDN);
        mpfr_div(r6236823, r6236820, r6236822, MPFR_RNDN);
        mpfr_neg(r6236824, r6236815, MPFR_RNDN);
        mpfr_exp(r6236825, r6236824, MPFR_RNDN);
        mpfr_add(r6236826, r6236823, r6236825, MPFR_RNDN);
        mpfr_add(r6236827, r6236819, r6236826, MPFR_RNDN);
        mpfr_log(r6236828, r6236827, MPFR_RNDN);
        if (mpfr_get_si(r6236812, MPFR_RNDN)) { mpfr_set(r6236829, r6236828, MPFR_RNDN); } else { mpfr_set(r6236829, r6236810, MPFR_RNDN); };
        if (mpfr_get_si(r6236805, MPFR_RNDN)) { mpfr_set(r6236830, r6236810, MPFR_RNDN); } else { mpfr_set(r6236830, r6236829, MPFR_RNDN); };
        return mpfr_get_d(r6236830, MPFR_RNDN);
}

static mpfr_t r6236831, r6236832, r6236833, r6236834, r6236835, r6236836, r6236837, r6236838, r6236839, r6236840, r6236841, r6236842, r6236843, r6236844, r6236845, r6236846, r6236847, r6236848, r6236849, r6236850, r6236851, r6236852, r6236853, r6236854, r6236855, r6236856, r6236857, r6236858;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r6236831);
        mpfr_init_set_str(r6236832, "-0.041372472737496835", 10, MPFR_RNDN);
        mpfr_init(r6236833);
        mpfr_init(r6236834);
        mpfr_init(r6236835);
        mpfr_init(r6236836);
        mpfr_init(r6236837);
        mpfr_init(r6236838);
        mpfr_init_set_str(r6236839, "0.030907026834446228", 10, MPFR_RNDN);
        mpfr_init(r6236840);
        mpfr_init_set_str(r6236841, "4", 10, MPFR_RNDN);
        mpfr_init(r6236842);
        mpfr_init_set_str(r6236843, "1/2", 10, MPFR_RNDN);
        mpfr_init(r6236844);
        mpfr_init(r6236845);
        mpfr_init_set_str(r6236846, "351/22400", 10, MPFR_RNDN);
        mpfr_init(r6236847);
        mpfr_init(r6236848);
        mpfr_init_set_str(r6236849, "9/40", 10, MPFR_RNDN);
        mpfr_init(r6236850);
        mpfr_init(r6236851);
        mpfr_init(r6236852);
        mpfr_init(r6236853);
        mpfr_init(r6236854);
        mpfr_init(r6236855);
        mpfr_init(r6236856);
        mpfr_init(r6236857);
        mpfr_init(r6236858);
}

double f_dm(double x) {
        mpfr_set_d(r6236831, x, MPFR_RNDN);
        ;
        mpfr_set_si(r6236833, mpfr_cmp(r6236831, r6236832) <= 0, MPFR_RNDN);
        mpfr_sin(r6236834, r6236831, MPFR_RNDN);
        mpfr_sub(r6236835, r6236831, r6236834, MPFR_RNDN);
        mpfr_tan(r6236836, r6236831, MPFR_RNDN);
        mpfr_sub(r6236837, r6236831, r6236836, MPFR_RNDN);
        mpfr_div(r6236838, r6236835, r6236837, MPFR_RNDN);
        ;
        mpfr_set_si(r6236840, mpfr_cmp(r6236831, r6236839) <= 0, MPFR_RNDN);
        ;
        mpfr_pow(r6236842, r6236831, r6236841, MPFR_RNDN);
        ;
        mpfr_exp(r6236844, r6236843, MPFR_RNDN);
        mpfr_div(r6236845, r6236842, r6236844, MPFR_RNDN);
        ;
        mpfr_mul(r6236847, r6236845, r6236846, MPFR_RNDN);
        mpfr_mul(r6236848, r6236831, r6236831, MPFR_RNDN);
        ;
        mpfr_div(r6236850, r6236844, r6236849, MPFR_RNDN);
        mpfr_div(r6236851, r6236848, r6236850, MPFR_RNDN);
        mpfr_neg(r6236852, r6236843, MPFR_RNDN);
        mpfr_exp(r6236853, r6236852, MPFR_RNDN);
        mpfr_add(r6236854, r6236851, r6236853, MPFR_RNDN);
        mpfr_add(r6236855, r6236847, r6236854, MPFR_RNDN);
        mpfr_log(r6236856, r6236855, MPFR_RNDN);
        if (mpfr_get_si(r6236840, MPFR_RNDN)) { mpfr_set(r6236857, r6236856, MPFR_RNDN); } else { mpfr_set(r6236857, r6236838, MPFR_RNDN); };
        if (mpfr_get_si(r6236833, MPFR_RNDN)) { mpfr_set(r6236858, r6236838, MPFR_RNDN); } else { mpfr_set(r6236858, r6236857, MPFR_RNDN); };
        return mpfr_get_d(r6236858, MPFR_RNDN);
}

