#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "NMSE problem 3.4.6";

double f_if(float x, float n) {
        float r26282 = x;
        float r26283 = 1;
        float r26284 = r26282 + r26283;
        float r26285 = n;
        float r26286 = r26283 / r26285;
        float r26287 = pow(r26284, r26286);
        float r26288 = pow(r26282, r26286);
        float r26289 = r26287 - r26288;
        return r26289;
}

double f_id(double x, double n) {
        double r26290 = x;
        double r26291 = 1;
        double r26292 = r26290 + r26291;
        double r26293 = n;
        double r26294 = r26291 / r26293;
        double r26295 = pow(r26292, r26294);
        double r26296 = pow(r26290, r26294);
        double r26297 = r26295 - r26296;
        return r26297;
}


double f_of(float x, float n) {
        float r26298 = 1;
        float r26299 = n;
        float r26300 = r26298 / r26299;
        float r26301 = -2.198416698951786e-09;
        bool r26302 = r26300 <= r26301;
        float r26303 = x;
        float r26304 = r26298 + r26303;
        float r26305 = pow(r26304, r26300);
        float r26306 = pow(r26303, r26300);
        float r26307 = r26305 - r26306;
        float r26308 = exp(r26307);
        float r26309 = cbrt(r26308);
        float r26310 = r26309 * r26309;
        float r26311 = log(r26310);
        float r26312 = exp(r26305);
        float r26313 = cbrt(r26312);
        float r26314 = log(r26313);
        float r26315 = -r26306;
        float r26316 = exp(r26315);
        float r26317 = cbrt(r26316);
        float r26318 = log(r26317);
        float r26319 = r26314 + r26318;
        float r26320 = r26311 + r26319;
        float r26321 = 1.0183320797097317e-17;
        bool r26322 = r26300 <= r26321;
        float r26323 = r26298 / r26303;
        float r26324 = r26323 / r26299;
        float r26325 = 1/2;
        float r26326 = r26325 / r26299;
        float r26327 = r26303 * r26303;
        float r26328 = r26326 / r26327;
        float r26329 = r26324 - r26328;
        float r26330 = log(r26303);
        float r26331 = r26303 * r26299;
        float r26332 = r26330 / r26331;
        float r26333 = r26332 / r26299;
        float r26334 = r26329 - r26333;
        float r26335 = r26303 + r26298;
        float r26336 = pow(r26335, r26300);
        float r26337 = 3;
        float r26338 = pow(r26336, r26337);
        float r26339 = pow(r26306, r26337);
        float r26340 = r26338 - r26339;
        float r26341 = r26305 * r26305;
        float r26342 = r26305 + r26306;
        float r26343 = r26306 * r26342;
        float r26344 = r26341 + r26343;
        float r26345 = r26340 / r26344;
        float r26346 = r26322 ? r26334 : r26345;
        float r26347 = r26302 ? r26320 : r26346;
        return r26347;
}

double f_od(double x, double n) {
        double r26348 = 1;
        double r26349 = n;
        double r26350 = r26348 / r26349;
        double r26351 = -2.198416698951786e-09;
        bool r26352 = r26350 <= r26351;
        double r26353 = x;
        double r26354 = r26348 + r26353;
        double r26355 = pow(r26354, r26350);
        double r26356 = pow(r26353, r26350);
        double r26357 = r26355 - r26356;
        double r26358 = exp(r26357);
        double r26359 = cbrt(r26358);
        double r26360 = r26359 * r26359;
        double r26361 = log(r26360);
        double r26362 = exp(r26355);
        double r26363 = cbrt(r26362);
        double r26364 = log(r26363);
        double r26365 = -r26356;
        double r26366 = exp(r26365);
        double r26367 = cbrt(r26366);
        double r26368 = log(r26367);
        double r26369 = r26364 + r26368;
        double r26370 = r26361 + r26369;
        double r26371 = 1.0183320797097317e-17;
        bool r26372 = r26350 <= r26371;
        double r26373 = r26348 / r26353;
        double r26374 = r26373 / r26349;
        double r26375 = 1/2;
        double r26376 = r26375 / r26349;
        double r26377 = r26353 * r26353;
        double r26378 = r26376 / r26377;
        double r26379 = r26374 - r26378;
        double r26380 = log(r26353);
        double r26381 = r26353 * r26349;
        double r26382 = r26380 / r26381;
        double r26383 = r26382 / r26349;
        double r26384 = r26379 - r26383;
        double r26385 = r26353 + r26348;
        double r26386 = pow(r26385, r26350);
        double r26387 = 3;
        double r26388 = pow(r26386, r26387);
        double r26389 = pow(r26356, r26387);
        double r26390 = r26388 - r26389;
        double r26391 = r26355 * r26355;
        double r26392 = r26355 + r26356;
        double r26393 = r26356 * r26392;
        double r26394 = r26391 + r26393;
        double r26395 = r26390 / r26394;
        double r26396 = r26372 ? r26384 : r26395;
        double r26397 = r26352 ? r26370 : r26396;
        return r26397;
}

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 r26398, r26399, r26400, r26401, r26402, r26403, r26404, r26405;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r26398);
        mpfr_init_set_str(r26399, "1", 10, MPFR_RNDN);
        mpfr_init(r26400);
        mpfr_init(r26401);
        mpfr_init(r26402);
        mpfr_init(r26403);
        mpfr_init(r26404);
        mpfr_init(r26405);
}

