#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 r9328 = x;
        float r9329 = 1;
        float r9330 = r9328 + r9329;
        float r9331 = n;
        float r9332 = r9329 / r9331;
        float r9333 = pow(r9330, r9332);
        float r9334 = pow(r9328, r9332);
        float r9335 = r9333 - r9334;
        return r9335;
}

double f_id(double x, double n) {
        double r9336 = x;
        double r9337 = 1;
        double r9338 = r9336 + r9337;
        double r9339 = n;
        double r9340 = r9337 / r9339;
        double r9341 = pow(r9338, r9340);
        double r9342 = pow(r9336, r9340);
        double r9343 = r9341 - r9342;
        return r9343;
}


double f_of(float x, float n) {
        float r9344 = x;
        float r9345 = log1p(r9344);
        float r9346 = n;
        float r9347 = r9345 / r9346;
        float r9348 = expm1(r9347);
        float r9349 = 1/2;
        float r9350 = r9349 / r9346;
        float r9351 = r9350 / r9346;
        float r9352 = log(r9344);
        float r9353 = r9352 * r9352;
        float r9354 = r9352 / r9346;
        float r9355 = fma(r9351, r9353, r9354);
        float r9356 = r9348 - r9355;
        float r9357 = cbrt(r9356);
        float r9358 = r9357 * r9357;
        float r9359 = r9358 * r9357;
        float r9360 = -1.4819628500697797e-11;
        bool r9361 = r9359 <= r9360;
        float r9362 = exp(r9347);
        float r9363 = 1;
        float r9364 = r9363 / r9346;
        float r9365 = pow(r9344, r9364);
        float r9366 = r9362 - r9365;
        float r9367 = log1p(r9366);
        float r9368 = expm1(r9367);
        float r9369 = -2.59290564998184e-308;
        bool r9370 = r9359 <= r9369;
        float r9371 = r9346 / r9352;
        float r9372 = r9363 / r9371;
        float r9373 = fma(r9351, r9353, r9372);
        float r9374 = r9348 - r9373;
        float r9375 = 6.67208984761576e-310;
        bool r9376 = r9359 <= r9375;
        float r9377 = r9346 * r9344;
        float r9378 = r9363 / r9377;
        float r9379 = r9349 / r9344;
        float r9380 = -r9379;
        float r9381 = fma(r9378, r9380, r9378);
        float r9382 = r9352 / r9377;
        float r9383 = r9382 / r9346;
        float r9384 = r9381 + r9383;
        float r9385 = r9376 ? r9384 : r9374;
        float r9386 = r9370 ? r9374 : r9385;
        float r9387 = r9361 ? r9368 : r9386;
        return r9387;
}

double f_od(double x, double n) {
        double r9388 = x;
        double r9389 = log1p(r9388);
        double r9390 = n;
        double r9391 = r9389 / r9390;
        double r9392 = expm1(r9391);
        double r9393 = 1/2;
        double r9394 = r9393 / r9390;
        double r9395 = r9394 / r9390;
        double r9396 = log(r9388);
        double r9397 = r9396 * r9396;
        double r9398 = r9396 / r9390;
        double r9399 = fma(r9395, r9397, r9398);
        double r9400 = r9392 - r9399;
        double r9401 = cbrt(r9400);
        double r9402 = r9401 * r9401;
        double r9403 = r9402 * r9401;
        double r9404 = -1.4819628500697797e-11;
        bool r9405 = r9403 <= r9404;
        double r9406 = exp(r9391);
        double r9407 = 1;
        double r9408 = r9407 / r9390;
        double r9409 = pow(r9388, r9408);
        double r9410 = r9406 - r9409;
        double r9411 = log1p(r9410);
        double r9412 = expm1(r9411);
        double r9413 = -2.59290564998184e-308;
        bool r9414 = r9403 <= r9413;
        double r9415 = r9390 / r9396;
        double r9416 = r9407 / r9415;
        double r9417 = fma(r9395, r9397, r9416);
        double r9418 = r9392 - r9417;
        double r9419 = 6.67208984761576e-310;
        bool r9420 = r9403 <= r9419;
        double r9421 = r9390 * r9388;
        double r9422 = r9407 / r9421;
        double r9423 = r9393 / r9388;
        double r9424 = -r9423;
        double r9425 = fma(r9422, r9424, r9422);
        double r9426 = r9396 / r9421;
        double r9427 = r9426 / r9390;
        double r9428 = r9425 + r9427;
        double r9429 = r9420 ? r9428 : r9418;
        double r9430 = r9414 ? r9418 : r9429;
        double r9431 = r9405 ? r9412 : r9430;
        return r9431;
}

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 r9432, r9433, r9434, r9435, r9436, r9437, r9438, r9439;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9432);
        mpfr_init_set_str(r9433, "1", 10, MPFR_RNDN);
        mpfr_init(r9434);
        mpfr_init(r9435);
        mpfr_init(r9436);
        mpfr_init(r9437);
        mpfr_init(r9438);
        mpfr_init(r9439);
}

