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

char *name = "quad2m (problem 3.2.1, negative)";

double f_if(float a, float b_2F2, float c) {
        float r6214178 = b_2F2;
        float r6214179 = -r6214178;
        float r6214180 = r6214178 * r6214178;
        float r6214181 = a;
        float r6214182 = c;
        float r6214183 = r6214181 * r6214182;
        float r6214184 = r6214180 - r6214183;
        float r6214185 = sqrt(r6214184);
        float r6214186 = r6214179 - r6214185;
        float r6214187 = r6214186 / r6214181;
        return r6214187;
}

double f_id(double a, double b_2F2, double c) {
        double r6214188 = b_2F2;
        double r6214189 = -r6214188;
        double r6214190 = r6214188 * r6214188;
        double r6214191 = a;
        double r6214192 = c;
        double r6214193 = r6214191 * r6214192;
        double r6214194 = r6214190 - r6214193;
        double r6214195 = sqrt(r6214194);
        double r6214196 = r6214189 - r6214195;
        double r6214197 = r6214196 / r6214191;
        return r6214197;
}


double f_of(float a, float b_2F2, float c) {
        float r6214198 = b_2F2;
        float r6214199 = -7.728783917565007e+67;
        bool r6214200 = r6214198 <= r6214199;
        float r6214201 = c;
        float r6214202 = 1/2;
        float r6214203 = r6214202 * r6214201;
        float r6214204 = a;
        float r6214205 = r6214204 / r6214198;
        float r6214206 = r6214203 * r6214205;
        float r6214207 = -r6214198;
        float r6214208 = r6214198 - r6214207;
        float r6214209 = r6214206 - r6214208;
        float r6214210 = r6214201 / r6214209;
        float r6214211 = 5.386251553676296e-293;
        bool r6214212 = r6214198 <= r6214211;
        float r6214213 = r6214198 * r6214198;
        float r6214214 = r6214204 * r6214201;
        float r6214215 = r6214213 - r6214214;
        float r6214216 = sqrt(r6214215);
        float r6214217 = r6214207 + r6214216;
        float r6214218 = r6214201 / r6214217;
        float r6214219 = 1.7056098619160107e+47;
        bool r6214220 = r6214198 <= r6214219;
        float r6214221 = r6214207 - r6214216;
        float r6214222 = r6214221 / r6214204;
        float r6214223 = r6214198 / r6214204;
        float r6214224 = -r6214223;
        float r6214225 = r6214198 / r6214202;
        float r6214226 = r6214201 / r6214225;
        float r6214227 = r6214223 - r6214226;
        float r6214228 = r6214224 - r6214227;
        float r6214229 = r6214220 ? r6214222 : r6214228;
        float r6214230 = r6214212 ? r6214218 : r6214229;
        float r6214231 = r6214200 ? r6214210 : r6214230;
        return r6214231;
}

double f_od(double a, double b_2F2, double c) {
        double r6214232 = b_2F2;
        double r6214233 = -7.728783917565007e+67;
        bool r6214234 = r6214232 <= r6214233;
        double r6214235 = c;
        double r6214236 = 1/2;
        double r6214237 = r6214236 * r6214235;
        double r6214238 = a;
        double r6214239 = r6214238 / r6214232;
        double r6214240 = r6214237 * r6214239;
        double r6214241 = -r6214232;
        double r6214242 = r6214232 - r6214241;
        double r6214243 = r6214240 - r6214242;
        double r6214244 = r6214235 / r6214243;
        double r6214245 = 5.386251553676296e-293;
        bool r6214246 = r6214232 <= r6214245;
        double r6214247 = r6214232 * r6214232;
        double r6214248 = r6214238 * r6214235;
        double r6214249 = r6214247 - r6214248;
        double r6214250 = sqrt(r6214249);
        double r6214251 = r6214241 + r6214250;
        double r6214252 = r6214235 / r6214251;
        double r6214253 = 1.7056098619160107e+47;
        bool r6214254 = r6214232 <= r6214253;
        double r6214255 = r6214241 - r6214250;
        double r6214256 = r6214255 / r6214238;
        double r6214257 = r6214232 / r6214238;
        double r6214258 = -r6214257;
        double r6214259 = r6214232 / r6214236;
        double r6214260 = r6214235 / r6214259;
        double r6214261 = r6214257 - r6214260;
        double r6214262 = r6214258 - r6214261;
        double r6214263 = r6214254 ? r6214256 : r6214262;
        double r6214264 = r6214246 ? r6214252 : r6214263;
        double r6214265 = r6214234 ? r6214244 : r6214264;
        return r6214265;
}

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 r6214266, r6214267, r6214268, r6214269, r6214270, r6214271, r6214272, r6214273, r6214274, r6214275;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r6214266);
        mpfr_init(r6214267);
        mpfr_init(r6214268);
        mpfr_init(r6214269);
        mpfr_init(r6214270);
        mpfr_init(r6214271);
        mpfr_init(r6214272);
        mpfr_init(r6214273);
        mpfr_init(r6214274);
        mpfr_init(r6214275);
}

