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

char *name = "math.sqrt on complex, real part";

double f_if(float re, float im) {
        float r11149 = 0.5;
        float r11150 = 2.0;
        float r11151 = re;
        float r11152 = r11151 * r11151;
        float r11153 = im;
        float r11154 = r11153 * r11153;
        float r11155 = r11152 + r11154;
        float r11156 = sqrt(r11155);
        float r11157 = r11156 + r11151;
        float r11158 = r11150 * r11157;
        float r11159 = sqrt(r11158);
        float r11160 = r11149 * r11159;
        return r11160;
}

double f_id(double re, double im) {
        double r11161 = 0.5;
        double r11162 = 2.0;
        double r11163 = re;
        double r11164 = r11163 * r11163;
        double r11165 = im;
        double r11166 = r11165 * r11165;
        double r11167 = r11164 + r11166;
        double r11168 = sqrt(r11167);
        double r11169 = r11168 + r11163;
        double r11170 = r11162 * r11169;
        double r11171 = sqrt(r11170);
        double r11172 = r11161 * r11171;
        return r11172;
}


double f_of(float re, float im) {
        float r11173 = im;
        float r11174 = re;
        float r11175 = r11173 + r11174;
        float r11176 = 2.0;
        float r11177 = r11175 * r11176;
        float r11178 = -1.5719872873895795e+171;
        bool r11179 = r11177 <= r11178;
        float r11180 = 0.5;
        float r11181 = 1.0;
        float r11182 = -1;
        float r11183 = r11182 / r11173;
        float r11184 = r11181 / r11183;
        float r11185 = r11182 / r11174;
        float r11186 = r11185 / r11183;
        float r11187 = r11184 * r11186;
        float r11188 = sqrt(r11187);
        float r11189 = r11180 * r11188;
        float r11190 = -6.314044412187757e-271;
        bool r11191 = r11177 <= r11190;
        float r11192 = r11176 * r11173;
        float r11193 = r11192 * r11173;
        float r11194 = sqrt(r11193);
        float r11195 = r11173 * r11173;
        float r11196 = r11174 * r11174;
        float r11197 = r11195 + r11196;
        float r11198 = sqrt(r11197);
        float r11199 = r11198 - r11174;
        float r11200 = sqrt(r11199);
        float r11201 = r11194 / r11200;
        float r11202 = r11201 * r11180;
        float r11203 = 1.4828868948050535e-201;
        bool r11204 = r11177 <= r11203;
        float r11205 = r11174 + r11174;
        float r11206 = r11205 * r11176;
        float r11207 = sqrt(r11206);
        float r11208 = r11207 * r11180;
        float r11209 = 2.6290378242455047e-147;
        bool r11210 = r11177 <= r11209;
        float r11211 = 1.467254064795174e+145;
        bool r11212 = r11177 <= r11211;
        float r11213 = !r11212;
        bool r11214 = r11210 || r11213;
        float r11215 = sqrt(r11177);
        float r11216 = r11180 * r11215;
        float r11217 = r11174 + r11198;
        float r11218 = r11176 * r11217;
        float r11219 = sqrt(r11218);
        float r11220 = r11219 * r11180;
        float r11221 = r11214 ? r11216 : r11220;
        float r11222 = r11204 ? r11208 : r11221;
        float r11223 = r11191 ? r11202 : r11222;
        float r11224 = r11179 ? r11189 : r11223;
        return r11224;
}

