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

char *name = "NMSE problem 3.4.6";

double f_if(float x, float n) {
        float r14695 = x;
        float r14696 = 1.0f;
        float r14697 = r14695 + r14696;
        float r14698 = n;
        float r14699 = r14696 / r14698;
        float r14700 = pow(r14697, r14699);
        float r14701 = pow(r14695, r14699);
        float r14702 = r14700 - r14701;
        return r14702;
}

double f_id(double x, double n) {
        double r14703 = x;
        double r14704 = 1.0;
        double r14705 = r14703 + r14704;
        double r14706 = n;
        double r14707 = r14704 / r14706;
        double r14708 = pow(r14705, r14707);
        double r14709 = pow(r14703, r14707);
        double r14710 = r14708 - r14709;
        return r14710;
}


double f_of(float x, float n) {
        float r14711 = x;
        float r14712 = 2.9676117347247607e-151f;
        bool r14713 = r14711 <= r14712;
        float r14714 = 1.0f;
        float r14715 = r14711 + r14714;
        float r14716 = n;
        float r14717 = r14714 / r14716;
        float r14718 = pow(r14715, r14717);
        float r14719 = pow(r14711, r14717);
        float r14720 = r14718 - r14719;
        float r14721 = cbrt(r14720);
        float r14722 = cbrt(r14721);
        float r14723 = r14722 * (r14722 * r14722);
        float r14724 = cbrt(r14723);
        float r14725 = r14724 * (r14724 * r14724);
        float r14726 = r14725 * (r14725 * r14725);
        float r14727 = 199.96831458880428f;
        bool r14728 = r14711 <= r14727;
        float r14729 = r14716 * r14711;
        float r14730 = r14714 / r14729;
        float r14731 = r14730 + r14714;
        float r14732 = log(r14711);
        float r14733 = r14732 / r14716;
        float r14734 = exp(r14733);
        float r14735 = r14731 - r14734;
        float r14736 = r14735 - r14733;
        float r14737 = 4.013557246900315e+36f;
        bool r14738 = r14711 <= r14737;
        float r14739 = r14716 * r14716;
        float r14740 = r14711 * r14739;
        float r14741 = r14732 / r14740;
        float r14742 = 0.5f;
        float r14743 = r14742 / r14716;
        float r14744 = r14711 * r14711;
        float r14745 = r14743 / r14744;
        float r14746 = r14730 - r14745;
        float r14747 = r14741 + r14746;
        float r14748 = 1.8842024115766495e+65f;
        bool r14749 = r14711 <= r14748;
        float r14750 = 1.2061313027823203e+138f;
        bool r14751 = r14711 <= r14750;
        float r14752 = 9.324796861373603e+171f;
        bool r14753 = r14711 <= r14752;
        float r14754 = 2.5932059335490455e+190f;
        bool r14755 = r14711 <= r14754;
        float r14756 = r14755 ? r14747 : r14726;
        float r14757 = r14753 ? r14726 : r14756;
        float r14758 = r14751 ? r14747 : r14757;
        float r14759 = r14749 ? r14726 : r14758;
        float r14760 = r14738 ? r14747 : r14759;
        float r14761 = r14728 ? r14736 : r14760;
        float r14762 = r14713 ? r14726 : r14761;
        return r14762;
}

