#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 r6214502 = x;
        float r6214503 = 1;
        float r6214504 = r6214502 + r6214503;
        float r6214505 = n;
        float r6214506 = r6214503 / r6214505;
        float r6214507 = pow(r6214504, r6214506);
        float r6214508 = pow(r6214502, r6214506);
        float r6214509 = r6214507 - r6214508;
        return r6214509;
}

double f_id(double x, double n) {
        double r6214510 = x;
        double r6214511 = 1;
        double r6214512 = r6214510 + r6214511;
        double r6214513 = n;
        double r6214514 = r6214511 / r6214513;
        double r6214515 = pow(r6214512, r6214514);
        double r6214516 = pow(r6214510, r6214514);
        double r6214517 = r6214515 - r6214516;
        return r6214517;
}


double f_of(float x, float n) {
        float r6214518 = n;
        float r6214519 = -9.484577713911117;
        bool r6214520 = r6214518 <= r6214519;
        float r6214521 = 1;
        float r6214522 = r6214521 / r6214518;
        float r6214523 = x;
        float r6214524 = r6214522 / r6214523;
        float r6214525 = 1/2;
        float r6214526 = r6214525 / r6214518;
        float r6214527 = r6214523 * r6214523;
        float r6214528 = r6214526 / r6214527;
        float r6214529 = r6214524 - r6214528;
        float r6214530 = log(r6214523);
        float r6214531 = r6214530 / r6214523;
        float r6214532 = r6214518 * r6214518;
        float r6214533 = r6214531 / r6214532;
        float r6214534 = r6214529 - r6214533;
        float r6214535 = 2.4602476366913392e+17;
        bool r6214536 = r6214518 <= r6214535;
        float r6214537 = r6214521 + r6214523;
        float r6214538 = pow(r6214537, r6214522);
        float r6214539 = pow(r6214523, r6214522);
        float r6214540 = r6214538 - r6214539;
        float r6214541 = r6214536 ? r6214540 : r6214534;
        float r6214542 = r6214520 ? r6214534 : r6214541;
        return r6214542;
}

double f_od(double x, double n) {
        double r6214543 = n;
        double r6214544 = -9.484577713911117;
        bool r6214545 = r6214543 <= r6214544;
        double r6214546 = 1;
        double r6214547 = r6214546 / r6214543;
        double r6214548 = x;
        double r6214549 = r6214547 / r6214548;
        double r6214550 = 1/2;
        double r6214551 = r6214550 / r6214543;
        double r6214552 = r6214548 * r6214548;
        double r6214553 = r6214551 / r6214552;
        double r6214554 = r6214549 - r6214553;
        double r6214555 = log(r6214548);
        double r6214556 = r6214555 / r6214548;
        double r6214557 = r6214543 * r6214543;
        double r6214558 = r6214556 / r6214557;
        double r6214559 = r6214554 - r6214558;
        double r6214560 = 2.4602476366913392e+17;
        bool r6214561 = r6214543 <= r6214560;
        double r6214562 = r6214546 + r6214548;
        double r6214563 = pow(r6214562, r6214547);
        double r6214564 = pow(r6214548, r6214547);
        double r6214565 = r6214563 - r6214564;
        double r6214566 = r6214561 ? r6214565 : r6214559;
        double r6214567 = r6214545 ? r6214559 : r6214566;
        return r6214567;
}

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 r6214568, r6214569, r6214570, r6214571, r6214572, r6214573, r6214574, r6214575;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r6214568);
        mpfr_init_set_str(r6214569, "1", 10, MPFR_RNDN);
        mpfr_init(r6214570);
        mpfr_init(r6214571);
        mpfr_init(r6214572);
        mpfr_init(r6214573);
        mpfr_init(r6214574);
        mpfr_init(r6214575);
}