double f_od(double re, double im) {
        double r11225 = im;
        double r11226 = re;
        double r11227 = r11225 + r11226;
        double r11228 = 2.0;
        double r11229 = r11227 * r11228;
        double r11230 = -1.5719872873895795e+171;
        bool r11231 = r11229 <= r11230;
        double r11232 = 0.5;
        double r11233 = 1.0;
        double r11234 = -1;
        double r11235 = r11234 / r11225;
        double r11236 = r11233 / r11235;
        double r11237 = r11234 / r11226;
        double r11238 = r11237 / r11235;
        double r11239 = r11236 * r11238;
        double r11240 = sqrt(r11239);
        double r11241 = r11232 * r11240;
        double r11242 = -6.314044412187757e-271;
        bool r11243 = r11229 <= r11242;
        double r11244 = r11228 * r11225;
        double r11245 = r11244 * r11225;
        double r11246 = sqrt(r11245);
        double r11247 = r11225 * r11225;
        double r11248 = r11226 * r11226;
        double r11249 = r11247 + r11248;
        double r11250 = sqrt(r11249);
        double r11251 = r11250 - r11226;
        double r11252 = sqrt(r11251);
        double r11253 = r11246 / r11252;
        double r11254 = r11253 * r11232;
        double r11255 = 1.4828868948050535e-201;
        bool r11256 = r11229 <= r11255;
        double r11257 = r11226 + r11226;
        double r11258 = r11257 * r11228;
        double r11259 = sqrt(r11258);
        double r11260 = r11259 * r11232;
        double r11261 = 2.6290378242455047e-147;
        bool r11262 = r11229 <= r11261;
        double r11263 = 1.467254064795174e+145;
        bool r11264 = r11229 <= r11263;
        double r11265 = !r11264;
        bool r11266 = r11262 || r11265;
        double r11267 = sqrt(r11229);
        double r11268 = r11232 * r11267;
        double r11269 = r11226 + r11250;
        double r11270 = r11228 * r11269;
        double r11271 = sqrt(r11270);
        double r11272 = r11271 * r11232;
        double r11273 = r11266 ? r11268 : r11272;
        double r11274 = r11256 ? r11260 : r11273;
        double r11275 = r11243 ? r11254 : r11274;
        double r11276 = r11231 ? r11241 : r11275;
        return r11276;
}

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 r11277, r11278, r11279, r11280, r11281, r11282, r11283, r11284, r11285, r11286, r11287, r11288;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3664);
        mpfr_init_set_str(r11277, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r11278, "2.0", 10, MPFR_RNDN);
        mpfr_init(r11279);
        mpfr_init(r11280);
        mpfr_init(r11281);
        mpfr_init(r11282);
        mpfr_init(r11283);
        mpfr_init(r11284);
        mpfr_init(r11285);
        mpfr_init(r11286);
        mpfr_init(r11287);
        mpfr_init(r11288);
}

double f_im(double re, double im) {
        ;
        ;
        mpfr_set_d(r11279, re, MPFR_RNDN);
        mpfr_mul(r11280, r11279, r11279, MPFR_RNDN);
        mpfr_set_d(r11281, im, MPFR_RNDN);
        mpfr_mul(r11282, r11281, r11281, MPFR_RNDN);
        mpfr_add(r11283, r11280, r11282, MPFR_RNDN);
        mpfr_sqrt(r11284, r11283, MPFR_RNDN);
        mpfr_add(r11285, r11284, r11279, MPFR_RNDN);
        mpfr_mul(r11286, r11278, r11285, MPFR_RNDN);
        mpfr_sqrt(r11287, r11286, MPFR_RNDN);
        mpfr_mul(r11288, r11277, r11287, MPFR_RNDN);
        return mpfr_get_d(r11288, MPFR_RNDN);
}

