#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 r9292 = x;
        float r9293 = 1;
        float r9294 = r9292 + r9293;
        float r9295 = n;
        float r9296 = r9293 / r9295;
        float r9297 = pow(r9294, r9296);
        float r9298 = pow(r9292, r9296);
        float r9299 = r9297 - r9298;
        return r9299;
}

double f_id(double x, double n) {
        double r9300 = x;
        double r9301 = 1;
        double r9302 = r9300 + r9301;
        double r9303 = n;
        double r9304 = r9301 / r9303;
        double r9305 = pow(r9302, r9304);
        double r9306 = pow(r9300, r9304);
        double r9307 = r9305 - r9306;
        return r9307;
}


double f_of(float x, float n) {
        float r9308 = x;
        float r9309 = log1p(r9308);
        float r9310 = n;
        float r9311 = r9309 / r9310;
        float r9312 = expm1(r9311);
        float r9313 = 1/2;
        float r9314 = r9313 / r9310;
        float r9315 = r9314 / r9310;
        float r9316 = log(r9308);
        float r9317 = r9316 * r9316;
        float r9318 = r9316 / r9310;
        float r9319 = fma(r9315, r9317, r9318);
        float r9320 = r9312 - r9319;
        float r9321 = cbrt(r9320);
        float r9322 = r9321 * r9321;
        float r9323 = cbrt(r9322);
        float r9324 = cbrt(r9321);
        float r9325 = r9323 * r9324;
        float r9326 = r9322 * r9325;
        float r9327 = -4.957119147862979e-06;
        bool r9328 = r9326 <= r9327;
        float r9329 = exp(r9311);
        float r9330 = 1;
        float r9331 = r9330 / r9310;
        float r9332 = pow(r9308, r9331);
        float r9333 = r9329 - r9332;
        float r9334 = -8.644342371771867e-294;
        bool r9335 = r9326 <= r9334;
        float r9336 = 2.313164721782636e-300;
        bool r9337 = r9326 <= r9336;
        float r9338 = r9310 * r9308;
        float r9339 = r9330 / r9338;
        float r9340 = r9313 / r9308;
        float r9341 = -r9340;
        float r9342 = fma(r9339, r9341, r9339);
        float r9343 = r9316 / r9338;
        float r9344 = r9343 / r9310;
        float r9345 = r9342 + r9344;
        float r9346 = r9337 ? r9345 : r9320;
        float r9347 = r9335 ? r9320 : r9346;
        float r9348 = r9328 ? r9333 : r9347;
        return r9348;
}

double f_od(double x, double n) {
        double r9349 = x;
        double r9350 = log1p(r9349);
        double r9351 = n;
        double r9352 = r9350 / r9351;
        double r9353 = expm1(r9352);
        double r9354 = 1/2;
        double r9355 = r9354 / r9351;
        double r9356 = r9355 / r9351;
        double r9357 = log(r9349);
        double r9358 = r9357 * r9357;
        double r9359 = r9357 / r9351;
        double r9360 = fma(r9356, r9358, r9359);
        double r9361 = r9353 - r9360;
        double r9362 = cbrt(r9361);
        double r9363 = r9362 * r9362;
        double r9364 = cbrt(r9363);
        double r9365 = cbrt(r9362);
        double r9366 = r9364 * r9365;
        double r9367 = r9363 * r9366;
        double r9368 = -4.957119147862979e-06;
        bool r9369 = r9367 <= r9368;
        double r9370 = exp(r9352);
        double r9371 = 1;
        double r9372 = r9371 / r9351;
        double r9373 = pow(r9349, r9372);
        double r9374 = r9370 - r9373;
        double r9375 = -8.644342371771867e-294;
        bool r9376 = r9367 <= r9375;
        double r9377 = 2.313164721782636e-300;
        bool r9378 = r9367 <= r9377;
        double r9379 = r9351 * r9349;
        double r9380 = r9371 / r9379;
        double r9381 = r9354 / r9349;
        double r9382 = -r9381;
        double r9383 = fma(r9380, r9382, r9380);
        double r9384 = r9357 / r9379;
        double r9385 = r9384 / r9351;
        double r9386 = r9383 + r9385;
        double r9387 = r9378 ? r9386 : r9361;
        double r9388 = r9376 ? r9361 : r9387;
        double r9389 = r9369 ? r9374 : r9388;
        return r9389;
}

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 r9390, r9391, r9392, r9393, r9394, r9395, r9396, r9397;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9390);
        mpfr_init_set_str(r9391, "1", 10, MPFR_RNDN);
        mpfr_init(r9392);
        mpfr_init(r9393);
        mpfr_init(r9394);
        mpfr_init(r9395);
        mpfr_init(r9396);
        mpfr_init(r9397);
}

