#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 r4415792 = x;
        float r4415793 = 1;
        float r4415794 = r4415792 + r4415793;
        float r4415795 = n;
        float r4415796 = r4415793 / r4415795;
        float r4415797 = pow(r4415794, r4415796);
        float r4415798 = pow(r4415792, r4415796);
        float r4415799 = r4415797 - r4415798;
        return r4415799;
}

double f_id(double x, double n) {
        double r4415800 = x;
        double r4415801 = 1;
        double r4415802 = r4415800 + r4415801;
        double r4415803 = n;
        double r4415804 = r4415801 / r4415803;
        double r4415805 = pow(r4415802, r4415804);
        double r4415806 = pow(r4415800, r4415804);
        double r4415807 = r4415805 - r4415806;
        return r4415807;
}


double f_of(float x, float n) {
        float r4415808 = n;
        float r4415809 = -12826969090.218382;
        bool r4415810 = r4415808 <= r4415809;
        float r4415811 = 1;
        float r4415812 = x;
        float r4415813 = r4415812 * r4415808;
        float r4415814 = r4415811 / r4415813;
        float r4415815 = 1/2;
        float r4415816 = r4415815 / r4415812;
        float r4415817 = r4415816 / r4415813;
        float r4415818 = r4415814 - r4415817;
        float r4415819 = log(r4415812);
        float r4415820 = r4415819 / r4415808;
        float r4415821 = r4415820 / r4415813;
        float r4415822 = r4415818 - r4415821;
        float r4415823 = 1098791800637524.1;
        bool r4415824 = r4415808 <= r4415823;
        float r4415825 = r4415811 + r4415812;
        float r4415826 = r4415811 / r4415808;
        float r4415827 = pow(r4415825, r4415826);
        float r4415828 = pow(r4415812, r4415826);
        float r4415829 = r4415827 - r4415828;
        float r4415830 = exp(r4415829);
        float r4415831 = cbrt(r4415830);
        float r4415832 = r4415831 * r4415831;
        float r4415833 = log(r4415832);
        float r4415834 = sqrt(r4415830);
        float r4415835 = cbrt(r4415834);
        float r4415836 = log(r4415835);
        float r4415837 = r4415836 + r4415836;
        float r4415838 = r4415833 + r4415837;
        float r4415839 = r4415811 / r4415812;
        float r4415840 = r4415839 / r4415808;
        float r4415841 = r4415815 / r4415808;
        float r4415842 = r4415812 * r4415812;
        float r4415843 = r4415841 / r4415842;
        float r4415844 = r4415840 - r4415843;
        float r4415845 = r4415819 / r4415813;
        float r4415846 = r4415845 / r4415808;
        float r4415847 = r4415844 - r4415846;
        float r4415848 = r4415824 ? r4415838 : r4415847;
        float r4415849 = r4415810 ? r4415822 : r4415848;
        return r4415849;
}

double f_od(double x, double n) {
        double r4415850 = n;
        double r4415851 = -12826969090.218382;
        bool r4415852 = r4415850 <= r4415851;
        double r4415853 = 1;
        double r4415854 = x;
        double r4415855 = r4415854 * r4415850;
        double r4415856 = r4415853 / r4415855;
        double r4415857 = 1/2;
        double r4415858 = r4415857 / r4415854;
        double r4415859 = r4415858 / r4415855;
        double r4415860 = r4415856 - r4415859;
        double r4415861 = log(r4415854);
        double r4415862 = r4415861 / r4415850;
        double r4415863 = r4415862 / r4415855;
        double r4415864 = r4415860 - r4415863;
        double r4415865 = 1098791800637524.1;
        bool r4415866 = r4415850 <= r4415865;
        double r4415867 = r4415853 + r4415854;
        double r4415868 = r4415853 / r4415850;
        double r4415869 = pow(r4415867, r4415868);
        double r4415870 = pow(r4415854, r4415868);
        double r4415871 = r4415869 - r4415870;
        double r4415872 = exp(r4415871);
        double r4415873 = cbrt(r4415872);
        double r4415874 = r4415873 * r4415873;
        double r4415875 = log(r4415874);
        double r4415876 = sqrt(r4415872);
        double r4415877 = cbrt(r4415876);
        double r4415878 = log(r4415877);
        double r4415879 = r4415878 + r4415878;
        double r4415880 = r4415875 + r4415879;
        double r4415881 = r4415853 / r4415854;
        double r4415882 = r4415881 / r4415850;
        double r4415883 = r4415857 / r4415850;
        double r4415884 = r4415854 * r4415854;
        double r4415885 = r4415883 / r4415884;
        double r4415886 = r4415882 - r4415885;
        double r4415887 = r4415861 / r4415855;
        double r4415888 = r4415887 / r4415850;
        double r4415889 = r4415886 - r4415888;
        double r4415890 = r4415866 ? r4415880 : r4415889;
        double r4415891 = r4415852 ? r4415864 : r4415890;
        return r4415891;
}

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 r4415892, r4415893, r4415894, r4415895, r4415896, r4415897, r4415898, r4415899;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r4415892);
        mpfr_init_set_str(r4415893, "1", 10, MPFR_RNDN);
        mpfr_init(r4415894);
        mpfr_init(r4415895);
        mpfr_init(r4415896);
        mpfr_init(r4415897);
        mpfr_init(r4415898);
        mpfr_init(r4415899);
}

