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

char *name = "fabs fraction 1";

double f_if(float x, float y, float z) {
        float r8238 = x;
        float r8239 = 4.0f;
        float r8240 = r8238 + r8239;
        float r8241 = y;
        float r8242 = r8240 / r8241;
        float r8243 = r8238 / r8241;
        float r8244 = z;
        float r8245 = r8243 * r8244;
        float r8246 = r8242 - r8245;
        float r8247 = fabs(r8246);
        return r8247;
}

double f_id(double x, double y, double z) {
        double r8248 = x;
        double r8249 = 4.0;
        double r8250 = r8248 + r8249;
        double r8251 = y;
        double r8252 = r8250 / r8251;
        double r8253 = r8248 / r8251;
        double r8254 = z;
        double r8255 = r8253 * r8254;
        double r8256 = r8252 - r8255;
        double r8257 = fabs(r8256);
        return r8257;
}


double f_of(float x, float y, float z) {
        float r8258 = 4.0f;
        float r8259 = x;
        float r8260 = r8258 + r8259;
        float r8261 = y;
        float r8262 = r8260 / r8261;
        float r8263 = z;
        float r8264 = r8263 * r8259;
        float r8265 = r8264 / r8261;
        float r8266 = r8262 - r8265;
        float r8267 = -1.5947771882232943e+306f;
        bool r8268 = r8266 <= r8267;
        float r8269 = cbrt(r8262);
        float r8270 = r8269 * r8269;
        float r8271 = r8269 * r8270;
        float r8272 = r8259 / r8261;
        float r8273 = r8272 * r8263;
        float r8274 = r8271 - r8273;
        float r8275 = fabs(r8274);
        float r8276 = 4.4813670005192934e+231f;
        bool r8277 = r8266 <= r8276;
        float r8278 = fabs(r8266);
        float r8279 = r8258 / r8261;
        float r8280 = r8279 + r8272;
        float r8281 = r8261 / r8259;
        float r8282 = r8263 / r8281;
        float r8283 = r8280 - r8282;
        float r8284 = fabs(r8283);
        float r8285 = r8277 ? r8278 : r8284;
        float r8286 = r8268 ? r8275 : r8285;
        return r8286;
}

double f_od(double x, double y, double z) {
        double r8287 = 4.0;
        double r8288 = x;
        double r8289 = r8287 + r8288;
        double r8290 = y;
        double r8291 = r8289 / r8290;
        double r8292 = z;
        double r8293 = r8292 * r8288;
        double r8294 = r8293 / r8290;
        double r8295 = r8291 - r8294;
        double r8296 = -1.5947771882232943e+306;
        bool r8297 = r8295 <= r8296;
        double r8298 = cbrt(r8291);
        double r8299 = r8298 * r8298;
        double r8300 = r8298 * r8299;
        double r8301 = r8288 / r8290;
        double r8302 = r8301 * r8292;
        double r8303 = r8300 - r8302;
        double r8304 = fabs(r8303);
        double r8305 = 4.4813670005192934e+231;
        bool r8306 = r8295 <= r8305;
        double r8307 = fabs(r8295);
        double r8308 = r8287 / r8290;
        double r8309 = r8308 + r8301;
        double r8310 = r8290 / r8288;
        double r8311 = r8292 / r8310;
        double r8312 = r8309 - r8311;
        double r8313 = fabs(r8312);
        double r8314 = r8306 ? r8307 : r8313;
        double r8315 = r8297 ? r8304 : r8314;
        return r8315;
}

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 r8316, r8317, r8318, r8319, r8320, r8321, r8322, r8323, r8324, r8325;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8316);
        mpfr_init_set_str(r8317, "4", 10, MPFR_RNDN);
        mpfr_init(r8318);
        mpfr_init(r8319);
        mpfr_init(r8320);
        mpfr_init(r8321);
        mpfr_init(r8322);
        mpfr_init(r8323);
        mpfr_init(r8324);
        mpfr_init(r8325);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r8316, x, MPFR_RNDN);
        ;
        mpfr_add(r8318, r8316, r8317, MPFR_RNDN);
        mpfr_set_d(r8319, y, MPFR_RNDN);
        mpfr_div(r8320, r8318, r8319, MPFR_RNDN);
        mpfr_div(r8321, r8316, r8319, MPFR_RNDN);
        mpfr_set_d(r8322, z, MPFR_RNDN);
        mpfr_mul(r8323, r8321, r8322, MPFR_RNDN);
        mpfr_sub(r8324, r8320, r8323, MPFR_RNDN);
        mpfr_abs(r8325, r8324, MPFR_RNDN);
        return mpfr_get_d(r8325, MPFR_RNDN);
}