double f_im(double x, double n) {
        mpfr_set_d(r6214568, x, MPFR_RNDN);
        ;
        mpfr_add(r6214570, r6214568, r6214569, MPFR_RNDN);
        mpfr_set_d(r6214571, n, MPFR_RNDN);
        mpfr_div(r6214572, r6214569, r6214571, MPFR_RNDN);
        mpfr_pow(r6214573, r6214570, r6214572, MPFR_RNDN);
        mpfr_pow(r6214574, r6214568, r6214572, MPFR_RNDN);
        mpfr_sub(r6214575, r6214573, r6214574, MPFR_RNDN);
        return mpfr_get_d(r6214575, MPFR_RNDN);
}

static mpfr_t r6214576, r6214577, r6214578, r6214579, r6214580, r6214581, r6214582, r6214583, r6214584, r6214585, r6214586, r6214587, r6214588, r6214589, r6214590, r6214591, r6214592, r6214593, r6214594, r6214595, r6214596, r6214597, r6214598, r6214599, r6214600;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r6214576);
        mpfr_init_set_str(r6214577, "-9.484577713911117", 10, MPFR_RNDN);
        mpfr_init(r6214578);
        mpfr_init_set_str(r6214579, "1", 10, MPFR_RNDN);
        mpfr_init(r6214580);
        mpfr_init(r6214581);
        mpfr_init(r6214582);
        mpfr_init_set_str(r6214583, "1/2", 10, MPFR_RNDN);
        mpfr_init(r6214584);
        mpfr_init(r6214585);
        mpfr_init(r6214586);
        mpfr_init(r6214587);
        mpfr_init(r6214588);
        mpfr_init(r6214589);
        mpfr_init(r6214590);
        mpfr_init(r6214591);
        mpfr_init(r6214592);
        mpfr_init_set_str(r6214593, "2.4602476366913392e+17", 10, MPFR_RNDN);
        mpfr_init(r6214594);
        mpfr_init(r6214595);
        mpfr_init(r6214596);
        mpfr_init(r6214597);
        mpfr_init(r6214598);
        mpfr_init(r6214599);
        mpfr_init(r6214600);
}

double f_fm(double x, double n) {
        mpfr_set_d(r6214576, n, MPFR_RNDN);
        ;
        mpfr_set_si(r6214578, mpfr_cmp(r6214576, r6214577) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r6214580, r6214579, r6214576, MPFR_RNDN);
        mpfr_set_d(r6214581, x, MPFR_RNDN);
        mpfr_div(r6214582, r6214580, r6214581, MPFR_RNDN);
        ;
        mpfr_div(r6214584, r6214583, r6214576, MPFR_RNDN);
        mpfr_mul(r6214585, r6214581, r6214581, MPFR_RNDN);
        mpfr_div(r6214586, r6214584, r6214585, MPFR_RNDN);
        mpfr_sub(r6214587, r6214582, r6214586, MPFR_RNDN);
        mpfr_log(r6214588, r6214581, MPFR_RNDN);
        mpfr_div(r6214589, r6214588, r6214581, MPFR_RNDN);
        mpfr_mul(r6214590, r6214576, r6214576, MPFR_RNDN);
        mpfr_div(r6214591, r6214589, r6214590, MPFR_RNDN);
        mpfr_sub(r6214592, r6214587, r6214591, MPFR_RNDN);
        ;
        mpfr_set_si(r6214594, mpfr_cmp(r6214576, r6214593) <= 0, MPFR_RNDN);
        mpfr_add(r6214595, r6214579, r6214581, MPFR_RNDN);
        mpfr_pow(r6214596, r6214595, r6214580, MPFR_RNDN);
        mpfr_pow(r6214597, r6214581, r6214580, MPFR_RNDN);
        mpfr_sub(r6214598, r6214596, r6214597, MPFR_RNDN);
        if (mpfr_get_si(r6214594, MPFR_RNDN)) { mpfr_set(r6214599, r6214598, MPFR_RNDN); } else { mpfr_set(r6214599, r6214592, MPFR_RNDN); };
        if (mpfr_get_si(r6214578, MPFR_RNDN)) { mpfr_set(r6214600, r6214592, MPFR_RNDN); } else { mpfr_set(r6214600, r6214599, MPFR_RNDN); };
        return mpfr_get_d(r6214600, MPFR_RNDN);
}