double f_im(double x, double n) {
        mpfr_set_d(r4415892, x, MPFR_RNDN);
        ;
        mpfr_add(r4415894, r4415892, r4415893, MPFR_RNDN);
        mpfr_set_d(r4415895, n, MPFR_RNDN);
        mpfr_div(r4415896, r4415893, r4415895, MPFR_RNDN);
        mpfr_pow(r4415897, r4415894, r4415896, MPFR_RNDN);
        mpfr_pow(r4415898, r4415892, r4415896, MPFR_RNDN);
        mpfr_sub(r4415899, r4415897, r4415898, MPFR_RNDN);
        return mpfr_get_d(r4415899, MPFR_RNDN);
}

static mpfr_t r4415900, r4415901, r4415902, r4415903, r4415904, r4415905, r4415906, r4415907, r4415908, r4415909, r4415910, r4415911, r4415912, r4415913, r4415914, r4415915, r4415916, r4415917, r4415918, r4415919, r4415920, r4415921, r4415922, r4415923, r4415924, r4415925, r4415926, r4415927, r4415928, r4415929, r4415930, r4415931, r4415932, r4415933, r4415934, r4415935, r4415936, r4415937, r4415938, r4415939, r4415940, r4415941;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r4415900);
        mpfr_init_set_str(r4415901, "-12826969090.218382", 10, MPFR_RNDN);
        mpfr_init(r4415902);
        mpfr_init_set_str(r4415903, "1", 10, MPFR_RNDN);
        mpfr_init(r4415904);
        mpfr_init(r4415905);
        mpfr_init(r4415906);
        mpfr_init_set_str(r4415907, "1/2", 10, MPFR_RNDN);
        mpfr_init(r4415908);
        mpfr_init(r4415909);
        mpfr_init(r4415910);
        mpfr_init(r4415911);
        mpfr_init(r4415912);
        mpfr_init(r4415913);
        mpfr_init(r4415914);
        mpfr_init_set_str(r4415915, "1098791800637524.1", 10, MPFR_RNDN);
        mpfr_init(r4415916);
        mpfr_init(r4415917);
        mpfr_init(r4415918);
        mpfr_init(r4415919);
        mpfr_init(r4415920);
        mpfr_init(r4415921);
        mpfr_init(r4415922);
        mpfr_init(r4415923);
        mpfr_init(r4415924);
        mpfr_init(r4415925);
        mpfr_init(r4415926);
        mpfr_init(r4415927);
        mpfr_init(r4415928);
        mpfr_init(r4415929);
        mpfr_init(r4415930);
        mpfr_init(r4415931);
        mpfr_init(r4415932);
        mpfr_init(r4415933);
        mpfr_init(r4415934);
        mpfr_init(r4415935);
        mpfr_init(r4415936);
        mpfr_init(r4415937);
        mpfr_init(r4415938);
        mpfr_init(r4415939);
        mpfr_init(r4415940);
        mpfr_init(r4415941);
}

