#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 r28069 = b;
        float r28070 = -r28069;
        float r28071 = r28069 * r28069;
        float r28072 = 4;
        float r28073 = a;
        float r28074 = r28072 * r28073;
        float r28075 = c;
        float r28076 = r28074 * r28075;
        float r28077 = r28071 - r28076;
        float r28078 = sqrt(r28077);
        float r28079 = r28070 + r28078;
        float r28080 = 2;
        float r28081 = r28080 * r28073;
        float r28082 = r28079 / r28081;
        return r28082;
}

double f_id(double a, double b, double c) {
        double r28083 = b;
        double r28084 = -r28083;
        double r28085 = r28083 * r28083;
        double r28086 = 4;
        double r28087 = a;
        double r28088 = r28086 * r28087;
        double r28089 = c;
        double r28090 = r28088 * r28089;
        double r28091 = r28085 - r28090;
        double r28092 = sqrt(r28091);
        double r28093 = r28084 + r28092;
        double r28094 = 2;
        double r28095 = r28094 * r28087;
        double r28096 = r28093 / r28095;
        return r28096;
}


double f_of(float a, float b, float c) {
        float r28097 = b;
        float r28098 = -r28097;
        float r28099 = -1.2583082401548985e+157;
        bool r28100 = r28098 <= r28099;
        float r28101 = 4;
        float r28102 = 2;
        float r28103 = r28101 / r28102;
        float r28104 = c;
        float r28105 = r28103 * r28104;
        float r28106 = r28098 - r28097;
        float r28107 = r28104 * r28102;
        float r28108 = a;
        float r28109 = r28097 / r28108;
        float r28110 = r28107 / r28109;
        float r28111 = r28106 - r28110;
        float r28112 = r28105 / r28111;
        float r28113 = 3.908892434646583e-231;
        bool r28114 = r28098 <= r28113;
        float r28115 = r28104 * r28101;
        float r28116 = r28097 * r28097;
        float r28117 = r28108 * r28101;
        float r28118 = r28117 * r28104;
        float r28119 = r28116 - r28118;
        float r28120 = sqrt(r28119);
        float r28121 = r28098 - r28120;
        float r28122 = r28115 / r28121;
        float r28123 = 1;
        float r28124 = r28123 / r28102;
        float r28125 = r28122 * r28124;
        float r28126 = 7.245894423181754e+109;
        bool r28127 = r28098 <= r28126;
        float r28128 = r28108 * r28102;
        float r28129 = r28108 * r28104;
        float r28130 = r28129 * r28101;
        float r28131 = r28116 - r28130;
        float r28132 = sqrt(r28131);
        float r28133 = r28132 - r28097;
        float r28134 = r28128 / r28133;
        float r28135 = r28123 / r28134;
        float r28136 = r28098 / r28108;
        float r28137 = r28104 / r28097;
        float r28138 = r28136 - r28137;
        float r28139 = r28127 ? r28135 : r28138;
        float r28140 = r28114 ? r28125 : r28139;
        float r28141 = r28100 ? r28112 : r28140;
        return r28141;
}

