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

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

double f_if(float a, float b, float c) {
        float r27155 = b;
        float r27156 = -r27155;
        float r27157 = r27155 * r27155;
        float r27158 = 4;
        float r27159 = a;
        float r27160 = r27158 * r27159;
        float r27161 = c;
        float r27162 = r27160 * r27161;
        float r27163 = r27157 - r27162;
        float r27164 = sqrt(r27163);
        float r27165 = r27156 + r27164;
        float r27166 = 2;
        float r27167 = r27166 * r27159;
        float r27168 = r27165 / r27167;
        return r27168;
}

double f_id(double a, double b, double c) {
        double r27169 = b;
        double r27170 = -r27169;
        double r27171 = r27169 * r27169;
        double r27172 = 4;
        double r27173 = a;
        double r27174 = r27172 * r27173;
        double r27175 = c;
        double r27176 = r27174 * r27175;
        double r27177 = r27171 - r27176;
        double r27178 = sqrt(r27177);
        double r27179 = r27170 + r27178;
        double r27180 = 2;
        double r27181 = r27180 * r27173;
        double r27182 = r27179 / r27181;
        return r27182;
}


double f_of(float a, float b, float c) {
        float r27183 = 4;
        float r27184 = a;
        float r27185 = r27183 * r27184;
        float r27186 = c;
        float r27187 = -r27186;
        float r27188 = b;
        float r27189 = r27188 * r27188;
        float r27190 = fma(r27185, r27187, r27189);
        float r27191 = sqrt(r27190);
        float r27192 = r27191 - r27188;
        float r27193 = log(r27192);
        float r27194 = exp(r27193);
        float r27195 = 2;
        float r27196 = r27195 * r27184;
        float r27197 = r27194 / r27196;
        float r27198 = -1.6817238564979023e+308;
        bool r27199 = r27197 <= r27198;
        float r27200 = -r27188;
        float r27201 = r27186 / r27200;
        float r27202 = -1.815837913554311e-308;
        bool r27203 = r27197 <= r27202;
        float r27204 = 1;
        float r27205 = r27196 / r27192;
        float r27206 = r27204 / r27205;
        float r27207 = 1.4932577935189803e-255;
        bool r27208 = r27197 <= r27207;
        float r27209 = 1.7094519340684915e+308;
        bool r27210 = r27197 <= r27209;
        float r27211 = r27210 ? r27206 : r27201;
        float r27212 = r27208 ? r27201 : r27211;
        float r27213 = r27203 ? r27206 : r27212;
        float r27214 = r27199 ? r27201 : r27213;
        return r27214;
}

double f_od(double a, double b, double c) {
        double r27215 = 4;
        double r27216 = a;
        double r27217 = r27215 * r27216;
        double r27218 = c;
        double r27219 = -r27218;
        double r27220 = b;
        double r27221 = r27220 * r27220;
        double r27222 = fma(r27217, r27219, r27221);
        double r27223 = sqrt(r27222);
        double r27224 = r27223 - r27220;
        double r27225 = log(r27224);
        double r27226 = exp(r27225);
        double r27227 = 2;
        double r27228 = r27227 * r27216;
        double r27229 = r27226 / r27228;
        double r27230 = -1.6817238564979023e+308;
        bool r27231 = r27229 <= r27230;
        double r27232 = -r27220;
        double r27233 = r27218 / r27232;
        double r27234 = -1.815837913554311e-308;
        bool r27235 = r27229 <= r27234;
        double r27236 = 1;
        double r27237 = r27228 / r27224;
        double r27238 = r27236 / r27237;
        double r27239 = 1.4932577935189803e-255;
        bool r27240 = r27229 <= r27239;
        double r27241 = 1.7094519340684915e+308;
        bool r27242 = r27229 <= r27241;
        double r27243 = r27242 ? r27238 : r27233;
        double r27244 = r27240 ? r27233 : r27243;
        double r27245 = r27235 ? r27238 : r27244;
        double r27246 = r27231 ? r27233 : r27245;
        return r27246;
}

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 r27247, r27248, r27249, r27250, r27251, r27252, r27253, r27254, r27255, r27256, r27257, r27258, r27259, r27260;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r27247);
        mpfr_init(r27248);
        mpfr_init(r27249);
        mpfr_init_set_str(r27250, "4", 10, MPFR_RNDN);
        mpfr_init(r27251);
        mpfr_init(r27252);
        mpfr_init(r27253);
        mpfr_init(r27254);
        mpfr_init(r27255);
        mpfr_init(r27256);
        mpfr_init(r27257);
        mpfr_init_set_str(r27258, "2", 10, MPFR_RNDN);
        mpfr_init(r27259);
        mpfr_init(r27260);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r27247, b, MPFR_RNDN);
        mpfr_neg(r27248, r27247, MPFR_RNDN);
        mpfr_mul(r27249, r27247, r27247, MPFR_RNDN);
        ;
        mpfr_set_d(r27251, a, MPFR_RNDN);
        mpfr_mul(r27252, r27250, r27251, MPFR_RNDN);
        mpfr_set_d(r27253, c, MPFR_RNDN);
        mpfr_mul(r27254, r27252, r27253, MPFR_RNDN);
        mpfr_sub(r27255, r27249, r27254, MPFR_RNDN);
        mpfr_sqrt(r27256, r27255, MPFR_RNDN);
        mpfr_add(r27257, r27248, r27256, MPFR_RNDN);
        ;
        mpfr_mul(r27259, r27258, r27251, MPFR_RNDN);
        mpfr_div(r27260, r27257, r27259, MPFR_RNDN);
        return mpfr_get_d(r27260, MPFR_RNDN);
}