double f_fm(double x, double n) {
        mpfr_set_d(r4415900, n, MPFR_RNDN);
        ;
        mpfr_set_si(r4415902, mpfr_cmp(r4415900, r4415901) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r4415904, x, MPFR_RNDN);
        mpfr_mul(r4415905, r4415904, r4415900, MPFR_RNDN);
        mpfr_div(r4415906, r4415903, r4415905, MPFR_RNDN);
        ;
        mpfr_div(r4415908, r4415907, r4415904, MPFR_RNDN);
        mpfr_div(r4415909, r4415908, r4415905, MPFR_RNDN);
        mpfr_sub(r4415910, r4415906, r4415909, MPFR_RNDN);
        mpfr_log(r4415911, r4415904, MPFR_RNDN);
        mpfr_div(r4415912, r4415911, r4415900, MPFR_RNDN);
        mpfr_div(r4415913, r4415912, r4415905, MPFR_RNDN);
        mpfr_sub(r4415914, r4415910, r4415913, MPFR_RNDN);
        ;
        mpfr_set_si(r4415916, mpfr_cmp(r4415900, r4415915) <= 0, MPFR_RNDN);
        mpfr_add(r4415917, r4415903, r4415904, MPFR_RNDN);
        mpfr_div(r4415918, r4415903, r4415900, MPFR_RNDN);
        mpfr_pow(r4415919, r4415917, r4415918, MPFR_RNDN);
        mpfr_pow(r4415920, r4415904, r4415918, MPFR_RNDN);
        mpfr_sub(r4415921, r4415919, r4415920, MPFR_RNDN);
        mpfr_exp(r4415922, r4415921, MPFR_RNDN);
        mpfr_cbrt(r4415923, r4415922, MPFR_RNDN);
        mpfr_mul(r4415924, r4415923, r4415923, MPFR_RNDN);
        mpfr_log(r4415925, r4415924, MPFR_RNDN);
        mpfr_sqrt(r4415926, r4415922, MPFR_RNDN);
        mpfr_cbrt(r4415927, r4415926, MPFR_RNDN);
        mpfr_log(r4415928, r4415927, MPFR_RNDN);
        mpfr_add(r4415929, r4415928, r4415928, MPFR_RNDN);
        mpfr_add(r4415930, r4415925, r4415929, MPFR_RNDN);
        mpfr_div(r4415931, r4415903, r4415904, MPFR_RNDN);
        mpfr_div(r4415932, r4415931, r4415900, MPFR_RNDN);
        mpfr_div(r4415933, r4415907, r4415900, MPFR_RNDN);
        mpfr_mul(r4415934, r4415904, r4415904, MPFR_RNDN);
        mpfr_div(r4415935, r4415933, r4415934, MPFR_RNDN);
        mpfr_sub(r4415936, r4415932, r4415935, MPFR_RNDN);
        mpfr_div(r4415937, r4415911, r4415905, MPFR_RNDN);
        mpfr_div(r4415938, r4415937, r4415900, MPFR_RNDN);
        mpfr_sub(r4415939, r4415936, r4415938, MPFR_RNDN);
        if (mpfr_get_si(r4415916, MPFR_RNDN)) { mpfr_set(r4415940, r4415930, MPFR_RNDN); } else { mpfr_set(r4415940, r4415939, MPFR_RNDN); };
        if (mpfr_get_si(r4415902, MPFR_RNDN)) { mpfr_set(r4415941, r4415914, MPFR_RNDN); } else { mpfr_set(r4415941, r4415940, MPFR_RNDN); };
        return mpfr_get_d(r4415941, MPFR_RNDN);
}

static mpfr_t r4415942, r4415943, r4415944, r4415945, r4415946, r4415947, r4415948, r4415949, r4415950, r4415951, r4415952, r4415953, r4415954, r4415955, r4415956, r4415957, r4415958, r4415959, r4415960, r4415961, r4415962, r4415963, r4415964, r4415965, r4415966, r4415967, r4415968, r4415969, r4415970, r4415971, r4415972, r4415973, r4415974, r4415975, r4415976, r4415977, r4415978, r4415979, r4415980, r4415981, r4415982, r4415983;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r4415942);
        mpfr_init_set_str(r4415943, "-12826969090.218382", 10, MPFR_RNDN);
        mpfr_init(r4415944);
        mpfr_init_set_str(r4415945, "1", 10, MPFR_RNDN);
        mpfr_init(r4415946);
        mpfr_init(r4415947);
        mpfr_init(r4415948);
        mpfr_init_set_str(r4415949, "1/2", 10, MPFR_RNDN);
        mpfr_init(r4415950);
        mpfr_init(r4415951);
        mpfr_init(r4415952);
        mpfr_init(r4415953);
        mpfr_init(r4415954);
        mpfr_init(r4415955);
        mpfr_init(r4415956);
        mpfr_init_set_str(r4415957, "1098791800637524.1", 10, MPFR_RNDN);
        mpfr_init(r4415958);
        mpfr_init(r4415959);
        mpfr_init(r4415960);
        mpfr_init(r4415961);
        mpfr_init(r4415962);
        mpfr_init(r4415963);
        mpfr_init(r4415964);
        mpfr_init(r4415965);
        mpfr_init(r4415966);
        mpfr_init(r4415967);
        mpfr_init(r4415968);
        mpfr_init(r4415969);
        mpfr_init(r4415970);
        mpfr_init(r4415971);
        mpfr_init(r4415972);
        mpfr_init(r4415973);
        mpfr_init(r4415974);
        mpfr_init(r4415975);
        mpfr_init(r4415976);
        mpfr_init(r4415977);
        mpfr_init(r4415978);
        mpfr_init(r4415979);
        mpfr_init(r4415980);
        mpfr_init(r4415981);
        mpfr_init(r4415982);
        mpfr_init(r4415983);
}