double f_od(double x, double n) {
        double r14763 = x;
        double r14764 = 2.9676117347247607e-151;
        bool r14765 = r14763 <= r14764;
        double r14766 = 1.0;
        double r14767 = r14763 + r14766;
        double r14768 = n;
        double r14769 = r14766 / r14768;
        double r14770 = pow(r14767, r14769);
        double r14771 = pow(r14763, r14769);
        double r14772 = r14770 - r14771;
        double r14773 = cbrt(r14772);
        double r14774 = cbrt(r14773);
        double r14775 = r14774 * (r14774 * r14774);
        double r14776 = cbrt(r14775);
        double r14777 = r14776 * (r14776 * r14776);
        double r14778 = r14777 * (r14777 * r14777);
        double r14779 = 199.96831458880428;
        bool r14780 = r14763 <= r14779;
        double r14781 = r14768 * r14763;
        double r14782 = r14766 / r14781;
        double r14783 = r14782 + r14766;
        double r14784 = log(r14763);
        double r14785 = r14784 / r14768;
        double r14786 = exp(r14785);
        double r14787 = r14783 - r14786;
        double r14788 = r14787 - r14785;
        double r14789 = 4.013557246900315e+36;
        bool r14790 = r14763 <= r14789;
        double r14791 = r14768 * r14768;
        double r14792 = r14763 * r14791;
        double r14793 = r14784 / r14792;
        double r14794 = 0.5;
        double r14795 = r14794 / r14768;
        double r14796 = r14763 * r14763;
        double r14797 = r14795 / r14796;
        double r14798 = r14782 - r14797;
        double r14799 = r14793 + r14798;
        double r14800 = 1.8842024115766495e+65;
        bool r14801 = r14763 <= r14800;
        double r14802 = 1.2061313027823203e+138;
        bool r14803 = r14763 <= r14802;
        double r14804 = 9.324796861373603e+171;
        bool r14805 = r14763 <= r14804;
        double r14806 = 2.5932059335490455e+190;
        bool r14807 = r14763 <= r14806;
        double r14808 = r14807 ? r14799 : r14778;
        double r14809 = r14805 ? r14778 : r14808;
        double r14810 = r14803 ? r14799 : r14809;
        double r14811 = r14801 ? r14778 : r14810;
        double r14812 = r14790 ? r14799 : r14811;
        double r14813 = r14780 ? r14788 : r14812;
        double r14814 = r14765 ? r14778 : r14813;
        return r14814;
}

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 r14815, r14816, r14817, r14818, r14819, r14820, r14821, r14822;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r14815);
        mpfr_init_set_str(r14816, "1", 10, MPFR_RNDN);
        mpfr_init(r14817);
        mpfr_init(r14818);
        mpfr_init(r14819);
        mpfr_init(r14820);
        mpfr_init(r14821);
        mpfr_init(r14822);
}

double f_im(double x, double n) {
        mpfr_set_d(r14815, x, MPFR_RNDN);
        ;
        mpfr_add(r14817, r14815, r14816, MPFR_RNDN);
        mpfr_set_d(r14818, n, MPFR_RNDN);
        mpfr_div(r14819, r14816, r14818, MPFR_RNDN);
        mpfr_pow(r14820, r14817, r14819, MPFR_RNDN);
        mpfr_pow(r14821, r14815, r14819, MPFR_RNDN);
        mpfr_sub(r14822, r14820, r14821, MPFR_RNDN);
        return mpfr_get_d(r14822, MPFR_RNDN);
}

static mpfr_t r14823, r14824, r14825, r14826, r14827, r14828, r14829, r14830, r14831, r14832, r14833, r14834, r14835, r14836, r14837, r14838, r14839, r14840, r14841, r14842, r14843, r14844, r14845, r14846, r14847, r14848, r14849, r14850, r14851, r14852, r14853, r14854, r14855, r14856, r14857, r14858, r14859, r14860, r14861, r14862, r14863, r14864, r14865, r14866, r14867, r14868, r14869, r14870, r14871, r14872, r14873, r14874;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r14823);
        mpfr_init_set_str(r14824, "2.9676117347247607e-151", 10, MPFR_RNDN);
        mpfr_init(r14825);
        mpfr_init_set_str(r14826, "1", 10, MPFR_RNDN);
        mpfr_init(r14827);
        mpfr_init(r14828);
        mpfr_init(r14829);
        mpfr_init(r14830);
        mpfr_init(r14831);
        mpfr_init(r14832);
        mpfr_init(r14833);
        mpfr_init(r14834);
        mpfr_init(r14835);
        mpfr_init(r14836);
        mpfr_init(r14837);
        mpfr_init(r14838);
        mpfr_init_set_str(r14839, "199.96831458880428", 10, MPFR_RNDN);
        mpfr_init(r14840);
        mpfr_init(r14841);
        mpfr_init(r14842);
        mpfr_init(r14843);
        mpfr_init(r14844);
        mpfr_init(r14845);
        mpfr_init(r14846);
        mpfr_init(r14847);
        mpfr_init(r14848);
        mpfr_init_set_str(r14849, "4.013557246900315e+36", 10, MPFR_RNDN);
        mpfr_init(r14850);
        mpfr_init(r14851);
        mpfr_init(r14852);
        mpfr_init(r14853);
        mpfr_init_set_str(r14854, "1/2", 10, MPFR_RNDN);
        mpfr_init(r14855);
        mpfr_init(r14856);
        mpfr_init(r14857);
        mpfr_init(r14858);
        mpfr_init(r14859);
        mpfr_init_set_str(r14860, "1.8842024115766495e+65", 10, MPFR_RNDN);
        mpfr_init(r14861);
        mpfr_init_set_str(r14862, "1.2061313027823203e+138", 10, MPFR_RNDN);
        mpfr_init(r14863);
        mpfr_init_set_str(r14864, "9.324796861373603e+171", 10, MPFR_RNDN);
        mpfr_init(r14865);
        mpfr_init_set_str(r14866, "2.5932059335490455e+190", 10, MPFR_RNDN);
        mpfr_init(r14867);
        mpfr_init(r14868);
        mpfr_init(r14869);
        mpfr_init(r14870);
        mpfr_init(r14871);
        mpfr_init(r14872);
        mpfr_init(r14873);
        mpfr_init(r14874);
}

