#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 r19207 = x;
        float r19208 = 4.0f;
        float r19209 = r19207 + r19208;
        float r19210 = y;
        float r19211 = r19209 / r19210;
        float r19212 = r19207 / r19210;
        float r19213 = z;
        float r19214 = r19212 * r19213;
        float r19215 = r19211 - r19214;
        float r19216 = fabs(r19215);
        return r19216;
}

double f_id(double x, double y, double z) {
        double r19217 = x;
        double r19218 = 4.0;
        double r19219 = r19217 + r19218;
        double r19220 = y;
        double r19221 = r19219 / r19220;
        double r19222 = r19217 / r19220;
        double r19223 = z;
        double r19224 = r19222 * r19223;
        double r19225 = r19221 - r19224;
        double r19226 = fabs(r19225);
        return r19226;
}


double f_of(float x, float y, float z) {
        float r19227 = x;
        float r19228 = -9.37854704553904e+142f;
        bool r19229 = r19227 <= r19228;
        float r19230 = y;
        float r19231 = r19227 / r19230;
        float r19232 = 4.0f;
        float r19233 = r19232 / r19230;
        float r19234 = r19231 + r19233;
        float r19235 = z;
        float r19236 = r19235 / r19230;
        float r19237 = r19236 * r19227;
        float r19238 = r19234 - r19237;
        float r19239 = fabs(r19238);
        float r19240 = 6.635871491323079e-24f;
        bool r19241 = r19227 <= r19240;
        float r19242 = r19231 - r19233;
        float r19243 = 1.0f;
        float r19244 = r19232 / r19243;
        float r19245 = r19235 * r19227;
        float r19246 = r19227 / r19243;
        float r19247 = r19245 - r19246;
        float r19248 = r19244 - r19247;
        float r19249 = r19242 * r19248;
        float r19250 = r19242 * r19230;
        float r19251 = r19249 / r19250;
        float r19252 = fabs(r19251);
        float r19253 = r19227 + r19232;
        float r19254 = r19253 / r19230;
        float r19255 = r19231 * r19235;
        float r19256 = r19254 - r19255;
        float r19257 = fabs(r19256);
        float r19258 = r19241 ? r19252 : r19257;
        float r19259 = r19229 ? r19239 : r19258;
        return r19259;
}

double f_od(double x, double y, double z) {
        double r19260 = x;
        double r19261 = -9.37854704553904e+142;
        bool r19262 = r19260 <= r19261;
        double r19263 = y;
        double r19264 = r19260 / r19263;
        double r19265 = 4.0;
        double r19266 = r19265 / r19263;
        double r19267 = r19264 + r19266;
        double r19268 = z;
        double r19269 = r19268 / r19263;
        double r19270 = r19269 * r19260;
        double r19271 = r19267 - r19270;
        double r19272 = fabs(r19271);
        double r19273 = 6.635871491323079e-24;
        bool r19274 = r19260 <= r19273;
        double r19275 = r19264 - r19266;
        double r19276 = 1.0;
        double r19277 = r19265 / r19276;
        double r19278 = r19268 * r19260;
        double r19279 = r19260 / r19276;
        double r19280 = r19278 - r19279;
        double r19281 = r19277 - r19280;
        double r19282 = r19275 * r19281;
        double r19283 = r19275 * r19263;
        double r19284 = r19282 / r19283;
        double r19285 = fabs(r19284);
        double r19286 = r19260 + r19265;
        double r19287 = r19286 / r19263;
        double r19288 = r19264 * r19268;
        double r19289 = r19287 - r19288;
        double r19290 = fabs(r19289);
        double r19291 = r19274 ? r19285 : r19290;
        double r19292 = r19262 ? r19272 : r19291;
        return r19292;
}

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 r19293, r19294, r19295, r19296, r19297, r19298, r19299, r19300, r19301, r19302;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r19293);
        mpfr_init_set_str(r19294, "4", 10, MPFR_RNDN);
        mpfr_init(r19295);
        mpfr_init(r19296);
        mpfr_init(r19297);
        mpfr_init(r19298);
        mpfr_init(r19299);
        mpfr_init(r19300);
        mpfr_init(r19301);
        mpfr_init(r19302);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r19293, x, MPFR_RNDN);
        ;
        mpfr_add(r19295, r19293, r19294, MPFR_RNDN);
        mpfr_set_d(r19296, y, MPFR_RNDN);
        mpfr_div(r19297, r19295, r19296, MPFR_RNDN);
        mpfr_div(r19298, r19293, r19296, MPFR_RNDN);
        mpfr_set_d(r19299, z, MPFR_RNDN);
        mpfr_mul(r19300, r19298, r19299, MPFR_RNDN);
        mpfr_sub(r19301, r19297, r19300, MPFR_RNDN);
        mpfr_abs(r19302, r19301, MPFR_RNDN);
        return mpfr_get_d(r19302, MPFR_RNDN);
}

