#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 r25755 = x;
        float r25756 = 1;
        float r25757 = r25755 + r25756;
        float r25758 = n;
        float r25759 = r25756 / r25758;
        float r25760 = pow(r25757, r25759);
        float r25761 = pow(r25755, r25759);
        float r25762 = r25760 - r25761;
        return r25762;
}

double f_id(double x, double n) {
        double r25763 = x;
        double r25764 = 1;
        double r25765 = r25763 + r25764;
        double r25766 = n;
        double r25767 = r25764 / r25766;
        double r25768 = pow(r25765, r25767);
        double r25769 = pow(r25763, r25767);
        double r25770 = r25768 - r25769;
        return r25770;
}


double f_of(float x, float n) {
        float r25771 = x;
        float r25772 = 0.9959105341518036;
        bool r25773 = r25771 <= r25772;
        float r25774 = 1;
        float r25775 = r25774 + r25771;
        float r25776 = n;
        float r25777 = r25774 / r25776;
        float r25778 = pow(r25775, r25777);
        float r25779 = r25778 - r25774;
        float r25780 = 1/2;
        float r25781 = r25776 * r25776;
        float r25782 = r25780 / r25781;
        float r25783 = log(r25771);
        float r25784 = r25783 * r25783;
        float r25785 = r25783 / r25776;
        float r25786 = fma(r25782, r25784, r25785);
        float r25787 = r25779 - r25786;
        float r25788 = 1.461949344627711e+137;
        bool r25789 = r25771 <= r25788;
        float r25790 = 2/3;
        float r25791 = r25790 / r25776;
        float r25792 = pow(r25771, r25791);
        float r25793 = -r25792;
        float r25794 = pow(r25771, r25777);
        float r25795 = cbrt(r25794);
        float r25796 = fma(r25793, r25795, r25778);
        float r25797 = 1.4268505780422436e+221;
        bool r25798 = r25771 <= r25797;
        float r25799 = r25783 / r25781;
        float r25800 = r25799 / r25771;
        float r25801 = r25780 / r25776;
        float r25802 = r25771 * r25771;
        float r25803 = r25801 / r25802;
        float r25804 = r25771 * r25776;
        float r25805 = r25774 / r25804;
        float r25806 = r25803 - r25805;
        float r25807 = r25800 - r25806;
        float r25808 = r25771 + r25774;
        float r25809 = pow(r25808, r25777);
        float r25810 = exp(r25794);
        float r25811 = log(r25810);
        float r25812 = r25809 - r25811;
        float r25813 = r25798 ? r25807 : r25812;
        float r25814 = r25789 ? r25796 : r25813;
        float r25815 = r25773 ? r25787 : r25814;
        return r25815;
}

double f_od(double x, double n) {
        double r25816 = x;
        double r25817 = 0.9959105341518036;
        bool r25818 = r25816 <= r25817;
        double r25819 = 1;
        double r25820 = r25819 + r25816;
        double r25821 = n;
        double r25822 = r25819 / r25821;
        double r25823 = pow(r25820, r25822);
        double r25824 = r25823 - r25819;
        double r25825 = 1/2;
        double r25826 = r25821 * r25821;
        double r25827 = r25825 / r25826;
        double r25828 = log(r25816);
        double r25829 = r25828 * r25828;
        double r25830 = r25828 / r25821;
        double r25831 = fma(r25827, r25829, r25830);
        double r25832 = r25824 - r25831;
        double r25833 = 1.461949344627711e+137;
        bool r25834 = r25816 <= r25833;
        double r25835 = 2/3;
        double r25836 = r25835 / r25821;
        double r25837 = pow(r25816, r25836);
        double r25838 = -r25837;
        double r25839 = pow(r25816, r25822);
        double r25840 = cbrt(r25839);
        double r25841 = fma(r25838, r25840, r25823);
        double r25842 = 1.4268505780422436e+221;
        bool r25843 = r25816 <= r25842;
        double r25844 = r25828 / r25826;
        double r25845 = r25844 / r25816;
        double r25846 = r25825 / r25821;
        double r25847 = r25816 * r25816;
        double r25848 = r25846 / r25847;
        double r25849 = r25816 * r25821;
        double r25850 = r25819 / r25849;
        double r25851 = r25848 - r25850;
        double r25852 = r25845 - r25851;
        double r25853 = r25816 + r25819;
        double r25854 = pow(r25853, r25822);
        double r25855 = exp(r25839);
        double r25856 = log(r25855);
        double r25857 = r25854 - r25856;
        double r25858 = r25843 ? r25852 : r25857;
        double r25859 = r25834 ? r25841 : r25858;
        double r25860 = r25818 ? r25832 : r25859;
        return r25860;
}

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 r25861, r25862, r25863, r25864, r25865, r25866, r25867, r25868;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r25861);
        mpfr_init_set_str(r25862, "1", 10, MPFR_RNDN);
        mpfr_init(r25863);
        mpfr_init(r25864);
        mpfr_init(r25865);
        mpfr_init(r25866);
        mpfr_init(r25867);
        mpfr_init(r25868);
}

