#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 = n;
        float r14712 = -91874156718365.66f;
        bool r14713 = r14711 <= r14712;
        float r14714 = 1.0f;
        float r14715 = x;
        float r14716 = r14711 * r14715;
        float r14717 = r14714 / r14716;
        float r14718 = log(r14715);
        float r14719 = r14711 * r14711;
        float r14720 = r14719 * r14715;
        float r14721 = r14718 / r14720;
        float r14722 = 0.5f;
        float r14723 = r14715 * r14715;
        float r14724 = r14711 * r14723;
        float r14725 = r14714 / r14724;
        float r14726 = r14722 * r14725;
        float r14727 = r14721 + r14726;
        float r14728 = r14717 - r14727;
        float r14729 = 1.888112624037396e+21f;
        bool r14730 = r14711 <= r14729;
        float r14731 = r14715 + r14714;
        float r14732 = r14714 / r14711;
        float r14733 = pow(r14731, r14732);
        float r14734 = pow(r14715, r14732);
        float r14735 = r14733 - r14734;
        float r14736 = cbrt(r14735);
        float r14737 = cbrt(r14736);
        float r14738 = r14737 * (r14737 * r14737);
        float r14739 = r14738 * (r14738 * r14738);
        float r14740 = r14730 ? r14739 : r14728;
        float r14741 = r14713 ? r14728 : r14740;
        return r14741;
}

double f_od(double x, double n) {
        double r14742 = n;
        double r14743 = -91874156718365.66;
        bool r14744 = r14742 <= r14743;
        double r14745 = 1.0;
        double r14746 = x;
        double r14747 = r14742 * r14746;
        double r14748 = r14745 / r14747;
        double r14749 = log(r14746);
        double r14750 = r14742 * r14742;
        double r14751 = r14750 * r14746;
        double r14752 = r14749 / r14751;
        double r14753 = 0.5;
        double r14754 = r14746 * r14746;
        double r14755 = r14742 * r14754;
        double r14756 = r14745 / r14755;
        double r14757 = r14753 * r14756;
        double r14758 = r14752 + r14757;
        double r14759 = r14748 - r14758;
        double r14760 = 1.888112624037396e+21;
        bool r14761 = r14742 <= r14760;
        double r14762 = r14746 + r14745;
        double r14763 = r14745 / r14742;
        double r14764 = pow(r14762, r14763);
        double r14765 = pow(r14746, r14763);
        double r14766 = r14764 - r14765;
        double r14767 = cbrt(r14766);
        double r14768 = cbrt(r14767);
        double r14769 = r14768 * (r14768 * r14768);
        double r14770 = r14769 * (r14769 * r14769);
        double r14771 = r14761 ? r14770 : r14759;
        double r14772 = r14744 ? r14759 : r14771;
        return r14772;
}

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 r14773, r14774, r14775, r14776, r14777, r14778, r14779, r14780;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r14773);
        mpfr_init_set_str(r14774, "1", 10, MPFR_RNDN);
        mpfr_init(r14775);
        mpfr_init(r14776);
        mpfr_init(r14777);
        mpfr_init(r14778);
        mpfr_init(r14779);
        mpfr_init(r14780);
}

double f_im(double x, double n) {
        mpfr_set_d(r14773, x, MPFR_RNDN);
        ;
        mpfr_add(r14775, r14773, r14774, MPFR_RNDN);
        mpfr_set_d(r14776, n, MPFR_RNDN);
        mpfr_div(r14777, r14774, r14776, MPFR_RNDN);
        mpfr_pow(r14778, r14775, r14777, MPFR_RNDN);
        mpfr_pow(r14779, r14773, r14777, MPFR_RNDN);
        mpfr_sub(r14780, r14778, r14779, MPFR_RNDN);
        return mpfr_get_d(r14780, MPFR_RNDN);
}