static mpfr_t r8326, r8327, r8328, r8329, r8330, r8331, r8332, r8333, r8334, r8335, r8336, r8337, r8338, r8339, r8340, r8341, r8342, r8343, r8344, r8345, r8346, r8347, r8348, r8349, r8350, r8351, r8352, r8353, r8354;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8326, "4", 10, MPFR_RNDN);
        mpfr_init(r8327);
        mpfr_init(r8328);
        mpfr_init(r8329);
        mpfr_init(r8330);
        mpfr_init(r8331);
        mpfr_init(r8332);
        mpfr_init(r8333);
        mpfr_init(r8334);
        mpfr_init_set_str(r8335, "-1.5947771882232943e+306", 10, MPFR_RNDN);
        mpfr_init(r8336);
        mpfr_init(r8337);
        mpfr_init(r8338);
        mpfr_init(r8339);
        mpfr_init(r8340);
        mpfr_init(r8341);
        mpfr_init(r8342);
        mpfr_init(r8343);
        mpfr_init_set_str(r8344, "4.4813670005192934e+231", 10, MPFR_RNDN);
        mpfr_init(r8345);
        mpfr_init(r8346);
        mpfr_init(r8347);
        mpfr_init(r8348);
        mpfr_init(r8349);
        mpfr_init(r8350);
        mpfr_init(r8351);
        mpfr_init(r8352);
        mpfr_init(r8353);
        mpfr_init(r8354);
}

double f_fm(double x, double y, double z) {
        ;
        mpfr_set_d(r8327, x, MPFR_RNDN);
        mpfr_add(r8328, r8326, r8327, MPFR_RNDN);
        mpfr_set_d(r8329, y, MPFR_RNDN);
        mpfr_div(r8330, r8328, r8329, MPFR_RNDN);
        mpfr_set_d(r8331, z, MPFR_RNDN);
        mpfr_mul(r8332, r8331, r8327, MPFR_RNDN);
        mpfr_div(r8333, r8332, r8329, MPFR_RNDN);
        mpfr_sub(r8334, r8330, r8333, MPFR_RNDN);
        ;
        mpfr_set_si(r8336, mpfr_cmp(r8334, r8335) <= 0, MPFR_RNDN);
        mpfr_cbrt(r8337, r8330, MPFR_RNDN);
        mpfr_mul(r8338, r8337, r8337, MPFR_RNDN);
        mpfr_mul(r8339, r8337, r8338, MPFR_RNDN);
        mpfr_div(r8340, r8327, r8329, MPFR_RNDN);
        mpfr_mul(r8341, r8340, r8331, MPFR_RNDN);
        mpfr_sub(r8342, r8339, r8341, MPFR_RNDN);
        mpfr_abs(r8343, r8342, MPFR_RNDN);
        ;
        mpfr_set_si(r8345, mpfr_cmp(r8334, r8344) <= 0, MPFR_RNDN);
        mpfr_abs(r8346, r8334, MPFR_RNDN);
        mpfr_div(r8347, r8326, r8329, MPFR_RNDN);
        mpfr_add(r8348, r8347, r8340, MPFR_RNDN);
        mpfr_div(r8349, r8329, r8327, MPFR_RNDN);
        mpfr_div(r8350, r8331, r8349, MPFR_RNDN);
        mpfr_sub(r8351, r8348, r8350, MPFR_RNDN);
        mpfr_abs(r8352, r8351, MPFR_RNDN);
        if (mpfr_get_si(r8345, MPFR_RNDN)) { mpfr_set(r8353, r8346, MPFR_RNDN); } else { mpfr_set(r8353, r8352, MPFR_RNDN); };
        if (mpfr_get_si(r8336, MPFR_RNDN)) { mpfr_set(r8354, r8343, MPFR_RNDN); } else { mpfr_set(r8354, r8353, MPFR_RNDN); };
        return mpfr_get_d(r8354, MPFR_RNDN);
}