double f_im(double a, double b_2F2, double c) {
        mpfr_set_d(r6214266, b_2F2, MPFR_RNDN);
        mpfr_neg(r6214267, r6214266, MPFR_RNDN);
        mpfr_mul(r6214268, r6214266, r6214266, MPFR_RNDN);
        mpfr_set_d(r6214269, a, MPFR_RNDN);
        mpfr_set_d(r6214270, c, MPFR_RNDN);
        mpfr_mul(r6214271, r6214269, r6214270, MPFR_RNDN);
        mpfr_sub(r6214272, r6214268, r6214271, MPFR_RNDN);
        mpfr_sqrt(r6214273, r6214272, MPFR_RNDN);
        mpfr_sub(r6214274, r6214267, r6214273, MPFR_RNDN);
        mpfr_div(r6214275, r6214274, r6214269, MPFR_RNDN);
        return mpfr_get_d(r6214275, MPFR_RNDN);
}

static mpfr_t r6214276, r6214277, r6214278, r6214279, r6214280, r6214281, r6214282, r6214283, r6214284, r6214285, r6214286, r6214287, r6214288, r6214289, r6214290, r6214291, r6214292, r6214293, r6214294, r6214295, r6214296, r6214297, r6214298, r6214299, r6214300, r6214301, r6214302, r6214303, r6214304, r6214305, r6214306, r6214307, r6214308, r6214309;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r6214276);
        mpfr_init_set_str(r6214277, "-7.728783917565007e+67", 10, MPFR_RNDN);
        mpfr_init(r6214278);
        mpfr_init(r6214279);
        mpfr_init_set_str(r6214280, "1/2", 10, MPFR_RNDN);
        mpfr_init(r6214281);
        mpfr_init(r6214282);
        mpfr_init(r6214283);
        mpfr_init(r6214284);
        mpfr_init(r6214285);
        mpfr_init(r6214286);
        mpfr_init(r6214287);
        mpfr_init(r6214288);
        mpfr_init_set_str(r6214289, "5.386251553676296e-293", 10, MPFR_RNDN);
        mpfr_init(r6214290);
        mpfr_init(r6214291);
        mpfr_init(r6214292);
        mpfr_init(r6214293);
        mpfr_init(r6214294);
        mpfr_init(r6214295);
        mpfr_init(r6214296);
        mpfr_init_set_str(r6214297, "1.7056098619160107e+47", 10, MPFR_RNDN);
        mpfr_init(r6214298);
        mpfr_init(r6214299);
        mpfr_init(r6214300);
        mpfr_init(r6214301);
        mpfr_init(r6214302);
        mpfr_init(r6214303);
        mpfr_init(r6214304);
        mpfr_init(r6214305);
        mpfr_init(r6214306);
        mpfr_init(r6214307);
        mpfr_init(r6214308);
        mpfr_init(r6214309);
}

