#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 r37403 = x;
        float r37404 = r37403 * r37403;
        float r37405 = 1;
        float r37406 = r37404 + r37405;
        float r37407 = r37403 / r37406;
        return r37407;
}

double f_id(double x) {
        double r37408 = x;
        double r37409 = r37408 * r37408;
        double r37410 = 1;
        double r37411 = r37409 + r37410;
        double r37412 = r37408 / r37411;
        return r37412;
}


double f_of(float x) {
        float r37413 = x;
        float r37414 = -28.696850627339362;
        bool r37415 = r37413 <= r37414;
        float r37416 = 1;
        float r37417 = 5;
        float r37418 = pow(r37413, r37417);
        float r37419 = r37416 / r37418;
        float r37420 = r37416 / r37413;
        float r37421 = r37419 + r37420;
        float r37422 = 3;
        float r37423 = pow(r37413, r37422);
        float r37424 = r37416 / r37423;
        float r37425 = r37421 - r37424;
        float r37426 = 6031115.829667645;
        bool r37427 = r37413 <= r37426;
        float r37428 = r37413 * r37413;
        float r37429 = r37428 + r37416;
        float r37430 = r37413 / r37429;
        float r37431 = r37427 ? r37430 : r37425;
        float r37432 = r37415 ? r37425 : r37431;
        return r37432;
}

double f_od(double x) {
        double r37433 = x;
        double r37434 = -28.696850627339362;
        bool r37435 = r37433 <= r37434;
        double r37436 = 1;
        double r37437 = 5;
        double r37438 = pow(r37433, r37437);
        double r37439 = r37436 / r37438;
        double r37440 = r37436 / r37433;
        double r37441 = r37439 + r37440;
        double r37442 = 3;
        double r37443 = pow(r37433, r37442);
        double r37444 = r37436 / r37443;
        double r37445 = r37441 - r37444;
        double r37446 = 6031115.829667645;
        bool r37447 = r37433 <= r37446;
        double r37448 = r37433 * r37433;
        double r37449 = r37448 + r37436;
        double r37450 = r37433 / r37449;
        double r37451 = r37447 ? r37450 : r37445;
        double r37452 = r37435 ? r37445 : r37451;
        return r37452;
}

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 r37453, r37454, r37455, r37456, r37457;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r37453);
        mpfr_init(r37454);
        mpfr_init_set_str(r37455, "1", 10, MPFR_RNDN);
        mpfr_init(r37456);
        mpfr_init(r37457);
}

double f_im(double x) {
        mpfr_set_d(r37453, x, MPFR_RNDN);
        mpfr_mul(r37454, r37453, r37453, MPFR_RNDN);
        ;
        mpfr_add(r37456, r37454, r37455, MPFR_RNDN);
        mpfr_div(r37457, r37453, r37456, MPFR_RNDN);
        return mpfr_get_d(r37457, MPFR_RNDN);
}

static mpfr_t r37458, r37459, r37460, r37461, r37462, r37463, r37464, r37465, r37466, r37467, r37468, r37469, r37470, r37471, r37472, r37473, r37474, r37475, r37476, r37477;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r37458);
        mpfr_init_set_str(r37459, "-28.696850627339362", 10, MPFR_RNDN);
        mpfr_init(r37460);
        mpfr_init_set_str(r37461, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r37462, "5", 10, MPFR_RNDN);
        mpfr_init(r37463);
        mpfr_init(r37464);
        mpfr_init(r37465);
        mpfr_init(r37466);
        mpfr_init_set_str(r37467, "3", 10, MPFR_RNDN);
        mpfr_init(r37468);
        mpfr_init(r37469);
        mpfr_init(r37470);
        mpfr_init_set_str(r37471, "6031115.829667645", 10, MPFR_RNDN);
        mpfr_init(r37472);
        mpfr_init(r37473);
        mpfr_init(r37474);
        mpfr_init(r37475);
        mpfr_init(r37476);
        mpfr_init(r37477);
}

