#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 r22520 = x;
        float r22521 = r22520 * r22520;
        float r22522 = 1;
        float r22523 = r22521 + r22522;
        float r22524 = r22520 / r22523;
        return r22524;
}

double f_id(double x) {
        double r22525 = x;
        double r22526 = r22525 * r22525;
        double r22527 = 1;
        double r22528 = r22526 + r22527;
        double r22529 = r22525 / r22528;
        return r22529;
}


double f_of(float x) {
        float r22530 = x;
        float r22531 = -11608.516396652803;
        bool r22532 = r22530 <= r22531;
        float r22533 = 1;
        float r22534 = 5;
        float r22535 = pow(r22530, r22534);
        float r22536 = r22533 / r22535;
        float r22537 = r22533 / r22530;
        float r22538 = r22536 + r22537;
        float r22539 = 3;
        float r22540 = pow(r22530, r22539);
        float r22541 = r22533 / r22540;
        float r22542 = r22538 - r22541;
        float r22543 = 4945.748632336349;
        bool r22544 = r22530 <= r22543;
        float r22545 = r22530 * r22530;
        float r22546 = r22545 + r22533;
        float r22547 = r22530 / r22546;
        float r22548 = r22544 ? r22547 : r22542;
        float r22549 = r22532 ? r22542 : r22548;
        return r22549;
}

double f_od(double x) {
        double r22550 = x;
        double r22551 = -11608.516396652803;
        bool r22552 = r22550 <= r22551;
        double r22553 = 1;
        double r22554 = 5;
        double r22555 = pow(r22550, r22554);
        double r22556 = r22553 / r22555;
        double r22557 = r22553 / r22550;
        double r22558 = r22556 + r22557;
        double r22559 = 3;
        double r22560 = pow(r22550, r22559);
        double r22561 = r22553 / r22560;
        double r22562 = r22558 - r22561;
        double r22563 = 4945.748632336349;
        bool r22564 = r22550 <= r22563;
        double r22565 = r22550 * r22550;
        double r22566 = r22565 + r22553;
        double r22567 = r22550 / r22566;
        double r22568 = r22564 ? r22567 : r22562;
        double r22569 = r22552 ? r22562 : r22568;
        return r22569;
}

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 r22570, r22571, r22572, r22573, r22574;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(272);
        mpfr_init(r22570);
        mpfr_init(r22571);
        mpfr_init_set_str(r22572, "1", 10, MPFR_RNDN);
        mpfr_init(r22573);
        mpfr_init(r22574);
}

double f_im(double x) {
        mpfr_set_d(r22570, x, MPFR_RNDN);
        mpfr_mul(r22571, r22570, r22570, MPFR_RNDN);
        ;
        mpfr_add(r22573, r22571, r22572, MPFR_RNDN);
        mpfr_div(r22574, r22570, r22573, MPFR_RNDN);
        return mpfr_get_d(r22574, MPFR_RNDN);
}

static mpfr_t r22575, r22576, r22577, r22578, r22579, r22580, r22581, r22582, r22583, r22584, r22585, r22586, r22587, r22588, r22589, r22590, r22591, r22592, r22593, r22594;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(272);
        mpfr_init(r22575);
        mpfr_init_set_str(r22576, "-11608.516396652803", 10, MPFR_RNDN);
        mpfr_init(r22577);
        mpfr_init_set_str(r22578, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r22579, "5", 10, MPFR_RNDN);
        mpfr_init(r22580);
        mpfr_init(r22581);
        mpfr_init(r22582);
        mpfr_init(r22583);
        mpfr_init_set_str(r22584, "3", 10, MPFR_RNDN);
        mpfr_init(r22585);
        mpfr_init(r22586);
        mpfr_init(r22587);
        mpfr_init_set_str(r22588, "4945.748632336349", 10, MPFR_RNDN);
        mpfr_init(r22589);
        mpfr_init(r22590);
        mpfr_init(r22591);
        mpfr_init(r22592);
        mpfr_init(r22593);
        mpfr_init(r22594);
}

