#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 r11870491 = x;
        float r11870492 = 1;
        float r11870493 = r11870491 + r11870492;
        float r11870494 = n;
        float r11870495 = r11870492 / r11870494;
        float r11870496 = pow(r11870493, r11870495);
        float r11870497 = pow(r11870491, r11870495);
        float r11870498 = r11870496 - r11870497;
        return r11870498;
}

double f_id(double x, double n) {
        double r11870499 = x;
        double r11870500 = 1;
        double r11870501 = r11870499 + r11870500;
        double r11870502 = n;
        double r11870503 = r11870500 / r11870502;
        double r11870504 = pow(r11870501, r11870503);
        double r11870505 = pow(r11870499, r11870503);
        double r11870506 = r11870504 - r11870505;
        return r11870506;
}


double f_of(float x, float n) {
        float r11870507 = 1;
        float r11870508 = n;
        float r11870509 = x;
        float r11870510 = r11870508 * r11870509;
        float r11870511 = r11870507 / r11870510;
        float r11870512 = r11870507 + r11870511;
        float r11870513 = log(r11870509);
        float r11870514 = r11870513 / r11870508;
        float r11870515 = r11870512 - r11870514;
        float r11870516 = r11870507 / r11870508;
        float r11870517 = pow(r11870509, r11870516);
        float r11870518 = r11870515 - r11870517;
        float r11870519 = 6.331975657358443e-09;
        bool r11870520 = r11870518 <= r11870519;
        float r11870521 = r11870507 / r11870509;
        float r11870522 = r11870521 / r11870508;
        float r11870523 = 1/2;
        float r11870524 = r11870523 / r11870508;
        float r11870525 = r11870509 * r11870509;
        float r11870526 = r11870524 / r11870525;
        float r11870527 = r11870522 - r11870526;
        float r11870528 = r11870509 * r11870508;
        float r11870529 = r11870513 / r11870528;
        float r11870530 = r11870529 / r11870508;
        float r11870531 = r11870527 - r11870530;
        float r11870532 = r11870507 + r11870509;
        float r11870533 = pow(r11870532, r11870516);
        float r11870534 = r11870533 - r11870517;
        float r11870535 = log(r11870534);
        float r11870536 = 3;
        float r11870537 = pow(r11870535, r11870536);
        float r11870538 = cbrt(r11870537);
        float r11870539 = exp(r11870538);
        float r11870540 = r11870520 ? r11870531 : r11870539;
        return r11870540;
}

double f_od(double x, double n) {
        double r11870541 = 1;
        double r11870542 = n;
        double r11870543 = x;
        double r11870544 = r11870542 * r11870543;
        double r11870545 = r11870541 / r11870544;
        double r11870546 = r11870541 + r11870545;
        double r11870547 = log(r11870543);
        double r11870548 = r11870547 / r11870542;
        double r11870549 = r11870546 - r11870548;
        double r11870550 = r11870541 / r11870542;
        double r11870551 = pow(r11870543, r11870550);
        double r11870552 = r11870549 - r11870551;
        double r11870553 = 6.331975657358443e-09;
        bool r11870554 = r11870552 <= r11870553;
        double r11870555 = r11870541 / r11870543;
        double r11870556 = r11870555 / r11870542;
        double r11870557 = 1/2;
        double r11870558 = r11870557 / r11870542;
        double r11870559 = r11870543 * r11870543;
        double r11870560 = r11870558 / r11870559;
        double r11870561 = r11870556 - r11870560;
        double r11870562 = r11870543 * r11870542;
        double r11870563 = r11870547 / r11870562;
        double r11870564 = r11870563 / r11870542;
        double r11870565 = r11870561 - r11870564;
        double r11870566 = r11870541 + r11870543;
        double r11870567 = pow(r11870566, r11870550);
        double r11870568 = r11870567 - r11870551;
        double r11870569 = log(r11870568);
        double r11870570 = 3;
        double r11870571 = pow(r11870569, r11870570);
        double r11870572 = cbrt(r11870571);
        double r11870573 = exp(r11870572);
        double r11870574 = r11870554 ? r11870565 : r11870573;
        return r11870574;
}

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 r11870575, r11870576, r11870577, r11870578, r11870579, r11870580, r11870581, r11870582;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r11870575);
        mpfr_init_set_str(r11870576, "1", 10, MPFR_RNDN);
        mpfr_init(r11870577);
        mpfr_init(r11870578);
        mpfr_init(r11870579);
        mpfr_init(r11870580);
        mpfr_init(r11870581);
        mpfr_init(r11870582);
}

