#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 r39191 = b;
        float r39192 = -r39191;
        float r39193 = r39191 * r39191;
        float r39194 = 4;
        float r39195 = a;
        float r39196 = c;
        float r39197 = r39195 * r39196;
        float r39198 = r39194 * r39197;
        float r39199 = r39193 - r39198;
        float r39200 = sqrt(r39199);
        float r39201 = r39192 - r39200;
        float r39202 = 2;
        float r39203 = r39202 * r39195;
        float r39204 = r39201 / r39203;
        return r39204;
}

double f_id(double a, double b, double c) {
        double r39205 = b;
        double r39206 = -r39205;
        double r39207 = r39205 * r39205;
        double r39208 = 4;
        double r39209 = a;
        double r39210 = c;
        double r39211 = r39209 * r39210;
        double r39212 = r39208 * r39211;
        double r39213 = r39207 - r39212;
        double r39214 = sqrt(r39213);
        double r39215 = r39206 - r39214;
        double r39216 = 2;
        double r39217 = r39216 * r39209;
        double r39218 = r39215 / r39217;
        return r39218;
}


double f_of(float a, float b, float c) {
        float r39219 = b;
        float r39220 = -1.2412432804243813e+32;
        bool r39221 = r39219 <= r39220;
        float r39222 = -r39219;
        float r39223 = r39222 + r39219;
        float r39224 = a;
        float r39225 = r39224 + r39224;
        float r39226 = r39223 / r39225;
        float r39227 = c;
        float r39228 = r39227 / r39219;
        float r39229 = r39226 - r39228;
        float r39230 = -3.585471823497232e-104;
        bool r39231 = r39219 <= r39230;
        float r39232 = r39227 * r39224;
        float r39233 = 4;
        float r39234 = r39232 * r39233;
        float r39235 = r39219 * r39219;
        float r39236 = r39224 * r39227;
        float r39237 = r39233 * r39236;
        float r39238 = r39235 - r39237;
        float r39239 = sqrt(r39238);
        float r39240 = r39222 + r39239;
        float r39241 = r39234 / r39240;
        float r39242 = 2;
        float r39243 = r39242 * r39224;
        float r39244 = r39241 / r39243;
        float r39245 = 1.6937529134374811e+81;
        bool r39246 = r39219 <= r39245;
        float r39247 = r39233 * r39224;
        float r39248 = r39247 * r39227;
        float r39249 = r39235 - r39248;
        float r39250 = sqrt(r39249);
        float r39251 = r39222 - r39250;
        float r39252 = r39251 / r39243;
        float r39253 = r39222 / r39224;
        float r39254 = r39246 ? r39252 : r39253;
        float r39255 = r39231 ? r39244 : r39254;
        float r39256 = r39221 ? r39229 : r39255;
        return r39256;
}

