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

char *name = "jeff quadratic root 1";

double f_if(float a, float b, float c) {
        float r20128 = b;
        float r20129 = 0;
        bool r20130 = r20128 >= r20129;
        float r20131 = -r20128;
        float r20132 = r20128 * r20128;
        float r20133 = 4;
        float r20134 = a;
        float r20135 = r20133 * r20134;
        float r20136 = c;
        float r20137 = r20135 * r20136;
        float r20138 = r20132 - r20137;
        float r20139 = sqrt(r20138);
        float r20140 = r20131 - r20139;
        float r20141 = 2;
        float r20142 = r20141 * r20134;
        float r20143 = r20140 / r20142;
        float r20144 = r20141 * r20136;
        float r20145 = r20131 + r20139;
        float r20146 = r20144 / r20145;
        float r20147 = r20130 ? r20143 : r20146;
        return r20147;
}

double f_id(double a, double b, double c) {
        double r20148 = b;
        double r20149 = 0;
        bool r20150 = r20148 >= r20149;
        double r20151 = -r20148;
        double r20152 = r20148 * r20148;
        double r20153 = 4;
        double r20154 = a;
        double r20155 = r20153 * r20154;
        double r20156 = c;
        double r20157 = r20155 * r20156;
        double r20158 = r20152 - r20157;
        double r20159 = sqrt(r20158);
        double r20160 = r20151 - r20159;
        double r20161 = 2;
        double r20162 = r20161 * r20154;
        double r20163 = r20160 / r20162;
        double r20164 = r20161 * r20156;
        double r20165 = r20151 + r20159;
        double r20166 = r20164 / r20165;
        double r20167 = r20150 ? r20163 : r20166;
        return r20167;
}


double f_of(float a, float b, float c) {
        float r20168 = b;
        float r20169 = -1.8837874464567483e+137;
        bool r20170 = r20168 <= r20169;
        float r20171 = 0;
        bool r20172 = r20168 >= r20171;
        float r20173 = -r20168;
        float r20174 = r20168 * r20168;
        float r20175 = c;
        float r20176 = a;
        float r20177 = 4;
        float r20178 = r20176 * r20177;
        float r20179 = r20175 * r20178;
        float r20180 = r20174 - r20179;
        float r20181 = sqrt(r20180);
        float r20182 = r20173 - r20181;
        float r20183 = r20176 + r20176;
        float r20184 = r20182 / r20183;
        float r20185 = r20176 / r20168;
        float r20186 = r20185 * r20175;
        float r20187 = r20186 - r20168;
        float r20188 = r20175 / r20187;
        float r20189 = r20172 ? r20184 : r20188;
        float r20190 = 4.854643826021821e+112;
        bool r20191 = r20168 <= r20190;
        float r20192 = r20177 * r20176;
        float r20193 = r20192 * r20175;
        float r20194 = r20174 - r20193;
        float r20195 = sqrt(r20194);
        float r20196 = r20173 - r20195;
        float r20197 = 2;
        float r20198 = r20197 * r20176;
        float r20199 = r20196 / r20198;
        float r20200 = r20197 * r20175;
        float r20201 = r20173 + r20195;
        float r20202 = sqrt(r20201);
        float r20203 = cbrt(r20195);
        float r20204 = r20203 * r20203;
        float r20205 = r20204 * r20203;
        float r20206 = r20173 + r20205;
        float r20207 = sqrt(r20206);
        float r20208 = r20202 * r20207;
        float r20209 = r20200 / r20208;
        float r20210 = r20172 ? r20199 : r20209;
        float r20211 = r20175 / r20168;
        float r20212 = r20168 / r20176;
        float r20213 = r20211 - r20212;
        float r20214 = r20175 + r20175;
        float r20215 = r20181 + r20173;
        float r20216 = r20214 / r20215;
        float r20217 = r20172 ? r20213 : r20216;
        float r20218 = r20191 ? r20210 : r20217;
        float r20219 = r20170 ? r20189 : r20218;
        return r20219;
}