double f_im(double x, double n) {
        mpfr_set_d(r9432, x, MPFR_RNDN);
        ;
        mpfr_add(r9434, r9432, r9433, MPFR_RNDN);
        mpfr_set_d(r9435, n, MPFR_RNDN);
        mpfr_div(r9436, r9433, r9435, MPFR_RNDN);
        mpfr_pow(r9437, r9434, r9436, MPFR_RNDN);
        mpfr_pow(r9438, r9432, r9436, MPFR_RNDN);
        mpfr_sub(r9439, r9437, r9438, MPFR_RNDN);
        return mpfr_get_d(r9439, MPFR_RNDN);
}

static mpfr_t 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, r9480, r9481, r9482, r9483;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9440);
        mpfr_init(r9441);
        mpfr_init(r9442);
        mpfr_init(r9443);
        mpfr_init(r9444);
        mpfr_init_set_str(r9445, "1/2", 10, MPFR_RNDN);
        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_set_str(r9456, "-1.4819628500697797e-11", 10, MPFR_RNDN);
        mpfr_init(r9457);
        mpfr_init(r9458);
        mpfr_init_set_str(r9459, "1", 10, MPFR_RNDN);
        mpfr_init(r9460);
        mpfr_init(r9461);
        mpfr_init(r9462);
        mpfr_init(r9463);
        mpfr_init(r9464);
        mpfr_init_set_str(r9465, "-2.59290564998184e-308", 10, MPFR_RNDN);
        mpfr_init(r9466);
        mpfr_init(r9467);
        mpfr_init(r9468);
        mpfr_init(r9469);
        mpfr_init(r9470);
        mpfr_init_set_str(r9471, "6.67208984761576e-310", 10, MPFR_RNDN);
        mpfr_init(r9472);
        mpfr_init(r9473);
        mpfr_init(r9474);
        mpfr_init(r9475);
        mpfr_init(r9476);
        mpfr_init(r9477);
        mpfr_init(r9478);
        mpfr_init(r9479);
        mpfr_init(r9480);
        mpfr_init(r9481);
        mpfr_init(r9482);
        mpfr_init(r9483);
}

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

static mpfr_t r9484, r9485, r9486, r9487, r9488, r9489, r9490, r9491, r9492, r9493, r9494, r9495, r9496, r9497, r9498, r9499, r9500, r9501, r9502, r9503, r9504, r9505, r9506, r9507, r9508, r9509, r9510, r9511, r9512, r9513, r9514, r9515, r9516, r9517, r9518, r9519, r9520, r9521, r9522, r9523, r9524, r9525, r9526, r9527;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9484);
        mpfr_init(r9485);
        mpfr_init(r9486);
        mpfr_init(r9487);
        mpfr_init(r9488);
        mpfr_init_set_str(r9489, "1/2", 10, MPFR_RNDN);
        mpfr_init(r9490);
        mpfr_init(r9491);
        mpfr_init(r9492);
        mpfr_init(r9493);
        mpfr_init(r9494);
        mpfr_init(r9495);
        mpfr_init(r9496);
        mpfr_init(r9497);
        mpfr_init(r9498);
        mpfr_init(r9499);
        mpfr_init_set_str(r9500, "-1.4819628500697797e-11", 10, MPFR_RNDN);
        mpfr_init(r9501);
        mpfr_init(r9502);
        mpfr_init_set_str(r9503, "1", 10, MPFR_RNDN);
        mpfr_init(r9504);
        mpfr_init(r9505);
        mpfr_init(r9506);
        mpfr_init(r9507);
        mpfr_init(r9508);
        mpfr_init_set_str(r9509, "-2.59290564998184e-308", 10, MPFR_RNDN);
        mpfr_init(r9510);
        mpfr_init(r9511);
        mpfr_init(r9512);
        mpfr_init(r9513);
        mpfr_init(r9514);
        mpfr_init_set_str(r9515, "6.67208984761576e-310", 10, MPFR_RNDN);
        mpfr_init(r9516);
        mpfr_init(r9517);
        mpfr_init(r9518);
        mpfr_init(r9519);
        mpfr_init(r9520);
        mpfr_init(r9521);
        mpfr_init(r9522);
        mpfr_init(r9523);
        mpfr_init(r9524);
        mpfr_init(r9525);
        mpfr_init(r9526);
        mpfr_init(r9527);
}