double f_fm(double x) {
        mpfr_set_d(r22575, x, MPFR_RNDN);
        ;
        mpfr_set_si(r22577, mpfr_cmp(r22575, r22576) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r22580, r22575, r22579, MPFR_RNDN);
        mpfr_div(r22581, r22578, r22580, MPFR_RNDN);
        mpfr_div(r22582, r22578, r22575, MPFR_RNDN);
        mpfr_add(r22583, r22581, r22582, MPFR_RNDN);
        ;
        mpfr_pow(r22585, r22575, r22584, MPFR_RNDN);
        mpfr_div(r22586, r22578, r22585, MPFR_RNDN);
        mpfr_sub(r22587, r22583, r22586, MPFR_RNDN);
        ;
        mpfr_set_si(r22589, mpfr_cmp(r22575, r22588) <= 0, MPFR_RNDN);
        mpfr_mul(r22590, r22575, r22575, MPFR_RNDN);
        mpfr_add(r22591, r22590, r22578, MPFR_RNDN);
        mpfr_div(r22592, r22575, r22591, MPFR_RNDN);
        if (mpfr_get_si(r22589, MPFR_RNDN)) { mpfr_set(r22593, r22592, MPFR_RNDN); } else { mpfr_set(r22593, r22587, MPFR_RNDN); };
        if (mpfr_get_si(r22577, MPFR_RNDN)) { mpfr_set(r22594, r22587, MPFR_RNDN); } else { mpfr_set(r22594, r22593, MPFR_RNDN); };
        return mpfr_get_d(r22594, MPFR_RNDN);
}

static mpfr_t r22595, r22596, r22597, r22598, r22599, r22600, r22601, r22602, r22603, r22604, r22605, r22606, r22607, r22608, r22609, r22610, r22611, r22612, r22613, r22614;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(272);
        mpfr_init(r22595);
        mpfr_init_set_str(r22596, "-11608.516396652803", 10, MPFR_RNDN);
        mpfr_init(r22597);
        mpfr_init_set_str(r22598, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r22599, "5", 10, MPFR_RNDN);
        mpfr_init(r22600);
        mpfr_init(r22601);
        mpfr_init(r22602);
        mpfr_init(r22603);
        mpfr_init_set_str(r22604, "3", 10, MPFR_RNDN);
        mpfr_init(r22605);
        mpfr_init(r22606);
        mpfr_init(r22607);
        mpfr_init_set_str(r22608, "4945.748632336349", 10, MPFR_RNDN);
        mpfr_init(r22609);
        mpfr_init(r22610);
        mpfr_init(r22611);
        mpfr_init(r22612);
        mpfr_init(r22613);
        mpfr_init(r22614);
}

double f_dm(double x) {
        mpfr_set_d(r22595, x, MPFR_RNDN);
        ;
        mpfr_set_si(r22597, mpfr_cmp(r22595, r22596) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r22600, r22595, r22599, MPFR_RNDN);
        mpfr_div(r22601, r22598, r22600, MPFR_RNDN);
        mpfr_div(r22602, r22598, r22595, MPFR_RNDN);
        mpfr_add(r22603, r22601, r22602, MPFR_RNDN);
        ;
        mpfr_pow(r22605, r22595, r22604, MPFR_RNDN);
        mpfr_div(r22606, r22598, r22605, MPFR_RNDN);
        mpfr_sub(r22607, r22603, r22606, MPFR_RNDN);
        ;
        mpfr_set_si(r22609, mpfr_cmp(r22595, r22608) <= 0, MPFR_RNDN);
        mpfr_mul(r22610, r22595, r22595, MPFR_RNDN);
        mpfr_add(r22611, r22610, r22598, MPFR_RNDN);
        mpfr_div(r22612, r22595, r22611, MPFR_RNDN);
        if (mpfr_get_si(r22609, MPFR_RNDN)) { mpfr_set(r22613, r22612, MPFR_RNDN); } else { mpfr_set(r22613, r22607, MPFR_RNDN); };
        if (mpfr_get_si(r22597, MPFR_RNDN)) { mpfr_set(r22614, r22607, MPFR_RNDN); } else { mpfr_set(r22614, r22613, MPFR_RNDN); };
        return mpfr_get_d(r22614, MPFR_RNDN);
}

