#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 r17142 = b;
        float r17143 = -r17142;
        float r17144 = r17142 * r17142;
        float r17145 = 4.0f;
        float r17146 = a;
        float r17147 = r17145 * r17146;
        float r17148 = c;
        float r17149 = r17147 * r17148;
        float r17150 = r17144 - r17149;
        float r17151 = sqrt(r17150);
        float r17152 = r17143 + r17151;
        float r17153 = 2.0f;
        float r17154 = r17153 * r17146;
        float r17155 = r17152 / r17154;
        return r17155;
}

double f_id(double a, double b, double c) {
        double r17156 = b;
        double r17157 = -r17156;
        double r17158 = r17156 * r17156;
        double r17159 = 4.0;
        double r17160 = a;
        double r17161 = r17159 * r17160;
        double r17162 = c;
        double r17163 = r17161 * r17162;
        double r17164 = r17158 - r17163;
        double r17165 = sqrt(r17164);
        double r17166 = r17157 + r17165;
        double r17167 = 2.0;
        double r17168 = r17167 * r17160;
        double r17169 = r17166 / r17168;
        return r17169;
}


double f_of(float a, float b, float c) {
        float r17170 = b;
        float r17171 = -16844219392.0f;
        bool r17172 = r17170 <= r17171;
        float r17173 = c;
        float r17174 = r17173 / r17170;
        float r17175 = a;
        float r17176 = r17170 / r17175;
        float r17177 = r17174 - r17176;
        float r17178 = 3.4267229693796253e-06f;
        bool r17179 = r17170 <= r17178;
        float r17180 = 1.0f;
        float r17181 = 2.0f;
        float r17182 = r17180 / r17181;
        float r17183 = -r17170;
        float r17184 = r17170 * r17170;
        float r17185 = 4.0f;
        float r17186 = r17173 * r17185;
        float r17187 = r17175 * r17186;
        float r17188 = r17184 - r17187;
        float r17189 = sqrt(r17188);
        float r17190 = r17183 + r17189;
        float r17191 = r17190 / r17175;
        float r17192 = r17182 * r17191;
        float r17193 = 2.229931901798318e+17f;
        bool r17194 = r17170 <= r17193;
        float r17195 = r17185 * r17175;
        float r17196 = r17195 * r17173;
        float r17197 = r17184 - r17196;
        float r17198 = sqrt(r17197);
        float r17199 = r17183 - r17198;
        float r17200 = r17196 / r17199;
        float r17201 = r17181 * r17175;
        float r17202 = r17200 / r17201;
        float r17203 = -2.0f;
        float r17204 = r17203 / r17181;
        float r17205 = r17174 * r17204;
        float r17206 = r17194 ? r17202 : r17205;
        float r17207 = r17179 ? r17192 : r17206;
        float r17208 = r17172 ? r17177 : r17207;
        return r17208;
}

