#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 r21106 = b;
        float r21107 = -r21106;
        float r21108 = r21106 * r21106;
        float r21109 = 4;
        float r21110 = a;
        float r21111 = r21109 * r21110;
        float r21112 = c;
        float r21113 = r21111 * r21112;
        float r21114 = r21108 - r21113;
        float r21115 = sqrt(r21114);
        float r21116 = r21107 + r21115;
        float r21117 = 2;
        float r21118 = r21117 * r21110;
        float r21119 = r21116 / r21118;
        return r21119;
}

double f_id(double a, double b, double c) {
        double r21120 = b;
        double r21121 = -r21120;
        double r21122 = r21120 * r21120;
        double r21123 = 4;
        double r21124 = a;
        double r21125 = r21123 * r21124;
        double r21126 = c;
        double r21127 = r21125 * r21126;
        double r21128 = r21122 - r21127;
        double r21129 = sqrt(r21128);
        double r21130 = r21121 + r21129;
        double r21131 = 2;
        double r21132 = r21131 * r21124;
        double r21133 = r21130 / r21132;
        return r21133;
}


double f_of(float a, float b, float c) {
        float r21134 = b;
        float r21135 = -4.0813314183159874e+74;
        bool r21136 = r21134 <= r21135;
        float r21137 = -r21134;
        float r21138 = a;
        float r21139 = r21137 / r21138;
        float r21140 = 1.889039777825447e-282;
        bool r21141 = r21134 <= r21140;
        float r21142 = r21134 * r21134;
        float r21143 = 4;
        float r21144 = r21143 * r21138;
        float r21145 = c;
        float r21146 = r21144 * r21145;
        float r21147 = r21142 - r21146;
        float r21148 = sqrt(r21147);
        float r21149 = r21137 + r21148;
        float r21150 = 1;
        float r21151 = 2;
        float r21152 = r21151 * r21138;
        float r21153 = r21150 / r21152;
        float r21154 = r21149 * r21153;
        float r21155 = 1.0606377862991562e+81;
        bool r21156 = r21134 <= r21155;
        float r21157 = r21143 / r21151;
        float r21158 = r21145 * r21138;
        float r21159 = r21158 * r21143;
        float r21160 = r21142 - r21159;
        float r21161 = sqrt(r21160);
        float r21162 = r21137 - r21161;
        float r21163 = r21145 / r21162;
        float r21164 = r21157 * r21163;
        float r21165 = r21145 / r21134;
        float r21166 = -2;
        float r21167 = r21166 / r21151;
        float r21168 = r21165 * r21167;
        float r21169 = r21156 ? r21164 : r21168;
        float r21170 = r21141 ? r21154 : r21169;
        float r21171 = r21136 ? r21139 : r21170;
        return r21171;
}