double f_od(double a, double b, double c) {
        double r39257 = b;
        double r39258 = -1.2412432804243813e+32;
        bool r39259 = r39257 <= r39258;
        double r39260 = -r39257;
        double r39261 = r39260 + r39257;
        double r39262 = a;
        double r39263 = r39262 + r39262;
        double r39264 = r39261 / r39263;
        double r39265 = c;
        double r39266 = r39265 / r39257;
        double r39267 = r39264 - r39266;
        double r39268 = -3.585471823497232e-104;
        bool r39269 = r39257 <= r39268;
        double r39270 = r39265 * r39262;
        double r39271 = 4;
        double r39272 = r39270 * r39271;
        double r39273 = r39257 * r39257;
        double r39274 = r39262 * r39265;
        double r39275 = r39271 * r39274;
        double r39276 = r39273 - r39275;
        double r39277 = sqrt(r39276);
        double r39278 = r39260 + r39277;
        double r39279 = r39272 / r39278;
        double r39280 = 2;
        double r39281 = r39280 * r39262;
        double r39282 = r39279 / r39281;
        double r39283 = 1.6937529134374811e+81;
        bool r39284 = r39257 <= r39283;
        double r39285 = r39271 * r39262;
        double r39286 = r39285 * r39265;
        double r39287 = r39273 - r39286;
        double r39288 = sqrt(r39287);
        double r39289 = r39260 - r39288;
        double r39290 = r39289 / r39281;
        double r39291 = r39260 / r39262;
        double r39292 = r39284 ? r39290 : r39291;
        double r39293 = r39269 ? r39282 : r39292;
        double r39294 = r39259 ? r39267 : r39293;
        return r39294;
}

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 r39295, r39296, r39297, r39298, r39299, r39300, r39301, r39302, r39303, r39304, r39305, r39306, r39307, r39308;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3216);
        mpfr_init(r39295);
        mpfr_init(r39296);
        mpfr_init(r39297);
        mpfr_init_set_str(r39298, "4", 10, MPFR_RNDN);
        mpfr_init(r39299);
        mpfr_init(r39300);
        mpfr_init(r39301);
        mpfr_init(r39302);
        mpfr_init(r39303);
        mpfr_init(r39304);
        mpfr_init(r39305);
        mpfr_init_set_str(r39306, "2", 10, MPFR_RNDN);
        mpfr_init(r39307);
        mpfr_init(r39308);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r39295, b, MPFR_RNDN);
        mpfr_neg(r39296, r39295, MPFR_RNDN);
        mpfr_mul(r39297, r39295, r39295, MPFR_RNDN);
        ;
        mpfr_set_d(r39299, a, MPFR_RNDN);
        mpfr_set_d(r39300, c, MPFR_RNDN);
        mpfr_mul(r39301, r39299, r39300, MPFR_RNDN);
        mpfr_mul(r39302, r39298, r39301, MPFR_RNDN);
        mpfr_sub(r39303, r39297, r39302, MPFR_RNDN);
        mpfr_sqrt(r39304, r39303, MPFR_RNDN);
        mpfr_sub(r39305, r39296, r39304, MPFR_RNDN);
        ;
        mpfr_mul(r39307, r39306, r39299, MPFR_RNDN);
        mpfr_div(r39308, r39305, r39307, MPFR_RNDN);
        return mpfr_get_d(r39308, MPFR_RNDN);
}