static mpfr_t r6214601, r6214602, r6214603, r6214604, r6214605, r6214606, r6214607, r6214608, r6214609, r6214610, r6214611, r6214612, r6214613, r6214614, r6214615, r6214616, r6214617, r6214618, r6214619, r6214620, r6214621, r6214622, r6214623, r6214624, r6214625;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r6214601);
        mpfr_init_set_str(r6214602, "-9.484577713911117", 10, MPFR_RNDN);
        mpfr_init(r6214603);
        mpfr_init_set_str(r6214604, "1", 10, MPFR_RNDN);
        mpfr_init(r6214605);
        mpfr_init(r6214606);
        mpfr_init(r6214607);
        mpfr_init_set_str(r6214608, "1/2", 10, MPFR_RNDN);
        mpfr_init(r6214609);
        mpfr_init(r6214610);
        mpfr_init(r6214611);
        mpfr_init(r6214612);
        mpfr_init(r6214613);
        mpfr_init(r6214614);
        mpfr_init(r6214615);
        mpfr_init(r6214616);
        mpfr_init(r6214617);
        mpfr_init_set_str(r6214618, "2.4602476366913392e+17", 10, MPFR_RNDN);
        mpfr_init(r6214619);
        mpfr_init(r6214620);
        mpfr_init(r6214621);
        mpfr_init(r6214622);
        mpfr_init(r6214623);
        mpfr_init(r6214624);
        mpfr_init(r6214625);
}

double f_dm(double x, double n) {
        mpfr_set_d(r6214601, n, MPFR_RNDN);
        ;
        mpfr_set_si(r6214603, mpfr_cmp(r6214601, r6214602) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r6214605, r6214604, r6214601, MPFR_RNDN);
        mpfr_set_d(r6214606, x, MPFR_RNDN);
        mpfr_div(r6214607, r6214605, r6214606, MPFR_RNDN);
        ;
        mpfr_div(r6214609, r6214608, r6214601, MPFR_RNDN);
        mpfr_mul(r6214610, r6214606, r6214606, MPFR_RNDN);
        mpfr_div(r6214611, r6214609, r6214610, MPFR_RNDN);
        mpfr_sub(r6214612, r6214607, r6214611, MPFR_RNDN);
        mpfr_log(r6214613, r6214606, MPFR_RNDN);
        mpfr_div(r6214614, r6214613, r6214606, MPFR_RNDN);
        mpfr_mul(r6214615, r6214601, r6214601, MPFR_RNDN);
        mpfr_div(r6214616, r6214614, r6214615, MPFR_RNDN);
        mpfr_sub(r6214617, r6214612, r6214616, MPFR_RNDN);
        ;
        mpfr_set_si(r6214619, mpfr_cmp(r6214601, r6214618) <= 0, MPFR_RNDN);
        mpfr_add(r6214620, r6214604, r6214606, MPFR_RNDN);
        mpfr_pow(r6214621, r6214620, r6214605, MPFR_RNDN);
        mpfr_pow(r6214622, r6214606, r6214605, MPFR_RNDN);
        mpfr_sub(r6214623, r6214621, r6214622, MPFR_RNDN);
        if (mpfr_get_si(r6214619, MPFR_RNDN)) { mpfr_set(r6214624, r6214623, MPFR_RNDN); } else { mpfr_set(r6214624, r6214617, MPFR_RNDN); };
        if (mpfr_get_si(r6214603, MPFR_RNDN)) { mpfr_set(r6214625, r6214617, MPFR_RNDN); } else { mpfr_set(r6214625, r6214624, MPFR_RNDN); };
        return mpfr_get_d(r6214625, MPFR_RNDN);
}