double f_od(double a, double b, double c) {
        double r21172 = b;
        double r21173 = -4.0813314183159874e+74;
        bool r21174 = r21172 <= r21173;
        double r21175 = -r21172;
        double r21176 = a;
        double r21177 = r21175 / r21176;
        double r21178 = 1.889039777825447e-282;
        bool r21179 = r21172 <= r21178;
        double r21180 = r21172 * r21172;
        double r21181 = 4;
        double r21182 = r21181 * r21176;
        double r21183 = c;
        double r21184 = r21182 * r21183;
        double r21185 = r21180 - r21184;
        double r21186 = sqrt(r21185);
        double r21187 = r21175 + r21186;
        double r21188 = 1;
        double r21189 = 2;
        double r21190 = r21189 * r21176;
        double r21191 = r21188 / r21190;
        double r21192 = r21187 * r21191;
        double r21193 = 1.0606377862991562e+81;
        bool r21194 = r21172 <= r21193;
        double r21195 = r21181 / r21189;
        double r21196 = r21183 * r21176;
        double r21197 = r21196 * r21181;
        double r21198 = r21180 - r21197;
        double r21199 = sqrt(r21198);
        double r21200 = r21175 - r21199;
        double r21201 = r21183 / r21200;
        double r21202 = r21195 * r21201;
        double r21203 = r21183 / r21172;
        double r21204 = -2;
        double r21205 = r21204 / r21189;
        double r21206 = r21203 * r21205;
        double r21207 = r21194 ? r21202 : r21206;
        double r21208 = r21179 ? r21192 : r21207;
        double r21209 = r21174 ? r21177 : r21208;
        return r21209;
}

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 r21210, r21211, r21212, r21213, r21214, r21215, r21216, r21217, r21218, r21219, r21220, r21221, r21222, r21223;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r21210);
        mpfr_init(r21211);
        mpfr_init(r21212);
        mpfr_init_set_str(r21213, "4", 10, MPFR_RNDN);
        mpfr_init(r21214);
        mpfr_init(r21215);
        mpfr_init(r21216);
        mpfr_init(r21217);
        mpfr_init(r21218);
        mpfr_init(r21219);
        mpfr_init(r21220);
        mpfr_init_set_str(r21221, "2", 10, MPFR_RNDN);
        mpfr_init(r21222);
        mpfr_init(r21223);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r21210, b, MPFR_RNDN);
        mpfr_neg(r21211, r21210, MPFR_RNDN);
        mpfr_mul(r21212, r21210, r21210, MPFR_RNDN);
        ;
        mpfr_set_d(r21214, a, MPFR_RNDN);
        mpfr_mul(r21215, r21213, r21214, MPFR_RNDN);
        mpfr_set_d(r21216, c, MPFR_RNDN);
        mpfr_mul(r21217, r21215, r21216, MPFR_RNDN);
        mpfr_sub(r21218, r21212, r21217, MPFR_RNDN);
        mpfr_sqrt(r21219, r21218, MPFR_RNDN);
        mpfr_add(r21220, r21211, r21219, MPFR_RNDN);
        ;
        mpfr_mul(r21222, r21221, r21214, MPFR_RNDN);
        mpfr_div(r21223, r21220, r21222, MPFR_RNDN);
        return mpfr_get_d(r21223, MPFR_RNDN);
}

