#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 r22278 = x;
        float r22279 = 4;
        float r22280 = r22278 + r22279;
        float r22281 = y;
        float r22282 = r22280 / r22281;
        float r22283 = r22278 / r22281;
        float r22284 = z;
        float r22285 = r22283 * r22284;
        float r22286 = r22282 - r22285;
        float r22287 = fabs(r22286);
        return r22287;
}

double f_id(double x, double y, double z) {
        double r22288 = x;
        double r22289 = 4;
        double r22290 = r22288 + r22289;
        double r22291 = y;
        double r22292 = r22290 / r22291;
        double r22293 = r22288 / r22291;
        double r22294 = z;
        double r22295 = r22293 * r22294;
        double r22296 = r22292 - r22295;
        double r22297 = fabs(r22296);
        return r22297;
}


double f_of(float x, float y, float z) {
        float r22298 = 4;
        float r22299 = x;
        float r22300 = r22298 + r22299;
        float r22301 = y;
        float r22302 = r22300 / r22301;
        float r22303 = z;
        float r22304 = r22303 / r22301;
        float r22305 = r22299 * r22304;
        float r22306 = r22302 - r22305;
        float r22307 = fabs(r22306);
        float r22308 = 1.7788032651235803e+307;
        bool r22309 = r22307 <= r22308;
        float r22310 = r22301 / r22303;
        float r22311 = r22299 / r22310;
        float r22312 = r22302 - r22311;
        float r22313 = fabs(r22312);
        float r22314 = r22301 / r22299;
        float r22315 = r22303 / r22314;
        float r22316 = r22302 - r22315;
        float r22317 = fabs(r22316);
        float r22318 = r22309 ? r22313 : r22317;
        return r22318;
}

double f_od(double x, double y, double z) {
        double r22319 = 4;
        double r22320 = x;
        double r22321 = r22319 + r22320;
        double r22322 = y;
        double r22323 = r22321 / r22322;
        double r22324 = z;
        double r22325 = r22324 / r22322;
        double r22326 = r22320 * r22325;
        double r22327 = r22323 - r22326;
        double r22328 = fabs(r22327);
        double r22329 = 1.7788032651235803e+307;
        bool r22330 = r22328 <= r22329;
        double r22331 = r22322 / r22324;
        double r22332 = r22320 / r22331;
        double r22333 = r22323 - r22332;
        double r22334 = fabs(r22333);
        double r22335 = r22322 / r22320;
        double r22336 = r22324 / r22335;
        double r22337 = r22323 - r22336;
        double r22338 = fabs(r22337);
        double r22339 = r22330 ? r22334 : r22338;
        return r22339;
}

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 r22340, r22341, r22342, r22343, r22344, r22345, r22346, r22347, r22348, r22349;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r22340);
        mpfr_init_set_str(r22341, "4", 10, MPFR_RNDN);
        mpfr_init(r22342);
        mpfr_init(r22343);
        mpfr_init(r22344);
        mpfr_init(r22345);
        mpfr_init(r22346);
        mpfr_init(r22347);
        mpfr_init(r22348);
        mpfr_init(r22349);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r22340, x, MPFR_RNDN);
        ;
        mpfr_add(r22342, r22340, r22341, MPFR_RNDN);
        mpfr_set_d(r22343, y, MPFR_RNDN);
        mpfr_div(r22344, r22342, r22343, MPFR_RNDN);
        mpfr_div(r22345, r22340, r22343, MPFR_RNDN);
        mpfr_set_d(r22346, z, MPFR_RNDN);
        mpfr_mul(r22347, r22345, r22346, MPFR_RNDN);
        mpfr_sub(r22348, r22344, r22347, MPFR_RNDN);
        mpfr_abs(r22349, r22348, MPFR_RNDN);
        return mpfr_get_d(r22349, MPFR_RNDN);
}

static mpfr_t r22350, r22351, r22352, r22353, r22354, r22355, r22356, r22357, r22358, r22359, r22360, r22361, r22362, r22363, r22364, r22365, r22366, r22367, r22368, r22369, r22370;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r22350, "4", 10, MPFR_RNDN);
        mpfr_init(r22351);
        mpfr_init(r22352);
        mpfr_init(r22353);
        mpfr_init(r22354);
        mpfr_init(r22355);
        mpfr_init(r22356);
        mpfr_init(r22357);
        mpfr_init(r22358);
        mpfr_init(r22359);
        mpfr_init_set_str(r22360, "1.7788032651235803e+307", 10, MPFR_RNDN);
        mpfr_init(r22361);
        mpfr_init(r22362);
        mpfr_init(r22363);
        mpfr_init(r22364);
        mpfr_init(r22365);
        mpfr_init(r22366);
        mpfr_init(r22367);
        mpfr_init(r22368);
        mpfr_init(r22369);
        mpfr_init(r22370);
}