double f_fm(double x, double n) {
        mpfr_set_d(r14823, x, MPFR_RNDN);
        ;
        mpfr_set_si(r14825, mpfr_cmp(r14823, r14824) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r14827, r14823, r14826, MPFR_RNDN);
        mpfr_set_d(r14828, n, MPFR_RNDN);
        mpfr_div(r14829, r14826, r14828, MPFR_RNDN);
        mpfr_pow(r14830, r14827, r14829, MPFR_RNDN);
        mpfr_pow(r14831, r14823, r14829, MPFR_RNDN);
        mpfr_sub(r14832, r14830, r14831, MPFR_RNDN);
        mpfr_cbrt(r14833, r14832, MPFR_RNDN);
        mpfr_cbrt(r14834, r14833, MPFR_RNDN);
        mpfr_mul(r14835, r14834, r14834, MPFR_RNDN); mpfr_mul(r14835, r14835, r14834, MPFR_RNDN);
        mpfr_cbrt(r14836, r14835, MPFR_RNDN);
        mpfr_mul(r14837, r14836, r14836, MPFR_RNDN); mpfr_mul(r14837, r14837, r14836, MPFR_RNDN);
        mpfr_mul(r14838, r14837, r14837, MPFR_RNDN); mpfr_mul(r14838, r14838, r14837, MPFR_RNDN);
        ;
        mpfr_set_si(r14840, mpfr_cmp(r14823, r14839) <= 0, MPFR_RNDN);
        mpfr_mul(r14841, r14828, r14823, MPFR_RNDN);
        mpfr_div(r14842, r14826, r14841, MPFR_RNDN);
        mpfr_add(r14843, r14842, r14826, MPFR_RNDN);
        mpfr_log(r14844, r14823, MPFR_RNDN);
        mpfr_div(r14845, r14844, r14828, MPFR_RNDN);
        mpfr_exp(r14846, r14845, MPFR_RNDN);
        mpfr_sub(r14847, r14843, r14846, MPFR_RNDN);
        mpfr_sub(r14848, r14847, r14845, MPFR_RNDN);
        ;
        mpfr_set_si(r14850, mpfr_cmp(r14823, r14849) <= 0, MPFR_RNDN);
        mpfr_mul(r14851, r14828, r14828, MPFR_RNDN);
        mpfr_mul(r14852, r14823, r14851, MPFR_RNDN);
        mpfr_div(r14853, r14844, r14852, MPFR_RNDN);
        ;
        mpfr_div(r14855, r14854, r14828, MPFR_RNDN);
        mpfr_sqr(r14856, r14823, MPFR_RNDN);
        mpfr_div(r14857, r14855, r14856, MPFR_RNDN);
        mpfr_sub(r14858, r14842, r14857, MPFR_RNDN);
        mpfr_add(r14859, r14853, r14858, MPFR_RNDN);
        ;
        mpfr_set_si(r14861, mpfr_cmp(r14823, r14860) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r14863, mpfr_cmp(r14823, r14862) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r14865, mpfr_cmp(r14823, r14864) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r14867, mpfr_cmp(r14823, r14866) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r14867, MPFR_RNDN)) { mpfr_set(r14868, r14859, MPFR_RNDN); } else { mpfr_set(r14868, r14838, MPFR_RNDN); };
        if (mpfr_get_si(r14865, MPFR_RNDN)) { mpfr_set(r14869, r14838, MPFR_RNDN); } else { mpfr_set(r14869, r14868, MPFR_RNDN); };
        if (mpfr_get_si(r14863, MPFR_RNDN)) { mpfr_set(r14870, r14859, MPFR_RNDN); } else { mpfr_set(r14870, r14869, MPFR_RNDN); };
        if (mpfr_get_si(r14861, MPFR_RNDN)) { mpfr_set(r14871, r14838, MPFR_RNDN); } else { mpfr_set(r14871, r14870, MPFR_RNDN); };
        if (mpfr_get_si(r14850, MPFR_RNDN)) { mpfr_set(r14872, r14859, MPFR_RNDN); } else { mpfr_set(r14872, r14871, MPFR_RNDN); };
        if (mpfr_get_si(r14840, MPFR_RNDN)) { mpfr_set(r14873, r14848, MPFR_RNDN); } else { mpfr_set(r14873, r14872, MPFR_RNDN); };
        if (mpfr_get_si(r14825, MPFR_RNDN)) { mpfr_set(r14874, r14838, MPFR_RNDN); } else { mpfr_set(r14874, r14873, MPFR_RNDN); };
        return mpfr_get_d(r14874, MPFR_RNDN);
}

