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

char *name = "2nthrt (problem 3.4.6)";

double f_if(float x, float n) {
        float r21047 = x;
        float r21048 = 1;
        float r21049 = r21047 + r21048;
        float r21050 = n;
        float r21051 = r21048 / r21050;
        float r21052 = pow(r21049, r21051);
        float r21053 = pow(r21047, r21051);
        float r21054 = r21052 - r21053;
        return r21054;
}

double f_id(double x, double n) {
        double r21055 = x;
        double r21056 = 1;
        double r21057 = r21055 + r21056;
        double r21058 = n;
        double r21059 = r21056 / r21058;
        double r21060 = pow(r21057, r21059);
        double r21061 = pow(r21055, r21059);
        double r21062 = r21060 - r21061;
        return r21062;
}


double f_of(float x, float n) {
        float r21063 = 1;
        float r21064 = n;
        float r21065 = r21063 / r21064;
        float r21066 = x;
        float r21067 = r21065 / r21066;
        float r21068 = -12399814574990.717;
        bool r21069 = r21067 <= r21068;
        float r21070 = r21063 + r21066;
        float r21071 = sqrt(r21070);
        float r21072 = pow(r21071, r21065);
        float r21073 = pow(r21066, r21065);
        float r21074 = sqrt(r21073);
        float r21075 = r21072 + r21074;
        float r21076 = r21072 - r21074;
        float r21077 = r21075 * r21076;
        float r21078 = -1.0381793926400248e-39;
        bool r21079 = r21067 <= r21078;
        float r21080 = log(r21066);
        float r21081 = r21080 / r21064;
        float r21082 = -r21081;
        float r21083 = 1/2;
        float r21084 = r21064 / r21083;
        float r21085 = r21080 / r21084;
        float r21086 = r21081 * r21085;
        float r21087 = pow(r21070, r21065);
        float r21088 = r21087 - r21063;
        float r21089 = r21086 - r21088;
        float r21090 = r21082 - r21089;
        float r21091 = -5.1859364649083605e-174;
        bool r21092 = r21067 <= r21091;
        float r21093 = -1.1038994959296126e-186;
        bool r21094 = r21067 <= r21093;
        float r21095 = -5.041134567104183e-213;
        bool r21096 = r21067 <= r21095;
        float r21097 = 1.9033695602191532e-193;
        bool r21098 = r21067 <= r21097;
        float r21099 = 1.3772143065827926e+186;
        bool r21100 = r21067 <= r21099;
        float r21101 = r21100 ? r21090 : r21077;
        float r21102 = r21098 ? r21067 : r21101;
        float r21103 = r21096 ? r21077 : r21102;
        float r21104 = r21094 ? r21090 : r21103;
        float r21105 = r21092 ? r21077 : r21104;
        float r21106 = r21079 ? r21090 : r21105;
        float r21107 = r21069 ? r21077 : r21106;
        return r21107;
}

double f_od(double x, double n) {
        double r21108 = 1;
        double r21109 = n;
        double r21110 = r21108 / r21109;
        double r21111 = x;
        double r21112 = r21110 / r21111;
        double r21113 = -12399814574990.717;
        bool r21114 = r21112 <= r21113;
        double r21115 = r21108 + r21111;
        double r21116 = sqrt(r21115);
        double r21117 = pow(r21116, r21110);
        double r21118 = pow(r21111, r21110);
        double r21119 = sqrt(r21118);
        double r21120 = r21117 + r21119;
        double r21121 = r21117 - r21119;
        double r21122 = r21120 * r21121;
        double r21123 = -1.0381793926400248e-39;
        bool r21124 = r21112 <= r21123;
        double r21125 = log(r21111);
        double r21126 = r21125 / r21109;
        double r21127 = -r21126;
        double r21128 = 1/2;
        double r21129 = r21109 / r21128;
        double r21130 = r21125 / r21129;
        double r21131 = r21126 * r21130;
        double r21132 = pow(r21115, r21110);
        double r21133 = r21132 - r21108;
        double r21134 = r21131 - r21133;
        double r21135 = r21127 - r21134;
        double r21136 = -5.1859364649083605e-174;
        bool r21137 = r21112 <= r21136;
        double r21138 = -1.1038994959296126e-186;
        bool r21139 = r21112 <= r21138;
        double r21140 = -5.041134567104183e-213;
        bool r21141 = r21112 <= r21140;
        double r21142 = 1.9033695602191532e-193;
        bool r21143 = r21112 <= r21142;
        double r21144 = 1.3772143065827926e+186;
        bool r21145 = r21112 <= r21144;
        double r21146 = r21145 ? r21135 : r21122;
        double r21147 = r21143 ? r21112 : r21146;
        double r21148 = r21141 ? r21122 : r21147;
        double r21149 = r21139 ? r21135 : r21148;
        double r21150 = r21137 ? r21122 : r21149;
        double r21151 = r21124 ? r21135 : r21150;
        double r21152 = r21114 ? r21122 : r21151;
        return r21152;
}

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 r21153, r21154, r21155, r21156, r21157, r21158, r21159, r21160;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r21153);
        mpfr_init_set_str(r21154, "1", 10, MPFR_RNDN);
        mpfr_init(r21155);
        mpfr_init(r21156);
        mpfr_init(r21157);
        mpfr_init(r21158);
        mpfr_init(r21159);
        mpfr_init(r21160);
}