static mpfr_t r8355, r8356, r8357, r8358, r8359, r8360, r8361, r8362, r8363, r8364, r8365, r8366, r8367, r8368, r8369, r8370, r8371, r8372, r8373, r8374, r8375, r8376, r8377, r8378, r8379, r8380, r8381, r8382, r8383;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8355, "4", 10, MPFR_RNDN);
        mpfr_init(r8356);
        mpfr_init(r8357);
        mpfr_init(r8358);
        mpfr_init(r8359);
        mpfr_init(r8360);
        mpfr_init(r8361);
        mpfr_init(r8362);
        mpfr_init(r8363);
        mpfr_init_set_str(r8364, "-1.5947771882232943e+306", 10, MPFR_RNDN);
        mpfr_init(r8365);
        mpfr_init(r8366);
        mpfr_init(r8367);
        mpfr_init(r8368);
        mpfr_init(r8369);
        mpfr_init(r8370);
        mpfr_init(r8371);
        mpfr_init(r8372);
        mpfr_init_set_str(r8373, "4.4813670005192934e+231", 10, MPFR_RNDN);
        mpfr_init(r8374);
        mpfr_init(r8375);
        mpfr_init(r8376);
        mpfr_init(r8377);
        mpfr_init(r8378);
        mpfr_init(r8379);
        mpfr_init(r8380);
        mpfr_init(r8381);
        mpfr_init(r8382);
        mpfr_init(r8383);
}

double f_dm(double x, double y, double z) {
        ;
        mpfr_set_d(r8356, x, MPFR_RNDN);
        mpfr_add(r8357, r8355, r8356, MPFR_RNDN);
        mpfr_set_d(r8358, y, MPFR_RNDN);
        mpfr_div(r8359, r8357, r8358, MPFR_RNDN);
        mpfr_set_d(r8360, z, MPFR_RNDN);
        mpfr_mul(r8361, r8360, r8356, MPFR_RNDN);
        mpfr_div(r8362, r8361, r8358, MPFR_RNDN);
        mpfr_sub(r8363, r8359, r8362, MPFR_RNDN);
        ;
        mpfr_set_si(r8365, mpfr_cmp(r8363, r8364) <= 0, MPFR_RNDN);
        mpfr_cbrt(r8366, r8359, MPFR_RNDN);
        mpfr_mul(r8367, r8366, r8366, MPFR_RNDN);
        mpfr_mul(r8368, r8366, r8367, MPFR_RNDN);
        mpfr_div(r8369, r8356, r8358, MPFR_RNDN);
        mpfr_mul(r8370, r8369, r8360, MPFR_RNDN);
        mpfr_sub(r8371, r8368, r8370, MPFR_RNDN);
        mpfr_abs(r8372, r8371, MPFR_RNDN);
        ;
        mpfr_set_si(r8374, mpfr_cmp(r8363, r8373) <= 0, MPFR_RNDN);
        mpfr_abs(r8375, r8363, MPFR_RNDN);
        mpfr_div(r8376, r8355, r8358, MPFR_RNDN);
        mpfr_add(r8377, r8376, r8369, MPFR_RNDN);
        mpfr_div(r8378, r8358, r8356, MPFR_RNDN);
        mpfr_div(r8379, r8360, r8378, MPFR_RNDN);
        mpfr_sub(r8380, r8377, r8379, MPFR_RNDN);
        mpfr_abs(r8381, r8380, MPFR_RNDN);
        if (mpfr_get_si(r8374, MPFR_RNDN)) { mpfr_set(r8382, r8375, MPFR_RNDN); } else { mpfr_set(r8382, r8381, MPFR_RNDN); };
        if (mpfr_get_si(r8365, MPFR_RNDN)) { mpfr_set(r8383, r8372, MPFR_RNDN); } else { mpfr_set(r8383, r8382, MPFR_RNDN); };
        return mpfr_get_d(r8383, MPFR_RNDN);
}

