#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 r8254 = x;
        float r8255 = 4.0f;
        float r8256 = r8254 + r8255;
        float r8257 = y;
        float r8258 = r8256 / r8257;
        float r8259 = r8254 / r8257;
        float r8260 = z;
        float r8261 = r8259 * r8260;
        float r8262 = r8258 - r8261;
        float r8263 = fabs(r8262);
        return r8263;
}

double f_id(double x, double y, double z) {
        double r8264 = x;
        double r8265 = 4.0;
        double r8266 = r8264 + r8265;
        double r8267 = y;
        double r8268 = r8266 / r8267;
        double r8269 = r8264 / r8267;
        double r8270 = z;
        double r8271 = r8269 * r8270;
        double r8272 = r8268 - r8271;
        double r8273 = fabs(r8272);
        return r8273;
}


double f_of(float x, float y, float z) {
        float r8274 = 4.0f;
        float r8275 = x;
        float r8276 = r8274 + r8275;
        float r8277 = y;
        float r8278 = r8276 / r8277;
        float r8279 = z;
        float r8280 = r8279 * r8275;
        float r8281 = r8280 / r8277;
        float r8282 = r8278 - r8281;
        float r8283 = -1.5947771882232943e+306f;
        bool r8284 = r8282 <= r8283;
        float r8285 = cbrt(r8278);
        float r8286 = r8285 * r8285;
        float r8287 = -r8279;
        float r8288 = r8275 / r8277;
        float r8289 = r8287 * r8288;
        float r8290 = fma(r8286, r8285, r8289);
        float r8291 = fabs(r8290);
        float r8292 = 7.020074180516919e+223f;
        bool r8293 = r8282 <= r8292;
        float r8294 = fabs(r8282);
        float r8295 = r8277 / r8275;
        float r8296 = r8279 / r8295;
        float r8297 = r8278 - r8296;
        float r8298 = fabs(r8297);
        float r8299 = r8293 ? r8294 : r8298;
        float r8300 = r8284 ? r8291 : r8299;
        return r8300;
}

double f_od(double x, double y, double z) {
        double r8301 = 4.0;
        double r8302 = x;
        double r8303 = r8301 + r8302;
        double r8304 = y;
        double r8305 = r8303 / r8304;
        double r8306 = z;
        double r8307 = r8306 * r8302;
        double r8308 = r8307 / r8304;
        double r8309 = r8305 - r8308;
        double r8310 = -1.5947771882232943e+306;
        bool r8311 = r8309 <= r8310;
        double r8312 = cbrt(r8305);
        double r8313 = r8312 * r8312;
        double r8314 = -r8306;
        double r8315 = r8302 / r8304;
        double r8316 = r8314 * r8315;
        double r8317 = fma(r8313, r8312, r8316);
        double r8318 = fabs(r8317);
        double r8319 = 7.020074180516919e+223;
        bool r8320 = r8309 <= r8319;
        double r8321 = fabs(r8309);
        double r8322 = r8304 / r8302;
        double r8323 = r8306 / r8322;
        double r8324 = r8305 - r8323;
        double r8325 = fabs(r8324);
        double r8326 = r8320 ? r8321 : r8325;
        double r8327 = r8311 ? r8318 : r8326;
        return r8327;
}

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 r8328, r8329, r8330, r8331, r8332, r8333, r8334, r8335, r8336, r8337;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8328);
        mpfr_init_set_str(r8329, "4", 10, MPFR_RNDN);
        mpfr_init(r8330);
        mpfr_init(r8331);
        mpfr_init(r8332);
        mpfr_init(r8333);
        mpfr_init(r8334);
        mpfr_init(r8335);
        mpfr_init(r8336);
        mpfr_init(r8337);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r8328, x, MPFR_RNDN);
        ;
        mpfr_add(r8330, r8328, r8329, MPFR_RNDN);
        mpfr_set_d(r8331, y, MPFR_RNDN);
        mpfr_div(r8332, r8330, r8331, MPFR_RNDN);
        mpfr_div(r8333, r8328, r8331, MPFR_RNDN);
        mpfr_set_d(r8334, z, MPFR_RNDN);
        mpfr_mul(r8335, r8333, r8334, MPFR_RNDN);
        mpfr_sub(r8336, r8332, r8335, MPFR_RNDN);
        mpfr_abs(r8337, r8336, MPFR_RNDN);
        return mpfr_get_d(r8337, MPFR_RNDN);
}

static mpfr_t r8338, r8339, r8340, r8341, r8342, r8343, r8344, r8345, r8346, r8347, r8348, r8349, r8350, r8351, r8352, r8353, r8354, r8355, r8356, r8357, r8358, r8359, r8360, r8361, r8362, r8363, r8364;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8338, "4", 10, MPFR_RNDN);
        mpfr_init(r8339);
        mpfr_init(r8340);
        mpfr_init(r8341);
        mpfr_init(r8342);
        mpfr_init(r8343);
        mpfr_init(r8344);
        mpfr_init(r8345);
        mpfr_init(r8346);
        mpfr_init_set_str(r8347, "-1.5947771882232943e+306", 10, MPFR_RNDN);
        mpfr_init(r8348);
        mpfr_init(r8349);
        mpfr_init(r8350);
        mpfr_init(r8351);
        mpfr_init(r8352);
        mpfr_init(r8353);
        mpfr_init(r8354);
        mpfr_init(r8355);
        mpfr_init_set_str(r8356, "7.020074180516919e+223", 10, MPFR_RNDN);
        mpfr_init(r8357);
        mpfr_init(r8358);
        mpfr_init(r8359);
        mpfr_init(r8360);
        mpfr_init(r8361);
        mpfr_init(r8362);
        mpfr_init(r8363);
        mpfr_init(r8364);
}