double f_fm(double a, double b_2F2, double c) {
        mpfr_set_d(r6214276, b_2F2, MPFR_RNDN);
        ;
        mpfr_set_si(r6214278, mpfr_cmp(r6214276, r6214277) <= 0, MPFR_RNDN);
        mpfr_set_d(r6214279, c, MPFR_RNDN);
        ;
        mpfr_mul(r6214281, r6214280, r6214279, MPFR_RNDN);
        mpfr_set_d(r6214282, a, MPFR_RNDN);
        mpfr_div(r6214283, r6214282, r6214276, MPFR_RNDN);
        mpfr_mul(r6214284, r6214281, r6214283, MPFR_RNDN);
        mpfr_neg(r6214285, r6214276, MPFR_RNDN);
        mpfr_sub(r6214286, r6214276, r6214285, MPFR_RNDN);
        mpfr_sub(r6214287, r6214284, r6214286, MPFR_RNDN);
        mpfr_div(r6214288, r6214279, r6214287, MPFR_RNDN);
        ;
        mpfr_set_si(r6214290, mpfr_cmp(r6214276, r6214289) <= 0, MPFR_RNDN);
        mpfr_mul(r6214291, r6214276, r6214276, MPFR_RNDN);
        mpfr_mul(r6214292, r6214282, r6214279, MPFR_RNDN);
        mpfr_sub(r6214293, r6214291, r6214292, MPFR_RNDN);
        mpfr_sqrt(r6214294, r6214293, MPFR_RNDN);
        mpfr_add(r6214295, r6214285, r6214294, MPFR_RNDN);
        mpfr_div(r6214296, r6214279, r6214295, MPFR_RNDN);
        ;
        mpfr_set_si(r6214298, mpfr_cmp(r6214276, r6214297) <= 0, MPFR_RNDN);
        mpfr_sub(r6214299, r6214285, r6214294, MPFR_RNDN);
        mpfr_div(r6214300, r6214299, r6214282, MPFR_RNDN);
        mpfr_div(r6214301, r6214276, r6214282, MPFR_RNDN);
        mpfr_neg(r6214302, r6214301, MPFR_RNDN);
        mpfr_div(r6214303, r6214276, r6214280, MPFR_RNDN);
        mpfr_div(r6214304, r6214279, r6214303, MPFR_RNDN);
        mpfr_sub(r6214305, r6214301, r6214304, MPFR_RNDN);
        mpfr_sub(r6214306, r6214302, r6214305, MPFR_RNDN);
        if (mpfr_get_si(r6214298, MPFR_RNDN)) { mpfr_set(r6214307, r6214300, MPFR_RNDN); } else { mpfr_set(r6214307, r6214306, MPFR_RNDN); };
        if (mpfr_get_si(r6214290, MPFR_RNDN)) { mpfr_set(r6214308, r6214296, MPFR_RNDN); } else { mpfr_set(r6214308, r6214307, MPFR_RNDN); };
        if (mpfr_get_si(r6214278, MPFR_RNDN)) { mpfr_set(r6214309, r6214288, MPFR_RNDN); } else { mpfr_set(r6214309, r6214308, MPFR_RNDN); };
        return mpfr_get_d(r6214309, MPFR_RNDN);
}

static mpfr_t r6214310, r6214311, r6214312, r6214313, r6214314, r6214315, r6214316, r6214317, r6214318, r6214319, r6214320, r6214321, r6214322, r6214323, r6214324, r6214325, r6214326, r6214327, r6214328, r6214329, r6214330, r6214331, r6214332, r6214333, r6214334, r6214335, r6214336, r6214337, r6214338, r6214339, r6214340, r6214341, r6214342, r6214343;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r6214310);
        mpfr_init_set_str(r6214311, "-7.728783917565007e+67", 10, MPFR_RNDN);
        mpfr_init(r6214312);
        mpfr_init(r6214313);
        mpfr_init_set_str(r6214314, "1/2", 10, MPFR_RNDN);
        mpfr_init(r6214315);
        mpfr_init(r6214316);
        mpfr_init(r6214317);
        mpfr_init(r6214318);
        mpfr_init(r6214319);
        mpfr_init(r6214320);
        mpfr_init(r6214321);
        mpfr_init(r6214322);
        mpfr_init_set_str(r6214323, "5.386251553676296e-293", 10, MPFR_RNDN);
        mpfr_init(r6214324);
        mpfr_init(r6214325);
        mpfr_init(r6214326);
        mpfr_init(r6214327);
        mpfr_init(r6214328);
        mpfr_init(r6214329);
        mpfr_init(r6214330);
        mpfr_init_set_str(r6214331, "1.7056098619160107e+47", 10, MPFR_RNDN);
        mpfr_init(r6214332);
        mpfr_init(r6214333);
        mpfr_init(r6214334);
        mpfr_init(r6214335);
        mpfr_init(r6214336);
        mpfr_init(r6214337);
        mpfr_init(r6214338);
        mpfr_init(r6214339);
        mpfr_init(r6214340);
        mpfr_init(r6214341);
        mpfr_init(r6214342);
        mpfr_init(r6214343);
}