double f_od(double a, double b, double c) {
        double r17209 = b;
        double r17210 = -16844219392.0;
        bool r17211 = r17209 <= r17210;
        double r17212 = c;
        double r17213 = r17212 / r17209;
        double r17214 = a;
        double r17215 = r17209 / r17214;
        double r17216 = r17213 - r17215;
        double r17217 = 3.4267229693796253e-06;
        bool r17218 = r17209 <= r17217;
        double r17219 = 1.0;
        double r17220 = 2.0;
        double r17221 = r17219 / r17220;
        double r17222 = -r17209;
        double r17223 = r17209 * r17209;
        double r17224 = 4.0;
        double r17225 = r17212 * r17224;
        double r17226 = r17214 * r17225;
        double r17227 = r17223 - r17226;
        double r17228 = sqrt(r17227);
        double r17229 = r17222 + r17228;
        double r17230 = r17229 / r17214;
        double r17231 = r17221 * r17230;
        double r17232 = 2.229931901798318e+17;
        bool r17233 = r17209 <= r17232;
        double r17234 = r17224 * r17214;
        double r17235 = r17234 * r17212;
        double r17236 = r17223 - r17235;
        double r17237 = sqrt(r17236);
        double r17238 = r17222 - r17237;
        double r17239 = r17235 / r17238;
        double r17240 = r17220 * r17214;
        double r17241 = r17239 / r17240;
        double r17242 = -2.0;
        double r17243 = r17242 / r17220;
        double r17244 = r17213 * r17243;
        double r17245 = r17233 ? r17241 : r17244;
        double r17246 = r17218 ? r17231 : r17245;
        double r17247 = r17211 ? r17216 : r17246;
        return r17247;
}

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 r17248, r17249, r17250, r17251, r17252, r17253, r17254, r17255, r17256, r17257, r17258, r17259, r17260, r17261;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r17248);
        mpfr_init(r17249);
        mpfr_init(r17250);
        mpfr_init_set_str(r17251, "4", 10, MPFR_RNDN);
        mpfr_init(r17252);
        mpfr_init(r17253);
        mpfr_init(r17254);
        mpfr_init(r17255);
        mpfr_init(r17256);
        mpfr_init(r17257);
        mpfr_init(r17258);
        mpfr_init_set_str(r17259, "2", 10, MPFR_RNDN);
        mpfr_init(r17260);
        mpfr_init(r17261);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r17248, b, MPFR_RNDN);
        mpfr_neg(r17249, r17248, MPFR_RNDN);
        mpfr_sqr(r17250, r17248, MPFR_RNDN);
        ;
        mpfr_set_d(r17252, a, MPFR_RNDN);
        mpfr_mul(r17253, r17251, r17252, MPFR_RNDN);
        mpfr_set_d(r17254, c, MPFR_RNDN);
        mpfr_mul(r17255, r17253, r17254, MPFR_RNDN);
        mpfr_sub(r17256, r17250, r17255, MPFR_RNDN);
        mpfr_sqrt(r17257, r17256, MPFR_RNDN);
        mpfr_add(r17258, r17249, r17257, MPFR_RNDN);
        ;
        mpfr_mul(r17260, r17259, r17252, MPFR_RNDN);
        mpfr_div(r17261, r17258, r17260, MPFR_RNDN);
        return mpfr_get_d(r17261, MPFR_RNDN);
}

