#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 r38311 = 0.5;
        float r38312 = 2.0;
        float r38313 = re;
        float r38314 = r38313 * r38313;
        float r38315 = im;
        float r38316 = r38315 * r38315;
        float r38317 = r38314 + r38316;
        float r38318 = sqrt(r38317);
        float r38319 = r38318 + r38313;
        float r38320 = r38312 * r38319;
        float r38321 = sqrt(r38320);
        float r38322 = r38311 * r38321;
        return r38322;
}

double f_id(double re, double im) {
        double r38323 = 0.5;
        double r38324 = 2.0;
        double r38325 = re;
        double r38326 = r38325 * r38325;
        double r38327 = im;
        double r38328 = r38327 * r38327;
        double r38329 = r38326 + r38328;
        double r38330 = sqrt(r38329);
        double r38331 = r38330 + r38325;
        double r38332 = r38324 * r38331;
        double r38333 = sqrt(r38332);
        double r38334 = r38323 * r38333;
        return r38334;
}


double f_of(float re, float im) {
        float r38335 = re;
        float r38336 = -2.6624103656356966e+125;
        bool r38337 = r38335 <= r38336;
        float r38338 = 0.5;
        float r38339 = im;
        float r38340 = 2.0;
        float r38341 = r38339 * r38340;
        float r38342 = r38341 * r38339;
        float r38343 = sqrt(r38342);
        float r38344 = -r38335;
        float r38345 = r38344 - r38335;
        float r38346 = sqrt(r38345);
        float r38347 = r38343 / r38346;
        float r38348 = r38338 * r38347;
        float r38349 = 3.796196813165018e-240;
        bool r38350 = r38335 <= r38349;
        float r38351 = sqrt(r38340);
        float r38352 = 1;
        float r38353 = sqrt(r38352);
        float r38354 = r38351 / r38353;
        float r38355 = fabs(r38339);
        float r38356 = r38339 * r38339;
        float r38357 = r38335 * r38335;
        float r38358 = r38356 + r38357;
        float r38359 = sqrt(r38358);
        float r38360 = r38359 - r38335;
        float r38361 = sqrt(r38360);
        float r38362 = sqrt(r38361);
        float r38363 = r38362 * r38362;
        float r38364 = r38355 / r38363;
        float r38365 = r38354 * r38364;
        float r38366 = r38338 * r38365;
        float r38367 = 2.033631272796238e-67;
        bool r38368 = r38335 <= r38367;
        float r38369 = r38339 + r38335;
        float r38370 = r38340 * r38369;
        float r38371 = sqrt(r38370);
        float r38372 = r38338 * r38371;
        float r38373 = 5.304372248193492e-28;
        bool r38374 = r38335 <= r38373;
        float r38375 = r38355 * r38338;
        float r38376 = r38375 * r38354;
        float r38377 = -r38339;
        float r38378 = r38377 - r38335;
        float r38379 = sqrt(r38378);
        float r38380 = r38376 / r38379;
        float r38381 = r38335 + r38335;
        float r38382 = r38340 * r38381;
        float r38383 = sqrt(r38382);
        float r38384 = r38338 * r38383;
        float r38385 = r38374 ? r38380 : r38384;
        float r38386 = r38368 ? r38372 : r38385;
        float r38387 = r38350 ? r38366 : r38386;
        float r38388 = r38337 ? r38348 : r38387;
        return r38388;
}

