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

char *name = "x / (x^2 + 1)";

double f_if(float x) {
        float r33339 = x;
        float r33340 = r33339 * r33339;
        float r33341 = 1.0f;
        float r33342 = r33340 + r33341;
        float r33343 = r33339 / r33342;
        return r33343;
}

double f_id(double x) {
        double r33344 = x;
        double r33345 = r33344 * r33344;
        double r33346 = 1.0;
        double r33347 = r33345 + r33346;
        double r33348 = r33344 / r33347;
        return r33348;
}


double f_of(float x) {
        float r33349 = x;
        float r33350 = -162969717.01587787f;
        bool r33351 = r33349 <= r33350;
        float r33352 = 1.0f;
        float r33353 = r33352 / r33349;
        float r33354 = 5.0f;
        float r33355 = pow(r33349, r33354);
        float r33356 = r33352 / r33355;
        float r33357 = r33353 + r33356;
        float r33358 = 3.0f;
        float r33359 = pow(r33349, r33358);
        float r33360 = r33352 / r33359;
        float r33361 = r33357 - r33360;
        float r33362 = 38849.916482614f;
        bool r33363 = r33349 <= r33362;
        float r33364 = r33349 * r33349;
        float r33365 = r33364 * r33364;
        float r33366 = r33352 * r33352;
        float r33367 = r33365 - r33366;
        float r33368 = r33349 / r33367;
        float r33369 = r33364 - r33352;
        float r33370 = r33368 * r33369;
        float r33371 = r33363 ? r33370 : r33361;
        float r33372 = r33351 ? r33361 : r33371;
        return r33372;
}

double f_od(double x) {
        double r33373 = x;
        double r33374 = -162969717.01587787;
        bool r33375 = r33373 <= r33374;
        double r33376 = 1.0;
        double r33377 = r33376 / r33373;
        double r33378 = 5.0;
        double r33379 = pow(r33373, r33378);
        double r33380 = r33376 / r33379;
        double r33381 = r33377 + r33380;
        double r33382 = 3.0;
        double r33383 = pow(r33373, r33382);
        double r33384 = r33376 / r33383;
        double r33385 = r33381 - r33384;
        double r33386 = 38849.916482614;
        bool r33387 = r33373 <= r33386;
        double r33388 = r33373 * r33373;
        double r33389 = r33388 * r33388;
        double r33390 = r33376 * r33376;
        double r33391 = r33389 - r33390;
        double r33392 = r33373 / r33391;
        double r33393 = r33388 - r33376;
        double r33394 = r33392 * r33393;
        double r33395 = r33387 ? r33394 : r33385;
        double r33396 = r33375 ? r33385 : r33395;
        return r33396;
}

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 r33397, r33398, r33399, r33400, r33401;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r33397);
        mpfr_init(r33398);
        mpfr_init_set_str(r33399, "1", 10, MPFR_RNDN);
        mpfr_init(r33400);
        mpfr_init(r33401);
}

double f_im(double x) {
        mpfr_set_d(r33397, x, MPFR_RNDN);
        mpfr_sqr(r33398, r33397, MPFR_RNDN);
        ;
        mpfr_add(r33400, r33398, r33399, MPFR_RNDN);
        mpfr_div(r33401, r33397, r33400, MPFR_RNDN);
        return mpfr_get_d(r33401, MPFR_RNDN);
}

static mpfr_t r33402, r33403, r33404, r33405, r33406, r33407, r33408, r33409, r33410, r33411, r33412, r33413, r33414, r33415, r33416, r33417, r33418, r33419, r33420, r33421, r33422, r33423, r33424, r33425;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r33402);
        mpfr_init_set_str(r33403, "-162969717.01587787", 10, MPFR_RNDN);
        mpfr_init(r33404);
        mpfr_init_set_str(r33405, "1", 10, MPFR_RNDN);
        mpfr_init(r33406);
        mpfr_init_set_str(r33407, "5", 10, MPFR_RNDN);
        mpfr_init(r33408);
        mpfr_init(r33409);
        mpfr_init(r33410);
        mpfr_init_set_str(r33411, "3", 10, MPFR_RNDN);
        mpfr_init(r33412);
        mpfr_init(r33413);
        mpfr_init(r33414);
        mpfr_init_set_str(r33415, "38849.916482614", 10, MPFR_RNDN);
        mpfr_init(r33416);
        mpfr_init(r33417);
        mpfr_init(r33418);
        mpfr_init(r33419);
        mpfr_init(r33420);
        mpfr_init(r33421);
        mpfr_init(r33422);
        mpfr_init(r33423);
        mpfr_init(r33424);
        mpfr_init(r33425);
}

