#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 r25551 = x;
        float r25552 = 1;
        float r25553 = r25551 + r25552;
        float r25554 = n;
        float r25555 = r25552 / r25554;
        float r25556 = pow(r25553, r25555);
        float r25557 = pow(r25551, r25555);
        float r25558 = r25556 - r25557;
        return r25558;
}

double f_id(double x, double n) {
        double r25559 = x;
        double r25560 = 1;
        double r25561 = r25559 + r25560;
        double r25562 = n;
        double r25563 = r25560 / r25562;
        double r25564 = pow(r25561, r25563);
        double r25565 = pow(r25559, r25563);
        double r25566 = r25564 - r25565;
        return r25566;
}


double f_of(float x, float n) {
        float r25567 = x;
        float r25568 = 1.0033910930127292;
        bool r25569 = r25567 <= r25568;
        float r25570 = 1;
        float r25571 = r25567 + r25570;
        float r25572 = n;
        float r25573 = r25570 / r25572;
        float r25574 = pow(r25571, r25573);
        float r25575 = r25574 - r25570;
        float r25576 = 1/2;
        float r25577 = r25576 / r25572;
        float r25578 = log(r25567);
        float r25579 = r25577 * r25578;
        float r25580 = r25572 / r25578;
        float r25581 = r25579 / r25580;
        float r25582 = r25575 - r25581;
        float r25583 = r25578 / r25572;
        float r25584 = r25582 - r25583;
        float r25585 = 261320414792.23853;
        bool r25586 = r25567 <= r25585;
        float r25587 = exp(r25583);
        float r25588 = r25574 - r25587;
        float r25589 = 3;
        float r25590 = pow(r25588, r25589);
        float r25591 = cbrt(r25590);
        float r25592 = 3.5357319956524395e+75;
        bool r25593 = r25567 <= r25592;
        float r25594 = r25572 * r25567;
        float r25595 = r25572 * r25594;
        float r25596 = r25578 / r25595;
        float r25597 = r25573 / r25567;
        float r25598 = r25567 * r25567;
        float r25599 = r25577 / r25598;
        float r25600 = r25597 - r25599;
        float r25601 = r25596 + r25600;
        float r25602 = 2.2864678593371913e+108;
        bool r25603 = r25567 <= r25602;
        float r25604 = 5.924180328777098e+143;
        bool r25605 = r25567 <= r25604;
        float r25606 = 2.36932382819333e+166;
        bool r25607 = r25567 <= r25606;
        float r25608 = 2.0894740047193565e+210;
        bool r25609 = r25567 <= r25608;
        float r25610 = !r25609;
        bool r25611 = r25607 || r25610;
        float r25612 = r25570 / r25594;
        float r25613 = r25576 / r25567;
        float r25614 = r25613 / r25594;
        float r25615 = r25612 - r25614;
        float r25616 = r25572 * r25572;
        float r25617 = r25616 * r25567;
        float r25618 = r25578 / r25617;
        float r25619 = r25615 + r25618;
        float r25620 = r25611 ? r25591 : r25619;
        float r25621 = r25605 ? r25601 : r25620;
        float r25622 = r25603 ? r25591 : r25621;
        float r25623 = r25593 ? r25601 : r25622;
        float r25624 = r25586 ? r25591 : r25623;
        float r25625 = r25569 ? r25584 : r25624;
        return r25625;
}