static mpfr_t r11289, r11290, r11291, r11292, r11293, r11294, r11295, r11296, r11297, r11298, r11299, r11300, r11301, r11302, r11303, r11304, r11305, r11306, r11307, r11308, r11309, r11310, r11311, r11312, r11313, r11314, r11315, r11316, r11317, r11318, r11319, r11320, r11321, r11322, r11323, r11324, r11325, r11326, r11327, r11328, r11329, r11330, r11331, r11332, r11333, r11334, r11335, r11336, r11337, r11338, r11339, r11340;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3664);
        mpfr_init(r11289);
        mpfr_init(r11290);
        mpfr_init(r11291);
        mpfr_init_set_str(r11292, "2.0", 10, MPFR_RNDN);
        mpfr_init(r11293);
        mpfr_init_set_str(r11294, "-1.5719872873895795e+171", 10, MPFR_RNDN);
        mpfr_init(r11295);
        mpfr_init_set_str(r11296, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r11297, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r11298, "-1", 10, MPFR_RNDN);
        mpfr_init(r11299);
        mpfr_init(r11300);
        mpfr_init(r11301);
        mpfr_init(r11302);
        mpfr_init(r11303);
        mpfr_init(r11304);
        mpfr_init(r11305);
        mpfr_init_set_str(r11306, "-6.314044412187757e-271", 10, MPFR_RNDN);
        mpfr_init(r11307);
        mpfr_init(r11308);
        mpfr_init(r11309);
        mpfr_init(r11310);
        mpfr_init(r11311);
        mpfr_init(r11312);
        mpfr_init(r11313);
        mpfr_init(r11314);
        mpfr_init(r11315);
        mpfr_init(r11316);
        mpfr_init(r11317);
        mpfr_init(r11318);
        mpfr_init_set_str(r11319, "1.4828868948050535e-201", 10, MPFR_RNDN);
        mpfr_init(r11320);
        mpfr_init(r11321);
        mpfr_init(r11322);
        mpfr_init(r11323);
        mpfr_init(r11324);
        mpfr_init_set_str(r11325, "2.6290378242455047e-147", 10, MPFR_RNDN);
        mpfr_init(r11326);
        mpfr_init_set_str(r11327, "1.467254064795174e+145", 10, MPFR_RNDN);
        mpfr_init(r11328);
        mpfr_init(r11329);
        mpfr_init(r11330);
        mpfr_init(r11331);
        mpfr_init(r11332);
        mpfr_init(r11333);
        mpfr_init(r11334);
        mpfr_init(r11335);
        mpfr_init(r11336);
        mpfr_init(r11337);
        mpfr_init(r11338);
        mpfr_init(r11339);
        mpfr_init(r11340);
}