static mpfr_t r14781, r14782, r14783, r14784, r14785, r14786, r14787, r14788, r14789, r14790, r14791, r14792, r14793, r14794, r14795, r14796, r14797, r14798, r14799, r14800, r14801, r14802, r14803, r14804, r14805, r14806, r14807, r14808, r14809, r14810, r14811;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r14781);
        mpfr_init_set_str(r14782, "-91874156718365.66", 10, MPFR_RNDN);
        mpfr_init(r14783);
        mpfr_init_set_str(r14784, "1", 10, MPFR_RNDN);
        mpfr_init(r14785);
        mpfr_init(r14786);
        mpfr_init(r14787);
        mpfr_init(r14788);
        mpfr_init(r14789);
        mpfr_init(r14790);
        mpfr_init(r14791);
        mpfr_init_set_str(r14792, "1/2", 10, MPFR_RNDN);
        mpfr_init(r14793);
        mpfr_init(r14794);
        mpfr_init(r14795);
        mpfr_init(r14796);
        mpfr_init(r14797);
        mpfr_init(r14798);
        mpfr_init_set_str(r14799, "1.888112624037396e+21", 10, MPFR_RNDN);
        mpfr_init(r14800);
        mpfr_init(r14801);
        mpfr_init(r14802);
        mpfr_init(r14803);
        mpfr_init(r14804);
        mpfr_init(r14805);
        mpfr_init(r14806);
        mpfr_init(r14807);
        mpfr_init(r14808);
        mpfr_init(r14809);
        mpfr_init(r14810);
        mpfr_init(r14811);
}

double f_fm(double x, double n) {
        mpfr_set_d(r14781, n, MPFR_RNDN);
        ;
        mpfr_set_si(r14783, mpfr_cmp(r14781, r14782) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r14785, x, MPFR_RNDN);
        mpfr_mul(r14786, r14781, r14785, MPFR_RNDN);
        mpfr_div(r14787, r14784, r14786, MPFR_RNDN);
        mpfr_log(r14788, r14785, MPFR_RNDN);
        mpfr_sqr(r14789, r14781, MPFR_RNDN);
        mpfr_mul(r14790, r14789, r14785, MPFR_RNDN);
        mpfr_div(r14791, r14788, r14790, MPFR_RNDN);
        ;
        mpfr_sqr(r14793, r14785, MPFR_RNDN);
        mpfr_mul(r14794, r14781, r14793, MPFR_RNDN);
        mpfr_div(r14795, r14784, r14794, MPFR_RNDN);
        mpfr_mul(r14796, r14792, r14795, MPFR_RNDN);
        mpfr_add(r14797, r14791, r14796, MPFR_RNDN);
        mpfr_sub(r14798, r14787, r14797, MPFR_RNDN);
        ;
        mpfr_set_si(r14800, mpfr_cmp(r14781, r14799) <= 0, MPFR_RNDN);
        mpfr_add(r14801, r14785, r14784, MPFR_RNDN);
        mpfr_div(r14802, r14784, r14781, MPFR_RNDN);
        mpfr_pow(r14803, r14801, r14802, MPFR_RNDN);
        mpfr_pow(r14804, r14785, r14802, MPFR_RNDN);
        mpfr_sub(r14805, r14803, r14804, MPFR_RNDN);
        mpfr_cbrt(r14806, r14805, MPFR_RNDN);
        mpfr_cbrt(r14807, r14806, MPFR_RNDN);
        mpfr_mul(r14808, r14807, r14807, MPFR_RNDN); mpfr_mul(r14808, r14808, r14807, MPFR_RNDN);
        mpfr_mul(r14809, r14808, r14808, MPFR_RNDN); mpfr_mul(r14809, r14809, r14808, MPFR_RNDN);
        if (mpfr_get_si(r14800, MPFR_RNDN)) { mpfr_set(r14810, r14809, MPFR_RNDN); } else { mpfr_set(r14810, r14798, MPFR_RNDN); };
        if (mpfr_get_si(r14783, MPFR_RNDN)) { mpfr_set(r14811, r14798, MPFR_RNDN); } else { mpfr_set(r14811, r14810, MPFR_RNDN); };
        return mpfr_get_d(r14811, MPFR_RNDN);
}