double f_od(double x, double n) {
        double r25626 = x;
        double r25627 = 1.0033910930127292;
        bool r25628 = r25626 <= r25627;
        double r25629 = 1;
        double r25630 = r25626 + r25629;
        double r25631 = n;
        double r25632 = r25629 / r25631;
        double r25633 = pow(r25630, r25632);
        double r25634 = r25633 - r25629;
        double r25635 = 1/2;
        double r25636 = r25635 / r25631;
        double r25637 = log(r25626);
        double r25638 = r25636 * r25637;
        double r25639 = r25631 / r25637;
        double r25640 = r25638 / r25639;
        double r25641 = r25634 - r25640;
        double r25642 = r25637 / r25631;
        double r25643 = r25641 - r25642;
        double r25644 = 261320414792.23853;
        bool r25645 = r25626 <= r25644;
        double r25646 = exp(r25642);
        double r25647 = r25633 - r25646;
        double r25648 = 3;
        double r25649 = pow(r25647, r25648);
        double r25650 = cbrt(r25649);
        double r25651 = 3.5357319956524395e+75;
        bool r25652 = r25626 <= r25651;
        double r25653 = r25631 * r25626;
        double r25654 = r25631 * r25653;
        double r25655 = r25637 / r25654;
        double r25656 = r25632 / r25626;
        double r25657 = r25626 * r25626;
        double r25658 = r25636 / r25657;
        double r25659 = r25656 - r25658;
        double r25660 = r25655 + r25659;
        double r25661 = 2.2864678593371913e+108;
        bool r25662 = r25626 <= r25661;
        double r25663 = 5.924180328777098e+143;
        bool r25664 = r25626 <= r25663;
        double r25665 = 2.36932382819333e+166;
        bool r25666 = r25626 <= r25665;
        double r25667 = 2.0894740047193565e+210;
        bool r25668 = r25626 <= r25667;
        double r25669 = !r25668;
        bool r25670 = r25666 || r25669;
        double r25671 = r25629 / r25653;
        double r25672 = r25635 / r25626;
        double r25673 = r25672 / r25653;
        double r25674 = r25671 - r25673;
        double r25675 = r25631 * r25631;
        double r25676 = r25675 * r25626;
        double r25677 = r25637 / r25676;
        double r25678 = r25674 + r25677;
        double r25679 = r25670 ? r25650 : r25678;
        double r25680 = r25664 ? r25660 : r25679;
        double r25681 = r25662 ? r25650 : r25680;
        double r25682 = r25652 ? r25660 : r25681;
        double r25683 = r25645 ? r25650 : r25682;
        double r25684 = r25628 ? r25643 : r25683;
        return r25684;
}

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 r25685, r25686, r25687, r25688, r25689, r25690, r25691, r25692;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r25685);
        mpfr_init_set_str(r25686, "1", 10, MPFR_RNDN);
        mpfr_init(r25687);
        mpfr_init(r25688);
        mpfr_init(r25689);
        mpfr_init(r25690);
        mpfr_init(r25691);
        mpfr_init(r25692);
}

double f_im(double x, double n) {
        mpfr_set_d(r25685, x, MPFR_RNDN);
        ;
        mpfr_add(r25687, r25685, r25686, MPFR_RNDN);
        mpfr_set_d(r25688, n, MPFR_RNDN);
        mpfr_div(r25689, r25686, r25688, MPFR_RNDN);
        mpfr_pow(r25690, r25687, r25689, MPFR_RNDN);
        mpfr_pow(r25691, r25685, r25689, MPFR_RNDN);
        mpfr_sub(r25692, r25690, r25691, MPFR_RNDN);
        return mpfr_get_d(r25692, MPFR_RNDN);
}

static mpfr_t r25693, r25694, r25695, r25696, r25697, r25698, r25699, r25700, r25701, r25702, r25703, r25704, r25705, r25706, r25707, r25708, r25709, r25710, r25711, r25712, r25713, r25714, r25715, r25716, r25717, r25718, r25719, r25720, r25721, r25722, r25723, r25724, r25725, r25726, r25727, r25728, r25729, r25730, r25731, r25732, r25733, r25734, r25735, r25736, r25737, r25738, r25739, r25740, r25741, r25742, r25743, r25744, r25745, r25746, r25747, r25748, r25749, r25750, r25751;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r25693);
        mpfr_init_set_str(r25694, "1.0033910930127292", 10, MPFR_RNDN);
        mpfr_init(r25695);
        mpfr_init_set_str(r25696, "1", 10, MPFR_RNDN);
        mpfr_init(r25697);
        mpfr_init(r25698);
        mpfr_init(r25699);
        mpfr_init(r25700);
        mpfr_init(r25701);
        mpfr_init_set_str(r25702, "1/2", 10, MPFR_RNDN);
        mpfr_init(r25703);
        mpfr_init(r25704);
        mpfr_init(r25705);
        mpfr_init(r25706);
        mpfr_init(r25707);
        mpfr_init(r25708);
        mpfr_init(r25709);
        mpfr_init(r25710);
        mpfr_init_set_str(r25711, "261320414792.23853", 10, MPFR_RNDN);
        mpfr_init(r25712);
        mpfr_init(r25713);
        mpfr_init(r25714);
        mpfr_init_set_str(r25715, "3", 10, MPFR_RNDN);
        mpfr_init(r25716);
        mpfr_init(r25717);
        mpfr_init_set_str(r25718, "3.5357319956524395e+75", 10, MPFR_RNDN);
        mpfr_init(r25719);
        mpfr_init(r25720);
        mpfr_init(r25721);
        mpfr_init(r25722);
        mpfr_init(r25723);
        mpfr_init(r25724);
        mpfr_init(r25725);
        mpfr_init(r25726);
        mpfr_init(r25727);
        mpfr_init_set_str(r25728, "2.2864678593371913e+108", 10, MPFR_RNDN);
        mpfr_init(r25729);
        mpfr_init_set_str(r25730, "5.924180328777098e+143", 10, MPFR_RNDN);
        mpfr_init(r25731);
        mpfr_init_set_str(r25732, "2.36932382819333e+166", 10, MPFR_RNDN);
        mpfr_init(r25733);
        mpfr_init_set_str(r25734, "2.0894740047193565e+210", 10, MPFR_RNDN);
        mpfr_init(r25735);
        mpfr_init(r25736);
        mpfr_init(r25737);
        mpfr_init(r25738);
        mpfr_init(r25739);
        mpfr_init(r25740);
        mpfr_init(r25741);
        mpfr_init(r25742);
        mpfr_init(r25743);
        mpfr_init(r25744);
        mpfr_init(r25745);
        mpfr_init(r25746);
        mpfr_init(r25747);
        mpfr_init(r25748);
        mpfr_init(r25749);
        mpfr_init(r25750);
        mpfr_init(r25751);
}