double f_od(double re, double im) {
        double r38389 = re;
        double r38390 = -2.6624103656356966e+125;
        bool r38391 = r38389 <= r38390;
        double r38392 = 0.5;
        double r38393 = im;
        double r38394 = 2.0;
        double r38395 = r38393 * r38394;
        double r38396 = r38395 * r38393;
        double r38397 = sqrt(r38396);
        double r38398 = -r38389;
        double r38399 = r38398 - r38389;
        double r38400 = sqrt(r38399);
        double r38401 = r38397 / r38400;
        double r38402 = r38392 * r38401;
        double r38403 = 3.796196813165018e-240;
        bool r38404 = r38389 <= r38403;
        double r38405 = sqrt(r38394);
        double r38406 = 1;
        double r38407 = sqrt(r38406);
        double r38408 = r38405 / r38407;
        double r38409 = fabs(r38393);
        double r38410 = r38393 * r38393;
        double r38411 = r38389 * r38389;
        double r38412 = r38410 + r38411;
        double r38413 = sqrt(r38412);
        double r38414 = r38413 - r38389;
        double r38415 = sqrt(r38414);
        double r38416 = sqrt(r38415);
        double r38417 = r38416 * r38416;
        double r38418 = r38409 / r38417;
        double r38419 = r38408 * r38418;
        double r38420 = r38392 * r38419;
        double r38421 = 2.033631272796238e-67;
        bool r38422 = r38389 <= r38421;
        double r38423 = r38393 + r38389;
        double r38424 = r38394 * r38423;
        double r38425 = sqrt(r38424);
        double r38426 = r38392 * r38425;
        double r38427 = 5.304372248193492e-28;
        bool r38428 = r38389 <= r38427;
        double r38429 = r38409 * r38392;
        double r38430 = r38429 * r38408;
        double r38431 = -r38393;
        double r38432 = r38431 - r38389;
        double r38433 = sqrt(r38432);
        double r38434 = r38430 / r38433;
        double r38435 = r38389 + r38389;
        double r38436 = r38394 * r38435;
        double r38437 = sqrt(r38436);
        double r38438 = r38392 * r38437;
        double r38439 = r38428 ? r38434 : r38438;
        double r38440 = r38422 ? r38426 : r38439;
        double r38441 = r38404 ? r38420 : r38440;
        double r38442 = r38391 ? r38402 : r38441;
        return r38442;
}

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 r38443, r38444, r38445, r38446, r38447, r38448, r38449, r38450, r38451, r38452, r38453, r38454;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init_set_str(r38443, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r38444, "2.0", 10, MPFR_RNDN);
        mpfr_init(r38445);
        mpfr_init(r38446);
        mpfr_init(r38447);
        mpfr_init(r38448);
        mpfr_init(r38449);
        mpfr_init(r38450);
        mpfr_init(r38451);
        mpfr_init(r38452);
        mpfr_init(r38453);
        mpfr_init(r38454);
}

double f_im(double re, double im) {
        ;
        ;
        mpfr_set_d(r38445, re, MPFR_RNDN);
        mpfr_mul(r38446, r38445, r38445, MPFR_RNDN);
        mpfr_set_d(r38447, im, MPFR_RNDN);
        mpfr_mul(r38448, r38447, r38447, MPFR_RNDN);
        mpfr_add(r38449, r38446, r38448, MPFR_RNDN);
        mpfr_sqrt(r38450, r38449, MPFR_RNDN);
        mpfr_add(r38451, r38450, r38445, MPFR_RNDN);
        mpfr_mul(r38452, r38444, r38451, MPFR_RNDN);
        mpfr_sqrt(r38453, r38452, MPFR_RNDN);
        mpfr_mul(r38454, r38443, r38453, MPFR_RNDN);
        return mpfr_get_d(r38454, MPFR_RNDN);
}

static mpfr_t r38455, r38456, r38457, r38458, r38459, r38460, r38461, r38462, r38463, r38464, r38465, r38466, r38467, r38468, r38469, r38470, r38471, r38472, r38473, r38474, r38475, r38476, r38477, r38478, r38479, r38480, r38481, r38482, r38483, r38484, r38485, r38486, r38487, r38488, r38489, r38490, r38491, r38492, r38493, r38494, r38495, r38496, r38497, r38498, r38499, r38500, r38501, r38502, r38503, r38504, r38505, r38506, r38507, r38508;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r38455);
        mpfr_init_set_str(r38456, "-2.6624103656356966e+125", 10, MPFR_RNDN);
        mpfr_init(r38457);
        mpfr_init_set_str(r38458, "0.5", 10, MPFR_RNDN);
        mpfr_init(r38459);
        mpfr_init_set_str(r38460, "2.0", 10, MPFR_RNDN);
        mpfr_init(r38461);
        mpfr_init(r38462);
        mpfr_init(r38463);
        mpfr_init(r38464);
        mpfr_init(r38465);
        mpfr_init(r38466);
        mpfr_init(r38467);
        mpfr_init(r38468);
        mpfr_init_set_str(r38469, "3.796196813165018e-240", 10, MPFR_RNDN);
        mpfr_init(r38470);
        mpfr_init(r38471);
        mpfr_init_set_str(r38472, "1", 10, MPFR_RNDN);
        mpfr_init(r38473);
        mpfr_init(r38474);
        mpfr_init(r38475);
        mpfr_init(r38476);
        mpfr_init(r38477);
        mpfr_init(r38478);
        mpfr_init(r38479);
        mpfr_init(r38480);
        mpfr_init(r38481);
        mpfr_init(r38482);
        mpfr_init(r38483);
        mpfr_init(r38484);
        mpfr_init(r38485);
        mpfr_init(r38486);
        mpfr_init_set_str(r38487, "2.033631272796238e-67", 10, MPFR_RNDN);
        mpfr_init(r38488);
        mpfr_init(r38489);
        mpfr_init(r38490);
        mpfr_init(r38491);
        mpfr_init(r38492);
        mpfr_init_set_str(r38493, "5.304372248193492e-28", 10, MPFR_RNDN);
        mpfr_init(r38494);
        mpfr_init(r38495);
        mpfr_init(r38496);
        mpfr_init(r38497);
        mpfr_init(r38498);
        mpfr_init(r38499);
        mpfr_init(r38500);
        mpfr_init(r38501);
        mpfr_init(r38502);
        mpfr_init(r38503);
        mpfr_init(r38504);
        mpfr_init(r38505);
        mpfr_init(r38506);
        mpfr_init(r38507);
        mpfr_init(r38508);
}