double f_fm(double x) {
        mpfr_set_d(r33402, x, MPFR_RNDN);
        ;
        mpfr_set_si(r33404, mpfr_cmp(r33402, r33403) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r33406, r33405, r33402, MPFR_RNDN);
        ;
        mpfr_pow(r33408, r33402, r33407, MPFR_RNDN);
        mpfr_div(r33409, r33405, r33408, MPFR_RNDN);
        mpfr_add(r33410, r33406, r33409, MPFR_RNDN);
        ;
        mpfr_pow(r33412, r33402, r33411, MPFR_RNDN);
        mpfr_div(r33413, r33405, r33412, MPFR_RNDN);
        mpfr_sub(r33414, r33410, r33413, MPFR_RNDN);
        ;
        mpfr_set_si(r33416, mpfr_cmp(r33402, r33415) <= 0, MPFR_RNDN);
        mpfr_sqr(r33417, r33402, MPFR_RNDN);
        mpfr_sqr(r33418, r33417, MPFR_RNDN);
        mpfr_sqr(r33419, r33405, MPFR_RNDN);
        mpfr_sub(r33420, r33418, r33419, MPFR_RNDN);
        mpfr_div(r33421, r33402, r33420, MPFR_RNDN);
        mpfr_sub(r33422, r33417, r33405, MPFR_RNDN);
        mpfr_mul(r33423, r33421, r33422, MPFR_RNDN);
        if (mpfr_get_si(r33416, MPFR_RNDN)) { mpfr_set(r33424, r33423, MPFR_RNDN); } else { mpfr_set(r33424, r33414, MPFR_RNDN); };
        if (mpfr_get_si(r33404, MPFR_RNDN)) { mpfr_set(r33425, r33414, MPFR_RNDN); } else { mpfr_set(r33425, r33424, MPFR_RNDN); };
        return mpfr_get_d(r33425, MPFR_RNDN);
}

static mpfr_t r33426, r33427, r33428, r33429, r33430, r33431, r33432, r33433, r33434, r33435, r33436, r33437, r33438, r33439, r33440, r33441, r33442, r33443, r33444, r33445, r33446, r33447, r33448, r33449;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r33426);
        mpfr_init_set_str(r33427, "-162969717.01587787", 10, MPFR_RNDN);
        mpfr_init(r33428);
        mpfr_init_set_str(r33429, "1", 10, MPFR_RNDN);
        mpfr_init(r33430);
        mpfr_init_set_str(r33431, "5", 10, MPFR_RNDN);
        mpfr_init(r33432);
        mpfr_init(r33433);
        mpfr_init(r33434);
        mpfr_init_set_str(r33435, "3", 10, MPFR_RNDN);
        mpfr_init(r33436);
        mpfr_init(r33437);
        mpfr_init(r33438);
        mpfr_init_set_str(r33439, "38849.916482614", 10, MPFR_RNDN);
        mpfr_init(r33440);
        mpfr_init(r33441);
        mpfr_init(r33442);
        mpfr_init(r33443);
        mpfr_init(r33444);
        mpfr_init(r33445);
        mpfr_init(r33446);
        mpfr_init(r33447);
        mpfr_init(r33448);
        mpfr_init(r33449);
}

double f_dm(double x) {
        mpfr_set_d(r33426, x, MPFR_RNDN);
        ;
        mpfr_set_si(r33428, mpfr_cmp(r33426, r33427) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r33430, r33429, r33426, MPFR_RNDN);
        ;
        mpfr_pow(r33432, r33426, r33431, MPFR_RNDN);
        mpfr_div(r33433, r33429, r33432, MPFR_RNDN);
        mpfr_add(r33434, r33430, r33433, MPFR_RNDN);
        ;
        mpfr_pow(r33436, r33426, r33435, MPFR_RNDN);
        mpfr_div(r33437, r33429, r33436, MPFR_RNDN);
        mpfr_sub(r33438, r33434, r33437, MPFR_RNDN);
        ;
        mpfr_set_si(r33440, mpfr_cmp(r33426, r33439) <= 0, MPFR_RNDN);
        mpfr_sqr(r33441, r33426, MPFR_RNDN);
        mpfr_sqr(r33442, r33441, MPFR_RNDN);
        mpfr_sqr(r33443, r33429, MPFR_RNDN);
        mpfr_sub(r33444, r33442, r33443, MPFR_RNDN);
        mpfr_div(r33445, r33426, r33444, MPFR_RNDN);
        mpfr_sub(r33446, r33441, r33429, MPFR_RNDN);
        mpfr_mul(r33447, r33445, r33446, MPFR_RNDN);
        if (mpfr_get_si(r33440, MPFR_RNDN)) { mpfr_set(r33448, r33447, MPFR_RNDN); } else { mpfr_set(r33448, r33438, MPFR_RNDN); };
        if (mpfr_get_si(r33428, MPFR_RNDN)) { mpfr_set(r33449, r33438, MPFR_RNDN); } else { mpfr_set(r33449, r33448, MPFR_RNDN); };
        return mpfr_get_d(r33449, MPFR_RNDN);
}