double f_im(double x, double n) {
        mpfr_set_d(r26398, x, MPFR_RNDN);
        ;
        mpfr_add(r26400, r26398, r26399, MPFR_RNDN);
        mpfr_set_d(r26401, n, MPFR_RNDN);
        mpfr_div(r26402, r26399, r26401, MPFR_RNDN);
        mpfr_pow(r26403, r26400, r26402, MPFR_RNDN);
        mpfr_pow(r26404, r26398, r26402, MPFR_RNDN);
        mpfr_sub(r26405, r26403, r26404, MPFR_RNDN);
        return mpfr_get_d(r26405, MPFR_RNDN);
}

static mpfr_t r26406, r26407, r26408, r26409, r26410, r26411, r26412, r26413, r26414, r26415, r26416, r26417, r26418, r26419, r26420, r26421, r26422, r26423, r26424, r26425, r26426, r26427, r26428, r26429, r26430, r26431, r26432, r26433, r26434, r26435, r26436, r26437, r26438, r26439, r26440, r26441, r26442, r26443, r26444, r26445, r26446, r26447, r26448, r26449, r26450, r26451, r26452, r26453, r26454, r26455;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r26406, "1", 10, MPFR_RNDN);
        mpfr_init(r26407);
        mpfr_init(r26408);
        mpfr_init_set_str(r26409, "-2.198416698951786e-09", 10, MPFR_RNDN);
        mpfr_init(r26410);
        mpfr_init(r26411);
        mpfr_init(r26412);
        mpfr_init(r26413);
        mpfr_init(r26414);
        mpfr_init(r26415);
        mpfr_init(r26416);
        mpfr_init(r26417);
        mpfr_init(r26418);
        mpfr_init(r26419);
        mpfr_init(r26420);
        mpfr_init(r26421);
        mpfr_init(r26422);
        mpfr_init(r26423);
        mpfr_init(r26424);
        mpfr_init(r26425);
        mpfr_init(r26426);
        mpfr_init(r26427);
        mpfr_init(r26428);
        mpfr_init_set_str(r26429, "1.0183320797097317e-17", 10, MPFR_RNDN);
        mpfr_init(r26430);
        mpfr_init(r26431);
        mpfr_init(r26432);
        mpfr_init_set_str(r26433, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26434);
        mpfr_init(r26435);
        mpfr_init(r26436);
        mpfr_init(r26437);
        mpfr_init(r26438);
        mpfr_init(r26439);
        mpfr_init(r26440);
        mpfr_init(r26441);
        mpfr_init(r26442);
        mpfr_init(r26443);
        mpfr_init(r26444);
        mpfr_init_set_str(r26445, "3", 10, MPFR_RNDN);
        mpfr_init(r26446);
        mpfr_init(r26447);
        mpfr_init(r26448);
        mpfr_init(r26449);
        mpfr_init(r26450);
        mpfr_init(r26451);
        mpfr_init(r26452);
        mpfr_init(r26453);
        mpfr_init(r26454);
        mpfr_init(r26455);
}