double f_fm(double x, double n) {
        mpfr_set_d(r25693, x, MPFR_RNDN);
        ;
        mpfr_set_si(r25695, mpfr_cmp(r25693, r25694) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r25697, r25693, r25696, MPFR_RNDN);
        mpfr_set_d(r25698, n, MPFR_RNDN);
        mpfr_div(r25699, r25696, r25698, MPFR_RNDN);
        mpfr_pow(r25700, r25697, r25699, MPFR_RNDN);
        mpfr_sub(r25701, r25700, r25696, MPFR_RNDN);
        ;
        mpfr_div(r25703, r25702, r25698, MPFR_RNDN);
        mpfr_log(r25704, r25693, MPFR_RNDN);
        mpfr_mul(r25705, r25703, r25704, MPFR_RNDN);
        mpfr_div(r25706, r25698, r25704, MPFR_RNDN);
        mpfr_div(r25707, r25705, r25706, MPFR_RNDN);
        mpfr_sub(r25708, r25701, r25707, MPFR_RNDN);
        mpfr_div(r25709, r25704, r25698, MPFR_RNDN);
        mpfr_sub(r25710, r25708, r25709, MPFR_RNDN);
        ;
        mpfr_set_si(r25712, mpfr_cmp(r25693, r25711) <= 0, MPFR_RNDN);
        mpfr_exp(r25713, r25709, MPFR_RNDN);
        mpfr_sub(r25714, r25700, r25713, MPFR_RNDN);
        ;
        mpfr_pow(r25716, r25714, r25715, MPFR_RNDN);
        mpfr_cbrt(r25717, r25716, MPFR_RNDN);
        ;
        mpfr_set_si(r25719, mpfr_cmp(r25693, r25718) <= 0, MPFR_RNDN);
        mpfr_mul(r25720, r25698, r25693, MPFR_RNDN);
        mpfr_mul(r25721, r25698, r25720, MPFR_RNDN);
        mpfr_div(r25722, r25704, r25721, MPFR_RNDN);
        mpfr_div(r25723, r25699, r25693, MPFR_RNDN);
        mpfr_mul(r25724, r25693, r25693, MPFR_RNDN);
        mpfr_div(r25725, r25703, r25724, MPFR_RNDN);
        mpfr_sub(r25726, r25723, r25725, MPFR_RNDN);
        mpfr_add(r25727, r25722, r25726, MPFR_RNDN);
        ;
        mpfr_set_si(r25729, mpfr_cmp(r25693, r25728) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r25731, mpfr_cmp(r25693, r25730) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r25733, mpfr_cmp(r25693, r25732) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r25735, mpfr_cmp(r25693, r25734) <= 0, MPFR_RNDN);
        mpfr_set_si(r25736, !mpfr_get_si(r25735, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r25737, mpfr_get_si(r25733, MPFR_RNDN) || mpfr_get_si(r25736, MPFR_RNDN), MPFR_RNDN);
        mpfr_div(r25738, r25696, r25720, MPFR_RNDN);
        mpfr_div(r25739, r25702, r25693, MPFR_RNDN);
        mpfr_div(r25740, r25739, r25720, MPFR_RNDN);
        mpfr_sub(r25741, r25738, r25740, MPFR_RNDN);
        mpfr_mul(r25742, r25698, r25698, MPFR_RNDN);
        mpfr_mul(r25743, r25742, r25693, MPFR_RNDN);
        mpfr_div(r25744, r25704, r25743, MPFR_RNDN);
        mpfr_add(r25745, r25741, r25744, MPFR_RNDN);
        if (mpfr_get_si(r25737, MPFR_RNDN)) { mpfr_set(r25746, r25717, MPFR_RNDN); } else { mpfr_set(r25746, r25745, MPFR_RNDN); };
        if (mpfr_get_si(r25731, MPFR_RNDN)) { mpfr_set(r25747, r25727, MPFR_RNDN); } else { mpfr_set(r25747, r25746, MPFR_RNDN); };
        if (mpfr_get_si(r25729, MPFR_RNDN)) { mpfr_set(r25748, r25717, MPFR_RNDN); } else { mpfr_set(r25748, r25747, MPFR_RNDN); };
        if (mpfr_get_si(r25719, MPFR_RNDN)) { mpfr_set(r25749, r25727, MPFR_RNDN); } else { mpfr_set(r25749, r25748, MPFR_RNDN); };
        if (mpfr_get_si(r25712, MPFR_RNDN)) { mpfr_set(r25750, r25717, MPFR_RNDN); } else { mpfr_set(r25750, r25749, MPFR_RNDN); };
        if (mpfr_get_si(r25695, MPFR_RNDN)) { mpfr_set(r25751, r25710, MPFR_RNDN); } else { mpfr_set(r25751, r25750, MPFR_RNDN); };
        return mpfr_get_d(r25751, MPFR_RNDN);
}

static mpfr_t r25752, r25753, r25754, r25755, r25756, r25757, r25758, r25759, r25760, r25761, r25762, r25763, r25764, r25765, r25766, r25767, r25768, r25769, r25770, r25771, r25772, r25773, r25774, r25775, r25776, r25777, r25778, r25779, r25780, r25781, r25782, r25783, r25784, r25785, r25786, r25787, r25788, r25789, r25790, r25791, r25792, r25793, r25794, r25795, r25796, r25797, r25798, r25799, r25800, r25801, r25802, r25803, r25804, r25805, r25806, r25807, r25808, r25809, r25810;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r25752);
        mpfr_init_set_str(r25753, "1.0033910930127292", 10, MPFR_RNDN);
        mpfr_init(r25754);
        mpfr_init_set_str(r25755, "1", 10, MPFR_RNDN);
        mpfr_init(r25756);
        mpfr_init(r25757);
        mpfr_init(r25758);
        mpfr_init(r25759);
        mpfr_init(r25760);
        mpfr_init_set_str(r25761, "1/2", 10, MPFR_RNDN);
        mpfr_init(r25762);
        mpfr_init(r25763);
        mpfr_init(r25764);
        mpfr_init(r25765);
        mpfr_init(r25766);
        mpfr_init(r25767);
        mpfr_init(r25768);
        mpfr_init(r25769);
        mpfr_init_set_str(r25770, "261320414792.23853", 10, MPFR_RNDN);
        mpfr_init(r25771);
        mpfr_init(r25772);
        mpfr_init(r25773);
        mpfr_init_set_str(r25774, "3", 10, MPFR_RNDN);
        mpfr_init(r25775);
        mpfr_init(r25776);
        mpfr_init_set_str(r25777, "3.5357319956524395e+75", 10, MPFR_RNDN);
        mpfr_init(r25778);
        mpfr_init(r25779);
        mpfr_init(r25780);
        mpfr_init(r25781);
        mpfr_init(r25782);
        mpfr_init(r25783);
        mpfr_init(r25784);
        mpfr_init(r25785);
        mpfr_init(r25786);
        mpfr_init_set_str(r25787, "2.2864678593371913e+108", 10, MPFR_RNDN);
        mpfr_init(r25788);
        mpfr_init_set_str(r25789, "5.924180328777098e+143", 10, MPFR_RNDN);
        mpfr_init(r25790);
        mpfr_init_set_str(r25791, "2.36932382819333e+166", 10, MPFR_RNDN);
        mpfr_init(r25792);
        mpfr_init_set_str(r25793, "2.0894740047193565e+210", 10, MPFR_RNDN);
        mpfr_init(r25794);
        mpfr_init(r25795);
        mpfr_init(r25796);
        mpfr_init(r25797);
        mpfr_init(r25798);
        mpfr_init(r25799);
        mpfr_init(r25800);
        mpfr_init(r25801);
        mpfr_init(r25802);
        mpfr_init(r25803);
        mpfr_init(r25804);
        mpfr_init(r25805);
        mpfr_init(r25806);
        mpfr_init(r25807);
        mpfr_init(r25808);
        mpfr_init(r25809);
        mpfr_init(r25810);
}