static mpfr_t r21224, r21225, r21226, r21227, r21228, r21229, r21230, r21231, r21232, r21233, r21234, r21235, r21236, r21237, r21238, r21239, r21240, r21241, r21242, r21243, r21244, r21245, r21246, r21247, r21248, r21249, r21250, r21251, r21252, r21253, r21254, r21255, r21256, r21257, r21258, r21259, r21260, r21261;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r21224);
        mpfr_init_set_str(r21225, "-4.0813314183159874e+74", 10, MPFR_RNDN);
        mpfr_init(r21226);
        mpfr_init(r21227);
        mpfr_init(r21228);
        mpfr_init(r21229);
        mpfr_init_set_str(r21230, "1.889039777825447e-282", 10, MPFR_RNDN);
        mpfr_init(r21231);
        mpfr_init(r21232);
        mpfr_init_set_str(r21233, "4", 10, MPFR_RNDN);
        mpfr_init(r21234);
        mpfr_init(r21235);
        mpfr_init(r21236);
        mpfr_init(r21237);
        mpfr_init(r21238);
        mpfr_init(r21239);
        mpfr_init_set_str(r21240, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r21241, "2", 10, MPFR_RNDN);
        mpfr_init(r21242);
        mpfr_init(r21243);
        mpfr_init(r21244);
        mpfr_init_set_str(r21245, "1.0606377862991562e+81", 10, MPFR_RNDN);
        mpfr_init(r21246);
        mpfr_init(r21247);
        mpfr_init(r21248);
        mpfr_init(r21249);
        mpfr_init(r21250);
        mpfr_init(r21251);
        mpfr_init(r21252);
        mpfr_init(r21253);
        mpfr_init(r21254);
        mpfr_init(r21255);
        mpfr_init_set_str(r21256, "-2", 10, MPFR_RNDN);
        mpfr_init(r21257);
        mpfr_init(r21258);
        mpfr_init(r21259);
        mpfr_init(r21260);
        mpfr_init(r21261);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r21224, b, MPFR_RNDN);
        ;
        mpfr_set_si(r21226, mpfr_cmp(r21224, r21225) <= 0, MPFR_RNDN);
        mpfr_neg(r21227, r21224, MPFR_RNDN);
        mpfr_set_d(r21228, a, MPFR_RNDN);
        mpfr_div(r21229, r21227, r21228, MPFR_RNDN);
        ;
        mpfr_set_si(r21231, mpfr_cmp(r21224, r21230) <= 0, MPFR_RNDN);
        mpfr_mul(r21232, r21224, r21224, MPFR_RNDN);
        ;
        mpfr_mul(r21234, r21233, r21228, MPFR_RNDN);
        mpfr_set_d(r21235, c, MPFR_RNDN);
        mpfr_mul(r21236, r21234, r21235, MPFR_RNDN);
        mpfr_sub(r21237, r21232, r21236, MPFR_RNDN);
        mpfr_sqrt(r21238, r21237, MPFR_RNDN);
        mpfr_add(r21239, r21227, r21238, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r21242, r21241, r21228, MPFR_RNDN);
        mpfr_div(r21243, r21240, r21242, MPFR_RNDN);
        mpfr_mul(r21244, r21239, r21243, MPFR_RNDN);
        ;
        mpfr_set_si(r21246, mpfr_cmp(r21224, r21245) <= 0, MPFR_RNDN);
        mpfr_div(r21247, r21233, r21241, MPFR_RNDN);
        mpfr_mul(r21248, r21235, r21228, MPFR_RNDN);
        mpfr_mul(r21249, r21248, r21233, MPFR_RNDN);
        mpfr_sub(r21250, r21232, r21249, MPFR_RNDN);
        mpfr_sqrt(r21251, r21250, MPFR_RNDN);
        mpfr_sub(r21252, r21227, r21251, MPFR_RNDN);
        mpfr_div(r21253, r21235, r21252, MPFR_RNDN);
        mpfr_mul(r21254, r21247, r21253, MPFR_RNDN);
        mpfr_div(r21255, r21235, r21224, MPFR_RNDN);
        ;
        mpfr_div(r21257, r21256, r21241, MPFR_RNDN);
        mpfr_mul(r21258, r21255, r21257, MPFR_RNDN);
        if (mpfr_get_si(r21246, MPFR_RNDN)) { mpfr_set(r21259, r21254, MPFR_RNDN); } else { mpfr_set(r21259, r21258, MPFR_RNDN); };
        if (mpfr_get_si(r21231, MPFR_RNDN)) { mpfr_set(r21260, r21244, MPFR_RNDN); } else { mpfr_set(r21260, r21259, MPFR_RNDN); };
        if (mpfr_get_si(r21226, MPFR_RNDN)) { mpfr_set(r21261, r21229, MPFR_RNDN); } else { mpfr_set(r21261, r21260, MPFR_RNDN); };
        return mpfr_get_d(r21261, MPFR_RNDN);
}