double f_im(double x, double n) {
        mpfr_set_d(r21153, x, MPFR_RNDN);
        ;
        mpfr_add(r21155, r21153, r21154, MPFR_RNDN);
        mpfr_set_d(r21156, n, MPFR_RNDN);
        mpfr_div(r21157, r21154, r21156, MPFR_RNDN);
        mpfr_pow(r21158, r21155, r21157, MPFR_RNDN);
        mpfr_pow(r21159, r21153, r21157, MPFR_RNDN);
        mpfr_sub(r21160, r21158, r21159, MPFR_RNDN);
        return mpfr_get_d(r21160, MPFR_RNDN);
}

static mpfr_t r21161, r21162, r21163, r21164, r21165, r21166, r21167, r21168, r21169, r21170, r21171, r21172, r21173, r21174, r21175, r21176, r21177, r21178, r21179, r21180, r21181, r21182, r21183, r21184, r21185, r21186, r21187, r21188, r21189, r21190, r21191, r21192, r21193, r21194, r21195, r21196, r21197, r21198, r21199, r21200, r21201, r21202, r21203, r21204, r21205;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r21161, "1", 10, MPFR_RNDN);
        mpfr_init(r21162);
        mpfr_init(r21163);
        mpfr_init(r21164);
        mpfr_init(r21165);
        mpfr_init_set_str(r21166, "-12399814574990.717", 10, MPFR_RNDN);
        mpfr_init(r21167);
        mpfr_init(r21168);
        mpfr_init(r21169);
        mpfr_init(r21170);
        mpfr_init(r21171);
        mpfr_init(r21172);
        mpfr_init(r21173);
        mpfr_init(r21174);
        mpfr_init(r21175);
        mpfr_init_set_str(r21176, "-1.0381793926400248e-39", 10, MPFR_RNDN);
        mpfr_init(r21177);
        mpfr_init(r21178);
        mpfr_init(r21179);
        mpfr_init(r21180);
        mpfr_init_set_str(r21181, "1/2", 10, MPFR_RNDN);
        mpfr_init(r21182);
        mpfr_init(r21183);
        mpfr_init(r21184);
        mpfr_init(r21185);
        mpfr_init(r21186);
        mpfr_init(r21187);
        mpfr_init(r21188);
        mpfr_init_set_str(r21189, "-5.1859364649083605e-174", 10, MPFR_RNDN);
        mpfr_init(r21190);
        mpfr_init_set_str(r21191, "-1.1038994959296126e-186", 10, MPFR_RNDN);
        mpfr_init(r21192);
        mpfr_init_set_str(r21193, "-5.041134567104183e-213", 10, MPFR_RNDN);
        mpfr_init(r21194);
        mpfr_init_set_str(r21195, "1.9033695602191532e-193", 10, MPFR_RNDN);
        mpfr_init(r21196);
        mpfr_init_set_str(r21197, "1.3772143065827926e+186", 10, MPFR_RNDN);
        mpfr_init(r21198);
        mpfr_init(r21199);
        mpfr_init(r21200);
        mpfr_init(r21201);
        mpfr_init(r21202);
        mpfr_init(r21203);
        mpfr_init(r21204);
        mpfr_init(r21205);
}