double f_dm(double x, double n) {
        mpfr_set_d(r25752, x, MPFR_RNDN);
        ;
        mpfr_set_si(r25754, mpfr_cmp(r25752, r25753) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r25756, r25752, r25755, MPFR_RNDN);
        mpfr_set_d(r25757, n, MPFR_RNDN);
        mpfr_div(r25758, r25755, r25757, MPFR_RNDN);
        mpfr_pow(r25759, r25756, r25758, MPFR_RNDN);
        mpfr_sub(r25760, r25759, r25755, MPFR_RNDN);
        ;
        mpfr_div(r25762, r25761, r25757, MPFR_RNDN);
        mpfr_log(r25763, r25752, MPFR_RNDN);
        mpfr_mul(r25764, r25762, r25763, MPFR_RNDN);
        mpfr_div(r25765, r25757, r25763, MPFR_RNDN);
        mpfr_div(r25766, r25764, r25765, MPFR_RNDN);
        mpfr_sub(r25767, r25760, r25766, MPFR_RNDN);
        mpfr_div(r25768, r25763, r25757, MPFR_RNDN);
        mpfr_sub(r25769, r25767, r25768, MPFR_RNDN);
        ;
        mpfr_set_si(r25771, mpfr_cmp(r25752, r25770) <= 0, MPFR_RNDN);
        mpfr_exp(r25772, r25768, MPFR_RNDN);
        mpfr_sub(r25773, r25759, r25772, MPFR_RNDN);
        ;
        mpfr_pow(r25775, r25773, r25774, MPFR_RNDN);
        mpfr_cbrt(r25776, r25775, MPFR_RNDN);
        ;
        mpfr_set_si(r25778, mpfr_cmp(r25752, r25777) <= 0, MPFR_RNDN);
        mpfr_mul(r25779, r25757, r25752, MPFR_RNDN);
        mpfr_mul(r25780, r25757, r25779, MPFR_RNDN);
        mpfr_div(r25781, r25763, r25780, MPFR_RNDN);
        mpfr_div(r25782, r25758, r25752, MPFR_RNDN);
        mpfr_mul(r25783, r25752, r25752, MPFR_RNDN);
        mpfr_div(r25784, r25762, r25783, MPFR_RNDN);
        mpfr_sub(r25785, r25782, r25784, MPFR_RNDN);
        mpfr_add(r25786, r25781, r25785, MPFR_RNDN);
        ;
        mpfr_set_si(r25788, mpfr_cmp(r25752, r25787) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r25790, mpfr_cmp(r25752, r25789) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r25792, mpfr_cmp(r25752, r25791) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r25794, mpfr_cmp(r25752, r25793) <= 0, MPFR_RNDN);
        mpfr_set_si(r25795, !mpfr_get_si(r25794, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r25796, mpfr_get_si(r25792, MPFR_RNDN) || mpfr_get_si(r25795, MPFR_RNDN), MPFR_RNDN);
        mpfr_div(r25797, r25755, r25779, MPFR_RNDN);
        mpfr_div(r25798, r25761, r25752, MPFR_RNDN);
        mpfr_div(r25799, r25798, r25779, MPFR_RNDN);
        mpfr_sub(r25800, r25797, r25799, MPFR_RNDN);
        mpfr_mul(r25801, r25757, r25757, MPFR_RNDN);
        mpfr_mul(r25802, r25801, r25752, MPFR_RNDN);
        mpfr_div(r25803, r25763, r25802, MPFR_RNDN);
        mpfr_add(r25804, r25800, r25803, MPFR_RNDN);
        if (mpfr_get_si(r25796, MPFR_RNDN)) { mpfr_set(r25805, r25776, MPFR_RNDN); } else { mpfr_set(r25805, r25804, MPFR_RNDN); };
        if (mpfr_get_si(r25790, MPFR_RNDN)) { mpfr_set(r25806, r25786, MPFR_RNDN); } else { mpfr_set(r25806, r25805, MPFR_RNDN); };
        if (mpfr_get_si(r25788, MPFR_RNDN)) { mpfr_set(r25807, r25776, MPFR_RNDN); } else { mpfr_set(r25807, r25806, MPFR_RNDN); };
        if (mpfr_get_si(r25778, MPFR_RNDN)) { mpfr_set(r25808, r25786, MPFR_RNDN); } else { mpfr_set(r25808, r25807, MPFR_RNDN); };
        if (mpfr_get_si(r25771, MPFR_RNDN)) { mpfr_set(r25809, r25776, MPFR_RNDN); } else { mpfr_set(r25809, r25808, MPFR_RNDN); };
        if (mpfr_get_si(r25754, MPFR_RNDN)) { mpfr_set(r25810, r25769, MPFR_RNDN); } else { mpfr_set(r25810, r25809, MPFR_RNDN); };
        return mpfr_get_d(r25810, MPFR_RNDN);
}