double f_od(double a, double b, double c) {
        double r28142 = b;
        double r28143 = -r28142;
        double r28144 = -1.2583082401548985e+157;
        bool r28145 = r28143 <= r28144;
        double r28146 = 4;
        double r28147 = 2;
        double r28148 = r28146 / r28147;
        double r28149 = c;
        double r28150 = r28148 * r28149;
        double r28151 = r28143 - r28142;
        double r28152 = r28149 * r28147;
        double r28153 = a;
        double r28154 = r28142 / r28153;
        double r28155 = r28152 / r28154;
        double r28156 = r28151 - r28155;
        double r28157 = r28150 / r28156;
        double r28158 = 3.908892434646583e-231;
        bool r28159 = r28143 <= r28158;
        double r28160 = r28149 * r28146;
        double r28161 = r28142 * r28142;
        double r28162 = r28153 * r28146;
        double r28163 = r28162 * r28149;
        double r28164 = r28161 - r28163;
        double r28165 = sqrt(r28164);
        double r28166 = r28143 - r28165;
        double r28167 = r28160 / r28166;
        double r28168 = 1;
        double r28169 = r28168 / r28147;
        double r28170 = r28167 * r28169;
        double r28171 = 7.245894423181754e+109;
        bool r28172 = r28143 <= r28171;
        double r28173 = r28153 * r28147;
        double r28174 = r28153 * r28149;
        double r28175 = r28174 * r28146;
        double r28176 = r28161 - r28175;
        double r28177 = sqrt(r28176);
        double r28178 = r28177 - r28142;
        double r28179 = r28173 / r28178;
        double r28180 = r28168 / r28179;
        double r28181 = r28143 / r28153;
        double r28182 = r28149 / r28142;
        double r28183 = r28181 - r28182;
        double r28184 = r28172 ? r28180 : r28183;
        double r28185 = r28159 ? r28170 : r28184;
        double r28186 = r28145 ? r28157 : r28185;
        return r28186;
}

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 r28187, r28188, r28189, r28190, r28191, r28192, r28193, r28194, r28195, r28196, r28197, r28198, r28199, r28200;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r28187);
        mpfr_init(r28188);
        mpfr_init(r28189);
        mpfr_init_set_str(r28190, "4", 10, MPFR_RNDN);
        mpfr_init(r28191);
        mpfr_init(r28192);
        mpfr_init(r28193);
        mpfr_init(r28194);
        mpfr_init(r28195);
        mpfr_init(r28196);
        mpfr_init(r28197);
        mpfr_init_set_str(r28198, "2", 10, MPFR_RNDN);
        mpfr_init(r28199);
        mpfr_init(r28200);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r28187, b, MPFR_RNDN);
        mpfr_neg(r28188, r28187, MPFR_RNDN);
        mpfr_mul(r28189, r28187, r28187, MPFR_RNDN);
        ;
        mpfr_set_d(r28191, a, MPFR_RNDN);
        mpfr_mul(r28192, r28190, r28191, MPFR_RNDN);
        mpfr_set_d(r28193, c, MPFR_RNDN);
        mpfr_mul(r28194, r28192, r28193, MPFR_RNDN);
        mpfr_sub(r28195, r28189, r28194, MPFR_RNDN);
        mpfr_sqrt(r28196, r28195, MPFR_RNDN);
        mpfr_add(r28197, r28188, r28196, MPFR_RNDN);
        ;
        mpfr_mul(r28199, r28198, r28191, MPFR_RNDN);
        mpfr_div(r28200, r28197, r28199, MPFR_RNDN);
        return mpfr_get_d(r28200, MPFR_RNDN);
}

