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

char *name = "The quadratic formula (r2)";

double f_if(float a, float b, float c) {
        float r9171 = b;
        float r9172 = -r9171;
        float r9173 = r9171 * r9171;
        float r9174 = 4;
        float r9175 = a;
        float r9176 = c;
        float r9177 = r9175 * r9176;
        float r9178 = r9174 * r9177;
        float r9179 = r9173 - r9178;
        float r9180 = sqrt(r9179);
        float r9181 = r9172 - r9180;
        float r9182 = 2;
        float r9183 = r9182 * r9175;
        float r9184 = r9181 / r9183;
        return r9184;
}

double f_id(double a, double b, double c) {
        double r9185 = b;
        double r9186 = -r9185;
        double r9187 = r9185 * r9185;
        double r9188 = 4;
        double r9189 = a;
        double r9190 = c;
        double r9191 = r9189 * r9190;
        double r9192 = r9188 * r9191;
        double r9193 = r9187 - r9192;
        double r9194 = sqrt(r9193);
        double r9195 = r9186 - r9194;
        double r9196 = 2;
        double r9197 = r9196 * r9189;
        double r9198 = r9195 / r9197;
        return r9198;
}


double f_of(float a, float b, float c) {
        float r9199 = b;
        float r9200 = -1.0096397814194701e+154;
        bool r9201 = r9199 <= r9200;
        float r9202 = c;
        float r9203 = 2;
        float r9204 = r9202 / r9203;
        float r9205 = 4;
        float r9206 = r9204 * r9205;
        float r9207 = r9206 / r9203;
        float r9208 = a;
        float r9209 = r9199 / r9202;
        float r9210 = r9208 / r9209;
        float r9211 = r9210 - r9199;
        float r9212 = r9207 / r9211;
        float r9213 = -8.812243082114111e-292;
        bool r9214 = r9199 <= r9213;
        float r9215 = r9202 * r9205;
        float r9216 = r9215 / r9203;
        float r9217 = r9199 * r9199;
        float r9218 = r9202 * r9208;
        float r9219 = r9205 * r9218;
        float r9220 = r9217 - r9219;
        float r9221 = sqrt(r9220);
        float r9222 = r9221 - r9199;
        float r9223 = r9216 / r9222;
        float r9224 = 2.9749766316821928e+143;
        bool r9225 = r9199 <= r9224;
        float r9226 = -r9199;
        float r9227 = r9226 - r9221;
        float r9228 = r9227 / r9208;
        float r9229 = 1;
        float r9230 = r9229 / r9203;
        float r9231 = r9228 * r9230;
        float r9232 = r9202 / r9199;
        float r9233 = r9199 / r9208;
        float r9234 = r9232 - r9233;
        float r9235 = r9225 ? r9231 : r9234;
        float r9236 = r9214 ? r9223 : r9235;
        float r9237 = r9201 ? r9212 : r9236;
        return r9237;
}