static mpfr_t r14875, r14876, r14877, r14878, r14879, r14880, r14881, r14882, r14883, r14884, r14885, r14886, r14887, r14888, r14889, r14890, r14891, r14892, r14893, r14894, r14895, r14896, r14897, r14898, r14899, r14900, r14901, r14902, r14903, r14904, r14905, r14906, r14907, r14908, r14909, r14910, r14911, r14912, r14913, r14914, r14915, r14916, r14917, r14918, r14919, r14920, r14921, r14922, r14923, r14924, r14925, r14926;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r14875);
        mpfr_init_set_str(r14876, "2.9676117347247607e-151", 10, MPFR_RNDN);
        mpfr_init(r14877);
        mpfr_init_set_str(r14878, "1", 10, MPFR_RNDN);
        mpfr_init(r14879);
        mpfr_init(r14880);
        mpfr_init(r14881);
        mpfr_init(r14882);
        mpfr_init(r14883);
        mpfr_init(r14884);
        mpfr_init(r14885);
        mpfr_init(r14886);
        mpfr_init(r14887);
        mpfr_init(r14888);
        mpfr_init(r14889);
        mpfr_init(r14890);
        mpfr_init_set_str(r14891, "199.96831458880428", 10, MPFR_RNDN);
        mpfr_init(r14892);
        mpfr_init(r14893);
        mpfr_init(r14894);
        mpfr_init(r14895);
        mpfr_init(r14896);
        mpfr_init(r14897);
        mpfr_init(r14898);
        mpfr_init(r14899);
        mpfr_init(r14900);
        mpfr_init_set_str(r14901, "4.013557246900315e+36", 10, MPFR_RNDN);
        mpfr_init(r14902);
        mpfr_init(r14903);
        mpfr_init(r14904);
        mpfr_init(r14905);
        mpfr_init_set_str(r14906, "1/2", 10, MPFR_RNDN);
        mpfr_init(r14907);
        mpfr_init(r14908);
        mpfr_init(r14909);
        mpfr_init(r14910);
        mpfr_init(r14911);
        mpfr_init_set_str(r14912, "1.8842024115766495e+65", 10, MPFR_RNDN);
        mpfr_init(r14913);
        mpfr_init_set_str(r14914, "1.2061313027823203e+138", 10, MPFR_RNDN);
        mpfr_init(r14915);
        mpfr_init_set_str(r14916, "9.324796861373603e+171", 10, MPFR_RNDN);
        mpfr_init(r14917);
        mpfr_init_set_str(r14918, "2.5932059335490455e+190", 10, MPFR_RNDN);
        mpfr_init(r14919);
        mpfr_init(r14920);
        mpfr_init(r14921);
        mpfr_init(r14922);
        mpfr_init(r14923);
        mpfr_init(r14924);
        mpfr_init(r14925);
        mpfr_init(r14926);
}