double f_fm(double x, double y, double z) {
        ;
        mpfr_set_d(r8339, x, MPFR_RNDN);
        mpfr_add(r8340, r8338, r8339, MPFR_RNDN);
        mpfr_set_d(r8341, y, MPFR_RNDN);
        mpfr_div(r8342, r8340, r8341, MPFR_RNDN);
        mpfr_set_d(r8343, z, MPFR_RNDN);
        mpfr_mul(r8344, r8343, r8339, MPFR_RNDN);
        mpfr_div(r8345, r8344, r8341, MPFR_RNDN);
        mpfr_sub(r8346, r8342, r8345, MPFR_RNDN);
        ;
        mpfr_set_si(r8348, mpfr_cmp(r8346, r8347) <= 0, MPFR_RNDN);
        mpfr_cbrt(r8349, r8342, MPFR_RNDN);
        mpfr_mul(r8350, r8349, r8349, MPFR_RNDN);
        mpfr_neg(r8351, r8343, MPFR_RNDN);
        mpfr_div(r8352, r8339, r8341, MPFR_RNDN);
        mpfr_mul(r8353, r8351, r8352, MPFR_RNDN);
        mpfr_fma(r8354, r8350, r8349, r8353, MPFR_RNDN);
        mpfr_abs(r8355, r8354, MPFR_RNDN);
        ;
        mpfr_set_si(r8357, mpfr_cmp(r8346, r8356) <= 0, MPFR_RNDN);
        mpfr_abs(r8358, r8346, MPFR_RNDN);
        mpfr_div(r8359, r8341, r8339, MPFR_RNDN);
        mpfr_div(r8360, r8343, r8359, MPFR_RNDN);
        mpfr_sub(r8361, r8342, r8360, MPFR_RNDN);
        mpfr_abs(r8362, r8361, MPFR_RNDN);
        if (mpfr_get_si(r8357, MPFR_RNDN)) { mpfr_set(r8363, r8358, MPFR_RNDN); } else { mpfr_set(r8363, r8362, MPFR_RNDN); };
        if (mpfr_get_si(r8348, MPFR_RNDN)) { mpfr_set(r8364, r8355, MPFR_RNDN); } else { mpfr_set(r8364, r8363, MPFR_RNDN); };
        return mpfr_get_d(r8364, MPFR_RNDN);
}

static mpfr_t r8365, r8366, r8367, r8368, r8369, r8370, r8371, r8372, r8373, r8374, r8375, r8376, r8377, r8378, r8379, r8380, r8381, r8382, r8383, r8384, r8385, r8386, r8387, r8388, r8389, r8390, r8391;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8365, "4", 10, MPFR_RNDN);
        mpfr_init(r8366);
        mpfr_init(r8367);
        mpfr_init(r8368);
        mpfr_init(r8369);
        mpfr_init(r8370);
        mpfr_init(r8371);
        mpfr_init(r8372);
        mpfr_init(r8373);
        mpfr_init_set_str(r8374, "-1.5947771882232943e+306", 10, MPFR_RNDN);
        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_set_str(r8383, "7.020074180516919e+223", 10, MPFR_RNDN);
        mpfr_init(r8384);
        mpfr_init(r8385);
        mpfr_init(r8386);
        mpfr_init(r8387);
        mpfr_init(r8388);
        mpfr_init(r8389);
        mpfr_init(r8390);
        mpfr_init(r8391);
}

double f_dm(double x, double y, double z) {
        ;
        mpfr_set_d(r8366, x, MPFR_RNDN);
        mpfr_add(r8367, r8365, r8366, MPFR_RNDN);
        mpfr_set_d(r8368, y, MPFR_RNDN);
        mpfr_div(r8369, r8367, r8368, MPFR_RNDN);
        mpfr_set_d(r8370, z, MPFR_RNDN);
        mpfr_mul(r8371, r8370, r8366, MPFR_RNDN);
        mpfr_div(r8372, r8371, r8368, MPFR_RNDN);
        mpfr_sub(r8373, r8369, r8372, MPFR_RNDN);
        ;
        mpfr_set_si(r8375, mpfr_cmp(r8373, r8374) <= 0, MPFR_RNDN);
        mpfr_cbrt(r8376, r8369, MPFR_RNDN);
        mpfr_mul(r8377, r8376, r8376, MPFR_RNDN);
        mpfr_neg(r8378, r8370, MPFR_RNDN);
        mpfr_div(r8379, r8366, r8368, MPFR_RNDN);
        mpfr_mul(r8380, r8378, r8379, MPFR_RNDN);
        mpfr_fma(r8381, r8377, r8376, r8380, MPFR_RNDN);
        mpfr_abs(r8382, r8381, MPFR_RNDN);
        ;
        mpfr_set_si(r8384, mpfr_cmp(r8373, r8383) <= 0, MPFR_RNDN);
        mpfr_abs(r8385, r8373, MPFR_RNDN);
        mpfr_div(r8386, r8368, r8366, MPFR_RNDN);
        mpfr_div(r8387, r8370, r8386, MPFR_RNDN);
        mpfr_sub(r8388, r8369, r8387, MPFR_RNDN);
        mpfr_abs(r8389, r8388, MPFR_RNDN);
        if (mpfr_get_si(r8384, MPFR_RNDN)) { mpfr_set(r8390, r8385, MPFR_RNDN); } else { mpfr_set(r8390, r8389, MPFR_RNDN); };
        if (mpfr_get_si(r8375, MPFR_RNDN)) { mpfr_set(r8391, r8382, MPFR_RNDN); } else { mpfr_set(r8391, r8390, MPFR_RNDN); };
        return mpfr_get_d(r8391, MPFR_RNDN);
}