double f_fm(double re, double im) {
        mpfr_set_d(r38455, re, MPFR_RNDN);
        ;
        mpfr_set_si(r38457, mpfr_cmp(r38455, r38456) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r38459, im, MPFR_RNDN);
        ;
        mpfr_mul(r38461, r38459, r38460, MPFR_RNDN);
        mpfr_mul(r38462, r38461, r38459, MPFR_RNDN);
        mpfr_sqrt(r38463, r38462, MPFR_RNDN);
        mpfr_neg(r38464, r38455, MPFR_RNDN);
        mpfr_sub(r38465, r38464, r38455, MPFR_RNDN);
        mpfr_sqrt(r38466, r38465, MPFR_RNDN);
        mpfr_div(r38467, r38463, r38466, MPFR_RNDN);
        mpfr_mul(r38468, r38458, r38467, MPFR_RNDN);
        ;
        mpfr_set_si(r38470, mpfr_cmp(r38455, r38469) <= 0, MPFR_RNDN);
        mpfr_sqrt(r38471, r38460, MPFR_RNDN);
        ;
        mpfr_sqrt(r38473, r38472, MPFR_RNDN);
        mpfr_div(r38474, r38471, r38473, MPFR_RNDN);
        mpfr_abs(r38475, r38459, MPFR_RNDN);
        mpfr_mul(r38476, r38459, r38459, MPFR_RNDN);
        mpfr_mul(r38477, r38455, r38455, MPFR_RNDN);
        mpfr_add(r38478, r38476, r38477, MPFR_RNDN);
        mpfr_sqrt(r38479, r38478, MPFR_RNDN);
        mpfr_sub(r38480, r38479, r38455, MPFR_RNDN);
        mpfr_sqrt(r38481, r38480, MPFR_RNDN);
        mpfr_sqrt(r38482, r38481, MPFR_RNDN);
        mpfr_mul(r38483, r38482, r38482, MPFR_RNDN);
        mpfr_div(r38484, r38475, r38483, MPFR_RNDN);
        mpfr_mul(r38485, r38474, r38484, MPFR_RNDN);
        mpfr_mul(r38486, r38458, r38485, MPFR_RNDN);
        ;
        mpfr_set_si(r38488, mpfr_cmp(r38455, r38487) <= 0, MPFR_RNDN);
        mpfr_add(r38489, r38459, r38455, MPFR_RNDN);
        mpfr_mul(r38490, r38460, r38489, MPFR_RNDN);
        mpfr_sqrt(r38491, r38490, MPFR_RNDN);
        mpfr_mul(r38492, r38458, r38491, MPFR_RNDN);
        ;
        mpfr_set_si(r38494, mpfr_cmp(r38455, r38493) <= 0, MPFR_RNDN);
        mpfr_mul(r38495, r38475, r38458, MPFR_RNDN);
        mpfr_mul(r38496, r38495, r38474, MPFR_RNDN);
        mpfr_neg(r38497, r38459, MPFR_RNDN);
        mpfr_sub(r38498, r38497, r38455, MPFR_RNDN);
        mpfr_sqrt(r38499, r38498, MPFR_RNDN);
        mpfr_div(r38500, r38496, r38499, MPFR_RNDN);
        mpfr_add(r38501, r38455, r38455, MPFR_RNDN);
        mpfr_mul(r38502, r38460, r38501, MPFR_RNDN);
        mpfr_sqrt(r38503, r38502, MPFR_RNDN);
        mpfr_mul(r38504, r38458, r38503, MPFR_RNDN);
        if (mpfr_get_si(r38494, MPFR_RNDN)) { mpfr_set(r38505, r38500, MPFR_RNDN); } else { mpfr_set(r38505, r38504, MPFR_RNDN); };
        if (mpfr_get_si(r38488, MPFR_RNDN)) { mpfr_set(r38506, r38492, MPFR_RNDN); } else { mpfr_set(r38506, r38505, MPFR_RNDN); };
        if (mpfr_get_si(r38470, MPFR_RNDN)) { mpfr_set(r38507, r38486, MPFR_RNDN); } else { mpfr_set(r38507, r38506, MPFR_RNDN); };
        if (mpfr_get_si(r38457, MPFR_RNDN)) { mpfr_set(r38508, r38468, MPFR_RNDN); } else { mpfr_set(r38508, r38507, MPFR_RNDN); };
        return mpfr_get_d(r38508, MPFR_RNDN);
}