double f_fm(double x, double n) {
        ;
        mpfr_set_d(r26407, n, MPFR_RNDN);
        mpfr_div(r26408, r26406, r26407, MPFR_RNDN);
        ;
        mpfr_set_si(r26410, mpfr_cmp(r26408, r26409) <= 0, MPFR_RNDN);
        mpfr_set_d(r26411, x, MPFR_RNDN);
        mpfr_add(r26412, r26406, r26411, MPFR_RNDN);
        mpfr_pow(r26413, r26412, r26408, MPFR_RNDN);
        mpfr_pow(r26414, r26411, r26408, MPFR_RNDN);
        mpfr_sub(r26415, r26413, r26414, MPFR_RNDN);
        mpfr_exp(r26416, r26415, MPFR_RNDN);
        mpfr_cbrt(r26417, r26416, MPFR_RNDN);
        mpfr_mul(r26418, r26417, r26417, MPFR_RNDN);
        mpfr_log(r26419, r26418, MPFR_RNDN);
        mpfr_exp(r26420, r26413, MPFR_RNDN);
        mpfr_cbrt(r26421, r26420, MPFR_RNDN);
        mpfr_log(r26422, r26421, MPFR_RNDN);
        mpfr_neg(r26423, r26414, MPFR_RNDN);
        mpfr_exp(r26424, r26423, MPFR_RNDN);
        mpfr_cbrt(r26425, r26424, MPFR_RNDN);
        mpfr_log(r26426, r26425, MPFR_RNDN);
        mpfr_add(r26427, r26422, r26426, MPFR_RNDN);
        mpfr_add(r26428, r26419, r26427, MPFR_RNDN);
        ;
        mpfr_set_si(r26430, mpfr_cmp(r26408, r26429) <= 0, MPFR_RNDN);
        mpfr_div(r26431, r26406, r26411, MPFR_RNDN);
        mpfr_div(r26432, r26431, r26407, MPFR_RNDN);
        ;
        mpfr_div(r26434, r26433, r26407, MPFR_RNDN);
        mpfr_mul(r26435, r26411, r26411, MPFR_RNDN);
        mpfr_div(r26436, r26434, r26435, MPFR_RNDN);
        mpfr_sub(r26437, r26432, r26436, MPFR_RNDN);
        mpfr_log(r26438, r26411, MPFR_RNDN);
        mpfr_mul(r26439, r26411, r26407, MPFR_RNDN);
        mpfr_div(r26440, r26438, r26439, MPFR_RNDN);
        mpfr_div(r26441, r26440, r26407, MPFR_RNDN);
        mpfr_sub(r26442, r26437, r26441, MPFR_RNDN);
        mpfr_add(r26443, r26411, r26406, MPFR_RNDN);
        mpfr_pow(r26444, r26443, r26408, MPFR_RNDN);
        ;
        mpfr_pow(r26446, r26444, r26445, MPFR_RNDN);
        mpfr_pow(r26447, r26414, r26445, MPFR_RNDN);
        mpfr_sub(r26448, r26446, r26447, MPFR_RNDN);
        mpfr_mul(r26449, r26413, r26413, MPFR_RNDN);
        mpfr_add(r26450, r26413, r26414, MPFR_RNDN);
        mpfr_mul(r26451, r26414, r26450, MPFR_RNDN);
        mpfr_add(r26452, r26449, r26451, MPFR_RNDN);
        mpfr_div(r26453, r26448, r26452, MPFR_RNDN);
        if (mpfr_get_si(r26430, MPFR_RNDN)) { mpfr_set(r26454, r26442, MPFR_RNDN); } else { mpfr_set(r26454, r26453, MPFR_RNDN); };
        if (mpfr_get_si(r26410, MPFR_RNDN)) { mpfr_set(r26455, r26428, MPFR_RNDN); } else { mpfr_set(r26455, r26454, MPFR_RNDN); };
        return mpfr_get_d(r26455, MPFR_RNDN);
}

static mpfr_t r26456, r26457, r26458, r26459, r26460, r26461, r26462, r26463, r26464, r26465, r26466, r26467, r26468, r26469, r26470, r26471, r26472, r26473, r26474, r26475, r26476, r26477, r26478, r26479, r26480, r26481, r26482, r26483, r26484, r26485, r26486, r26487, r26488, r26489, r26490, r26491, r26492, r26493, r26494, r26495, r26496, r26497, r26498, r26499, r26500, r26501, r26502, r26503, r26504, r26505;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r26456, "1", 10, MPFR_RNDN);
        mpfr_init(r26457);
        mpfr_init(r26458);
        mpfr_init_set_str(r26459, "-2.198416698951786e-09", 10, MPFR_RNDN);
        mpfr_init(r26460);
        mpfr_init(r26461);
        mpfr_init(r26462);
        mpfr_init(r26463);
        mpfr_init(r26464);
        mpfr_init(r26465);
        mpfr_init(r26466);
        mpfr_init(r26467);
        mpfr_init(r26468);
        mpfr_init(r26469);
        mpfr_init(r26470);
        mpfr_init(r26471);
        mpfr_init(r26472);
        mpfr_init(r26473);
        mpfr_init(r26474);
        mpfr_init(r26475);
        mpfr_init(r26476);
        mpfr_init(r26477);
        mpfr_init(r26478);
        mpfr_init_set_str(r26479, "1.0183320797097317e-17", 10, MPFR_RNDN);
        mpfr_init(r26480);
        mpfr_init(r26481);
        mpfr_init(r26482);
        mpfr_init_set_str(r26483, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26484);
        mpfr_init(r26485);
        mpfr_init(r26486);
        mpfr_init(r26487);
        mpfr_init(r26488);
        mpfr_init(r26489);
        mpfr_init(r26490);
        mpfr_init(r26491);
        mpfr_init(r26492);
        mpfr_init(r26493);
        mpfr_init(r26494);
        mpfr_init_set_str(r26495, "3", 10, MPFR_RNDN);
        mpfr_init(r26496);
        mpfr_init(r26497);
        mpfr_init(r26498);
        mpfr_init(r26499);
        mpfr_init(r26500);
        mpfr_init(r26501);
        mpfr_init(r26502);
        mpfr_init(r26503);
        mpfr_init(r26504);
        mpfr_init(r26505);
}