static mpfr_t r17262, r17263, r17264, r17265, r17266, r17267, r17268, r17269, r17270, r17271, r17272, r17273, r17274, r17275, r17276, r17277, r17278, r17279, r17280, r17281, r17282, r17283, r17284, r17285, r17286, r17287, r17288, r17289, r17290, r17291, r17292, r17293, r17294, r17295, r17296, r17297, r17298, r17299, r17300;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17262);
        mpfr_init_set_str(r17263, "-1.6844219f+10", 10, MPFR_RNDN);
        mpfr_init(r17264);
        mpfr_init(r17265);
        mpfr_init(r17266);
        mpfr_init(r17267);
        mpfr_init(r17268);
        mpfr_init(r17269);
        mpfr_init_set_str(r17270, "3.426723f-06", 10, MPFR_RNDN);
        mpfr_init(r17271);
        mpfr_init_set_str(r17272, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17273, "2", 10, MPFR_RNDN);
        mpfr_init(r17274);
        mpfr_init(r17275);
        mpfr_init(r17276);
        mpfr_init_set_str(r17277, "4", 10, MPFR_RNDN);
        mpfr_init(r17278);
        mpfr_init(r17279);
        mpfr_init(r17280);
        mpfr_init(r17281);
        mpfr_init(r17282);
        mpfr_init(r17283);
        mpfr_init(r17284);
        mpfr_init_set_str(r17285, "2.2299319f+17", 10, MPFR_RNDN);
        mpfr_init(r17286);
        mpfr_init(r17287);
        mpfr_init(r17288);
        mpfr_init(r17289);
        mpfr_init(r17290);
        mpfr_init(r17291);
        mpfr_init(r17292);
        mpfr_init(r17293);
        mpfr_init(r17294);
        mpfr_init_set_str(r17295, "-2", 10, MPFR_RNDN);
        mpfr_init(r17296);
        mpfr_init(r17297);
        mpfr_init(r17298);
        mpfr_init(r17299);
        mpfr_init(r17300);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r17262, b, MPFR_RNDN);
        ;
        mpfr_set_si(r17264, mpfr_cmp(r17262, r17263) <= 0, MPFR_RNDN);
        mpfr_set_d(r17265, c, MPFR_RNDN);
        mpfr_div(r17266, r17265, r17262, MPFR_RNDN);
        mpfr_set_d(r17267, a, MPFR_RNDN);
        mpfr_div(r17268, r17262, r17267, MPFR_RNDN);
        mpfr_sub(r17269, r17266, r17268, MPFR_RNDN);
        ;
        mpfr_set_si(r17271, mpfr_cmp(r17262, r17270) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r17274, r17272, r17273, MPFR_RNDN);
        mpfr_neg(r17275, r17262, MPFR_RNDN);
        mpfr_sqr(r17276, r17262, MPFR_RNDN);
        ;
        mpfr_mul(r17278, r17265, r17277, MPFR_RNDN);
        mpfr_mul(r17279, r17267, r17278, MPFR_RNDN);
        mpfr_sub(r17280, r17276, r17279, MPFR_RNDN);
        mpfr_sqrt(r17281, r17280, MPFR_RNDN);
        mpfr_add(r17282, r17275, r17281, MPFR_RNDN);
        mpfr_div(r17283, r17282, r17267, MPFR_RNDN);
        mpfr_mul(r17284, r17274, r17283, MPFR_RNDN);
        ;
        mpfr_set_si(r17286, mpfr_cmp(r17262, r17285) <= 0, MPFR_RNDN);
        mpfr_mul(r17287, r17277, r17267, MPFR_RNDN);
        mpfr_mul(r17288, r17287, r17265, MPFR_RNDN);
        mpfr_sub(r17289, r17276, r17288, MPFR_RNDN);
        mpfr_sqrt(r17290, r17289, MPFR_RNDN);
        mpfr_sub(r17291, r17275, r17290, MPFR_RNDN);
        mpfr_div(r17292, r17288, r17291, MPFR_RNDN);
        mpfr_mul(r17293, r17273, r17267, MPFR_RNDN);
        mpfr_div(r17294, r17292, r17293, MPFR_RNDN);
        ;
        mpfr_div(r17296, r17295, r17273, MPFR_RNDN);
        mpfr_mul(r17297, r17266, r17296, MPFR_RNDN);
        if (mpfr_get_si(r17286, MPFR_RNDN)) { mpfr_set(r17298, r17294, MPFR_RNDN); } else { mpfr_set(r17298, r17297, MPFR_RNDN); };
        if (mpfr_get_si(r17271, MPFR_RNDN)) { mpfr_set(r17299, r17284, MPFR_RNDN); } else { mpfr_set(r17299, r17298, MPFR_RNDN); };
        if (mpfr_get_si(r17264, MPFR_RNDN)) { mpfr_set(r17300, r17269, MPFR_RNDN); } else { mpfr_set(r17300, r17299, MPFR_RNDN); };
        return mpfr_get_d(r17300, MPFR_RNDN);
}