double f_od(double a, double b, double c) {
        double r20220 = b;
        double r20221 = -1.8837874464567483e+137;
        bool r20222 = r20220 <= r20221;
        double r20223 = 0;
        bool r20224 = r20220 >= r20223;
        double r20225 = -r20220;
        double r20226 = r20220 * r20220;
        double r20227 = c;
        double r20228 = a;
        double r20229 = 4;
        double r20230 = r20228 * r20229;
        double r20231 = r20227 * r20230;
        double r20232 = r20226 - r20231;
        double r20233 = sqrt(r20232);
        double r20234 = r20225 - r20233;
        double r20235 = r20228 + r20228;
        double r20236 = r20234 / r20235;
        double r20237 = r20228 / r20220;
        double r20238 = r20237 * r20227;
        double r20239 = r20238 - r20220;
        double r20240 = r20227 / r20239;
        double r20241 = r20224 ? r20236 : r20240;
        double r20242 = 4.854643826021821e+112;
        bool r20243 = r20220 <= r20242;
        double r20244 = r20229 * r20228;
        double r20245 = r20244 * r20227;
        double r20246 = r20226 - r20245;
        double r20247 = sqrt(r20246);
        double r20248 = r20225 - r20247;
        double r20249 = 2;
        double r20250 = r20249 * r20228;
        double r20251 = r20248 / r20250;
        double r20252 = r20249 * r20227;
        double r20253 = r20225 + r20247;
        double r20254 = sqrt(r20253);
        double r20255 = cbrt(r20247);
        double r20256 = r20255 * r20255;
        double r20257 = r20256 * r20255;
        double r20258 = r20225 + r20257;
        double r20259 = sqrt(r20258);
        double r20260 = r20254 * r20259;
        double r20261 = r20252 / r20260;
        double r20262 = r20224 ? r20251 : r20261;
        double r20263 = r20227 / r20220;
        double r20264 = r20220 / r20228;
        double r20265 = r20263 - r20264;
        double r20266 = r20227 + r20227;
        double r20267 = r20233 + r20225;
        double r20268 = r20266 / r20267;
        double r20269 = r20224 ? r20265 : r20268;
        double r20270 = r20243 ? r20262 : r20269;
        double r20271 = r20222 ? r20241 : r20270;
        return r20271;
}

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 r20272, r20273, r20274, r20275, r20276, r20277, r20278, r20279, r20280, r20281, r20282, r20283, r20284, r20285, r20286, r20287, r20288, r20289, r20290, r20291;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r20272);
        mpfr_init_set_str(r20273, "0", 10, MPFR_RNDN);
        mpfr_init(r20274);
        mpfr_init(r20275);
        mpfr_init(r20276);
        mpfr_init_set_str(r20277, "4", 10, MPFR_RNDN);
        mpfr_init(r20278);
        mpfr_init(r20279);
        mpfr_init(r20280);
        mpfr_init(r20281);
        mpfr_init(r20282);
        mpfr_init(r20283);
        mpfr_init(r20284);
        mpfr_init_set_str(r20285, "2", 10, MPFR_RNDN);
        mpfr_init(r20286);
        mpfr_init(r20287);
        mpfr_init(r20288);
        mpfr_init(r20289);
        mpfr_init(r20290);
        mpfr_init(r20291);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r20272, b, MPFR_RNDN);
        ;
        mpfr_set_si(r20274, mpfr_cmp(r20272, r20273) >= 0, MPFR_RNDN);
        mpfr_neg(r20275, r20272, MPFR_RNDN);
        mpfr_mul(r20276, r20272, r20272, MPFR_RNDN);
        ;
        mpfr_set_d(r20278, a, MPFR_RNDN);
        mpfr_mul(r20279, r20277, r20278, MPFR_RNDN);
        mpfr_set_d(r20280, c, MPFR_RNDN);
        mpfr_mul(r20281, r20279, r20280, MPFR_RNDN);
        mpfr_sub(r20282, r20276, r20281, MPFR_RNDN);
        mpfr_sqrt(r20283, r20282, MPFR_RNDN);
        mpfr_sub(r20284, r20275, r20283, MPFR_RNDN);
        ;
        mpfr_mul(r20286, r20285, r20278, MPFR_RNDN);
        mpfr_div(r20287, r20284, r20286, MPFR_RNDN);
        mpfr_mul(r20288, r20285, r20280, MPFR_RNDN);
        mpfr_add(r20289, r20275, r20283, MPFR_RNDN);
        mpfr_div(r20290, r20288, r20289, MPFR_RNDN);
        if (mpfr_get_si(r20274, MPFR_RNDN)) { mpfr_set(r20291, r20287, MPFR_RNDN); } else { mpfr_set(r20291, r20290, MPFR_RNDN); };
        return mpfr_get_d(r20291, MPFR_RNDN);
}