static mpfr_t r39309, r39310, r39311, r39312, r39313, r39314, r39315, r39316, r39317, r39318, r39319, r39320, r39321, r39322, r39323, r39324, r39325, r39326, r39327, r39328, r39329, r39330, r39331, r39332, r39333, r39334, r39335, r39336, r39337, r39338, r39339, r39340, r39341, r39342, r39343, r39344, r39345, r39346;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3216);
        mpfr_init(r39309);
        mpfr_init_set_str(r39310, "-1.2412432804243813e+32", 10, MPFR_RNDN);
        mpfr_init(r39311);
        mpfr_init(r39312);
        mpfr_init(r39313);
        mpfr_init(r39314);
        mpfr_init(r39315);
        mpfr_init(r39316);
        mpfr_init(r39317);
        mpfr_init(r39318);
        mpfr_init(r39319);
        mpfr_init_set_str(r39320, "-3.585471823497232e-104", 10, MPFR_RNDN);
        mpfr_init(r39321);
        mpfr_init(r39322);
        mpfr_init_set_str(r39323, "4", 10, MPFR_RNDN);
        mpfr_init(r39324);
        mpfr_init(r39325);
        mpfr_init(r39326);
        mpfr_init(r39327);
        mpfr_init(r39328);
        mpfr_init(r39329);
        mpfr_init(r39330);
        mpfr_init(r39331);
        mpfr_init_set_str(r39332, "2", 10, MPFR_RNDN);
        mpfr_init(r39333);
        mpfr_init(r39334);
        mpfr_init_set_str(r39335, "1.6937529134374811e+81", 10, MPFR_RNDN);
        mpfr_init(r39336);
        mpfr_init(r39337);
        mpfr_init(r39338);
        mpfr_init(r39339);
        mpfr_init(r39340);
        mpfr_init(r39341);
        mpfr_init(r39342);
        mpfr_init(r39343);
        mpfr_init(r39344);
        mpfr_init(r39345);
        mpfr_init(r39346);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r39309, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39311, mpfr_cmp(r39309, r39310) <= 0, MPFR_RNDN);
        mpfr_neg(r39312, r39309, MPFR_RNDN);
        mpfr_add(r39313, r39312, r39309, MPFR_RNDN);
        mpfr_set_d(r39314, a, MPFR_RNDN);
        mpfr_add(r39315, r39314, r39314, MPFR_RNDN);
        mpfr_div(r39316, r39313, r39315, MPFR_RNDN);
        mpfr_set_d(r39317, c, MPFR_RNDN);
        mpfr_div(r39318, r39317, r39309, MPFR_RNDN);
        mpfr_sub(r39319, r39316, r39318, MPFR_RNDN);
        ;
        mpfr_set_si(r39321, mpfr_cmp(r39309, r39320) <= 0, MPFR_RNDN);
        mpfr_mul(r39322, r39317, r39314, MPFR_RNDN);
        ;
        mpfr_mul(r39324, r39322, r39323, MPFR_RNDN);
        mpfr_mul(r39325, r39309, r39309, MPFR_RNDN);
        mpfr_mul(r39326, r39314, r39317, MPFR_RNDN);
        mpfr_mul(r39327, r39323, r39326, MPFR_RNDN);
        mpfr_sub(r39328, r39325, r39327, MPFR_RNDN);
        mpfr_sqrt(r39329, r39328, MPFR_RNDN);
        mpfr_add(r39330, r39312, r39329, MPFR_RNDN);
        mpfr_div(r39331, r39324, r39330, MPFR_RNDN);
        ;
        mpfr_mul(r39333, r39332, r39314, MPFR_RNDN);
        mpfr_div(r39334, r39331, r39333, MPFR_RNDN);
        ;
        mpfr_set_si(r39336, mpfr_cmp(r39309, r39335) <= 0, MPFR_RNDN);
        mpfr_mul(r39337, r39323, r39314, MPFR_RNDN);
        mpfr_mul(r39338, r39337, r39317, MPFR_RNDN);
        mpfr_sub(r39339, r39325, r39338, MPFR_RNDN);
        mpfr_sqrt(r39340, r39339, MPFR_RNDN);
        mpfr_sub(r39341, r39312, r39340, MPFR_RNDN);
        mpfr_div(r39342, r39341, r39333, MPFR_RNDN);
        mpfr_div(r39343, r39312, r39314, MPFR_RNDN);
        if (mpfr_get_si(r39336, MPFR_RNDN)) { mpfr_set(r39344, r39342, MPFR_RNDN); } else { mpfr_set(r39344, r39343, MPFR_RNDN); };
        if (mpfr_get_si(r39321, MPFR_RNDN)) { mpfr_set(r39345, r39334, MPFR_RNDN); } else { mpfr_set(r39345, r39344, MPFR_RNDN); };
        if (mpfr_get_si(r39311, MPFR_RNDN)) { mpfr_set(r39346, r39319, MPFR_RNDN); } else { mpfr_set(r39346, r39345, MPFR_RNDN); };
        return mpfr_get_d(r39346, MPFR_RNDN);
}