double f_od(double a, double b, double c) {
        double r9238 = b;
        double r9239 = -1.0096397814194701e+154;
        bool r9240 = r9238 <= r9239;
        double r9241 = c;
        double r9242 = 2;
        double r9243 = r9241 / r9242;
        double r9244 = 4;
        double r9245 = r9243 * r9244;
        double r9246 = r9245 / r9242;
        double r9247 = a;
        double r9248 = r9238 / r9241;
        double r9249 = r9247 / r9248;
        double r9250 = r9249 - r9238;
        double r9251 = r9246 / r9250;
        double r9252 = -8.812243082114111e-292;
        bool r9253 = r9238 <= r9252;
        double r9254 = r9241 * r9244;
        double r9255 = r9254 / r9242;
        double r9256 = r9238 * r9238;
        double r9257 = r9241 * r9247;
        double r9258 = r9244 * r9257;
        double r9259 = r9256 - r9258;
        double r9260 = sqrt(r9259);
        double r9261 = r9260 - r9238;
        double r9262 = r9255 / r9261;
        double r9263 = 2.9749766316821928e+143;
        bool r9264 = r9238 <= r9263;
        double r9265 = -r9238;
        double r9266 = r9265 - r9260;
        double r9267 = r9266 / r9247;
        double r9268 = 1;
        double r9269 = r9268 / r9242;
        double r9270 = r9267 * r9269;
        double r9271 = r9241 / r9238;
        double r9272 = r9238 / r9247;
        double r9273 = r9271 - r9272;
        double r9274 = r9264 ? r9270 : r9273;
        double r9275 = r9253 ? r9262 : r9274;
        double r9276 = r9240 ? r9251 : r9275;
        return r9276;
}

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 r9277, r9278, r9279, r9280, r9281, r9282, r9283, r9284, r9285, r9286, r9287, r9288, r9289, r9290;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9277);
        mpfr_init(r9278);
        mpfr_init(r9279);
        mpfr_init_set_str(r9280, "4", 10, MPFR_RNDN);
        mpfr_init(r9281);
        mpfr_init(r9282);
        mpfr_init(r9283);
        mpfr_init(r9284);
        mpfr_init(r9285);
        mpfr_init(r9286);
        mpfr_init(r9287);
        mpfr_init_set_str(r9288, "2", 10, MPFR_RNDN);
        mpfr_init(r9289);
        mpfr_init(r9290);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r9277, b, MPFR_RNDN);
        mpfr_neg(r9278, r9277, MPFR_RNDN);
        mpfr_mul(r9279, r9277, r9277, MPFR_RNDN);
        ;
        mpfr_set_d(r9281, a, MPFR_RNDN);
        mpfr_set_d(r9282, c, MPFR_RNDN);
        mpfr_mul(r9283, r9281, r9282, MPFR_RNDN);
        mpfr_mul(r9284, r9280, r9283, MPFR_RNDN);
        mpfr_sub(r9285, r9279, r9284, MPFR_RNDN);
        mpfr_sqrt(r9286, r9285, MPFR_RNDN);
        mpfr_sub(r9287, r9278, r9286, MPFR_RNDN);
        ;
        mpfr_mul(r9289, r9288, r9281, MPFR_RNDN);
        mpfr_div(r9290, r9287, r9289, MPFR_RNDN);
        return mpfr_get_d(r9290, MPFR_RNDN);
}