static mpfr_t r38509, r38510, r38511, r38512, r38513, r38514, r38515, r38516, r38517, r38518, r38519, r38520, r38521, r38522, r38523, r38524, r38525, r38526, r38527, r38528, r38529, r38530, r38531, r38532, r38533, r38534, r38535, r38536, r38537, r38538, r38539, r38540, r38541, r38542, r38543, r38544, r38545, r38546, r38547, r38548, r38549, r38550, r38551, r38552, r38553, r38554, r38555, r38556, r38557, r38558, r38559, r38560, r38561, r38562;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r38509);
        mpfr_init_set_str(r38510, "-2.6624103656356966e+125", 10, MPFR_RNDN);
        mpfr_init(r38511);
        mpfr_init_set_str(r38512, "0.5", 10, MPFR_RNDN);
        mpfr_init(r38513);
        mpfr_init_set_str(r38514, "2.0", 10, MPFR_RNDN);
        mpfr_init(r38515);
        mpfr_init(r38516);
        mpfr_init(r38517);
        mpfr_init(r38518);
        mpfr_init(r38519);
        mpfr_init(r38520);
        mpfr_init(r38521);
        mpfr_init(r38522);
        mpfr_init_set_str(r38523, "3.796196813165018e-240", 10, MPFR_RNDN);
        mpfr_init(r38524);
        mpfr_init(r38525);
        mpfr_init_set_str(r38526, "1", 10, MPFR_RNDN);
        mpfr_init(r38527);
        mpfr_init(r38528);
        mpfr_init(r38529);
        mpfr_init(r38530);
        mpfr_init(r38531);
        mpfr_init(r38532);
        mpfr_init(r38533);
        mpfr_init(r38534);
        mpfr_init(r38535);
        mpfr_init(r38536);
        mpfr_init(r38537);
        mpfr_init(r38538);
        mpfr_init(r38539);
        mpfr_init(r38540);
        mpfr_init_set_str(r38541, "2.033631272796238e-67", 10, MPFR_RNDN);
        mpfr_init(r38542);
        mpfr_init(r38543);
        mpfr_init(r38544);
        mpfr_init(r38545);
        mpfr_init(r38546);
        mpfr_init_set_str(r38547, "5.304372248193492e-28", 10, MPFR_RNDN);
        mpfr_init(r38548);
        mpfr_init(r38549);
        mpfr_init(r38550);
        mpfr_init(r38551);
        mpfr_init(r38552);
        mpfr_init(r38553);
        mpfr_init(r38554);
        mpfr_init(r38555);
        mpfr_init(r38556);
        mpfr_init(r38557);
        mpfr_init(r38558);
        mpfr_init(r38559);
        mpfr_init(r38560);
        mpfr_init(r38561);
        mpfr_init(r38562);
}