double f_fm(double x, double n) {
        ;
        mpfr_set_d(r21162, n, MPFR_RNDN);
        mpfr_div(r21163, r21161, r21162, MPFR_RNDN);
        mpfr_set_d(r21164, x, MPFR_RNDN);
        mpfr_div(r21165, r21163, r21164, MPFR_RNDN);
        ;
        mpfr_set_si(r21167, mpfr_cmp(r21165, r21166) <= 0, MPFR_RNDN);
        mpfr_add(r21168, r21161, r21164, MPFR_RNDN);
        mpfr_sqrt(r21169, r21168, MPFR_RNDN);
        mpfr_pow(r21170, r21169, r21163, MPFR_RNDN);
        mpfr_pow(r21171, r21164, r21163, MPFR_RNDN);
        mpfr_sqrt(r21172, r21171, MPFR_RNDN);
        mpfr_add(r21173, r21170, r21172, MPFR_RNDN);
        mpfr_sub(r21174, r21170, r21172, MPFR_RNDN);
        mpfr_mul(r21175, r21173, r21174, MPFR_RNDN);
        ;
        mpfr_set_si(r21177, mpfr_cmp(r21165, r21176) <= 0, MPFR_RNDN);
        mpfr_log(r21178, r21164, MPFR_RNDN);
        mpfr_div(r21179, r21178, r21162, MPFR_RNDN);
        mpfr_neg(r21180, r21179, MPFR_RNDN);
        ;
        mpfr_div(r21182, r21162, r21181, MPFR_RNDN);
        mpfr_div(r21183, r21178, r21182, MPFR_RNDN);
        mpfr_mul(r21184, r21179, r21183, MPFR_RNDN);
        mpfr_pow(r21185, r21168, r21163, MPFR_RNDN);
        mpfr_sub(r21186, r21185, r21161, MPFR_RNDN);
        mpfr_sub(r21187, r21184, r21186, MPFR_RNDN);
        mpfr_sub(r21188, r21180, r21187, MPFR_RNDN);
        ;
        mpfr_set_si(r21190, mpfr_cmp(r21165, r21189) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r21192, mpfr_cmp(r21165, r21191) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r21194, mpfr_cmp(r21165, r21193) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r21196, mpfr_cmp(r21165, r21195) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r21198, mpfr_cmp(r21165, r21197) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r21198, MPFR_RNDN)) { mpfr_set(r21199, r21188, MPFR_RNDN); } else { mpfr_set(r21199, r21175, MPFR_RNDN); };
        if (mpfr_get_si(r21196, MPFR_RNDN)) { mpfr_set(r21200, r21165, MPFR_RNDN); } else { mpfr_set(r21200, r21199, MPFR_RNDN); };
        if (mpfr_get_si(r21194, MPFR_RNDN)) { mpfr_set(r21201, r21175, MPFR_RNDN); } else { mpfr_set(r21201, r21200, MPFR_RNDN); };
        if (mpfr_get_si(r21192, MPFR_RNDN)) { mpfr_set(r21202, r21188, MPFR_RNDN); } else { mpfr_set(r21202, r21201, MPFR_RNDN); };
        if (mpfr_get_si(r21190, MPFR_RNDN)) { mpfr_set(r21203, r21175, MPFR_RNDN); } else { mpfr_set(r21203, r21202, MPFR_RNDN); };
        if (mpfr_get_si(r21177, MPFR_RNDN)) { mpfr_set(r21204, r21188, MPFR_RNDN); } else { mpfr_set(r21204, r21203, MPFR_RNDN); };
        if (mpfr_get_si(r21167, MPFR_RNDN)) { mpfr_set(r21205, r21175, MPFR_RNDN); } else { mpfr_set(r21205, r21204, MPFR_RNDN); };
        return mpfr_get_d(r21205, MPFR_RNDN);
}

static mpfr_t r21206, r21207, r21208, r21209, r21210, r21211, r21212, r21213, r21214, r21215, r21216, r21217, r21218, r21219, r21220, r21221, r21222, r21223, r21224, r21225, r21226, r21227, r21228, r21229, r21230, r21231, r21232, r21233, r21234, r21235, r21236, r21237, r21238, r21239, r21240, r21241, r21242, r21243, r21244, r21245, r21246, r21247, r21248, r21249, r21250;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r21206, "1", 10, MPFR_RNDN);
        mpfr_init(r21207);
        mpfr_init(r21208);
        mpfr_init(r21209);
        mpfr_init(r21210);
        mpfr_init_set_str(r21211, "-12399814574990.717", 10, MPFR_RNDN);
        mpfr_init(r21212);
        mpfr_init(r21213);
        mpfr_init(r21214);
        mpfr_init(r21215);
        mpfr_init(r21216);
        mpfr_init(r21217);
        mpfr_init(r21218);
        mpfr_init(r21219);
        mpfr_init(r21220);
        mpfr_init_set_str(r21221, "-1.0381793926400248e-39", 10, MPFR_RNDN);
        mpfr_init(r21222);
        mpfr_init(r21223);
        mpfr_init(r21224);
        mpfr_init(r21225);
        mpfr_init_set_str(r21226, "1/2", 10, MPFR_RNDN);
        mpfr_init(r21227);
        mpfr_init(r21228);
        mpfr_init(r21229);
        mpfr_init(r21230);
        mpfr_init(r21231);
        mpfr_init(r21232);
        mpfr_init(r21233);
        mpfr_init_set_str(r21234, "-5.1859364649083605e-174", 10, MPFR_RNDN);
        mpfr_init(r21235);
        mpfr_init_set_str(r21236, "-1.1038994959296126e-186", 10, MPFR_RNDN);
        mpfr_init(r21237);
        mpfr_init_set_str(r21238, "-5.041134567104183e-213", 10, MPFR_RNDN);
        mpfr_init(r21239);
        mpfr_init_set_str(r21240, "1.9033695602191532e-193", 10, MPFR_RNDN);
        mpfr_init(r21241);
        mpfr_init_set_str(r21242, "1.3772143065827926e+186", 10, MPFR_RNDN);
        mpfr_init(r21243);
        mpfr_init(r21244);
        mpfr_init(r21245);
        mpfr_init(r21246);
        mpfr_init(r21247);
        mpfr_init(r21248);
        mpfr_init(r21249);
        mpfr_init(r21250);
}