double f_fm(double re, double im) {
        mpfr_set_d(r11289, im, MPFR_RNDN);
        mpfr_set_d(r11290, re, MPFR_RNDN);
        mpfr_add(r11291, r11289, r11290, MPFR_RNDN);
        ;
        mpfr_mul(r11293, r11291, r11292, MPFR_RNDN);
        ;
        mpfr_set_si(r11295, mpfr_cmp(r11293, r11294) <= 0, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_div(r11299, r11298, r11289, MPFR_RNDN);
        mpfr_div(r11300, r11297, r11299, MPFR_RNDN);
        mpfr_div(r11301, r11298, r11290, MPFR_RNDN);
        mpfr_div(r11302, r11301, r11299, MPFR_RNDN);
        mpfr_mul(r11303, r11300, r11302, MPFR_RNDN);
        mpfr_sqrt(r11304, r11303, MPFR_RNDN);
        mpfr_mul(r11305, r11296, r11304, MPFR_RNDN);
        ;
        mpfr_set_si(r11307, mpfr_cmp(r11293, r11306) <= 0, MPFR_RNDN);
        mpfr_mul(r11308, r11292, r11289, MPFR_RNDN);
        mpfr_mul(r11309, r11308, r11289, MPFR_RNDN);
        mpfr_sqrt(r11310, r11309, MPFR_RNDN);
        mpfr_mul(r11311, r11289, r11289, MPFR_RNDN);
        mpfr_mul(r11312, r11290, r11290, MPFR_RNDN);
        mpfr_add(r11313, r11311, r11312, MPFR_RNDN);
        mpfr_sqrt(r11314, r11313, MPFR_RNDN);
        mpfr_sub(r11315, r11314, r11290, MPFR_RNDN);
        mpfr_sqrt(r11316, r11315, MPFR_RNDN);
        mpfr_div(r11317, r11310, r11316, MPFR_RNDN);
        mpfr_mul(r11318, r11317, r11296, MPFR_RNDN);
        ;
        mpfr_set_si(r11320, mpfr_cmp(r11293, r11319) <= 0, MPFR_RNDN);
        mpfr_add(r11321, r11290, r11290, MPFR_RNDN);
        mpfr_mul(r11322, r11321, r11292, MPFR_RNDN);
        mpfr_sqrt(r11323, r11322, MPFR_RNDN);
        mpfr_mul(r11324, r11323, r11296, MPFR_RNDN);
        ;
        mpfr_set_si(r11326, mpfr_cmp(r11293, r11325) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r11328, mpfr_cmp(r11293, r11327) <= 0, MPFR_RNDN);
        mpfr_set_si(r11329, !mpfr_get_si(r11328, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r11330, mpfr_get_si(r11326, MPFR_RNDN) || mpfr_get_si(r11329, MPFR_RNDN), MPFR_RNDN);
        mpfr_sqrt(r11331, r11293, MPFR_RNDN);
        mpfr_mul(r11332, r11296, r11331, MPFR_RNDN);
        mpfr_add(r11333, r11290, r11314, MPFR_RNDN);
        mpfr_mul(r11334, r11292, r11333, MPFR_RNDN);
        mpfr_sqrt(r11335, r11334, MPFR_RNDN);
        mpfr_mul(r11336, r11335, r11296, MPFR_RNDN);
        if (mpfr_get_si(r11330, MPFR_RNDN)) { mpfr_set(r11337, r11332, MPFR_RNDN); } else { mpfr_set(r11337, r11336, MPFR_RNDN); };
        if (mpfr_get_si(r11320, MPFR_RNDN)) { mpfr_set(r11338, r11324, MPFR_RNDN); } else { mpfr_set(r11338, r11337, MPFR_RNDN); };
        if (mpfr_get_si(r11307, MPFR_RNDN)) { mpfr_set(r11339, r11318, MPFR_RNDN); } else { mpfr_set(r11339, r11338, MPFR_RNDN); };
        if (mpfr_get_si(r11295, MPFR_RNDN)) { mpfr_set(r11340, r11305, MPFR_RNDN); } else { mpfr_set(r11340, r11339, MPFR_RNDN); };
        return mpfr_get_d(r11340, MPFR_RNDN);
}

static mpfr_t r11341, r11342, r11343, r11344, r11345, r11346, r11347, r11348, r11349, r11350, r11351, r11352, r11353, r11354, r11355, r11356, r11357, r11358, r11359, r11360, r11361, r11362, r11363, r11364, r11365, r11366, r11367, r11368, r11369, r11370, r11371, r11372, r11373, r11374, r11375, r11376, r11377, r11378, r11379, r11380, r11381, r11382, r11383, r11384, r11385, r11386, r11387, r11388, r11389, r11390, r11391, r11392;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3664);
        mpfr_init(r11341);
        mpfr_init(r11342);
        mpfr_init(r11343);
        mpfr_init_set_str(r11344, "2.0", 10, MPFR_RNDN);
        mpfr_init(r11345);
        mpfr_init_set_str(r11346, "-1.5719872873895795e+171", 10, MPFR_RNDN);
        mpfr_init(r11347);
        mpfr_init_set_str(r11348, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r11349, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r11350, "-1", 10, MPFR_RNDN);
        mpfr_init(r11351);
        mpfr_init(r11352);
        mpfr_init(r11353);
        mpfr_init(r11354);
        mpfr_init(r11355);
        mpfr_init(r11356);
        mpfr_init(r11357);
        mpfr_init_set_str(r11358, "-6.314044412187757e-271", 10, MPFR_RNDN);
        mpfr_init(r11359);
        mpfr_init(r11360);
        mpfr_init(r11361);
        mpfr_init(r11362);
        mpfr_init(r11363);
        mpfr_init(r11364);
        mpfr_init(r11365);
        mpfr_init(r11366);
        mpfr_init(r11367);
        mpfr_init(r11368);
        mpfr_init(r11369);
        mpfr_init(r11370);
        mpfr_init_set_str(r11371, "1.4828868948050535e-201", 10, MPFR_RNDN);
        mpfr_init(r11372);
        mpfr_init(r11373);
        mpfr_init(r11374);
        mpfr_init(r11375);
        mpfr_init(r11376);
        mpfr_init_set_str(r11377, "2.6290378242455047e-147", 10, MPFR_RNDN);
        mpfr_init(r11378);
        mpfr_init_set_str(r11379, "1.467254064795174e+145", 10, MPFR_RNDN);
        mpfr_init(r11380);
        mpfr_init(r11381);
        mpfr_init(r11382);
        mpfr_init(r11383);
        mpfr_init(r11384);
        mpfr_init(r11385);
        mpfr_init(r11386);
        mpfr_init(r11387);
        mpfr_init(r11388);
        mpfr_init(r11389);
        mpfr_init(r11390);
        mpfr_init(r11391);
        mpfr_init(r11392);
}