static mpfr_t r27261, r27262, r27263, r27264, r27265, r27266, r27267, r27268, r27269, r27270, r27271, r27272, r27273, r27274, r27275, r27276, r27277, r27278, r27279, r27280, r27281, r27282, r27283, r27284, r27285, r27286, r27287, r27288, r27289, r27290, r27291, r27292;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r27261, "4", 10, MPFR_RNDN);
        mpfr_init(r27262);
        mpfr_init(r27263);
        mpfr_init(r27264);
        mpfr_init(r27265);
        mpfr_init(r27266);
        mpfr_init(r27267);
        mpfr_init(r27268);
        mpfr_init(r27269);
        mpfr_init(r27270);
        mpfr_init(r27271);
        mpfr_init(r27272);
        mpfr_init_set_str(r27273, "2", 10, MPFR_RNDN);
        mpfr_init(r27274);
        mpfr_init(r27275);
        mpfr_init_set_str(r27276, "-1.6817238564979023e+308", 10, MPFR_RNDN);
        mpfr_init(r27277);
        mpfr_init(r27278);
        mpfr_init(r27279);
        mpfr_init_set_str(r27280, "-1.815837913554311e-308", 10, MPFR_RNDN);
        mpfr_init(r27281);
        mpfr_init_set_str(r27282, "1", 10, MPFR_RNDN);
        mpfr_init(r27283);
        mpfr_init(r27284);
        mpfr_init_set_str(r27285, "1.4932577935189803e-255", 10, MPFR_RNDN);
        mpfr_init(r27286);
        mpfr_init_set_str(r27287, "1.7094519340684915e+308", 10, MPFR_RNDN);
        mpfr_init(r27288);
        mpfr_init(r27289);
        mpfr_init(r27290);
        mpfr_init(r27291);
        mpfr_init(r27292);
}

double f_fm(double a, double b, double c) {
        ;
        mpfr_set_d(r27262, a, MPFR_RNDN);
        mpfr_mul(r27263, r27261, r27262, MPFR_RNDN);
        mpfr_set_d(r27264, c, MPFR_RNDN);
        mpfr_neg(r27265, r27264, MPFR_RNDN);
        mpfr_set_d(r27266, b, MPFR_RNDN);
        mpfr_mul(r27267, r27266, r27266, MPFR_RNDN);
        mpfr_fma(r27268, r27263, r27265, r27267, MPFR_RNDN);
        mpfr_sqrt(r27269, r27268, MPFR_RNDN);
        mpfr_sub(r27270, r27269, r27266, MPFR_RNDN);
        mpfr_log(r27271, r27270, MPFR_RNDN);
        mpfr_exp(r27272, r27271, MPFR_RNDN);
        ;
        mpfr_mul(r27274, r27273, r27262, MPFR_RNDN);
        mpfr_div(r27275, r27272, r27274, MPFR_RNDN);
        ;
        mpfr_set_si(r27277, mpfr_cmp(r27275, r27276) <= 0, MPFR_RNDN);
        mpfr_neg(r27278, r27266, MPFR_RNDN);
        mpfr_div(r27279, r27264, r27278, MPFR_RNDN);
        ;
        mpfr_set_si(r27281, mpfr_cmp(r27275, r27280) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r27283, r27274, r27270, MPFR_RNDN);
        mpfr_div(r27284, r27282, r27283, MPFR_RNDN);
        ;
        mpfr_set_si(r27286, mpfr_cmp(r27275, r27285) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r27288, mpfr_cmp(r27275, r27287) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r27288, MPFR_RNDN)) { mpfr_set(r27289, r27284, MPFR_RNDN); } else { mpfr_set(r27289, r27279, MPFR_RNDN); };
        if (mpfr_get_si(r27286, MPFR_RNDN)) { mpfr_set(r27290, r27279, MPFR_RNDN); } else { mpfr_set(r27290, r27289, MPFR_RNDN); };
        if (mpfr_get_si(r27281, MPFR_RNDN)) { mpfr_set(r27291, r27284, MPFR_RNDN); } else { mpfr_set(r27291, r27290, MPFR_RNDN); };
        if (mpfr_get_si(r27277, MPFR_RNDN)) { mpfr_set(r27292, r27279, MPFR_RNDN); } else { mpfr_set(r27292, r27291, MPFR_RNDN); };
        return mpfr_get_d(r27292, MPFR_RNDN);
}