double f_im(double x, double n) {
        mpfr_set_d(r9390, x, MPFR_RNDN);
        ;
        mpfr_add(r9392, r9390, r9391, MPFR_RNDN);
        mpfr_set_d(r9393, n, MPFR_RNDN);
        mpfr_div(r9394, r9391, r9393, MPFR_RNDN);
        mpfr_pow(r9395, r9392, r9394, MPFR_RNDN);
        mpfr_pow(r9396, r9390, r9394, MPFR_RNDN);
        mpfr_sub(r9397, r9395, r9396, MPFR_RNDN);
        return mpfr_get_d(r9397, MPFR_RNDN);
}

static mpfr_t r9398, r9399, r9400, r9401, r9402, r9403, r9404, r9405, r9406, r9407, r9408, r9409, r9410, r9411, r9412, r9413, r9414, r9415, r9416, r9417, r9418, r9419, r9420, r9421, r9422, r9423, r9424, r9425, r9426, r9427, r9428, r9429, r9430, r9431, r9432, r9433, r9434, r9435, r9436, r9437, r9438;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9398);
        mpfr_init(r9399);
        mpfr_init(r9400);
        mpfr_init(r9401);
        mpfr_init(r9402);
        mpfr_init_set_str(r9403, "1/2", 10, MPFR_RNDN);
        mpfr_init(r9404);
        mpfr_init(r9405);
        mpfr_init(r9406);
        mpfr_init(r9407);
        mpfr_init(r9408);
        mpfr_init(r9409);
        mpfr_init(r9410);
        mpfr_init(r9411);
        mpfr_init(r9412);
        mpfr_init(r9413);
        mpfr_init(r9414);
        mpfr_init(r9415);
        mpfr_init(r9416);
        mpfr_init_set_str(r9417, "-4.957119147862979e-06", 10, MPFR_RNDN);
        mpfr_init(r9418);
        mpfr_init(r9419);
        mpfr_init_set_str(r9420, "1", 10, MPFR_RNDN);
        mpfr_init(r9421);
        mpfr_init(r9422);
        mpfr_init(r9423);
        mpfr_init_set_str(r9424, "-8.644342371771867e-294", 10, MPFR_RNDN);
        mpfr_init(r9425);
        mpfr_init_set_str(r9426, "2.313164721782636e-300", 10, MPFR_RNDN);
        mpfr_init(r9427);
        mpfr_init(r9428);
        mpfr_init(r9429);
        mpfr_init(r9430);
        mpfr_init(r9431);
        mpfr_init(r9432);
        mpfr_init(r9433);
        mpfr_init(r9434);
        mpfr_init(r9435);
        mpfr_init(r9436);
        mpfr_init(r9437);
        mpfr_init(r9438);
}