static mpfr_t r28201, r28202, r28203, r28204, r28205, r28206, r28207, r28208, r28209, r28210, r28211, r28212, r28213, r28214, r28215, r28216, r28217, r28218, r28219, r28220, r28221, r28222, r28223, r28224, r28225, r28226, r28227, r28228, r28229, r28230, r28231, r28232, r28233, r28234, r28235, r28236, r28237, r28238, r28239, r28240, r28241, r28242, r28243, r28244, r28245;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r28201);
        mpfr_init(r28202);
        mpfr_init_set_str(r28203, "-1.2583082401548985e+157", 10, MPFR_RNDN);
        mpfr_init(r28204);
        mpfr_init_set_str(r28205, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r28206, "2", 10, MPFR_RNDN);
        mpfr_init(r28207);
        mpfr_init(r28208);
        mpfr_init(r28209);
        mpfr_init(r28210);
        mpfr_init(r28211);
        mpfr_init(r28212);
        mpfr_init(r28213);
        mpfr_init(r28214);
        mpfr_init(r28215);
        mpfr_init(r28216);
        mpfr_init_set_str(r28217, "3.908892434646583e-231", 10, MPFR_RNDN);
        mpfr_init(r28218);
        mpfr_init(r28219);
        mpfr_init(r28220);
        mpfr_init(r28221);
        mpfr_init(r28222);
        mpfr_init(r28223);
        mpfr_init(r28224);
        mpfr_init(r28225);
        mpfr_init(r28226);
        mpfr_init_set_str(r28227, "1", 10, MPFR_RNDN);
        mpfr_init(r28228);
        mpfr_init(r28229);
        mpfr_init_set_str(r28230, "7.245894423181754e+109", 10, MPFR_RNDN);
        mpfr_init(r28231);
        mpfr_init(r28232);
        mpfr_init(r28233);
        mpfr_init(r28234);
        mpfr_init(r28235);
        mpfr_init(r28236);
        mpfr_init(r28237);
        mpfr_init(r28238);
        mpfr_init(r28239);
        mpfr_init(r28240);
        mpfr_init(r28241);
        mpfr_init(r28242);
        mpfr_init(r28243);
        mpfr_init(r28244);
        mpfr_init(r28245);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r28201, b, MPFR_RNDN);
        mpfr_neg(r28202, r28201, MPFR_RNDN);
        ;
        mpfr_set_si(r28204, mpfr_cmp(r28202, r28203) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r28207, r28205, r28206, MPFR_RNDN);
        mpfr_set_d(r28208, c, MPFR_RNDN);
        mpfr_mul(r28209, r28207, r28208, MPFR_RNDN);
        mpfr_sub(r28210, r28202, r28201, MPFR_RNDN);
        mpfr_mul(r28211, r28208, r28206, MPFR_RNDN);
        mpfr_set_d(r28212, a, MPFR_RNDN);
        mpfr_div(r28213, r28201, r28212, MPFR_RNDN);
        mpfr_div(r28214, r28211, r28213, MPFR_RNDN);
        mpfr_sub(r28215, r28210, r28214, MPFR_RNDN);
        mpfr_div(r28216, r28209, r28215, MPFR_RNDN);
        ;
        mpfr_set_si(r28218, mpfr_cmp(r28202, r28217) <= 0, MPFR_RNDN);
        mpfr_mul(r28219, r28208, r28205, MPFR_RNDN);
        mpfr_mul(r28220, r28201, r28201, MPFR_RNDN);
        mpfr_mul(r28221, r28212, r28205, MPFR_RNDN);
        mpfr_mul(r28222, r28221, r28208, MPFR_RNDN);
        mpfr_sub(r28223, r28220, r28222, MPFR_RNDN);
        mpfr_sqrt(r28224, r28223, MPFR_RNDN);
        mpfr_sub(r28225, r28202, r28224, MPFR_RNDN);
        mpfr_div(r28226, r28219, r28225, MPFR_RNDN);
        ;
        mpfr_div(r28228, r28227, r28206, MPFR_RNDN);
        mpfr_mul(r28229, r28226, r28228, MPFR_RNDN);
        ;
        mpfr_set_si(r28231, mpfr_cmp(r28202, r28230) <= 0, MPFR_RNDN);
        mpfr_mul(r28232, r28212, r28206, MPFR_RNDN);
        mpfr_mul(r28233, r28212, r28208, MPFR_RNDN);
        mpfr_mul(r28234, r28233, r28205, MPFR_RNDN);
        mpfr_sub(r28235, r28220, r28234, MPFR_RNDN);
        mpfr_sqrt(r28236, r28235, MPFR_RNDN);
        mpfr_sub(r28237, r28236, r28201, MPFR_RNDN);
        mpfr_div(r28238, r28232, r28237, MPFR_RNDN);
        mpfr_div(r28239, r28227, r28238, MPFR_RNDN);
        mpfr_div(r28240, r28202, r28212, MPFR_RNDN);
        mpfr_div(r28241, r28208, r28201, MPFR_RNDN);
        mpfr_sub(r28242, r28240, r28241, MPFR_RNDN);
        if (mpfr_get_si(r28231, MPFR_RNDN)) { mpfr_set(r28243, r28239, MPFR_RNDN); } else { mpfr_set(r28243, r28242, MPFR_RNDN); };
        if (mpfr_get_si(r28218, MPFR_RNDN)) { mpfr_set(r28244, r28229, MPFR_RNDN); } else { mpfr_set(r28244, r28243, MPFR_RNDN); };
        if (mpfr_get_si(r28204, MPFR_RNDN)) { mpfr_set(r28245, r28216, MPFR_RNDN); } else { mpfr_set(r28245, r28244, MPFR_RNDN); };
        return mpfr_get_d(r28245, MPFR_RNDN);
}