double f_dm(double x, double n) {
        mpfr_set_d(r4415942, n, MPFR_RNDN);
        ;
        mpfr_set_si(r4415944, mpfr_cmp(r4415942, r4415943) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r4415946, x, MPFR_RNDN);
        mpfr_mul(r4415947, r4415946, r4415942, MPFR_RNDN);
        mpfr_div(r4415948, r4415945, r4415947, MPFR_RNDN);
        ;
        mpfr_div(r4415950, r4415949, r4415946, MPFR_RNDN);
        mpfr_div(r4415951, r4415950, r4415947, MPFR_RNDN);
        mpfr_sub(r4415952, r4415948, r4415951, MPFR_RNDN);
        mpfr_log(r4415953, r4415946, MPFR_RNDN);
        mpfr_div(r4415954, r4415953, r4415942, MPFR_RNDN);
        mpfr_div(r4415955, r4415954, r4415947, MPFR_RNDN);
        mpfr_sub(r4415956, r4415952, r4415955, MPFR_RNDN);
        ;
        mpfr_set_si(r4415958, mpfr_cmp(r4415942, r4415957) <= 0, MPFR_RNDN);
        mpfr_add(r4415959, r4415945, r4415946, MPFR_RNDN);
        mpfr_div(r4415960, r4415945, r4415942, MPFR_RNDN);
        mpfr_pow(r4415961, r4415959, r4415960, MPFR_RNDN);
        mpfr_pow(r4415962, r4415946, r4415960, MPFR_RNDN);
        mpfr_sub(r4415963, r4415961, r4415962, MPFR_RNDN);
        mpfr_exp(r4415964, r4415963, MPFR_RNDN);
        mpfr_cbrt(r4415965, r4415964, MPFR_RNDN);
        mpfr_mul(r4415966, r4415965, r4415965, MPFR_RNDN);
        mpfr_log(r4415967, r4415966, MPFR_RNDN);
        mpfr_sqrt(r4415968, r4415964, MPFR_RNDN);
        mpfr_cbrt(r4415969, r4415968, MPFR_RNDN);
        mpfr_log(r4415970, r4415969, MPFR_RNDN);
        mpfr_add(r4415971, r4415970, r4415970, MPFR_RNDN);
        mpfr_add(r4415972, r4415967, r4415971, MPFR_RNDN);
        mpfr_div(r4415973, r4415945, r4415946, MPFR_RNDN);
        mpfr_div(r4415974, r4415973, r4415942, MPFR_RNDN);
        mpfr_div(r4415975, r4415949, r4415942, MPFR_RNDN);
        mpfr_mul(r4415976, r4415946, r4415946, MPFR_RNDN);
        mpfr_div(r4415977, r4415975, r4415976, MPFR_RNDN);
        mpfr_sub(r4415978, r4415974, r4415977, MPFR_RNDN);
        mpfr_div(r4415979, r4415953, r4415947, MPFR_RNDN);
        mpfr_div(r4415980, r4415979, r4415942, MPFR_RNDN);
        mpfr_sub(r4415981, r4415978, r4415980, MPFR_RNDN);
        if (mpfr_get_si(r4415958, MPFR_RNDN)) { mpfr_set(r4415982, r4415972, MPFR_RNDN); } else { mpfr_set(r4415982, r4415981, MPFR_RNDN); };
        if (mpfr_get_si(r4415944, MPFR_RNDN)) { mpfr_set(r4415983, r4415956, MPFR_RNDN); } else { mpfr_set(r4415983, r4415982, MPFR_RNDN); };
        return mpfr_get_d(r4415983, MPFR_RNDN);
}