double f_im(double x, double n) {
        mpfr_set_d(r11870575, x, MPFR_RNDN);
        ;
        mpfr_add(r11870577, r11870575, r11870576, MPFR_RNDN);
        mpfr_set_d(r11870578, n, MPFR_RNDN);
        mpfr_div(r11870579, r11870576, r11870578, MPFR_RNDN);
        mpfr_pow(r11870580, r11870577, r11870579, MPFR_RNDN);
        mpfr_pow(r11870581, r11870575, r11870579, MPFR_RNDN);
        mpfr_sub(r11870582, r11870580, r11870581, MPFR_RNDN);
        return mpfr_get_d(r11870582, MPFR_RNDN);
}

static mpfr_t r11870583, r11870584, r11870585, r11870586, r11870587, r11870588, r11870589, r11870590, r11870591, r11870592, r11870593, r11870594, r11870595, r11870596, r11870597, r11870598, r11870599, r11870600, r11870601, r11870602, r11870603, r11870604, r11870605, r11870606, r11870607, r11870608, r11870609, r11870610, r11870611, r11870612, r11870613, r11870614, r11870615, r11870616;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11870583, "1", 10, MPFR_RNDN);
        mpfr_init(r11870584);
        mpfr_init(r11870585);
        mpfr_init(r11870586);
        mpfr_init(r11870587);
        mpfr_init(r11870588);
        mpfr_init(r11870589);
        mpfr_init(r11870590);
        mpfr_init(r11870591);
        mpfr_init(r11870592);
        mpfr_init(r11870593);
        mpfr_init(r11870594);
        mpfr_init_set_str(r11870595, "6.331975657358443e-09", 10, MPFR_RNDN);
        mpfr_init(r11870596);
        mpfr_init(r11870597);
        mpfr_init(r11870598);
        mpfr_init_set_str(r11870599, "1/2", 10, MPFR_RNDN);
        mpfr_init(r11870600);
        mpfr_init(r11870601);
        mpfr_init(r11870602);
        mpfr_init(r11870603);
        mpfr_init(r11870604);
        mpfr_init(r11870605);
        mpfr_init(r11870606);
        mpfr_init(r11870607);
        mpfr_init(r11870608);
        mpfr_init(r11870609);
        mpfr_init(r11870610);
        mpfr_init(r11870611);
        mpfr_init_set_str(r11870612, "3", 10, MPFR_RNDN);
        mpfr_init(r11870613);
        mpfr_init(r11870614);
        mpfr_init(r11870615);
        mpfr_init(r11870616);
}

double f_fm(double x, double n) {
        ;
        mpfr_set_d(r11870584, n, MPFR_RNDN);
        mpfr_set_d(r11870585, x, MPFR_RNDN);
        mpfr_mul(r11870586, r11870584, r11870585, MPFR_RNDN);
        mpfr_div(r11870587, r11870583, r11870586, MPFR_RNDN);
        mpfr_add(r11870588, r11870583, r11870587, MPFR_RNDN);
        mpfr_log(r11870589, r11870585, MPFR_RNDN);
        mpfr_div(r11870590, r11870589, r11870584, MPFR_RNDN);
        mpfr_sub(r11870591, r11870588, r11870590, MPFR_RNDN);
        mpfr_div(r11870592, r11870583, r11870584, MPFR_RNDN);
        mpfr_pow(r11870593, r11870585, r11870592, MPFR_RNDN);
        mpfr_sub(r11870594, r11870591, r11870593, MPFR_RNDN);
        ;
        mpfr_set_si(r11870596, mpfr_cmp(r11870594, r11870595) <= 0, MPFR_RNDN);
        mpfr_div(r11870597, r11870583, r11870585, MPFR_RNDN);
        mpfr_div(r11870598, r11870597, r11870584, MPFR_RNDN);
        ;
        mpfr_div(r11870600, r11870599, r11870584, MPFR_RNDN);
        mpfr_mul(r11870601, r11870585, r11870585, MPFR_RNDN);
        mpfr_div(r11870602, r11870600, r11870601, MPFR_RNDN);
        mpfr_sub(r11870603, r11870598, r11870602, MPFR_RNDN);
        mpfr_mul(r11870604, r11870585, r11870584, MPFR_RNDN);
        mpfr_div(r11870605, r11870589, r11870604, MPFR_RNDN);
        mpfr_div(r11870606, r11870605, r11870584, MPFR_RNDN);
        mpfr_sub(r11870607, r11870603, r11870606, MPFR_RNDN);
        mpfr_add(r11870608, r11870583, r11870585, MPFR_RNDN);
        mpfr_pow(r11870609, r11870608, r11870592, MPFR_RNDN);
        mpfr_sub(r11870610, r11870609, r11870593, MPFR_RNDN);
        mpfr_log(r11870611, r11870610, MPFR_RNDN);
        ;
        mpfr_pow(r11870613, r11870611, r11870612, MPFR_RNDN);
        mpfr_cbrt(r11870614, r11870613, MPFR_RNDN);
        mpfr_exp(r11870615, r11870614, MPFR_RNDN);
        if (mpfr_get_si(r11870596, MPFR_RNDN)) { mpfr_set(r11870616, r11870607, MPFR_RNDN); } else { mpfr_set(r11870616, r11870615, MPFR_RNDN); };
        return mpfr_get_d(r11870616, MPFR_RNDN);
}