static mpfr_t r19303, r19304, r19305, r19306, r19307, r19308, r19309, r19310, r19311, r19312, r19313, r19314, r19315, r19316, r19317, r19318, r19319, r19320, r19321, r19322, r19323, r19324, r19325, r19326, r19327, r19328, r19329, r19330, r19331, r19332, r19333, r19334, r19335;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19303);
        mpfr_init_set_str(r19304, "-9.37854704553904e+142", 10, MPFR_RNDN);
        mpfr_init(r19305);
        mpfr_init(r19306);
        mpfr_init(r19307);
        mpfr_init_set_str(r19308, "4", 10, MPFR_RNDN);
        mpfr_init(r19309);
        mpfr_init(r19310);
        mpfr_init(r19311);
        mpfr_init(r19312);
        mpfr_init(r19313);
        mpfr_init(r19314);
        mpfr_init(r19315);
        mpfr_init_set_str(r19316, "6.635871491323079e-24", 10, MPFR_RNDN);
        mpfr_init(r19317);
        mpfr_init(r19318);
        mpfr_init_set_str(r19319, "1", 10, MPFR_RNDN);
        mpfr_init(r19320);
        mpfr_init(r19321);
        mpfr_init(r19322);
        mpfr_init(r19323);
        mpfr_init(r19324);
        mpfr_init(r19325);
        mpfr_init(r19326);
        mpfr_init(r19327);
        mpfr_init(r19328);
        mpfr_init(r19329);
        mpfr_init(r19330);
        mpfr_init(r19331);
        mpfr_init(r19332);
        mpfr_init(r19333);
        mpfr_init(r19334);
        mpfr_init(r19335);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r19303, x, MPFR_RNDN);
        ;
        mpfr_set_si(r19305, mpfr_cmp(r19303, r19304) <= 0, MPFR_RNDN);
        mpfr_set_d(r19306, y, MPFR_RNDN);
        mpfr_div(r19307, r19303, r19306, MPFR_RNDN);
        ;
        mpfr_div(r19309, r19308, r19306, MPFR_RNDN);
        mpfr_add(r19310, r19307, r19309, MPFR_RNDN);
        mpfr_set_d(r19311, z, MPFR_RNDN);
        mpfr_div(r19312, r19311, r19306, MPFR_RNDN);
        mpfr_mul(r19313, r19312, r19303, MPFR_RNDN);
        mpfr_sub(r19314, r19310, r19313, MPFR_RNDN);
        mpfr_abs(r19315, r19314, MPFR_RNDN);
        ;
        mpfr_set_si(r19317, mpfr_cmp(r19303, r19316) <= 0, MPFR_RNDN);
        mpfr_sub(r19318, r19307, r19309, MPFR_RNDN);
        ;
        mpfr_div(r19320, r19308, r19319, MPFR_RNDN);
        mpfr_mul(r19321, r19311, r19303, MPFR_RNDN);
        mpfr_div(r19322, r19303, r19319, MPFR_RNDN);
        mpfr_sub(r19323, r19321, r19322, MPFR_RNDN);
        mpfr_sub(r19324, r19320, r19323, MPFR_RNDN);
        mpfr_mul(r19325, r19318, r19324, MPFR_RNDN);
        mpfr_mul(r19326, r19318, r19306, MPFR_RNDN);
        mpfr_div(r19327, r19325, r19326, MPFR_RNDN);
        mpfr_abs(r19328, r19327, MPFR_RNDN);
        mpfr_add(r19329, r19303, r19308, MPFR_RNDN);
        mpfr_div(r19330, r19329, r19306, MPFR_RNDN);
        mpfr_mul(r19331, r19307, r19311, MPFR_RNDN);
        mpfr_sub(r19332, r19330, r19331, MPFR_RNDN);
        mpfr_abs(r19333, r19332, MPFR_RNDN);
        if (mpfr_get_si(r19317, MPFR_RNDN)) { mpfr_set(r19334, r19328, MPFR_RNDN); } else { mpfr_set(r19334, r19333, MPFR_RNDN); };
        if (mpfr_get_si(r19305, MPFR_RNDN)) { mpfr_set(r19335, r19315, MPFR_RNDN); } else { mpfr_set(r19335, r19334, MPFR_RNDN); };
        return mpfr_get_d(r19335, MPFR_RNDN);
}

