#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 r8225 = x;
        float r8226 = 4.0f;
        float r8227 = r8225 + r8226;
        float r8228 = y;
        float r8229 = r8227 / r8228;
        float r8230 = r8225 / r8228;
        float r8231 = z;
        float r8232 = r8230 * r8231;
        float r8233 = r8229 - r8232;
        float r8234 = fabs(r8233);
        return r8234;
}

double f_id(double x, double y, double z) {
        double r8235 = x;
        double r8236 = 4.0;
        double r8237 = r8235 + r8236;
        double r8238 = y;
        double r8239 = r8237 / r8238;
        double r8240 = r8235 / r8238;
        double r8241 = z;
        double r8242 = r8240 * r8241;
        double r8243 = r8239 - r8242;
        double r8244 = fabs(r8243);
        return r8244;
}


double f_of(float x, float y, float z) {
        float r8245 = 4.0f;
        float r8246 = x;
        float r8247 = r8245 + r8246;
        float r8248 = y;
        float r8249 = r8247 / r8248;
        float r8250 = z;
        float r8251 = r8250 * r8246;
        float r8252 = r8251 / r8248;
        float r8253 = r8249 - r8252;
        float r8254 = -1.5947771882232943e+306f;
        bool r8255 = r8253 <= r8254;
        float r8256 = cbrt(r8249);
        float r8257 = r8256 * r8256;
        float r8258 = -r8250;
        float r8259 = r8246 / r8248;
        float r8260 = r8258 * r8259;
        float r8261 = fma(r8257, r8256, r8260);
        float r8262 = fabs(r8261);
        float r8263 = 7.020074180516919e+223f;
        bool r8264 = r8253 <= r8263;
        float r8265 = fabs(r8253);
        float r8266 = r8248 / r8246;
        float r8267 = r8250 / r8266;
        float r8268 = r8249 - r8267;
        float r8269 = fabs(r8268);
        float r8270 = r8264 ? r8265 : r8269;
        float r8271 = r8255 ? r8262 : r8270;
        return r8271;
}

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

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 r8299, r8300, r8301, r8302, r8303, r8304, r8305, r8306, r8307, r8308;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8299);
        mpfr_init_set_str(r8300, "4", 10, MPFR_RNDN);
        mpfr_init(r8301);
        mpfr_init(r8302);
        mpfr_init(r8303);
        mpfr_init(r8304);
        mpfr_init(r8305);
        mpfr_init(r8306);
        mpfr_init(r8307);
        mpfr_init(r8308);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r8299, x, MPFR_RNDN);
        ;
        mpfr_add(r8301, r8299, r8300, MPFR_RNDN);
        mpfr_set_d(r8302, y, MPFR_RNDN);
        mpfr_div(r8303, r8301, r8302, MPFR_RNDN);
        mpfr_div(r8304, r8299, r8302, MPFR_RNDN);
        mpfr_set_d(r8305, z, MPFR_RNDN);
        mpfr_mul(r8306, r8304, r8305, MPFR_RNDN);
        mpfr_sub(r8307, r8303, r8306, MPFR_RNDN);
        mpfr_abs(r8308, r8307, MPFR_RNDN);
        return mpfr_get_d(r8308, MPFR_RNDN);
}

static mpfr_t r8309, r8310, r8311, r8312, r8313, r8314, r8315, r8316, r8317, r8318, r8319, r8320, r8321, r8322, r8323, r8324, r8325, r8326, r8327, r8328, r8329, r8330, r8331, r8332, r8333, r8334, r8335;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8309, "4", 10, MPFR_RNDN);
        mpfr_init(r8310);
        mpfr_init(r8311);
        mpfr_init(r8312);
        mpfr_init(r8313);
        mpfr_init(r8314);
        mpfr_init(r8315);
        mpfr_init(r8316);
        mpfr_init(r8317);
        mpfr_init_set_str(r8318, "-1.5947771882232943e+306", 10, MPFR_RNDN);
        mpfr_init(r8319);
        mpfr_init(r8320);
        mpfr_init(r8321);
        mpfr_init(r8322);
        mpfr_init(r8323);
        mpfr_init(r8324);
        mpfr_init(r8325);
        mpfr_init(r8326);
        mpfr_init_set_str(r8327, "7.020074180516919e+223", 10, MPFR_RNDN);
        mpfr_init(r8328);
        mpfr_init(r8329);
        mpfr_init(r8330);
        mpfr_init(r8331);
        mpfr_init(r8332);
        mpfr_init(r8333);
        mpfr_init(r8334);
        mpfr_init(r8335);
}

double f_fm(double x, double y, double z) {
        ;
        mpfr_set_d(r8310, x, MPFR_RNDN);
        mpfr_add(r8311, r8309, r8310, MPFR_RNDN);
        mpfr_set_d(r8312, y, MPFR_RNDN);
        mpfr_div(r8313, r8311, r8312, MPFR_RNDN);
        mpfr_set_d(r8314, z, MPFR_RNDN);
        mpfr_mul(r8315, r8314, r8310, MPFR_RNDN);
        mpfr_div(r8316, r8315, r8312, MPFR_RNDN);
        mpfr_sub(r8317, r8313, r8316, MPFR_RNDN);
        ;
        mpfr_set_si(r8319, mpfr_cmp(r8317, r8318) <= 0, MPFR_RNDN);
        mpfr_cbrt(r8320, r8313, MPFR_RNDN);
        mpfr_mul(r8321, r8320, r8320, MPFR_RNDN);
        mpfr_neg(r8322, r8314, MPFR_RNDN);
        mpfr_div(r8323, r8310, r8312, MPFR_RNDN);
        mpfr_mul(r8324, r8322, r8323, MPFR_RNDN);
        mpfr_fma(r8325, r8321, r8320, r8324, MPFR_RNDN);
        mpfr_abs(r8326, r8325, MPFR_RNDN);
        ;
        mpfr_set_si(r8328, mpfr_cmp(r8317, r8327) <= 0, MPFR_RNDN);
        mpfr_abs(r8329, r8317, MPFR_RNDN);
        mpfr_div(r8330, r8312, r8310, MPFR_RNDN);
        mpfr_div(r8331, r8314, r8330, MPFR_RNDN);
        mpfr_sub(r8332, r8313, r8331, MPFR_RNDN);
        mpfr_abs(r8333, r8332, MPFR_RNDN);
        if (mpfr_get_si(r8328, MPFR_RNDN)) { mpfr_set(r8334, r8329, MPFR_RNDN); } else { mpfr_set(r8334, r8333, MPFR_RNDN); };
        if (mpfr_get_si(r8319, MPFR_RNDN)) { mpfr_set(r8335, r8326, MPFR_RNDN); } else { mpfr_set(r8335, r8334, MPFR_RNDN); };
        return mpfr_get_d(r8335, MPFR_RNDN);
}

static mpfr_t r8336, r8337, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8336, "4", 10, MPFR_RNDN);
        mpfr_init(r8337);
        mpfr_init(r8338);
        mpfr_init(r8339);
        mpfr_init(r8340);
        mpfr_init(r8341);
        mpfr_init(r8342);
        mpfr_init(r8343);
        mpfr_init(r8344);
        mpfr_init_set_str(r8345, "-1.5947771882232943e+306", 10, MPFR_RNDN);
        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_set_str(r8354, "7.020074180516919e+223", 10, MPFR_RNDN);
        mpfr_init(r8355);
        mpfr_init(r8356);
        mpfr_init(r8357);
        mpfr_init(r8358);
        mpfr_init(r8359);
        mpfr_init(r8360);
        mpfr_init(r8361);
        mpfr_init(r8362);
}

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