static mpfr_t r17301, r17302, r17303, r17304, r17305, r17306, r17307, r17308, r17309, r17310, r17311, r17312, r17313, r17314, r17315, r17316, r17317, r17318, r17319, r17320, r17321, r17322, r17323, r17324, r17325, r17326, r17327, r17328, r17329, r17330, r17331, r17332, r17333, r17334, r17335, r17336, r17337, r17338, r17339;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r17301);
        mpfr_init_set_str(r17302, "-1.6844219f+10", 10, MPFR_RNDN);
        mpfr_init(r17303);
        mpfr_init(r17304);
        mpfr_init(r17305);
        mpfr_init(r17306);
        mpfr_init(r17307);
        mpfr_init(r17308);
        mpfr_init_set_str(r17309, "3.426723f-06", 10, MPFR_RNDN);
        mpfr_init(r17310);
        mpfr_init_set_str(r17311, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17312, "2", 10, MPFR_RNDN);
        mpfr_init(r17313);
        mpfr_init(r17314);
        mpfr_init(r17315);
        mpfr_init_set_str(r17316, "4", 10, MPFR_RNDN);
        mpfr_init(r17317);
        mpfr_init(r17318);
        mpfr_init(r17319);
        mpfr_init(r17320);
        mpfr_init(r17321);
        mpfr_init(r17322);
        mpfr_init(r17323);
        mpfr_init_set_str(r17324, "2.2299319f+17", 10, MPFR_RNDN);
        mpfr_init(r17325);
        mpfr_init(r17326);
        mpfr_init(r17327);
        mpfr_init(r17328);
        mpfr_init(r17329);
        mpfr_init(r17330);
        mpfr_init(r17331);
        mpfr_init(r17332);
        mpfr_init(r17333);
        mpfr_init_set_str(r17334, "-2", 10, MPFR_RNDN);
        mpfr_init(r17335);
        mpfr_init(r17336);
        mpfr_init(r17337);
        mpfr_init(r17338);
        mpfr_init(r17339);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r17301, b, MPFR_RNDN);
        ;
        mpfr_set_si(r17303, mpfr_cmp(r17301, r17302) <= 0, MPFR_RNDN);
        mpfr_set_d(r17304, c, MPFR_RNDN);
        mpfr_div(r17305, r17304, r17301, MPFR_RNDN);
        mpfr_set_d(r17306, a, MPFR_RNDN);
        mpfr_div(r17307, r17301, r17306, MPFR_RNDN);
        mpfr_sub(r17308, r17305, r17307, MPFR_RNDN);
        ;
        mpfr_set_si(r17310, mpfr_cmp(r17301, r17309) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r17313, r17311, r17312, MPFR_RNDN);
        mpfr_neg(r17314, r17301, MPFR_RNDN);
        mpfr_sqr(r17315, r17301, MPFR_RNDN);
        ;
        mpfr_mul(r17317, r17304, r17316, MPFR_RNDN);
        mpfr_mul(r17318, r17306, r17317, MPFR_RNDN);
        mpfr_sub(r17319, r17315, r17318, MPFR_RNDN);
        mpfr_sqrt(r17320, r17319, MPFR_RNDN);
        mpfr_add(r17321, r17314, r17320, MPFR_RNDN);
        mpfr_div(r17322, r17321, r17306, MPFR_RNDN);
        mpfr_mul(r17323, r17313, r17322, MPFR_RNDN);
        ;
        mpfr_set_si(r17325, mpfr_cmp(r17301, r17324) <= 0, MPFR_RNDN);
        mpfr_mul(r17326, r17316, r17306, MPFR_RNDN);
        mpfr_mul(r17327, r17326, r17304, MPFR_RNDN);
        mpfr_sub(r17328, r17315, r17327, MPFR_RNDN);
        mpfr_sqrt(r17329, r17328, MPFR_RNDN);
        mpfr_sub(r17330, r17314, r17329, MPFR_RNDN);
        mpfr_div(r17331, r17327, r17330, MPFR_RNDN);
        mpfr_mul(r17332, r17312, r17306, MPFR_RNDN);
        mpfr_div(r17333, r17331, r17332, MPFR_RNDN);
        ;
        mpfr_div(r17335, r17334, r17312, MPFR_RNDN);
        mpfr_mul(r17336, r17305, r17335, MPFR_RNDN);
        if (mpfr_get_si(r17325, MPFR_RNDN)) { mpfr_set(r17337, r17333, MPFR_RNDN); } else { mpfr_set(r17337, r17336, MPFR_RNDN); };
        if (mpfr_get_si(r17310, MPFR_RNDN)) { mpfr_set(r17338, r17323, MPFR_RNDN); } else { mpfr_set(r17338, r17337, MPFR_RNDN); };
        if (mpfr_get_si(r17303, MPFR_RNDN)) { mpfr_set(r17339, r17308, MPFR_RNDN); } else { mpfr_set(r17339, r17338, MPFR_RNDN); };
        return mpfr_get_d(r17339, MPFR_RNDN);
}