static mpfr_t r9291, r9292, r9293, r9294, r9295, r9296, r9297, r9298, r9299, r9300, r9301, r9302, r9303, r9304, r9305, r9306, r9307, r9308, r9309, r9310, r9311, r9312, r9313, r9314, r9315, r9316, r9317, r9318, r9319, r9320, r9321, r9322, r9323, r9324, r9325, r9326, r9327, r9328, r9329;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9291);
        mpfr_init_set_str(r9292, "-1.0096397814194701e+154", 10, MPFR_RNDN);
        mpfr_init(r9293);
        mpfr_init(r9294);
        mpfr_init_set_str(r9295, "2", 10, MPFR_RNDN);
        mpfr_init(r9296);
        mpfr_init_set_str(r9297, "4", 10, MPFR_RNDN);
        mpfr_init(r9298);
        mpfr_init(r9299);
        mpfr_init(r9300);
        mpfr_init(r9301);
        mpfr_init(r9302);
        mpfr_init(r9303);
        mpfr_init(r9304);
        mpfr_init_set_str(r9305, "-8.812243082114111e-292", 10, MPFR_RNDN);
        mpfr_init(r9306);
        mpfr_init(r9307);
        mpfr_init(r9308);
        mpfr_init(r9309);
        mpfr_init(r9310);
        mpfr_init(r9311);
        mpfr_init(r9312);
        mpfr_init(r9313);
        mpfr_init(r9314);
        mpfr_init(r9315);
        mpfr_init_set_str(r9316, "2.9749766316821928e+143", 10, MPFR_RNDN);
        mpfr_init(r9317);
        mpfr_init(r9318);
        mpfr_init(r9319);
        mpfr_init(r9320);
        mpfr_init_set_str(r9321, "1", 10, MPFR_RNDN);
        mpfr_init(r9322);
        mpfr_init(r9323);
        mpfr_init(r9324);
        mpfr_init(r9325);
        mpfr_init(r9326);
        mpfr_init(r9327);
        mpfr_init(r9328);
        mpfr_init(r9329);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r9291, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9293, mpfr_cmp(r9291, r9292) <= 0, MPFR_RNDN);
        mpfr_set_d(r9294, c, MPFR_RNDN);
        ;
        mpfr_div(r9296, r9294, r9295, MPFR_RNDN);
        ;
        mpfr_mul(r9298, r9296, r9297, MPFR_RNDN);
        mpfr_div(r9299, r9298, r9295, MPFR_RNDN);
        mpfr_set_d(r9300, a, MPFR_RNDN);
        mpfr_div(r9301, r9291, r9294, MPFR_RNDN);
        mpfr_div(r9302, r9300, r9301, MPFR_RNDN);
        mpfr_sub(r9303, r9302, r9291, MPFR_RNDN);
        mpfr_div(r9304, r9299, r9303, MPFR_RNDN);
        ;
        mpfr_set_si(r9306, mpfr_cmp(r9291, r9305) <= 0, MPFR_RNDN);
        mpfr_mul(r9307, r9294, r9297, MPFR_RNDN);
        mpfr_div(r9308, r9307, r9295, MPFR_RNDN);
        mpfr_mul(r9309, r9291, r9291, MPFR_RNDN);
        mpfr_mul(r9310, r9294, r9300, MPFR_RNDN);
        mpfr_mul(r9311, r9297, r9310, MPFR_RNDN);
        mpfr_sub(r9312, r9309, r9311, MPFR_RNDN);
        mpfr_sqrt(r9313, r9312, MPFR_RNDN);
        mpfr_sub(r9314, r9313, r9291, MPFR_RNDN);
        mpfr_div(r9315, r9308, r9314, MPFR_RNDN);
        ;
        mpfr_set_si(r9317, mpfr_cmp(r9291, r9316) <= 0, MPFR_RNDN);
        mpfr_neg(r9318, r9291, MPFR_RNDN);
        mpfr_sub(r9319, r9318, r9313, MPFR_RNDN);
        mpfr_div(r9320, r9319, r9300, MPFR_RNDN);
        ;
        mpfr_div(r9322, r9321, r9295, MPFR_RNDN);
        mpfr_mul(r9323, r9320, r9322, MPFR_RNDN);
        mpfr_div(r9324, r9294, r9291, MPFR_RNDN);
        mpfr_div(r9325, r9291, r9300, MPFR_RNDN);
        mpfr_sub(r9326, r9324, r9325, MPFR_RNDN);
        if (mpfr_get_si(r9317, MPFR_RNDN)) { mpfr_set(r9327, r9323, MPFR_RNDN); } else { mpfr_set(r9327, r9326, MPFR_RNDN); };
        if (mpfr_get_si(r9306, MPFR_RNDN)) { mpfr_set(r9328, r9315, MPFR_RNDN); } else { mpfr_set(r9328, r9327, MPFR_RNDN); };
        if (mpfr_get_si(r9293, MPFR_RNDN)) { mpfr_set(r9329, r9304, MPFR_RNDN); } else { mpfr_set(r9329, r9328, MPFR_RNDN); };
        return mpfr_get_d(r9329, MPFR_RNDN);
}