double f_im(double x, double n) {
        mpfr_set_d(r25861, x, MPFR_RNDN);
        ;
        mpfr_add(r25863, r25861, r25862, MPFR_RNDN);
        mpfr_set_d(r25864, n, MPFR_RNDN);
        mpfr_div(r25865, r25862, r25864, MPFR_RNDN);
        mpfr_pow(r25866, r25863, r25865, MPFR_RNDN);
        mpfr_pow(r25867, r25861, r25865, MPFR_RNDN);
        mpfr_sub(r25868, r25866, r25867, MPFR_RNDN);
        return mpfr_get_d(r25868, MPFR_RNDN);
}

static mpfr_t r25869, r25870, r25871, r25872, r25873, r25874, r25875, r25876, r25877, r25878, r25879, r25880, r25881, r25882, r25883, r25884, r25885, r25886, r25887, r25888, r25889, r25890, r25891, r25892, r25893, r25894, r25895, r25896, r25897, r25898, r25899, r25900, r25901, r25902, r25903, r25904, r25905, r25906, r25907, r25908, r25909, r25910, r25911, r25912, r25913;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r25869);
        mpfr_init_set_str(r25870, "0.9959105341518036", 10, MPFR_RNDN);
        mpfr_init(r25871);
        mpfr_init_set_str(r25872, "1", 10, MPFR_RNDN);
        mpfr_init(r25873);
        mpfr_init(r25874);
        mpfr_init(r25875);
        mpfr_init(r25876);
        mpfr_init(r25877);
        mpfr_init_set_str(r25878, "1/2", 10, MPFR_RNDN);
        mpfr_init(r25879);
        mpfr_init(r25880);
        mpfr_init(r25881);
        mpfr_init(r25882);
        mpfr_init(r25883);
        mpfr_init(r25884);
        mpfr_init(r25885);
        mpfr_init_set_str(r25886, "1.461949344627711e+137", 10, MPFR_RNDN);
        mpfr_init(r25887);
        mpfr_init_set_str(r25888, "2/3", 10, MPFR_RNDN);
        mpfr_init(r25889);
        mpfr_init(r25890);
        mpfr_init(r25891);
        mpfr_init(r25892);
        mpfr_init(r25893);
        mpfr_init(r25894);
        mpfr_init_set_str(r25895, "1.4268505780422436e+221", 10, MPFR_RNDN);
        mpfr_init(r25896);
        mpfr_init(r25897);
        mpfr_init(r25898);
        mpfr_init(r25899);
        mpfr_init(r25900);
        mpfr_init(r25901);
        mpfr_init(r25902);
        mpfr_init(r25903);
        mpfr_init(r25904);
        mpfr_init(r25905);
        mpfr_init(r25906);
        mpfr_init(r25907);
        mpfr_init(r25908);
        mpfr_init(r25909);
        mpfr_init(r25910);
        mpfr_init(r25911);
        mpfr_init(r25912);
        mpfr_init(r25913);
}