double f_dm(double x, double n) {
        mpfr_set_d(r9484, x, MPFR_RNDN);
        mpfr_log1p(r9485, r9484, MPFR_RNDN);
        mpfr_set_d(r9486, n, MPFR_RNDN);
        mpfr_div(r9487, r9485, r9486, MPFR_RNDN);
        mpfr_expm1(r9488, r9487, MPFR_RNDN);
        ;
        mpfr_div(r9490, r9489, r9486, MPFR_RNDN);
        mpfr_div(r9491, r9490, r9486, MPFR_RNDN);
        mpfr_log(r9492, r9484, MPFR_RNDN);
        mpfr_mul(r9493, r9492, r9492, MPFR_RNDN);
        mpfr_div(r9494, r9492, r9486, MPFR_RNDN);
        mpfr_fma(r9495, r9491, r9493, r9494, MPFR_RNDN);
        mpfr_sub(r9496, r9488, r9495, MPFR_RNDN);
        mpfr_cbrt(r9497, r9496, MPFR_RNDN);
        mpfr_mul(r9498, r9497, r9497, MPFR_RNDN);
        mpfr_mul(r9499, r9498, r9497, MPFR_RNDN);
        ;
        mpfr_set_si(r9501, mpfr_cmp(r9499, r9500) <= 0, MPFR_RNDN);
        mpfr_exp(r9502, r9487, MPFR_RNDN);
        ;
        mpfr_div(r9504, r9503, r9486, MPFR_RNDN);
        mpfr_pow(r9505, r9484, r9504, MPFR_RNDN);
        mpfr_sub(r9506, r9502, r9505, MPFR_RNDN);
        mpfr_log1p(r9507, r9506, MPFR_RNDN);
        mpfr_expm1(r9508, r9507, MPFR_RNDN);
        ;
        mpfr_set_si(r9510, mpfr_cmp(r9499, r9509) <= 0, MPFR_RNDN);
        mpfr_div(r9511, r9486, r9492, MPFR_RNDN);
        mpfr_div(r9512, r9503, r9511, MPFR_RNDN);
        mpfr_fma(r9513, r9491, r9493, r9512, MPFR_RNDN);
        mpfr_sub(r9514, r9488, r9513, MPFR_RNDN);
        ;
        mpfr_set_si(r9516, mpfr_cmp(r9499, r9515) <= 0, MPFR_RNDN);
        mpfr_mul(r9517, r9486, r9484, MPFR_RNDN);
        mpfr_div(r9518, r9503, r9517, MPFR_RNDN);
        mpfr_div(r9519, r9489, r9484, MPFR_RNDN);
        mpfr_neg(r9520, r9519, MPFR_RNDN);
        mpfr_fma(r9521, r9518, r9520, r9518, MPFR_RNDN);
        mpfr_div(r9522, r9492, r9517, MPFR_RNDN);
        mpfr_div(r9523, r9522, r9486, MPFR_RNDN);
        mpfr_add(r9524, r9521, r9523, MPFR_RNDN);
        if (mpfr_get_si(r9516, MPFR_RNDN)) { mpfr_set(r9525, r9524, MPFR_RNDN); } else { mpfr_set(r9525, r9514, MPFR_RNDN); };
        if (mpfr_get_si(r9510, MPFR_RNDN)) { mpfr_set(r9526, r9514, MPFR_RNDN); } else { mpfr_set(r9526, r9525, MPFR_RNDN); };
        if (mpfr_get_si(r9501, MPFR_RNDN)) { mpfr_set(r9527, r9508, MPFR_RNDN); } else { mpfr_set(r9527, r9526, MPFR_RNDN); };
        return mpfr_get_d(r9527, MPFR_RNDN);
}