static mpfr_t r28246, r28247, r28248, r28249, r28250, r28251, r28252, r28253, r28254, r28255, r28256, r28257, r28258, r28259, r28260, r28261, r28262, r28263, r28264, r28265, r28266, r28267, r28268, r28269, r28270, r28271, r28272, r28273, r28274, r28275, r28276, r28277, r28278, r28279, r28280, r28281, r28282, r28283, r28284, r28285, r28286, r28287, r28288, r28289, r28290;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r28246);
        mpfr_init(r28247);
        mpfr_init_set_str(r28248, "-1.2583082401548985e+157", 10, MPFR_RNDN);
        mpfr_init(r28249);
        mpfr_init_set_str(r28250, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r28251, "2", 10, MPFR_RNDN);
        mpfr_init(r28252);
        mpfr_init(r28253);
        mpfr_init(r28254);
        mpfr_init(r28255);
        mpfr_init(r28256);
        mpfr_init(r28257);
        mpfr_init(r28258);
        mpfr_init(r28259);
        mpfr_init(r28260);
        mpfr_init(r28261);
        mpfr_init_set_str(r28262, "3.908892434646583e-231", 10, MPFR_RNDN);
        mpfr_init(r28263);
        mpfr_init(r28264);
        mpfr_init(r28265);
        mpfr_init(r28266);
        mpfr_init(r28267);
        mpfr_init(r28268);
        mpfr_init(r28269);
        mpfr_init(r28270);
        mpfr_init(r28271);
        mpfr_init_set_str(r28272, "1", 10, MPFR_RNDN);
        mpfr_init(r28273);
        mpfr_init(r28274);
        mpfr_init_set_str(r28275, "7.245894423181754e+109", 10, MPFR_RNDN);
        mpfr_init(r28276);
        mpfr_init(r28277);
        mpfr_init(r28278);
        mpfr_init(r28279);
        mpfr_init(r28280);
        mpfr_init(r28281);
        mpfr_init(r28282);
        mpfr_init(r28283);
        mpfr_init(r28284);
        mpfr_init(r28285);
        mpfr_init(r28286);
        mpfr_init(r28287);
        mpfr_init(r28288);
        mpfr_init(r28289);
        mpfr_init(r28290);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r28246, b, MPFR_RNDN);
        mpfr_neg(r28247, r28246, MPFR_RNDN);
        ;
        mpfr_set_si(r28249, mpfr_cmp(r28247, r28248) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r28252, r28250, r28251, MPFR_RNDN);
        mpfr_set_d(r28253, c, MPFR_RNDN);
        mpfr_mul(r28254, r28252, r28253, MPFR_RNDN);
        mpfr_sub(r28255, r28247, r28246, MPFR_RNDN);
        mpfr_mul(r28256, r28253, r28251, MPFR_RNDN);
        mpfr_set_d(r28257, a, MPFR_RNDN);
        mpfr_div(r28258, r28246, r28257, MPFR_RNDN);
        mpfr_div(r28259, r28256, r28258, MPFR_RNDN);
        mpfr_sub(r28260, r28255, r28259, MPFR_RNDN);
        mpfr_div(r28261, r28254, r28260, MPFR_RNDN);
        ;
        mpfr_set_si(r28263, mpfr_cmp(r28247, r28262) <= 0, MPFR_RNDN);
        mpfr_mul(r28264, r28253, r28250, MPFR_RNDN);
        mpfr_mul(r28265, r28246, r28246, MPFR_RNDN);
        mpfr_mul(r28266, r28257, r28250, MPFR_RNDN);
        mpfr_mul(r28267, r28266, r28253, MPFR_RNDN);
        mpfr_sub(r28268, r28265, r28267, MPFR_RNDN);
        mpfr_sqrt(r28269, r28268, MPFR_RNDN);
        mpfr_sub(r28270, r28247, r28269, MPFR_RNDN);
        mpfr_div(r28271, r28264, r28270, MPFR_RNDN);
        ;
        mpfr_div(r28273, r28272, r28251, MPFR_RNDN);
        mpfr_mul(r28274, r28271, r28273, MPFR_RNDN);
        ;
        mpfr_set_si(r28276, mpfr_cmp(r28247, r28275) <= 0, MPFR_RNDN);
        mpfr_mul(r28277, r28257, r28251, MPFR_RNDN);
        mpfr_mul(r28278, r28257, r28253, MPFR_RNDN);
        mpfr_mul(r28279, r28278, r28250, MPFR_RNDN);
        mpfr_sub(r28280, r28265, r28279, MPFR_RNDN);
        mpfr_sqrt(r28281, r28280, MPFR_RNDN);
        mpfr_sub(r28282, r28281, r28246, MPFR_RNDN);
        mpfr_div(r28283, r28277, r28282, MPFR_RNDN);
        mpfr_div(r28284, r28272, r28283, MPFR_RNDN);
        mpfr_div(r28285, r28247, r28257, MPFR_RNDN);
        mpfr_div(r28286, r28253, r28246, MPFR_RNDN);
        mpfr_sub(r28287, r28285, r28286, MPFR_RNDN);
        if (mpfr_get_si(r28276, MPFR_RNDN)) { mpfr_set(r28288, r28284, MPFR_RNDN); } else { mpfr_set(r28288, r28287, MPFR_RNDN); };
        if (mpfr_get_si(r28263, MPFR_RNDN)) { mpfr_set(r28289, r28274, MPFR_RNDN); } else { mpfr_set(r28289, r28288, MPFR_RNDN); };
        if (mpfr_get_si(r28249, MPFR_RNDN)) { mpfr_set(r28290, r28261, MPFR_RNDN); } else { mpfr_set(r28290, r28289, MPFR_RNDN); };
        return mpfr_get_d(r28290, MPFR_RNDN);
}