static mpfr_t r20292, r20293, r20294, r20295, r20296, r20297, r20298, r20299, r20300, r20301, r20302, r20303, r20304, r20305, r20306, r20307, r20308, r20309, r20310, r20311, r20312, r20313, r20314, r20315, r20316, r20317, r20318, r20319, r20320, r20321, r20322, r20323, r20324, r20325, r20326, r20327, r20328, r20329, r20330, r20331, r20332, r20333, r20334, r20335, r20336, r20337, r20338, r20339, r20340, r20341, r20342, r20343;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r20292);
        mpfr_init_set_str(r20293, "-1.8837874464567483e+137", 10, MPFR_RNDN);
        mpfr_init(r20294);
        mpfr_init_set_str(r20295, "0", 10, MPFR_RNDN);
        mpfr_init(r20296);
        mpfr_init(r20297);
        mpfr_init(r20298);
        mpfr_init(r20299);
        mpfr_init(r20300);
        mpfr_init_set_str(r20301, "4", 10, MPFR_RNDN);
        mpfr_init(r20302);
        mpfr_init(r20303);
        mpfr_init(r20304);
        mpfr_init(r20305);
        mpfr_init(r20306);
        mpfr_init(r20307);
        mpfr_init(r20308);
        mpfr_init(r20309);
        mpfr_init(r20310);
        mpfr_init(r20311);
        mpfr_init(r20312);
        mpfr_init(r20313);
        mpfr_init_set_str(r20314, "4.854643826021821e+112", 10, MPFR_RNDN);
        mpfr_init(r20315);
        mpfr_init(r20316);
        mpfr_init(r20317);
        mpfr_init(r20318);
        mpfr_init(r20319);
        mpfr_init(r20320);
        mpfr_init_set_str(r20321, "2", 10, MPFR_RNDN);
        mpfr_init(r20322);
        mpfr_init(r20323);
        mpfr_init(r20324);
        mpfr_init(r20325);
        mpfr_init(r20326);
        mpfr_init(r20327);
        mpfr_init(r20328);
        mpfr_init(r20329);
        mpfr_init(r20330);
        mpfr_init(r20331);
        mpfr_init(r20332);
        mpfr_init(r20333);
        mpfr_init(r20334);
        mpfr_init(r20335);
        mpfr_init(r20336);
        mpfr_init(r20337);
        mpfr_init(r20338);
        mpfr_init(r20339);
        mpfr_init(r20340);
        mpfr_init(r20341);
        mpfr_init(r20342);
        mpfr_init(r20343);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r20292, b, MPFR_RNDN);
        ;
        mpfr_set_si(r20294, mpfr_cmp(r20292, r20293) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r20296, mpfr_cmp(r20292, r20295) >= 0, MPFR_RNDN);
        mpfr_neg(r20297, r20292, MPFR_RNDN);
        mpfr_mul(r20298, r20292, r20292, MPFR_RNDN);
        mpfr_set_d(r20299, c, MPFR_RNDN);
        mpfr_set_d(r20300, a, MPFR_RNDN);
        ;
        mpfr_mul(r20302, r20300, r20301, MPFR_RNDN);
        mpfr_mul(r20303, r20299, r20302, MPFR_RNDN);
        mpfr_sub(r20304, r20298, r20303, MPFR_RNDN);
        mpfr_sqrt(r20305, r20304, MPFR_RNDN);
        mpfr_sub(r20306, r20297, r20305, MPFR_RNDN);
        mpfr_add(r20307, r20300, r20300, MPFR_RNDN);
        mpfr_div(r20308, r20306, r20307, MPFR_RNDN);
        mpfr_div(r20309, r20300, r20292, MPFR_RNDN);
        mpfr_mul(r20310, r20309, r20299, MPFR_RNDN);
        mpfr_sub(r20311, r20310, r20292, MPFR_RNDN);
        mpfr_div(r20312, r20299, r20311, MPFR_RNDN);
        if (mpfr_get_si(r20296, MPFR_RNDN)) { mpfr_set(r20313, r20308, MPFR_RNDN); } else { mpfr_set(r20313, r20312, MPFR_RNDN); };
        ;
        mpfr_set_si(r20315, mpfr_cmp(r20292, r20314) <= 0, MPFR_RNDN);
        mpfr_mul(r20316, r20301, r20300, MPFR_RNDN);
        mpfr_mul(r20317, r20316, r20299, MPFR_RNDN);
        mpfr_sub(r20318, r20298, r20317, MPFR_RNDN);
        mpfr_sqrt(r20319, r20318, MPFR_RNDN);
        mpfr_sub(r20320, r20297, r20319, MPFR_RNDN);
        ;
        mpfr_mul(r20322, r20321, r20300, MPFR_RNDN);
        mpfr_div(r20323, r20320, r20322, MPFR_RNDN);
        mpfr_mul(r20324, r20321, r20299, MPFR_RNDN);
        mpfr_add(r20325, r20297, r20319, MPFR_RNDN);
        mpfr_sqrt(r20326, r20325, MPFR_RNDN);
        mpfr_cbrt(r20327, r20319, MPFR_RNDN);
        mpfr_mul(r20328, r20327, r20327, MPFR_RNDN);
        mpfr_mul(r20329, r20328, r20327, MPFR_RNDN);
        mpfr_add(r20330, r20297, r20329, MPFR_RNDN);
        mpfr_sqrt(r20331, r20330, MPFR_RNDN);
        mpfr_mul(r20332, r20326, r20331, MPFR_RNDN);
        mpfr_div(r20333, r20324, r20332, MPFR_RNDN);
        if (mpfr_get_si(r20296, MPFR_RNDN)) { mpfr_set(r20334, r20323, MPFR_RNDN); } else { mpfr_set(r20334, r20333, MPFR_RNDN); };
        mpfr_div(r20335, r20299, r20292, MPFR_RNDN);
        mpfr_div(r20336, r20292, r20300, MPFR_RNDN);
        mpfr_sub(r20337, r20335, r20336, MPFR_RNDN);
        mpfr_add(r20338, r20299, r20299, MPFR_RNDN);
        mpfr_add(r20339, r20305, r20297, MPFR_RNDN);
        mpfr_div(r20340, r20338, r20339, MPFR_RNDN);
        if (mpfr_get_si(r20296, MPFR_RNDN)) { mpfr_set(r20341, r20337, MPFR_RNDN); } else { mpfr_set(r20341, r20340, MPFR_RNDN); };
        if (mpfr_get_si(r20315, MPFR_RNDN)) { mpfr_set(r20342, r20334, MPFR_RNDN); } else { mpfr_set(r20342, r20341, MPFR_RNDN); };
        if (mpfr_get_si(r20294, MPFR_RNDN)) { mpfr_set(r20343, r20313, MPFR_RNDN); } else { mpfr_set(r20343, r20342, MPFR_RNDN); };
        return mpfr_get_d(r20343, MPFR_RNDN);
}