static mpfr_t r21262, r21263, r21264, r21265, r21266, r21267, r21268, r21269, r21270, r21271, r21272, r21273, r21274, r21275, r21276, r21277, r21278, r21279, r21280, r21281, r21282, r21283, r21284, r21285, r21286, r21287, r21288, r21289, r21290, r21291, r21292, r21293, r21294, r21295, r21296, r21297, r21298, r21299;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r21262);
        mpfr_init_set_str(r21263, "-4.0813314183159874e+74", 10, MPFR_RNDN);
        mpfr_init(r21264);
        mpfr_init(r21265);
        mpfr_init(r21266);
        mpfr_init(r21267);
        mpfr_init_set_str(r21268, "1.889039777825447e-282", 10, MPFR_RNDN);
        mpfr_init(r21269);
        mpfr_init(r21270);
        mpfr_init_set_str(r21271, "4", 10, MPFR_RNDN);
        mpfr_init(r21272);
        mpfr_init(r21273);
        mpfr_init(r21274);
        mpfr_init(r21275);
        mpfr_init(r21276);
        mpfr_init(r21277);
        mpfr_init_set_str(r21278, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r21279, "2", 10, MPFR_RNDN);
        mpfr_init(r21280);
        mpfr_init(r21281);
        mpfr_init(r21282);
        mpfr_init_set_str(r21283, "1.0606377862991562e+81", 10, MPFR_RNDN);
        mpfr_init(r21284);
        mpfr_init(r21285);
        mpfr_init(r21286);
        mpfr_init(r21287);
        mpfr_init(r21288);
        mpfr_init(r21289);
        mpfr_init(r21290);
        mpfr_init(r21291);
        mpfr_init(r21292);
        mpfr_init(r21293);
        mpfr_init_set_str(r21294, "-2", 10, MPFR_RNDN);
        mpfr_init(r21295);
        mpfr_init(r21296);
        mpfr_init(r21297);
        mpfr_init(r21298);
        mpfr_init(r21299);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r21262, b, MPFR_RNDN);
        ;
        mpfr_set_si(r21264, mpfr_cmp(r21262, r21263) <= 0, MPFR_RNDN);
        mpfr_neg(r21265, r21262, MPFR_RNDN);
        mpfr_set_d(r21266, a, MPFR_RNDN);
        mpfr_div(r21267, r21265, r21266, MPFR_RNDN);
        ;
        mpfr_set_si(r21269, mpfr_cmp(r21262, r21268) <= 0, MPFR_RNDN);
        mpfr_mul(r21270, r21262, r21262, MPFR_RNDN);
        ;
        mpfr_mul(r21272, r21271, r21266, MPFR_RNDN);
        mpfr_set_d(r21273, c, MPFR_RNDN);
        mpfr_mul(r21274, r21272, r21273, MPFR_RNDN);
        mpfr_sub(r21275, r21270, r21274, MPFR_RNDN);
        mpfr_sqrt(r21276, r21275, MPFR_RNDN);
        mpfr_add(r21277, r21265, r21276, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r21280, r21279, r21266, MPFR_RNDN);
        mpfr_div(r21281, r21278, r21280, MPFR_RNDN);
        mpfr_mul(r21282, r21277, r21281, MPFR_RNDN);
        ;
        mpfr_set_si(r21284, mpfr_cmp(r21262, r21283) <= 0, MPFR_RNDN);
        mpfr_div(r21285, r21271, r21279, MPFR_RNDN);
        mpfr_mul(r21286, r21273, r21266, MPFR_RNDN);
        mpfr_mul(r21287, r21286, r21271, MPFR_RNDN);
        mpfr_sub(r21288, r21270, r21287, MPFR_RNDN);
        mpfr_sqrt(r21289, r21288, MPFR_RNDN);
        mpfr_sub(r21290, r21265, r21289, MPFR_RNDN);
        mpfr_div(r21291, r21273, r21290, MPFR_RNDN);
        mpfr_mul(r21292, r21285, r21291, MPFR_RNDN);
        mpfr_div(r21293, r21273, r21262, MPFR_RNDN);
        ;
        mpfr_div(r21295, r21294, r21279, MPFR_RNDN);
        mpfr_mul(r21296, r21293, r21295, MPFR_RNDN);
        if (mpfr_get_si(r21284, MPFR_RNDN)) { mpfr_set(r21297, r21292, MPFR_RNDN); } else { mpfr_set(r21297, r21296, MPFR_RNDN); };
        if (mpfr_get_si(r21269, MPFR_RNDN)) { mpfr_set(r21298, r21282, MPFR_RNDN); } else { mpfr_set(r21298, r21297, MPFR_RNDN); };
        if (mpfr_get_si(r21264, MPFR_RNDN)) { mpfr_set(r21299, r21267, MPFR_RNDN); } else { mpfr_set(r21299, r21298, MPFR_RNDN); };
        return mpfr_get_d(r21299, MPFR_RNDN);
}