double f_dm(double x, double n) {
        ;
        mpfr_set_d(r26457, n, MPFR_RNDN);
        mpfr_div(r26458, r26456, r26457, MPFR_RNDN);
        ;
        mpfr_set_si(r26460, mpfr_cmp(r26458, r26459) <= 0, MPFR_RNDN);
        mpfr_set_d(r26461, x, MPFR_RNDN);
        mpfr_add(r26462, r26456, r26461, MPFR_RNDN);
        mpfr_pow(r26463, r26462, r26458, MPFR_RNDN);
        mpfr_pow(r26464, r26461, r26458, MPFR_RNDN);
        mpfr_sub(r26465, r26463, r26464, MPFR_RNDN);
        mpfr_exp(r26466, r26465, MPFR_RNDN);
        mpfr_cbrt(r26467, r26466, MPFR_RNDN);
        mpfr_mul(r26468, r26467, r26467, MPFR_RNDN);
        mpfr_log(r26469, r26468, MPFR_RNDN);
        mpfr_exp(r26470, r26463, MPFR_RNDN);
        mpfr_cbrt(r26471, r26470, MPFR_RNDN);
        mpfr_log(r26472, r26471, MPFR_RNDN);
        mpfr_neg(r26473, r26464, MPFR_RNDN);
        mpfr_exp(r26474, r26473, MPFR_RNDN);
        mpfr_cbrt(r26475, r26474, MPFR_RNDN);
        mpfr_log(r26476, r26475, MPFR_RNDN);
        mpfr_add(r26477, r26472, r26476, MPFR_RNDN);
        mpfr_add(r26478, r26469, r26477, MPFR_RNDN);
        ;
        mpfr_set_si(r26480, mpfr_cmp(r26458, r26479) <= 0, MPFR_RNDN);
        mpfr_div(r26481, r26456, r26461, MPFR_RNDN);
        mpfr_div(r26482, r26481, r26457, MPFR_RNDN);
        ;
        mpfr_div(r26484, r26483, r26457, MPFR_RNDN);
        mpfr_mul(r26485, r26461, r26461, MPFR_RNDN);
        mpfr_div(r26486, r26484, r26485, MPFR_RNDN);
        mpfr_sub(r26487, r26482, r26486, MPFR_RNDN);
        mpfr_log(r26488, r26461, MPFR_RNDN);
        mpfr_mul(r26489, r26461, r26457, MPFR_RNDN);
        mpfr_div(r26490, r26488, r26489, MPFR_RNDN);
        mpfr_div(r26491, r26490, r26457, MPFR_RNDN);
        mpfr_sub(r26492, r26487, r26491, MPFR_RNDN);
        mpfr_add(r26493, r26461, r26456, MPFR_RNDN);
        mpfr_pow(r26494, r26493, r26458, MPFR_RNDN);
        ;
        mpfr_pow(r26496, r26494, r26495, MPFR_RNDN);
        mpfr_pow(r26497, r26464, r26495, MPFR_RNDN);
        mpfr_sub(r26498, r26496, r26497, MPFR_RNDN);
        mpfr_mul(r26499, r26463, r26463, MPFR_RNDN);
        mpfr_add(r26500, r26463, r26464, MPFR_RNDN);
        mpfr_mul(r26501, r26464, r26500, MPFR_RNDN);
        mpfr_add(r26502, r26499, r26501, MPFR_RNDN);
        mpfr_div(r26503, r26498, r26502, MPFR_RNDN);
        if (mpfr_get_si(r26480, MPFR_RNDN)) { mpfr_set(r26504, r26492, MPFR_RNDN); } else { mpfr_set(r26504, r26503, MPFR_RNDN); };
        if (mpfr_get_si(r26460, MPFR_RNDN)) { mpfr_set(r26505, r26478, MPFR_RNDN); } else { mpfr_set(r26505, r26504, MPFR_RNDN); };
        return mpfr_get_d(r26505, MPFR_RNDN);
}