double f_dm(double re, double im) {
        mpfr_set_d(r11341, im, MPFR_RNDN);
        mpfr_set_d(r11342, re, MPFR_RNDN);
        mpfr_add(r11343, r11341, r11342, MPFR_RNDN);
        ;
        mpfr_mul(r11345, r11343, r11344, MPFR_RNDN);
        ;
        mpfr_set_si(r11347, mpfr_cmp(r11345, r11346) <= 0, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_div(r11351, r11350, r11341, MPFR_RNDN);
        mpfr_div(r11352, r11349, r11351, MPFR_RNDN);
        mpfr_div(r11353, r11350, r11342, MPFR_RNDN);
        mpfr_div(r11354, r11353, r11351, MPFR_RNDN);
        mpfr_mul(r11355, r11352, r11354, MPFR_RNDN);
        mpfr_sqrt(r11356, r11355, MPFR_RNDN);
        mpfr_mul(r11357, r11348, r11356, MPFR_RNDN);
        ;
        mpfr_set_si(r11359, mpfr_cmp(r11345, r11358) <= 0, MPFR_RNDN);
        mpfr_mul(r11360, r11344, r11341, MPFR_RNDN);
        mpfr_mul(r11361, r11360, r11341, MPFR_RNDN);
        mpfr_sqrt(r11362, r11361, MPFR_RNDN);
        mpfr_mul(r11363, r11341, r11341, MPFR_RNDN);
        mpfr_mul(r11364, r11342, r11342, MPFR_RNDN);
        mpfr_add(r11365, r11363, r11364, MPFR_RNDN);
        mpfr_sqrt(r11366, r11365, MPFR_RNDN);
        mpfr_sub(r11367, r11366, r11342, MPFR_RNDN);
        mpfr_sqrt(r11368, r11367, MPFR_RNDN);
        mpfr_div(r11369, r11362, r11368, MPFR_RNDN);
        mpfr_mul(r11370, r11369, r11348, MPFR_RNDN);
        ;
        mpfr_set_si(r11372, mpfr_cmp(r11345, r11371) <= 0, MPFR_RNDN);
        mpfr_add(r11373, r11342, r11342, MPFR_RNDN);
        mpfr_mul(r11374, r11373, r11344, MPFR_RNDN);
        mpfr_sqrt(r11375, r11374, MPFR_RNDN);
        mpfr_mul(r11376, r11375, r11348, MPFR_RNDN);
        ;
        mpfr_set_si(r11378, mpfr_cmp(r11345, r11377) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r11380, mpfr_cmp(r11345, r11379) <= 0, MPFR_RNDN);
        mpfr_set_si(r11381, !mpfr_get_si(r11380, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r11382, mpfr_get_si(r11378, MPFR_RNDN) || mpfr_get_si(r11381, MPFR_RNDN), MPFR_RNDN);
        mpfr_sqrt(r11383, r11345, MPFR_RNDN);
        mpfr_mul(r11384, r11348, r11383, MPFR_RNDN);
        mpfr_add(r11385, r11342, r11366, MPFR_RNDN);
        mpfr_mul(r11386, r11344, r11385, MPFR_RNDN);
        mpfr_sqrt(r11387, r11386, MPFR_RNDN);
        mpfr_mul(r11388, r11387, r11348, MPFR_RNDN);
        if (mpfr_get_si(r11382, MPFR_RNDN)) { mpfr_set(r11389, r11384, MPFR_RNDN); } else { mpfr_set(r11389, r11388, MPFR_RNDN); };
        if (mpfr_get_si(r11372, MPFR_RNDN)) { mpfr_set(r11390, r11376, MPFR_RNDN); } else { mpfr_set(r11390, r11389, MPFR_RNDN); };
        if (mpfr_get_si(r11359, MPFR_RNDN)) { mpfr_set(r11391, r11370, MPFR_RNDN); } else { mpfr_set(r11391, r11390, MPFR_RNDN); };
        if (mpfr_get_si(r11347, MPFR_RNDN)) { mpfr_set(r11392, r11357, MPFR_RNDN); } else { mpfr_set(r11392, r11391, MPFR_RNDN); };
        return mpfr_get_d(r11392, MPFR_RNDN);
}