double f_dm(double x, double n) {
        ;
        mpfr_set_d(r21207, n, MPFR_RNDN);
        mpfr_div(r21208, r21206, r21207, MPFR_RNDN);
        mpfr_set_d(r21209, x, MPFR_RNDN);
        mpfr_div(r21210, r21208, r21209, MPFR_RNDN);
        ;
        mpfr_set_si(r21212, mpfr_cmp(r21210, r21211) <= 0, MPFR_RNDN);
        mpfr_add(r21213, r21206, r21209, MPFR_RNDN);
        mpfr_sqrt(r21214, r21213, MPFR_RNDN);
        mpfr_pow(r21215, r21214, r21208, MPFR_RNDN);
        mpfr_pow(r21216, r21209, r21208, MPFR_RNDN);
        mpfr_sqrt(r21217, r21216, MPFR_RNDN);
        mpfr_add(r21218, r21215, r21217, MPFR_RNDN);
        mpfr_sub(r21219, r21215, r21217, MPFR_RNDN);
        mpfr_mul(r21220, r21218, r21219, MPFR_RNDN);
        ;
        mpfr_set_si(r21222, mpfr_cmp(r21210, r21221) <= 0, MPFR_RNDN);
        mpfr_log(r21223, r21209, MPFR_RNDN);
        mpfr_div(r21224, r21223, r21207, MPFR_RNDN);
        mpfr_neg(r21225, r21224, MPFR_RNDN);
        ;
        mpfr_div(r21227, r21207, r21226, MPFR_RNDN);
        mpfr_div(r21228, r21223, r21227, MPFR_RNDN);
        mpfr_mul(r21229, r21224, r21228, MPFR_RNDN);
        mpfr_pow(r21230, r21213, r21208, MPFR_RNDN);
        mpfr_sub(r21231, r21230, r21206, MPFR_RNDN);
        mpfr_sub(r21232, r21229, r21231, MPFR_RNDN);
        mpfr_sub(r21233, r21225, r21232, MPFR_RNDN);
        ;
        mpfr_set_si(r21235, mpfr_cmp(r21210, r21234) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r21237, mpfr_cmp(r21210, r21236) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r21239, mpfr_cmp(r21210, r21238) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r21241, mpfr_cmp(r21210, r21240) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r21243, mpfr_cmp(r21210, r21242) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r21243, MPFR_RNDN)) { mpfr_set(r21244, r21233, MPFR_RNDN); } else { mpfr_set(r21244, r21220, MPFR_RNDN); };
        if (mpfr_get_si(r21241, MPFR_RNDN)) { mpfr_set(r21245, r21210, MPFR_RNDN); } else { mpfr_set(r21245, r21244, MPFR_RNDN); };
        if (mpfr_get_si(r21239, MPFR_RNDN)) { mpfr_set(r21246, r21220, MPFR_RNDN); } else { mpfr_set(r21246, r21245, MPFR_RNDN); };
        if (mpfr_get_si(r21237, MPFR_RNDN)) { mpfr_set(r21247, r21233, MPFR_RNDN); } else { mpfr_set(r21247, r21246, MPFR_RNDN); };
        if (mpfr_get_si(r21235, MPFR_RNDN)) { mpfr_set(r21248, r21220, MPFR_RNDN); } else { mpfr_set(r21248, r21247, MPFR_RNDN); };
        if (mpfr_get_si(r21222, MPFR_RNDN)) { mpfr_set(r21249, r21233, MPFR_RNDN); } else { mpfr_set(r21249, r21248, MPFR_RNDN); };
        if (mpfr_get_si(r21212, MPFR_RNDN)) { mpfr_set(r21250, r21220, MPFR_RNDN); } else { mpfr_set(r21250, r21249, MPFR_RNDN); };
        return mpfr_get_d(r21250, MPFR_RNDN);
}