double f_fm(double x, double n) {
        mpfr_set_d(r9398, x, MPFR_RNDN);
        mpfr_log1p(r9399, r9398, MPFR_RNDN);
        mpfr_set_d(r9400, n, MPFR_RNDN);
        mpfr_div(r9401, r9399, r9400, MPFR_RNDN);
        mpfr_expm1(r9402, r9401, MPFR_RNDN);
        ;
        mpfr_div(r9404, r9403, r9400, MPFR_RNDN);
        mpfr_div(r9405, r9404, r9400, MPFR_RNDN);
        mpfr_log(r9406, r9398, MPFR_RNDN);
        mpfr_mul(r9407, r9406, r9406, MPFR_RNDN);
        mpfr_div(r9408, r9406, r9400, MPFR_RNDN);
        mpfr_fma(r9409, r9405, r9407, r9408, MPFR_RNDN);
        mpfr_sub(r9410, r9402, r9409, MPFR_RNDN);
        mpfr_cbrt(r9411, r9410, MPFR_RNDN);
        mpfr_mul(r9412, r9411, r9411, MPFR_RNDN);
        mpfr_cbrt(r9413, r9412, MPFR_RNDN);
        mpfr_cbrt(r9414, r9411, MPFR_RNDN);
        mpfr_mul(r9415, r9413, r9414, MPFR_RNDN);
        mpfr_mul(r9416, r9412, r9415, MPFR_RNDN);
        ;
        mpfr_set_si(r9418, mpfr_cmp(r9416, r9417) <= 0, MPFR_RNDN);
        mpfr_exp(r9419, r9401, MPFR_RNDN);
        ;
        mpfr_div(r9421, r9420, r9400, MPFR_RNDN);
        mpfr_pow(r9422, r9398, r9421, MPFR_RNDN);
        mpfr_sub(r9423, r9419, r9422, MPFR_RNDN);
        ;
        mpfr_set_si(r9425, mpfr_cmp(r9416, r9424) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9427, mpfr_cmp(r9416, r9426) <= 0, MPFR_RNDN);
        mpfr_mul(r9428, r9400, r9398, MPFR_RNDN);
        mpfr_div(r9429, r9420, r9428, MPFR_RNDN);
        mpfr_div(r9430, r9403, r9398, MPFR_RNDN);
        mpfr_neg(r9431, r9430, MPFR_RNDN);
        mpfr_fma(r9432, r9429, r9431, r9429, MPFR_RNDN);
        mpfr_div(r9433, r9406, r9428, MPFR_RNDN);
        mpfr_div(r9434, r9433, r9400, MPFR_RNDN);
        mpfr_add(r9435, r9432, r9434, MPFR_RNDN);
        if (mpfr_get_si(r9427, MPFR_RNDN)) { mpfr_set(r9436, r9435, MPFR_RNDN); } else { mpfr_set(r9436, r9410, MPFR_RNDN); };
        if (mpfr_get_si(r9425, MPFR_RNDN)) { mpfr_set(r9437, r9410, MPFR_RNDN); } else { mpfr_set(r9437, r9436, MPFR_RNDN); };
        if (mpfr_get_si(r9418, MPFR_RNDN)) { mpfr_set(r9438, r9423, MPFR_RNDN); } else { mpfr_set(r9438, r9437, MPFR_RNDN); };
        return mpfr_get_d(r9438, MPFR_RNDN);
}

static mpfr_t r9439, r9440, r9441, r9442, r9443, r9444, r9445, r9446, r9447, r9448, r9449, r9450, r9451, r9452, r9453, r9454, r9455, r9456, r9457, r9458, r9459, r9460, r9461, r9462, r9463, r9464, r9465, r9466, r9467, r9468, r9469, r9470, r9471, r9472, r9473, r9474, r9475, r9476, r9477, r9478, r9479;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9439);
        mpfr_init(r9440);
        mpfr_init(r9441);
        mpfr_init(r9442);
        mpfr_init(r9443);
        mpfr_init_set_str(r9444, "1/2", 10, MPFR_RNDN);
        mpfr_init(r9445);
        mpfr_init(r9446);
        mpfr_init(r9447);
        mpfr_init(r9448);
        mpfr_init(r9449);
        mpfr_init(r9450);
        mpfr_init(r9451);
        mpfr_init(r9452);
        mpfr_init(r9453);
        mpfr_init(r9454);
        mpfr_init(r9455);
        mpfr_init(r9456);
        mpfr_init(r9457);
        mpfr_init_set_str(r9458, "-4.957119147862979e-06", 10, MPFR_RNDN);
        mpfr_init(r9459);
        mpfr_init(r9460);
        mpfr_init_set_str(r9461, "1", 10, MPFR_RNDN);
        mpfr_init(r9462);
        mpfr_init(r9463);
        mpfr_init(r9464);
        mpfr_init_set_str(r9465, "-8.644342371771867e-294", 10, MPFR_RNDN);
        mpfr_init(r9466);
        mpfr_init_set_str(r9467, "2.313164721782636e-300", 10, MPFR_RNDN);
        mpfr_init(r9468);
        mpfr_init(r9469);
        mpfr_init(r9470);
        mpfr_init(r9471);
        mpfr_init(r9472);
        mpfr_init(r9473);
        mpfr_init(r9474);
        mpfr_init(r9475);
        mpfr_init(r9476);
        mpfr_init(r9477);
        mpfr_init(r9478);
        mpfr_init(r9479);
}