double f_fm(double x, double y, double z) {
        ;
        mpfr_set_d(r22351, x, MPFR_RNDN);
        mpfr_add(r22352, r22350, r22351, MPFR_RNDN);
        mpfr_set_d(r22353, y, MPFR_RNDN);
        mpfr_div(r22354, r22352, r22353, MPFR_RNDN);
        mpfr_set_d(r22355, z, MPFR_RNDN);
        mpfr_div(r22356, r22355, r22353, MPFR_RNDN);
        mpfr_mul(r22357, r22351, r22356, MPFR_RNDN);
        mpfr_sub(r22358, r22354, r22357, MPFR_RNDN);
        mpfr_abs(r22359, r22358, MPFR_RNDN);
        ;
        mpfr_set_si(r22361, mpfr_cmp(r22359, r22360) <= 0, MPFR_RNDN);
        mpfr_div(r22362, r22353, r22355, MPFR_RNDN);
        mpfr_div(r22363, r22351, r22362, MPFR_RNDN);
        mpfr_sub(r22364, r22354, r22363, MPFR_RNDN);
        mpfr_abs(r22365, r22364, MPFR_RNDN);
        mpfr_div(r22366, r22353, r22351, MPFR_RNDN);
        mpfr_div(r22367, r22355, r22366, MPFR_RNDN);
        mpfr_sub(r22368, r22354, r22367, MPFR_RNDN);
        mpfr_abs(r22369, r22368, MPFR_RNDN);
        if (mpfr_get_si(r22361, MPFR_RNDN)) { mpfr_set(r22370, r22365, MPFR_RNDN); } else { mpfr_set(r22370, r22369, MPFR_RNDN); };
        return mpfr_get_d(r22370, MPFR_RNDN);
}

static mpfr_t r22371, r22372, r22373, r22374, r22375, r22376, r22377, r22378, r22379, r22380, r22381, r22382, r22383, r22384, r22385, r22386, r22387, r22388, r22389, r22390, r22391;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r22371, "4", 10, MPFR_RNDN);
        mpfr_init(r22372);
        mpfr_init(r22373);
        mpfr_init(r22374);
        mpfr_init(r22375);
        mpfr_init(r22376);
        mpfr_init(r22377);
        mpfr_init(r22378);
        mpfr_init(r22379);
        mpfr_init(r22380);
        mpfr_init_set_str(r22381, "1.7788032651235803e+307", 10, MPFR_RNDN);
        mpfr_init(r22382);
        mpfr_init(r22383);
        mpfr_init(r22384);
        mpfr_init(r22385);
        mpfr_init(r22386);
        mpfr_init(r22387);
        mpfr_init(r22388);
        mpfr_init(r22389);
        mpfr_init(r22390);
        mpfr_init(r22391);
}

double f_dm(double x, double y, double z) {
        ;
        mpfr_set_d(r22372, x, MPFR_RNDN);
        mpfr_add(r22373, r22371, r22372, MPFR_RNDN);
        mpfr_set_d(r22374, y, MPFR_RNDN);
        mpfr_div(r22375, r22373, r22374, MPFR_RNDN);
        mpfr_set_d(r22376, z, MPFR_RNDN);
        mpfr_div(r22377, r22376, r22374, MPFR_RNDN);
        mpfr_mul(r22378, r22372, r22377, MPFR_RNDN);
        mpfr_sub(r22379, r22375, r22378, MPFR_RNDN);
        mpfr_abs(r22380, r22379, MPFR_RNDN);
        ;
        mpfr_set_si(r22382, mpfr_cmp(r22380, r22381) <= 0, MPFR_RNDN);
        mpfr_div(r22383, r22374, r22376, MPFR_RNDN);
        mpfr_div(r22384, r22372, r22383, MPFR_RNDN);
        mpfr_sub(r22385, r22375, r22384, MPFR_RNDN);
        mpfr_abs(r22386, r22385, MPFR_RNDN);
        mpfr_div(r22387, r22374, r22372, MPFR_RNDN);
        mpfr_div(r22388, r22376, r22387, MPFR_RNDN);
        mpfr_sub(r22389, r22375, r22388, MPFR_RNDN);
        mpfr_abs(r22390, r22389, MPFR_RNDN);
        if (mpfr_get_si(r22382, MPFR_RNDN)) { mpfr_set(r22391, r22386, MPFR_RNDN); } else { mpfr_set(r22391, r22390, MPFR_RNDN); };
        return mpfr_get_d(r22391, MPFR_RNDN);
}