double f_fm(double x, double n) {
        mpfr_set_d(r25869, x, MPFR_RNDN);
        ;
        mpfr_set_si(r25871, mpfr_cmp(r25869, r25870) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r25873, r25872, r25869, MPFR_RNDN);
        mpfr_set_d(r25874, n, MPFR_RNDN);
        mpfr_div(r25875, r25872, r25874, MPFR_RNDN);
        mpfr_pow(r25876, r25873, r25875, MPFR_RNDN);
        mpfr_sub(r25877, r25876, r25872, MPFR_RNDN);
        ;
        mpfr_mul(r25879, r25874, r25874, MPFR_RNDN);
        mpfr_div(r25880, r25878, r25879, MPFR_RNDN);
        mpfr_log(r25881, r25869, MPFR_RNDN);
        mpfr_mul(r25882, r25881, r25881, MPFR_RNDN);
        mpfr_div(r25883, r25881, r25874, MPFR_RNDN);
        mpfr_fma(r25884, r25880, r25882, r25883, MPFR_RNDN);
        mpfr_sub(r25885, r25877, r25884, MPFR_RNDN);
        ;
        mpfr_set_si(r25887, mpfr_cmp(r25869, r25886) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r25889, r25888, r25874, MPFR_RNDN);
        mpfr_pow(r25890, r25869, r25889, MPFR_RNDN);
        mpfr_neg(r25891, r25890, MPFR_RNDN);
        mpfr_pow(r25892, r25869, r25875, MPFR_RNDN);
        mpfr_cbrt(r25893, r25892, MPFR_RNDN);
        mpfr_fma(r25894, r25891, r25893, r25876, MPFR_RNDN);
        ;
        mpfr_set_si(r25896, mpfr_cmp(r25869, r25895) <= 0, MPFR_RNDN);
        mpfr_div(r25897, r25881, r25879, MPFR_RNDN);
        mpfr_div(r25898, r25897, r25869, MPFR_RNDN);
        mpfr_div(r25899, r25878, r25874, MPFR_RNDN);
        mpfr_mul(r25900, r25869, r25869, MPFR_RNDN);
        mpfr_div(r25901, r25899, r25900, MPFR_RNDN);
        mpfr_mul(r25902, r25869, r25874, MPFR_RNDN);
        mpfr_div(r25903, r25872, r25902, MPFR_RNDN);
        mpfr_sub(r25904, r25901, r25903, MPFR_RNDN);
        mpfr_sub(r25905, r25898, r25904, MPFR_RNDN);
        mpfr_add(r25906, r25869, r25872, MPFR_RNDN);
        mpfr_pow(r25907, r25906, r25875, MPFR_RNDN);
        mpfr_exp(r25908, r25892, MPFR_RNDN);
        mpfr_log(r25909, r25908, MPFR_RNDN);
        mpfr_sub(r25910, r25907, r25909, MPFR_RNDN);
        if (mpfr_get_si(r25896, MPFR_RNDN)) { mpfr_set(r25911, r25905, MPFR_RNDN); } else { mpfr_set(r25911, r25910, MPFR_RNDN); };
        if (mpfr_get_si(r25887, MPFR_RNDN)) { mpfr_set(r25912, r25894, MPFR_RNDN); } else { mpfr_set(r25912, r25911, MPFR_RNDN); };
        if (mpfr_get_si(r25871, MPFR_RNDN)) { mpfr_set(r25913, r25885, MPFR_RNDN); } else { mpfr_set(r25913, r25912, MPFR_RNDN); };
        return mpfr_get_d(r25913, MPFR_RNDN);
}

static mpfr_t r25914, r25915, r25916, r25917, r25918, r25919, r25920, r25921, r25922, r25923, r25924, r25925, r25926, r25927, r25928, r25929, r25930, r25931, r25932, r25933, r25934, r25935, r25936, r25937, r25938, r25939, r25940, r25941, r25942, r25943, r25944, r25945, r25946, r25947, r25948, r25949, r25950, r25951, r25952, r25953, r25954, r25955, r25956, r25957, r25958;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r25914);
        mpfr_init_set_str(r25915, "0.9959105341518036", 10, MPFR_RNDN);
        mpfr_init(r25916);
        mpfr_init_set_str(r25917, "1", 10, MPFR_RNDN);
        mpfr_init(r25918);
        mpfr_init(r25919);
        mpfr_init(r25920);
        mpfr_init(r25921);
        mpfr_init(r25922);
        mpfr_init_set_str(r25923, "1/2", 10, MPFR_RNDN);
        mpfr_init(r25924);
        mpfr_init(r25925);
        mpfr_init(r25926);
        mpfr_init(r25927);
        mpfr_init(r25928);
        mpfr_init(r25929);
        mpfr_init(r25930);
        mpfr_init_set_str(r25931, "1.461949344627711e+137", 10, MPFR_RNDN);
        mpfr_init(r25932);
        mpfr_init_set_str(r25933, "2/3", 10, MPFR_RNDN);
        mpfr_init(r25934);
        mpfr_init(r25935);
        mpfr_init(r25936);
        mpfr_init(r25937);
        mpfr_init(r25938);
        mpfr_init(r25939);
        mpfr_init_set_str(r25940, "1.4268505780422436e+221", 10, MPFR_RNDN);
        mpfr_init(r25941);
        mpfr_init(r25942);
        mpfr_init(r25943);
        mpfr_init(r25944);
        mpfr_init(r25945);
        mpfr_init(r25946);
        mpfr_init(r25947);
        mpfr_init(r25948);
        mpfr_init(r25949);
        mpfr_init(r25950);
        mpfr_init(r25951);
        mpfr_init(r25952);
        mpfr_init(r25953);
        mpfr_init(r25954);
        mpfr_init(r25955);
        mpfr_init(r25956);
        mpfr_init(r25957);
        mpfr_init(r25958);
}