double f_dm(double x, double n) {
        mpfr_set_d(r9439, x, MPFR_RNDN);
        mpfr_log1p(r9440, r9439, MPFR_RNDN);
        mpfr_set_d(r9441, n, MPFR_RNDN);
        mpfr_div(r9442, r9440, r9441, MPFR_RNDN);
        mpfr_expm1(r9443, r9442, MPFR_RNDN);
        ;
        mpfr_div(r9445, r9444, r9441, MPFR_RNDN);
        mpfr_div(r9446, r9445, r9441, MPFR_RNDN);
        mpfr_log(r9447, r9439, MPFR_RNDN);
        mpfr_mul(r9448, r9447, r9447, MPFR_RNDN);
        mpfr_div(r9449, r9447, r9441, MPFR_RNDN);
        mpfr_fma(r9450, r9446, r9448, r9449, MPFR_RNDN);
        mpfr_sub(r9451, r9443, r9450, MPFR_RNDN);
        mpfr_cbrt(r9452, r9451, MPFR_RNDN);
        mpfr_mul(r9453, r9452, r9452, MPFR_RNDN);
        mpfr_cbrt(r9454, r9453, MPFR_RNDN);
        mpfr_cbrt(r9455, r9452, MPFR_RNDN);
        mpfr_mul(r9456, r9454, r9455, MPFR_RNDN);
        mpfr_mul(r9457, r9453, r9456, MPFR_RNDN);
        ;
        mpfr_set_si(r9459, mpfr_cmp(r9457, r9458) <= 0, MPFR_RNDN);
        mpfr_exp(r9460, r9442, MPFR_RNDN);
        ;
        mpfr_div(r9462, r9461, r9441, MPFR_RNDN);
        mpfr_pow(r9463, r9439, r9462, MPFR_RNDN);
        mpfr_sub(r9464, r9460, r9463, MPFR_RNDN);
        ;
        mpfr_set_si(r9466, mpfr_cmp(r9457, r9465) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9468, mpfr_cmp(r9457, r9467) <= 0, MPFR_RNDN);
        mpfr_mul(r9469, r9441, r9439, MPFR_RNDN);
        mpfr_div(r9470, r9461, r9469, MPFR_RNDN);
        mpfr_div(r9471, r9444, r9439, MPFR_RNDN);
        mpfr_neg(r9472, r9471, MPFR_RNDN);
        mpfr_fma(r9473, r9470, r9472, r9470, MPFR_RNDN);
        mpfr_div(r9474, r9447, r9469, MPFR_RNDN);
        mpfr_div(r9475, r9474, r9441, MPFR_RNDN);
        mpfr_add(r9476, r9473, r9475, MPFR_RNDN);
        if (mpfr_get_si(r9468, MPFR_RNDN)) { mpfr_set(r9477, r9476, MPFR_RNDN); } else { mpfr_set(r9477, r9451, MPFR_RNDN); };
        if (mpfr_get_si(r9466, MPFR_RNDN)) { mpfr_set(r9478, r9451, MPFR_RNDN); } else { mpfr_set(r9478, r9477, MPFR_RNDN); };
        if (mpfr_get_si(r9459, MPFR_RNDN)) { mpfr_set(r9479, r9464, MPFR_RNDN); } else { mpfr_set(r9479, r9478, MPFR_RNDN); };
        return mpfr_get_d(r9479, MPFR_RNDN);
}