static mpfr_t r14812, r14813, r14814, r14815, r14816, r14817, r14818, r14819, r14820, r14821, r14822, r14823, r14824, r14825, r14826, r14827, r14828, r14829, r14830, r14831, r14832, r14833, r14834, r14835, r14836, r14837, r14838, r14839, r14840, r14841, r14842;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r14812);
        mpfr_init_set_str(r14813, "-91874156718365.66", 10, MPFR_RNDN);
        mpfr_init(r14814);
        mpfr_init_set_str(r14815, "1", 10, MPFR_RNDN);
        mpfr_init(r14816);
        mpfr_init(r14817);
        mpfr_init(r14818);
        mpfr_init(r14819);
        mpfr_init(r14820);
        mpfr_init(r14821);
        mpfr_init(r14822);
        mpfr_init_set_str(r14823, "1/2", 10, MPFR_RNDN);
        mpfr_init(r14824);
        mpfr_init(r14825);
        mpfr_init(r14826);
        mpfr_init(r14827);
        mpfr_init(r14828);
        mpfr_init(r14829);
        mpfr_init_set_str(r14830, "1.888112624037396e+21", 10, MPFR_RNDN);
        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(r14839);
        mpfr_init(r14840);
        mpfr_init(r14841);
        mpfr_init(r14842);
}

double f_dm(double x, double n) {
        mpfr_set_d(r14812, n, MPFR_RNDN);
        ;
        mpfr_set_si(r14814, mpfr_cmp(r14812, r14813) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r14816, x, MPFR_RNDN);
        mpfr_mul(r14817, r14812, r14816, MPFR_RNDN);
        mpfr_div(r14818, r14815, r14817, MPFR_RNDN);
        mpfr_log(r14819, r14816, MPFR_RNDN);
        mpfr_sqr(r14820, r14812, MPFR_RNDN);
        mpfr_mul(r14821, r14820, r14816, MPFR_RNDN);
        mpfr_div(r14822, r14819, r14821, MPFR_RNDN);
        ;
        mpfr_sqr(r14824, r14816, MPFR_RNDN);
        mpfr_mul(r14825, r14812, r14824, MPFR_RNDN);
        mpfr_div(r14826, r14815, r14825, MPFR_RNDN);
        mpfr_mul(r14827, r14823, r14826, MPFR_RNDN);
        mpfr_add(r14828, r14822, r14827, MPFR_RNDN);
        mpfr_sub(r14829, r14818, r14828, MPFR_RNDN);
        ;
        mpfr_set_si(r14831, mpfr_cmp(r14812, r14830) <= 0, MPFR_RNDN);
        mpfr_add(r14832, r14816, r14815, MPFR_RNDN);
        mpfr_div(r14833, r14815, r14812, MPFR_RNDN);
        mpfr_pow(r14834, r14832, r14833, MPFR_RNDN);
        mpfr_pow(r14835, r14816, r14833, MPFR_RNDN);
        mpfr_sub(r14836, r14834, r14835, MPFR_RNDN);
        mpfr_cbrt(r14837, r14836, MPFR_RNDN);
        mpfr_cbrt(r14838, r14837, MPFR_RNDN);
        mpfr_mul(r14839, r14838, r14838, MPFR_RNDN); mpfr_mul(r14839, r14839, r14838, MPFR_RNDN);
        mpfr_mul(r14840, r14839, r14839, MPFR_RNDN); mpfr_mul(r14840, r14840, r14839, MPFR_RNDN);
        if (mpfr_get_si(r14831, MPFR_RNDN)) { mpfr_set(r14841, r14840, MPFR_RNDN); } else { mpfr_set(r14841, r14829, MPFR_RNDN); };
        if (mpfr_get_si(r14814, MPFR_RNDN)) { mpfr_set(r14842, r14829, MPFR_RNDN); } else { mpfr_set(r14842, r14841, MPFR_RNDN); };
        return mpfr_get_d(r14842, MPFR_RNDN);
}