double f_dm(double a, double b_2F2, double c) {
        mpfr_set_d(r6214310, b_2F2, MPFR_RNDN);
        ;
        mpfr_set_si(r6214312, mpfr_cmp(r6214310, r6214311) <= 0, MPFR_RNDN);
        mpfr_set_d(r6214313, c, MPFR_RNDN);
        ;
        mpfr_mul(r6214315, r6214314, r6214313, MPFR_RNDN);
        mpfr_set_d(r6214316, a, MPFR_RNDN);
        mpfr_div(r6214317, r6214316, r6214310, MPFR_RNDN);
        mpfr_mul(r6214318, r6214315, r6214317, MPFR_RNDN);
        mpfr_neg(r6214319, r6214310, MPFR_RNDN);
        mpfr_sub(r6214320, r6214310, r6214319, MPFR_RNDN);
        mpfr_sub(r6214321, r6214318, r6214320, MPFR_RNDN);
        mpfr_div(r6214322, r6214313, r6214321, MPFR_RNDN);
        ;
        mpfr_set_si(r6214324, mpfr_cmp(r6214310, r6214323) <= 0, MPFR_RNDN);
        mpfr_mul(r6214325, r6214310, r6214310, MPFR_RNDN);
        mpfr_mul(r6214326, r6214316, r6214313, MPFR_RNDN);
        mpfr_sub(r6214327, r6214325, r6214326, MPFR_RNDN);
        mpfr_sqrt(r6214328, r6214327, MPFR_RNDN);
        mpfr_add(r6214329, r6214319, r6214328, MPFR_RNDN);
        mpfr_div(r6214330, r6214313, r6214329, MPFR_RNDN);
        ;
        mpfr_set_si(r6214332, mpfr_cmp(r6214310, r6214331) <= 0, MPFR_RNDN);
        mpfr_sub(r6214333, r6214319, r6214328, MPFR_RNDN);
        mpfr_div(r6214334, r6214333, r6214316, MPFR_RNDN);
        mpfr_div(r6214335, r6214310, r6214316, MPFR_RNDN);
        mpfr_neg(r6214336, r6214335, MPFR_RNDN);
        mpfr_div(r6214337, r6214310, r6214314, MPFR_RNDN);
        mpfr_div(r6214338, r6214313, r6214337, MPFR_RNDN);
        mpfr_sub(r6214339, r6214335, r6214338, MPFR_RNDN);
        mpfr_sub(r6214340, r6214336, r6214339, MPFR_RNDN);
        if (mpfr_get_si(r6214332, MPFR_RNDN)) { mpfr_set(r6214341, r6214334, MPFR_RNDN); } else { mpfr_set(r6214341, r6214340, MPFR_RNDN); };
        if (mpfr_get_si(r6214324, MPFR_RNDN)) { mpfr_set(r6214342, r6214330, MPFR_RNDN); } else { mpfr_set(r6214342, r6214341, MPFR_RNDN); };
        if (mpfr_get_si(r6214312, MPFR_RNDN)) { mpfr_set(r6214343, r6214322, MPFR_RNDN); } else { mpfr_set(r6214343, r6214342, MPFR_RNDN); };
        return mpfr_get_d(r6214343, MPFR_RNDN);
}