static mpfr_t r27293, r27294, r27295, r27296, r27297, r27298, r27299, r27300, r27301, r27302, r27303, r27304, r27305, r27306, r27307, r27308, r27309, r27310, r27311, r27312, r27313, r27314, r27315, r27316, r27317, r27318, r27319, r27320, r27321, r27322, r27323, r27324;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r27293, "4", 10, MPFR_RNDN);
        mpfr_init(r27294);
        mpfr_init(r27295);
        mpfr_init(r27296);
        mpfr_init(r27297);
        mpfr_init(r27298);
        mpfr_init(r27299);
        mpfr_init(r27300);
        mpfr_init(r27301);
        mpfr_init(r27302);
        mpfr_init(r27303);
        mpfr_init(r27304);
        mpfr_init_set_str(r27305, "2", 10, MPFR_RNDN);
        mpfr_init(r27306);
        mpfr_init(r27307);
        mpfr_init_set_str(r27308, "-1.6817238564979023e+308", 10, MPFR_RNDN);
        mpfr_init(r27309);
        mpfr_init(r27310);
        mpfr_init(r27311);
        mpfr_init_set_str(r27312, "-1.815837913554311e-308", 10, MPFR_RNDN);
        mpfr_init(r27313);
        mpfr_init_set_str(r27314, "1", 10, MPFR_RNDN);
        mpfr_init(r27315);
        mpfr_init(r27316);
        mpfr_init_set_str(r27317, "1.4932577935189803e-255", 10, MPFR_RNDN);
        mpfr_init(r27318);
        mpfr_init_set_str(r27319, "1.7094519340684915e+308", 10, MPFR_RNDN);
        mpfr_init(r27320);
        mpfr_init(r27321);
        mpfr_init(r27322);
        mpfr_init(r27323);
        mpfr_init(r27324);
}

double f_dm(double a, double b, double c) {
        ;
        mpfr_set_d(r27294, a, MPFR_RNDN);
        mpfr_mul(r27295, r27293, r27294, MPFR_RNDN);
        mpfr_set_d(r27296, c, MPFR_RNDN);
        mpfr_neg(r27297, r27296, MPFR_RNDN);
        mpfr_set_d(r27298, b, MPFR_RNDN);
        mpfr_mul(r27299, r27298, r27298, MPFR_RNDN);
        mpfr_fma(r27300, r27295, r27297, r27299, MPFR_RNDN);
        mpfr_sqrt(r27301, r27300, MPFR_RNDN);
        mpfr_sub(r27302, r27301, r27298, MPFR_RNDN);
        mpfr_log(r27303, r27302, MPFR_RNDN);
        mpfr_exp(r27304, r27303, MPFR_RNDN);
        ;
        mpfr_mul(r27306, r27305, r27294, MPFR_RNDN);
        mpfr_div(r27307, r27304, r27306, MPFR_RNDN);
        ;
        mpfr_set_si(r27309, mpfr_cmp(r27307, r27308) <= 0, MPFR_RNDN);
        mpfr_neg(r27310, r27298, MPFR_RNDN);
        mpfr_div(r27311, r27296, r27310, MPFR_RNDN);
        ;
        mpfr_set_si(r27313, mpfr_cmp(r27307, r27312) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r27315, r27306, r27302, MPFR_RNDN);
        mpfr_div(r27316, r27314, r27315, MPFR_RNDN);
        ;
        mpfr_set_si(r27318, mpfr_cmp(r27307, r27317) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r27320, mpfr_cmp(r27307, r27319) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r27320, MPFR_RNDN)) { mpfr_set(r27321, r27316, MPFR_RNDN); } else { mpfr_set(r27321, r27311, MPFR_RNDN); };
        if (mpfr_get_si(r27318, MPFR_RNDN)) { mpfr_set(r27322, r27311, MPFR_RNDN); } else { mpfr_set(r27322, r27321, MPFR_RNDN); };
        if (mpfr_get_si(r27313, MPFR_RNDN)) { mpfr_set(r27323, r27316, MPFR_RNDN); } else { mpfr_set(r27323, r27322, MPFR_RNDN); };
        if (mpfr_get_si(r27309, MPFR_RNDN)) { mpfr_set(r27324, r27311, MPFR_RNDN); } else { mpfr_set(r27324, r27323, MPFR_RNDN); };
        return mpfr_get_d(r27324, MPFR_RNDN);
}