double f_dm(double x, double n) {
        mpfr_set_d(r14875, x, MPFR_RNDN);
        ;
        mpfr_set_si(r14877, mpfr_cmp(r14875, r14876) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r14879, r14875, r14878, MPFR_RNDN);
        mpfr_set_d(r14880, n, MPFR_RNDN);
        mpfr_div(r14881, r14878, r14880, MPFR_RNDN);
        mpfr_pow(r14882, r14879, r14881, MPFR_RNDN);
        mpfr_pow(r14883, r14875, r14881, MPFR_RNDN);
        mpfr_sub(r14884, r14882, r14883, MPFR_RNDN);
        mpfr_cbrt(r14885, r14884, MPFR_RNDN);
        mpfr_cbrt(r14886, r14885, MPFR_RNDN);
        mpfr_mul(r14887, r14886, r14886, MPFR_RNDN); mpfr_mul(r14887, r14887, r14886, MPFR_RNDN);
        mpfr_cbrt(r14888, r14887, MPFR_RNDN);
        mpfr_mul(r14889, r14888, r14888, MPFR_RNDN); mpfr_mul(r14889, r14889, r14888, MPFR_RNDN);
        mpfr_mul(r14890, r14889, r14889, MPFR_RNDN); mpfr_mul(r14890, r14890, r14889, MPFR_RNDN);
        ;
        mpfr_set_si(r14892, mpfr_cmp(r14875, r14891) <= 0, MPFR_RNDN);
        mpfr_mul(r14893, r14880, r14875, MPFR_RNDN);
        mpfr_div(r14894, r14878, r14893, MPFR_RNDN);
        mpfr_add(r14895, r14894, r14878, MPFR_RNDN);
        mpfr_log(r14896, r14875, MPFR_RNDN);
        mpfr_div(r14897, r14896, r14880, MPFR_RNDN);
        mpfr_exp(r14898, r14897, MPFR_RNDN);
        mpfr_sub(r14899, r14895, r14898, MPFR_RNDN);
        mpfr_sub(r14900, r14899, r14897, MPFR_RNDN);
        ;
        mpfr_set_si(r14902, mpfr_cmp(r14875, r14901) <= 0, MPFR_RNDN);
        mpfr_mul(r14903, r14880, r14880, MPFR_RNDN);
        mpfr_mul(r14904, r14875, r14903, MPFR_RNDN);
        mpfr_div(r14905, r14896, r14904, MPFR_RNDN);
        ;
        mpfr_div(r14907, r14906, r14880, MPFR_RNDN);
        mpfr_sqr(r14908, r14875, MPFR_RNDN);
        mpfr_div(r14909, r14907, r14908, MPFR_RNDN);
        mpfr_sub(r14910, r14894, r14909, MPFR_RNDN);
        mpfr_add(r14911, r14905, r14910, MPFR_RNDN);
        ;
        mpfr_set_si(r14913, mpfr_cmp(r14875, r14912) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r14915, mpfr_cmp(r14875, r14914) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r14917, mpfr_cmp(r14875, r14916) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r14919, mpfr_cmp(r14875, r14918) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r14919, MPFR_RNDN)) { mpfr_set(r14920, r14911, MPFR_RNDN); } else { mpfr_set(r14920, r14890, MPFR_RNDN); };
        if (mpfr_get_si(r14917, MPFR_RNDN)) { mpfr_set(r14921, r14890, MPFR_RNDN); } else { mpfr_set(r14921, r14920, MPFR_RNDN); };
        if (mpfr_get_si(r14915, MPFR_RNDN)) { mpfr_set(r14922, r14911, MPFR_RNDN); } else { mpfr_set(r14922, r14921, MPFR_RNDN); };
        if (mpfr_get_si(r14913, MPFR_RNDN)) { mpfr_set(r14923, r14890, MPFR_RNDN); } else { mpfr_set(r14923, r14922, MPFR_RNDN); };
        if (mpfr_get_si(r14902, MPFR_RNDN)) { mpfr_set(r14924, r14911, MPFR_RNDN); } else { mpfr_set(r14924, r14923, MPFR_RNDN); };
        if (mpfr_get_si(r14892, MPFR_RNDN)) { mpfr_set(r14925, r14900, MPFR_RNDN); } else { mpfr_set(r14925, r14924, MPFR_RNDN); };
        if (mpfr_get_si(r14877, MPFR_RNDN)) { mpfr_set(r14926, r14890, MPFR_RNDN); } else { mpfr_set(r14926, r14925, MPFR_RNDN); };
        return mpfr_get_d(r14926, MPFR_RNDN);
}