static mpfr_t r19336, r19337, r19338, r19339, r19340, r19341, r19342, r19343, r19344, r19345, r19346, r19347, r19348, r19349, r19350, r19351, r19352, r19353, r19354, r19355, r19356, r19357, r19358, r19359, r19360, r19361, r19362, r19363, r19364, r19365, r19366, r19367, r19368;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19336);
        mpfr_init_set_str(r19337, "-9.37854704553904e+142", 10, MPFR_RNDN);
        mpfr_init(r19338);
        mpfr_init(r19339);
        mpfr_init(r19340);
        mpfr_init_set_str(r19341, "4", 10, MPFR_RNDN);
        mpfr_init(r19342);
        mpfr_init(r19343);
        mpfr_init(r19344);
        mpfr_init(r19345);
        mpfr_init(r19346);
        mpfr_init(r19347);
        mpfr_init(r19348);
        mpfr_init_set_str(r19349, "6.635871491323079e-24", 10, MPFR_RNDN);
        mpfr_init(r19350);
        mpfr_init(r19351);
        mpfr_init_set_str(r19352, "1", 10, MPFR_RNDN);
        mpfr_init(r19353);
        mpfr_init(r19354);
        mpfr_init(r19355);
        mpfr_init(r19356);
        mpfr_init(r19357);
        mpfr_init(r19358);
        mpfr_init(r19359);
        mpfr_init(r19360);
        mpfr_init(r19361);
        mpfr_init(r19362);
        mpfr_init(r19363);
        mpfr_init(r19364);
        mpfr_init(r19365);
        mpfr_init(r19366);
        mpfr_init(r19367);
        mpfr_init(r19368);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r19336, x, MPFR_RNDN);
        ;
        mpfr_set_si(r19338, mpfr_cmp(r19336, r19337) <= 0, MPFR_RNDN);
        mpfr_set_d(r19339, y, MPFR_RNDN);
        mpfr_div(r19340, r19336, r19339, MPFR_RNDN);
        ;
        mpfr_div(r19342, r19341, r19339, MPFR_RNDN);
        mpfr_add(r19343, r19340, r19342, MPFR_RNDN);
        mpfr_set_d(r19344, z, MPFR_RNDN);
        mpfr_div(r19345, r19344, r19339, MPFR_RNDN);
        mpfr_mul(r19346, r19345, r19336, MPFR_RNDN);
        mpfr_sub(r19347, r19343, r19346, MPFR_RNDN);
        mpfr_abs(r19348, r19347, MPFR_RNDN);
        ;
        mpfr_set_si(r19350, mpfr_cmp(r19336, r19349) <= 0, MPFR_RNDN);
        mpfr_sub(r19351, r19340, r19342, MPFR_RNDN);
        ;
        mpfr_div(r19353, r19341, r19352, MPFR_RNDN);
        mpfr_mul(r19354, r19344, r19336, MPFR_RNDN);
        mpfr_div(r19355, r19336, r19352, MPFR_RNDN);
        mpfr_sub(r19356, r19354, r19355, MPFR_RNDN);
        mpfr_sub(r19357, r19353, r19356, MPFR_RNDN);
        mpfr_mul(r19358, r19351, r19357, MPFR_RNDN);
        mpfr_mul(r19359, r19351, r19339, MPFR_RNDN);
        mpfr_div(r19360, r19358, r19359, MPFR_RNDN);
        mpfr_abs(r19361, r19360, MPFR_RNDN);
        mpfr_add(r19362, r19336, r19341, MPFR_RNDN);
        mpfr_div(r19363, r19362, r19339, MPFR_RNDN);
        mpfr_mul(r19364, r19340, r19344, MPFR_RNDN);
        mpfr_sub(r19365, r19363, r19364, MPFR_RNDN);
        mpfr_abs(r19366, r19365, MPFR_RNDN);
        if (mpfr_get_si(r19350, MPFR_RNDN)) { mpfr_set(r19367, r19361, MPFR_RNDN); } else { mpfr_set(r19367, r19366, MPFR_RNDN); };
        if (mpfr_get_si(r19338, MPFR_RNDN)) { mpfr_set(r19368, r19348, MPFR_RNDN); } else { mpfr_set(r19368, r19367, MPFR_RNDN); };
        return mpfr_get_d(r19368, MPFR_RNDN);
}