double f_dm(double x, double n) {
        mpfr_set_d(r25914, x, MPFR_RNDN);
        ;
        mpfr_set_si(r25916, mpfr_cmp(r25914, r25915) <= 0, MPFR_RNDN);
        ;
        mpfr_add(r25918, r25917, r25914, MPFR_RNDN);
        mpfr_set_d(r25919, n, MPFR_RNDN);
        mpfr_div(r25920, r25917, r25919, MPFR_RNDN);
        mpfr_pow(r25921, r25918, r25920, MPFR_RNDN);
        mpfr_sub(r25922, r25921, r25917, MPFR_RNDN);
        ;
        mpfr_mul(r25924, r25919, r25919, MPFR_RNDN);
        mpfr_div(r25925, r25923, r25924, MPFR_RNDN);
        mpfr_log(r25926, r25914, MPFR_RNDN);
        mpfr_mul(r25927, r25926, r25926, MPFR_RNDN);
        mpfr_div(r25928, r25926, r25919, MPFR_RNDN);
        mpfr_fma(r25929, r25925, r25927, r25928, MPFR_RNDN);
        mpfr_sub(r25930, r25922, r25929, MPFR_RNDN);
        ;
        mpfr_set_si(r25932, mpfr_cmp(r25914, r25931) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r25934, r25933, r25919, MPFR_RNDN);
        mpfr_pow(r25935, r25914, r25934, MPFR_RNDN);
        mpfr_neg(r25936, r25935, MPFR_RNDN);
        mpfr_pow(r25937, r25914, r25920, MPFR_RNDN);
        mpfr_cbrt(r25938, r25937, MPFR_RNDN);
        mpfr_fma(r25939, r25936, r25938, r25921, MPFR_RNDN);
        ;
        mpfr_set_si(r25941, mpfr_cmp(r25914, r25940) <= 0, MPFR_RNDN);
        mpfr_div(r25942, r25926, r25924, MPFR_RNDN);
        mpfr_div(r25943, r25942, r25914, MPFR_RNDN);
        mpfr_div(r25944, r25923, r25919, MPFR_RNDN);
        mpfr_mul(r25945, r25914, r25914, MPFR_RNDN);
        mpfr_div(r25946, r25944, r25945, MPFR_RNDN);
        mpfr_mul(r25947, r25914, r25919, MPFR_RNDN);
        mpfr_div(r25948, r25917, r25947, MPFR_RNDN);
        mpfr_sub(r25949, r25946, r25948, MPFR_RNDN);
        mpfr_sub(r25950, r25943, r25949, MPFR_RNDN);
        mpfr_add(r25951, r25914, r25917, MPFR_RNDN);
        mpfr_pow(r25952, r25951, r25920, MPFR_RNDN);
        mpfr_exp(r25953, r25937, MPFR_RNDN);
        mpfr_log(r25954, r25953, MPFR_RNDN);
        mpfr_sub(r25955, r25952, r25954, MPFR_RNDN);
        if (mpfr_get_si(r25941, MPFR_RNDN)) { mpfr_set(r25956, r25950, MPFR_RNDN); } else { mpfr_set(r25956, r25955, MPFR_RNDN); };
        if (mpfr_get_si(r25932, MPFR_RNDN)) { mpfr_set(r25957, r25939, MPFR_RNDN); } else { mpfr_set(r25957, r25956, MPFR_RNDN); };
        if (mpfr_get_si(r25916, MPFR_RNDN)) { mpfr_set(r25958, r25930, MPFR_RNDN); } else { mpfr_set(r25958, r25957, MPFR_RNDN); };
        return mpfr_get_d(r25958, MPFR_RNDN);
}