static mpfr_t r11870617, r11870618, r11870619, r11870620, r11870621, r11870622, r11870623, r11870624, r11870625, r11870626, r11870627, r11870628, r11870629, r11870630, r11870631, r11870632, r11870633, r11870634, r11870635, r11870636, r11870637, r11870638, r11870639, r11870640, r11870641, r11870642, r11870643, r11870644, r11870645, r11870646, r11870647, r11870648, r11870649, r11870650;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11870617, "1", 10, MPFR_RNDN);
        mpfr_init(r11870618);
        mpfr_init(r11870619);
        mpfr_init(r11870620);
        mpfr_init(r11870621);
        mpfr_init(r11870622);
        mpfr_init(r11870623);
        mpfr_init(r11870624);
        mpfr_init(r11870625);
        mpfr_init(r11870626);
        mpfr_init(r11870627);
        mpfr_init(r11870628);
        mpfr_init_set_str(r11870629, "6.331975657358443e-09", 10, MPFR_RNDN);
        mpfr_init(r11870630);
        mpfr_init(r11870631);
        mpfr_init(r11870632);
        mpfr_init_set_str(r11870633, "1/2", 10, MPFR_RNDN);
        mpfr_init(r11870634);
        mpfr_init(r11870635);
        mpfr_init(r11870636);
        mpfr_init(r11870637);
        mpfr_init(r11870638);
        mpfr_init(r11870639);
        mpfr_init(r11870640);
        mpfr_init(r11870641);
        mpfr_init(r11870642);
        mpfr_init(r11870643);
        mpfr_init(r11870644);
        mpfr_init(r11870645);
        mpfr_init_set_str(r11870646, "3", 10, MPFR_RNDN);
        mpfr_init(r11870647);
        mpfr_init(r11870648);
        mpfr_init(r11870649);
        mpfr_init(r11870650);
}

double f_dm(double x, double n) {
        ;
        mpfr_set_d(r11870618, n, MPFR_RNDN);
        mpfr_set_d(r11870619, x, MPFR_RNDN);
        mpfr_mul(r11870620, r11870618, r11870619, MPFR_RNDN);
        mpfr_div(r11870621, r11870617, r11870620, MPFR_RNDN);
        mpfr_add(r11870622, r11870617, r11870621, MPFR_RNDN);
        mpfr_log(r11870623, r11870619, MPFR_RNDN);
        mpfr_div(r11870624, r11870623, r11870618, MPFR_RNDN);
        mpfr_sub(r11870625, r11870622, r11870624, MPFR_RNDN);
        mpfr_div(r11870626, r11870617, r11870618, MPFR_RNDN);
        mpfr_pow(r11870627, r11870619, r11870626, MPFR_RNDN);
        mpfr_sub(r11870628, r11870625, r11870627, MPFR_RNDN);
        ;
        mpfr_set_si(r11870630, mpfr_cmp(r11870628, r11870629) <= 0, MPFR_RNDN);
        mpfr_div(r11870631, r11870617, r11870619, MPFR_RNDN);
        mpfr_div(r11870632, r11870631, r11870618, MPFR_RNDN);
        ;
        mpfr_div(r11870634, r11870633, r11870618, MPFR_RNDN);
        mpfr_mul(r11870635, r11870619, r11870619, MPFR_RNDN);
        mpfr_div(r11870636, r11870634, r11870635, MPFR_RNDN);
        mpfr_sub(r11870637, r11870632, r11870636, MPFR_RNDN);
        mpfr_mul(r11870638, r11870619, r11870618, MPFR_RNDN);
        mpfr_div(r11870639, r11870623, r11870638, MPFR_RNDN);
        mpfr_div(r11870640, r11870639, r11870618, MPFR_RNDN);
        mpfr_sub(r11870641, r11870637, r11870640, MPFR_RNDN);
        mpfr_add(r11870642, r11870617, r11870619, MPFR_RNDN);
        mpfr_pow(r11870643, r11870642, r11870626, MPFR_RNDN);
        mpfr_sub(r11870644, r11870643, r11870627, MPFR_RNDN);
        mpfr_log(r11870645, r11870644, MPFR_RNDN);
        ;
        mpfr_pow(r11870647, r11870645, r11870646, MPFR_RNDN);
        mpfr_cbrt(r11870648, r11870647, MPFR_RNDN);
        mpfr_exp(r11870649, r11870648, MPFR_RNDN);
        if (mpfr_get_si(r11870630, MPFR_RNDN)) { mpfr_set(r11870650, r11870641, MPFR_RNDN); } else { mpfr_set(r11870650, r11870649, MPFR_RNDN); };
        return mpfr_get_d(r11870650, MPFR_RNDN);
}

