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

char *name = "zero or two";

double f_if(float x) {
        float r163257 = x;
        float r163258 = r163257 / r163257;
        float r163259 = 1;
        float r163260 = r163259 / r163257;
        float r163261 = r163257 * r163257;
        float r163262 = sqrt(r163261);
        float r163263 = r163260 * r163262;
        float r163264 = r163258 - r163263;
        return r163264;
}

double f_id(double x) {
        double r163265 = x;
        double r163266 = r163265 / r163265;
        double r163267 = 1;
        double r163268 = r163267 / r163265;
        double r163269 = r163265 * r163265;
        double r163270 = sqrt(r163269);
        double r163271 = r163268 * r163270;
        double r163272 = r163266 - r163271;
        return r163272;
}


double f_of(float x) {
        float r163273 = x;
        float r163274 = -6.5674181107811e-310;
        bool r163275 = r163273 <= r163274;
        float r163276 = 2;
        float r163277 = 0;
        float r163278 = r163275 ? r163276 : r163277;
        return r163278;
}

double f_od(double x) {
        double r163279 = x;
        double r163280 = -6.5674181107811e-310;
        bool r163281 = r163279 <= r163280;
        double r163282 = 2;
        double r163283 = 0;
        double r163284 = r163281 ? r163282 : r163283;
        return r163284;
}

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 r163285, r163286, r163287, r163288, r163289, r163290, r163291, r163292;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r163285);
        mpfr_init(r163286);
        mpfr_init_set_str(r163287, "1", 10, MPFR_RNDN);
        mpfr_init(r163288);
        mpfr_init(r163289);
        mpfr_init(r163290);
        mpfr_init(r163291);
        mpfr_init(r163292);
}

double f_im(double x) {
        mpfr_set_d(r163285, x, MPFR_RNDN);
        mpfr_div(r163286, r163285, r163285, MPFR_RNDN);
        ;
        mpfr_div(r163288, r163287, r163285, MPFR_RNDN);
        mpfr_mul(r163289, r163285, r163285, MPFR_RNDN);
        mpfr_sqrt(r163290, r163289, MPFR_RNDN);
        mpfr_mul(r163291, r163288, r163290, MPFR_RNDN);
        mpfr_sub(r163292, r163286, r163291, MPFR_RNDN);
        return mpfr_get_d(r163292, MPFR_RNDN);
}

static mpfr_t r163293, r163294, r163295, r163296, r163297, r163298;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r163293);
        mpfr_init_set_str(r163294, "-6.5674181107811e-310", 10, MPFR_RNDN);
        mpfr_init(r163295);
        mpfr_init_set_str(r163296, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r163297, "0", 10, MPFR_RNDN);
        mpfr_init(r163298);
}

double f_fm(double x) {
        mpfr_set_d(r163293, x, MPFR_RNDN);
        ;
        mpfr_set_si(r163295, mpfr_cmp(r163293, r163294) <= 0, MPFR_RNDN);
        ;
        ;
        if (mpfr_get_si(r163295, MPFR_RNDN)) { mpfr_set(r163298, r163296, MPFR_RNDN); } else { mpfr_set(r163298, r163297, MPFR_RNDN); };
        return mpfr_get_d(r163298, MPFR_RNDN);
}

static mpfr_t r163299, r163300, r163301, r163302, r163303, r163304;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r163299);
        mpfr_init_set_str(r163300, "-6.5674181107811e-310", 10, MPFR_RNDN);
        mpfr_init(r163301);
        mpfr_init_set_str(r163302, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r163303, "0", 10, MPFR_RNDN);
        mpfr_init(r163304);
}

double f_dm(double x) {
        mpfr_set_d(r163299, x, MPFR_RNDN);
        ;
        mpfr_set_si(r163301, mpfr_cmp(r163299, r163300) <= 0, MPFR_RNDN);
        ;
        ;
        if (mpfr_get_si(r163301, MPFR_RNDN)) { mpfr_set(r163304, r163302, MPFR_RNDN); } else { mpfr_set(r163304, r163303, MPFR_RNDN); };
        return mpfr_get_d(r163304, MPFR_RNDN);
}