static mpfr_t r9330, r9331, r9332, r9333, r9334, r9335, r9336, r9337, r9338, r9339, r9340, r9341, r9342, r9343, r9344, r9345, r9346, r9347, r9348, r9349, r9350, r9351, r9352, r9353, r9354, r9355, r9356, r9357, r9358, r9359, r9360, r9361, r9362, r9363, r9364, r9365, r9366, r9367, r9368;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r9330);
        mpfr_init_set_str(r9331, "-1.0096397814194701e+154", 10, MPFR_RNDN);
        mpfr_init(r9332);
        mpfr_init(r9333);
        mpfr_init_set_str(r9334, "2", 10, MPFR_RNDN);
        mpfr_init(r9335);
        mpfr_init_set_str(r9336, "4", 10, MPFR_RNDN);
        mpfr_init(r9337);
        mpfr_init(r9338);
        mpfr_init(r9339);
        mpfr_init(r9340);
        mpfr_init(r9341);
        mpfr_init(r9342);
        mpfr_init(r9343);
        mpfr_init_set_str(r9344, "-8.812243082114111e-292", 10, MPFR_RNDN);
        mpfr_init(r9345);
        mpfr_init(r9346);
        mpfr_init(r9347);
        mpfr_init(r9348);
        mpfr_init(r9349);
        mpfr_init(r9350);
        mpfr_init(r9351);
        mpfr_init(r9352);
        mpfr_init(r9353);
        mpfr_init(r9354);
        mpfr_init_set_str(r9355, "2.9749766316821928e+143", 10, MPFR_RNDN);
        mpfr_init(r9356);
        mpfr_init(r9357);
        mpfr_init(r9358);
        mpfr_init(r9359);
        mpfr_init_set_str(r9360, "1", 10, MPFR_RNDN);
        mpfr_init(r9361);
        mpfr_init(r9362);
        mpfr_init(r9363);
        mpfr_init(r9364);
        mpfr_init(r9365);
        mpfr_init(r9366);
        mpfr_init(r9367);
        mpfr_init(r9368);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r9330, b, MPFR_RNDN);
        ;
        mpfr_set_si(r9332, mpfr_cmp(r9330, r9331) <= 0, MPFR_RNDN);
        mpfr_set_d(r9333, c, MPFR_RNDN);
        ;
        mpfr_div(r9335, r9333, r9334, MPFR_RNDN);
        ;
        mpfr_mul(r9337, r9335, r9336, MPFR_RNDN);
        mpfr_div(r9338, r9337, r9334, MPFR_RNDN);
        mpfr_set_d(r9339, a, MPFR_RNDN);
        mpfr_div(r9340, r9330, r9333, MPFR_RNDN);
        mpfr_div(r9341, r9339, r9340, MPFR_RNDN);
        mpfr_sub(r9342, r9341, r9330, MPFR_RNDN);
        mpfr_div(r9343, r9338, r9342, MPFR_RNDN);
        ;
        mpfr_set_si(r9345, mpfr_cmp(r9330, r9344) <= 0, MPFR_RNDN);
        mpfr_mul(r9346, r9333, r9336, MPFR_RNDN);
        mpfr_div(r9347, r9346, r9334, MPFR_RNDN);
        mpfr_mul(r9348, r9330, r9330, MPFR_RNDN);
        mpfr_mul(r9349, r9333, r9339, MPFR_RNDN);
        mpfr_mul(r9350, r9336, r9349, MPFR_RNDN);
        mpfr_sub(r9351, r9348, r9350, MPFR_RNDN);
        mpfr_sqrt(r9352, r9351, MPFR_RNDN);
        mpfr_sub(r9353, r9352, r9330, MPFR_RNDN);
        mpfr_div(r9354, r9347, r9353, MPFR_RNDN);
        ;
        mpfr_set_si(r9356, mpfr_cmp(r9330, r9355) <= 0, MPFR_RNDN);
        mpfr_neg(r9357, r9330, MPFR_RNDN);
        mpfr_sub(r9358, r9357, r9352, MPFR_RNDN);
        mpfr_div(r9359, r9358, r9339, MPFR_RNDN);
        ;
        mpfr_div(r9361, r9360, r9334, MPFR_RNDN);
        mpfr_mul(r9362, r9359, r9361, MPFR_RNDN);
        mpfr_div(r9363, r9333, r9330, MPFR_RNDN);
        mpfr_div(r9364, r9330, r9339, MPFR_RNDN);
        mpfr_sub(r9365, r9363, r9364, MPFR_RNDN);
        if (mpfr_get_si(r9356, MPFR_RNDN)) { mpfr_set(r9366, r9362, MPFR_RNDN); } else { mpfr_set(r9366, r9365, MPFR_RNDN); };
        if (mpfr_get_si(r9345, MPFR_RNDN)) { mpfr_set(r9367, r9354, MPFR_RNDN); } else { mpfr_set(r9367, r9366, MPFR_RNDN); };
        if (mpfr_get_si(r9332, MPFR_RNDN)) { mpfr_set(r9368, r9343, MPFR_RNDN); } else { mpfr_set(r9368, r9367, MPFR_RNDN); };
        return mpfr_get_d(r9368, MPFR_RNDN);
}