static mpfr_t r20344, r20345, r20346, r20347, r20348, r20349, r20350, r20351, r20352, r20353, r20354, r20355, r20356, r20357, r20358, r20359, r20360, r20361, r20362, r20363, r20364, r20365, r20366, r20367, r20368, r20369, r20370, r20371, r20372, r20373, r20374, r20375, r20376, r20377, r20378, r20379, r20380, r20381, r20382, r20383, r20384, r20385, r20386, r20387, r20388, r20389, r20390, r20391, r20392, r20393, r20394, r20395;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r20344);
        mpfr_init_set_str(r20345, "-1.8837874464567483e+137", 10, MPFR_RNDN);
        mpfr_init(r20346);
        mpfr_init_set_str(r20347, "0", 10, MPFR_RNDN);
        mpfr_init(r20348);
        mpfr_init(r20349);
        mpfr_init(r20350);
        mpfr_init(r20351);
        mpfr_init(r20352);
        mpfr_init_set_str(r20353, "4", 10, MPFR_RNDN);
        mpfr_init(r20354);
        mpfr_init(r20355);
        mpfr_init(r20356);
        mpfr_init(r20357);
        mpfr_init(r20358);
        mpfr_init(r20359);
        mpfr_init(r20360);
        mpfr_init(r20361);
        mpfr_init(r20362);
        mpfr_init(r20363);
        mpfr_init(r20364);
        mpfr_init(r20365);
        mpfr_init_set_str(r20366, "4.854643826021821e+112", 10, MPFR_RNDN);
        mpfr_init(r20367);
        mpfr_init(r20368);
        mpfr_init(r20369);
        mpfr_init(r20370);
        mpfr_init(r20371);
        mpfr_init(r20372);
        mpfr_init_set_str(r20373, "2", 10, MPFR_RNDN);
        mpfr_init(r20374);
        mpfr_init(r20375);
        mpfr_init(r20376);
        mpfr_init(r20377);
        mpfr_init(r20378);
        mpfr_init(r20379);
        mpfr_init(r20380);
        mpfr_init(r20381);
        mpfr_init(r20382);
        mpfr_init(r20383);
        mpfr_init(r20384);
        mpfr_init(r20385);
        mpfr_init(r20386);
        mpfr_init(r20387);
        mpfr_init(r20388);
        mpfr_init(r20389);
        mpfr_init(r20390);
        mpfr_init(r20391);
        mpfr_init(r20392);
        mpfr_init(r20393);
        mpfr_init(r20394);
        mpfr_init(r20395);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r20344, b, MPFR_RNDN);
        ;
        mpfr_set_si(r20346, mpfr_cmp(r20344, r20345) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r20348, mpfr_cmp(r20344, r20347) >= 0, MPFR_RNDN);
        mpfr_neg(r20349, r20344, MPFR_RNDN);
        mpfr_mul(r20350, r20344, r20344, MPFR_RNDN);
        mpfr_set_d(r20351, c, MPFR_RNDN);
        mpfr_set_d(r20352, a, MPFR_RNDN);
        ;
        mpfr_mul(r20354, r20352, r20353, MPFR_RNDN);
        mpfr_mul(r20355, r20351, r20354, MPFR_RNDN);
        mpfr_sub(r20356, r20350, r20355, MPFR_RNDN);
        mpfr_sqrt(r20357, r20356, MPFR_RNDN);
        mpfr_sub(r20358, r20349, r20357, MPFR_RNDN);
        mpfr_add(r20359, r20352, r20352, MPFR_RNDN);
        mpfr_div(r20360, r20358, r20359, MPFR_RNDN);
        mpfr_div(r20361, r20352, r20344, MPFR_RNDN);
        mpfr_mul(r20362, r20361, r20351, MPFR_RNDN);
        mpfr_sub(r20363, r20362, r20344, MPFR_RNDN);
        mpfr_div(r20364, r20351, r20363, MPFR_RNDN);
        if (mpfr_get_si(r20348, MPFR_RNDN)) { mpfr_set(r20365, r20360, MPFR_RNDN); } else { mpfr_set(r20365, r20364, MPFR_RNDN); };
        ;
        mpfr_set_si(r20367, mpfr_cmp(r20344, r20366) <= 0, MPFR_RNDN);
        mpfr_mul(r20368, r20353, r20352, MPFR_RNDN);
        mpfr_mul(r20369, r20368, r20351, MPFR_RNDN);
        mpfr_sub(r20370, r20350, r20369, MPFR_RNDN);
        mpfr_sqrt(r20371, r20370, MPFR_RNDN);
        mpfr_sub(r20372, r20349, r20371, MPFR_RNDN);
        ;
        mpfr_mul(r20374, r20373, r20352, MPFR_RNDN);
        mpfr_div(r20375, r20372, r20374, MPFR_RNDN);
        mpfr_mul(r20376, r20373, r20351, MPFR_RNDN);
        mpfr_add(r20377, r20349, r20371, MPFR_RNDN);
        mpfr_sqrt(r20378, r20377, MPFR_RNDN);
        mpfr_cbrt(r20379, r20371, MPFR_RNDN);
        mpfr_mul(r20380, r20379, r20379, MPFR_RNDN);
        mpfr_mul(r20381, r20380, r20379, MPFR_RNDN);
        mpfr_add(r20382, r20349, r20381, MPFR_RNDN);
        mpfr_sqrt(r20383, r20382, MPFR_RNDN);
        mpfr_mul(r20384, r20378, r20383, MPFR_RNDN);
        mpfr_div(r20385, r20376, r20384, MPFR_RNDN);
        if (mpfr_get_si(r20348, MPFR_RNDN)) { mpfr_set(r20386, r20375, MPFR_RNDN); } else { mpfr_set(r20386, r20385, MPFR_RNDN); };
        mpfr_div(r20387, r20351, r20344, MPFR_RNDN);
        mpfr_div(r20388, r20344, r20352, MPFR_RNDN);
        mpfr_sub(r20389, r20387, r20388, MPFR_RNDN);
        mpfr_add(r20390, r20351, r20351, MPFR_RNDN);
        mpfr_add(r20391, r20357, r20349, MPFR_RNDN);
        mpfr_div(r20392, r20390, r20391, MPFR_RNDN);
        if (mpfr_get_si(r20348, MPFR_RNDN)) { mpfr_set(r20393, r20389, MPFR_RNDN); } else { mpfr_set(r20393, r20392, MPFR_RNDN); };
        if (mpfr_get_si(r20367, MPFR_RNDN)) { mpfr_set(r20394, r20386, MPFR_RNDN); } else { mpfr_set(r20394, r20393, MPFR_RNDN); };
        if (mpfr_get_si(r20346, MPFR_RNDN)) { mpfr_set(r20395, r20365, MPFR_RNDN); } else { mpfr_set(r20395, r20394, MPFR_RNDN); };
        return mpfr_get_d(r20395, MPFR_RNDN);
}