double f_fm(double x) {
        mpfr_set_d(r37458, x, MPFR_RNDN);
        ;
        mpfr_set_si(r37460, mpfr_cmp(r37458, r37459) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r37463, r37458, r37462, MPFR_RNDN);
        mpfr_div(r37464, r37461, r37463, MPFR_RNDN);
        mpfr_div(r37465, r37461, r37458, MPFR_RNDN);
        mpfr_add(r37466, r37464, r37465, MPFR_RNDN);
        ;
        mpfr_pow(r37468, r37458, r37467, MPFR_RNDN);
        mpfr_div(r37469, r37461, r37468, MPFR_RNDN);
        mpfr_sub(r37470, r37466, r37469, MPFR_RNDN);
        ;
        mpfr_set_si(r37472, mpfr_cmp(r37458, r37471) <= 0, MPFR_RNDN);
        mpfr_mul(r37473, r37458, r37458, MPFR_RNDN);
        mpfr_add(r37474, r37473, r37461, MPFR_RNDN);
        mpfr_div(r37475, r37458, r37474, MPFR_RNDN);
        if (mpfr_get_si(r37472, MPFR_RNDN)) { mpfr_set(r37476, r37475, MPFR_RNDN); } else { mpfr_set(r37476, r37470, MPFR_RNDN); };
        if (mpfr_get_si(r37460, MPFR_RNDN)) { mpfr_set(r37477, r37470, MPFR_RNDN); } else { mpfr_set(r37477, r37476, MPFR_RNDN); };
        return mpfr_get_d(r37477, MPFR_RNDN);
}

static mpfr_t r37478, r37479, r37480, r37481, r37482, r37483, r37484, r37485, r37486, r37487, r37488, r37489, r37490, r37491, r37492, r37493, r37494, r37495, r37496, r37497;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r37478);
        mpfr_init_set_str(r37479, "-28.696850627339362", 10, MPFR_RNDN);
        mpfr_init(r37480);
        mpfr_init_set_str(r37481, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r37482, "5", 10, MPFR_RNDN);
        mpfr_init(r37483);
        mpfr_init(r37484);
        mpfr_init(r37485);
        mpfr_init(r37486);
        mpfr_init_set_str(r37487, "3", 10, MPFR_RNDN);
        mpfr_init(r37488);
        mpfr_init(r37489);
        mpfr_init(r37490);
        mpfr_init_set_str(r37491, "6031115.829667645", 10, MPFR_RNDN);
        mpfr_init(r37492);
        mpfr_init(r37493);
        mpfr_init(r37494);
        mpfr_init(r37495);
        mpfr_init(r37496);
        mpfr_init(r37497);
}

double f_dm(double x) {
        mpfr_set_d(r37478, x, MPFR_RNDN);
        ;
        mpfr_set_si(r37480, mpfr_cmp(r37478, r37479) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r37483, r37478, r37482, MPFR_RNDN);
        mpfr_div(r37484, r37481, r37483, MPFR_RNDN);
        mpfr_div(r37485, r37481, r37478, MPFR_RNDN);
        mpfr_add(r37486, r37484, r37485, MPFR_RNDN);
        ;
        mpfr_pow(r37488, r37478, r37487, MPFR_RNDN);
        mpfr_div(r37489, r37481, r37488, MPFR_RNDN);
        mpfr_sub(r37490, r37486, r37489, MPFR_RNDN);
        ;
        mpfr_set_si(r37492, mpfr_cmp(r37478, r37491) <= 0, MPFR_RNDN);
        mpfr_mul(r37493, r37478, r37478, MPFR_RNDN);
        mpfr_add(r37494, r37493, r37481, MPFR_RNDN);
        mpfr_div(r37495, r37478, r37494, MPFR_RNDN);
        if (mpfr_get_si(r37492, MPFR_RNDN)) { mpfr_set(r37496, r37495, MPFR_RNDN); } else { mpfr_set(r37496, r37490, MPFR_RNDN); };
        if (mpfr_get_si(r37480, MPFR_RNDN)) { mpfr_set(r37497, r37490, MPFR_RNDN); } else { mpfr_set(r37497, r37496, MPFR_RNDN); };
        return mpfr_get_d(r37497, MPFR_RNDN);
}