static mpfr_t r39347, r39348, r39349, r39350, r39351, r39352, r39353, r39354, r39355, r39356, r39357, r39358, r39359, r39360, r39361, r39362, r39363, r39364, r39365, r39366, r39367, r39368, r39369, r39370, r39371, r39372, r39373, r39374, r39375, r39376, r39377, r39378, r39379, r39380, r39381, r39382, r39383, r39384;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3216);
        mpfr_init(r39347);
        mpfr_init_set_str(r39348, "-1.2412432804243813e+32", 10, MPFR_RNDN);
        mpfr_init(r39349);
        mpfr_init(r39350);
        mpfr_init(r39351);
        mpfr_init(r39352);
        mpfr_init(r39353);
        mpfr_init(r39354);
        mpfr_init(r39355);
        mpfr_init(r39356);
        mpfr_init(r39357);
        mpfr_init_set_str(r39358, "-3.585471823497232e-104", 10, MPFR_RNDN);
        mpfr_init(r39359);
        mpfr_init(r39360);
        mpfr_init_set_str(r39361, "4", 10, MPFR_RNDN);
        mpfr_init(r39362);
        mpfr_init(r39363);
        mpfr_init(r39364);
        mpfr_init(r39365);
        mpfr_init(r39366);
        mpfr_init(r39367);
        mpfr_init(r39368);
        mpfr_init(r39369);
        mpfr_init_set_str(r39370, "2", 10, MPFR_RNDN);
        mpfr_init(r39371);
        mpfr_init(r39372);
        mpfr_init_set_str(r39373, "1.6937529134374811e+81", 10, MPFR_RNDN);
        mpfr_init(r39374);
        mpfr_init(r39375);
        mpfr_init(r39376);
        mpfr_init(r39377);
        mpfr_init(r39378);
        mpfr_init(r39379);
        mpfr_init(r39380);
        mpfr_init(r39381);
        mpfr_init(r39382);
        mpfr_init(r39383);
        mpfr_init(r39384);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r39347, b, MPFR_RNDN);
        ;
        mpfr_set_si(r39349, mpfr_cmp(r39347, r39348) <= 0, MPFR_RNDN);
        mpfr_neg(r39350, r39347, MPFR_RNDN);
        mpfr_add(r39351, r39350, r39347, MPFR_RNDN);
        mpfr_set_d(r39352, a, MPFR_RNDN);
        mpfr_add(r39353, r39352, r39352, MPFR_RNDN);
        mpfr_div(r39354, r39351, r39353, MPFR_RNDN);
        mpfr_set_d(r39355, c, MPFR_RNDN);
        mpfr_div(r39356, r39355, r39347, MPFR_RNDN);
        mpfr_sub(r39357, r39354, r39356, MPFR_RNDN);
        ;
        mpfr_set_si(r39359, mpfr_cmp(r39347, r39358) <= 0, MPFR_RNDN);
        mpfr_mul(r39360, r39355, r39352, MPFR_RNDN);
        ;
        mpfr_mul(r39362, r39360, r39361, MPFR_RNDN);
        mpfr_mul(r39363, r39347, r39347, MPFR_RNDN);
        mpfr_mul(r39364, r39352, r39355, MPFR_RNDN);
        mpfr_mul(r39365, r39361, r39364, MPFR_RNDN);
        mpfr_sub(r39366, r39363, r39365, MPFR_RNDN);
        mpfr_sqrt(r39367, r39366, MPFR_RNDN);
        mpfr_add(r39368, r39350, r39367, MPFR_RNDN);
        mpfr_div(r39369, r39362, r39368, MPFR_RNDN);
        ;
        mpfr_mul(r39371, r39370, r39352, MPFR_RNDN);
        mpfr_div(r39372, r39369, r39371, MPFR_RNDN);
        ;
        mpfr_set_si(r39374, mpfr_cmp(r39347, r39373) <= 0, MPFR_RNDN);
        mpfr_mul(r39375, r39361, r39352, MPFR_RNDN);
        mpfr_mul(r39376, r39375, r39355, MPFR_RNDN);
        mpfr_sub(r39377, r39363, r39376, MPFR_RNDN);
        mpfr_sqrt(r39378, r39377, MPFR_RNDN);
        mpfr_sub(r39379, r39350, r39378, MPFR_RNDN);
        mpfr_div(r39380, r39379, r39371, MPFR_RNDN);
        mpfr_div(r39381, r39350, r39352, MPFR_RNDN);
        if (mpfr_get_si(r39374, MPFR_RNDN)) { mpfr_set(r39382, r39380, MPFR_RNDN); } else { mpfr_set(r39382, r39381, MPFR_RNDN); };
        if (mpfr_get_si(r39359, MPFR_RNDN)) { mpfr_set(r39383, r39372, MPFR_RNDN); } else { mpfr_set(r39383, r39382, MPFR_RNDN); };
        if (mpfr_get_si(r39349, MPFR_RNDN)) { mpfr_set(r39384, r39357, MPFR_RNDN); } else { mpfr_set(r39384, r39383, MPFR_RNDN); };
        return mpfr_get_d(r39384, MPFR_RNDN);
}