double f_dm(double re, double im) {
        mpfr_set_d(r38509, re, MPFR_RNDN);
        ;
        mpfr_set_si(r38511, mpfr_cmp(r38509, r38510) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r38513, im, MPFR_RNDN);
        ;
        mpfr_mul(r38515, r38513, r38514, MPFR_RNDN);
        mpfr_mul(r38516, r38515, r38513, MPFR_RNDN);
        mpfr_sqrt(r38517, r38516, MPFR_RNDN);
        mpfr_neg(r38518, r38509, MPFR_RNDN);
        mpfr_sub(r38519, r38518, r38509, MPFR_RNDN);
        mpfr_sqrt(r38520, r38519, MPFR_RNDN);
        mpfr_div(r38521, r38517, r38520, MPFR_RNDN);
        mpfr_mul(r38522, r38512, r38521, MPFR_RNDN);
        ;
        mpfr_set_si(r38524, mpfr_cmp(r38509, r38523) <= 0, MPFR_RNDN);
        mpfr_sqrt(r38525, r38514, MPFR_RNDN);
        ;
        mpfr_sqrt(r38527, r38526, MPFR_RNDN);
        mpfr_div(r38528, r38525, r38527, MPFR_RNDN);
        mpfr_abs(r38529, r38513, MPFR_RNDN);
        mpfr_mul(r38530, r38513, r38513, MPFR_RNDN);
        mpfr_mul(r38531, r38509, r38509, MPFR_RNDN);
        mpfr_add(r38532, r38530, r38531, MPFR_RNDN);
        mpfr_sqrt(r38533, r38532, MPFR_RNDN);
        mpfr_sub(r38534, r38533, r38509, MPFR_RNDN);
        mpfr_sqrt(r38535, r38534, MPFR_RNDN);
        mpfr_sqrt(r38536, r38535, MPFR_RNDN);
        mpfr_mul(r38537, r38536, r38536, MPFR_RNDN);
        mpfr_div(r38538, r38529, r38537, MPFR_RNDN);
        mpfr_mul(r38539, r38528, r38538, MPFR_RNDN);
        mpfr_mul(r38540, r38512, r38539, MPFR_RNDN);
        ;
        mpfr_set_si(r38542, mpfr_cmp(r38509, r38541) <= 0, MPFR_RNDN);
        mpfr_add(r38543, r38513, r38509, MPFR_RNDN);
        mpfr_mul(r38544, r38514, r38543, MPFR_RNDN);
        mpfr_sqrt(r38545, r38544, MPFR_RNDN);
        mpfr_mul(r38546, r38512, r38545, MPFR_RNDN);
        ;
        mpfr_set_si(r38548, mpfr_cmp(r38509, r38547) <= 0, MPFR_RNDN);
        mpfr_mul(r38549, r38529, r38512, MPFR_RNDN);
        mpfr_mul(r38550, r38549, r38528, MPFR_RNDN);
        mpfr_neg(r38551, r38513, MPFR_RNDN);
        mpfr_sub(r38552, r38551, r38509, MPFR_RNDN);
        mpfr_sqrt(r38553, r38552, MPFR_RNDN);
        mpfr_div(r38554, r38550, r38553, MPFR_RNDN);
        mpfr_add(r38555, r38509, r38509, MPFR_RNDN);
        mpfr_mul(r38556, r38514, r38555, MPFR_RNDN);
        mpfr_sqrt(r38557, r38556, MPFR_RNDN);
        mpfr_mul(r38558, r38512, r38557, MPFR_RNDN);
        if (mpfr_get_si(r38548, MPFR_RNDN)) { mpfr_set(r38559, r38554, MPFR_RNDN); } else { mpfr_set(r38559, r38558, MPFR_RNDN); };
        if (mpfr_get_si(r38542, MPFR_RNDN)) { mpfr_set(r38560, r38546, MPFR_RNDN); } else { mpfr_set(r38560, r38559, MPFR_RNDN); };
        if (mpfr_get_si(r38524, MPFR_RNDN)) { mpfr_set(r38561, r38540, MPFR_RNDN); } else { mpfr_set(r38561, r38560, MPFR_RNDN); };
        if (mpfr_get_si(r38511, MPFR_RNDN)) { mpfr_set(r38562, r38522, MPFR_RNDN); } else { mpfr_set(r38562, r38561, MPFR_RNDN); };
        return mpfr_get_d(r38562, MPFR_RNDN);
}

