#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 r26391 = 0.5;
        float r26392 = 2.0;
        float r26393 = re;
        float r26394 = r26393 * r26393;
        float r26395 = im;
        float r26396 = r26395 * r26395;
        float r26397 = r26394 + r26396;
        float r26398 = sqrt(r26397);
        float r26399 = r26398 + r26393;
        float r26400 = r26392 * r26399;
        float r26401 = sqrt(r26400);
        float r26402 = r26391 * r26401;
        return r26402;
}

double f_id(double re, double im) {
        double r26403 = 0.5;
        double r26404 = 2.0;
        double r26405 = re;
        double r26406 = r26405 * r26405;
        double r26407 = im;
        double r26408 = r26407 * r26407;
        double r26409 = r26406 + r26408;
        double r26410 = sqrt(r26409);
        double r26411 = r26410 + r26405;
        double r26412 = r26404 * r26411;
        double r26413 = sqrt(r26412);
        double r26414 = r26403 * r26413;
        return r26414;
}


double f_of(float re, float im) {
        float r26415 = re;
        float r26416 = -r26415;
        float r26417 = r26416 - r26415;
        float r26418 = -7.535303373630258e+101;
        bool r26419 = r26417 <= r26418;
        float r26420 = 0.5;
        float r26421 = 2.0;
        float r26422 = r26415 + r26415;
        float r26423 = r26421 * r26422;
        float r26424 = sqrt(r26423);
        float r26425 = r26420 * r26424;
        float r26426 = 4.132528930729306e-250;
        bool r26427 = r26417 <= r26426;
        float r26428 = r26415 * r26415;
        float r26429 = im;
        float r26430 = r26429 * r26429;
        float r26431 = r26428 + r26430;
        float r26432 = sqrt(r26431);
        float r26433 = r26432 + r26415;
        float r26434 = r26421 * r26433;
        float r26435 = sqrt(r26434);
        float r26436 = r26420 * r26435;
        float r26437 = 1.099289775224431e-128;
        bool r26438 = r26417 <= r26437;
        float r26439 = sqrt(r26421);
        float r26440 = fabs(r26429);
        float r26441 = r26439 * r26440;
        float r26442 = r26429 - r26415;
        float r26443 = sqrt(r26442);
        float r26444 = r26441 / r26443;
        float r26445 = r26420 * r26444;
        float r26446 = 9.8132171960734e+122;
        bool r26447 = r26417 <= r26446;
        float r26448 = 1;
        float r26449 = sqrt(r26448);
        float r26450 = r26439 / r26449;
        float r26451 = r26432 - r26415;
        float r26452 = sqrt(r26451);
        float r26453 = r26440 / r26452;
        float r26454 = r26450 * r26453;
        float r26455 = r26420 * r26454;
        float r26456 = r26441 * r26420;
        float r26457 = sqrt(r26417);
        float r26458 = r26456 / r26457;
        float r26459 = r26447 ? r26455 : r26458;
        float r26460 = r26438 ? r26445 : r26459;
        float r26461 = r26427 ? r26436 : r26460;
        float r26462 = r26419 ? r26425 : r26461;
        return r26462;
}

double f_od(double re, double im) {
        double r26463 = re;
        double r26464 = -r26463;
        double r26465 = r26464 - r26463;
        double r26466 = -7.535303373630258e+101;
        bool r26467 = r26465 <= r26466;
        double r26468 = 0.5;
        double r26469 = 2.0;
        double r26470 = r26463 + r26463;
        double r26471 = r26469 * r26470;
        double r26472 = sqrt(r26471);
        double r26473 = r26468 * r26472;
        double r26474 = 4.132528930729306e-250;
        bool r26475 = r26465 <= r26474;
        double r26476 = r26463 * r26463;
        double r26477 = im;
        double r26478 = r26477 * r26477;
        double r26479 = r26476 + r26478;
        double r26480 = sqrt(r26479);
        double r26481 = r26480 + r26463;
        double r26482 = r26469 * r26481;
        double r26483 = sqrt(r26482);
        double r26484 = r26468 * r26483;
        double r26485 = 1.099289775224431e-128;
        bool r26486 = r26465 <= r26485;
        double r26487 = sqrt(r26469);
        double r26488 = fabs(r26477);
        double r26489 = r26487 * r26488;
        double r26490 = r26477 - r26463;
        double r26491 = sqrt(r26490);
        double r26492 = r26489 / r26491;
        double r26493 = r26468 * r26492;
        double r26494 = 9.8132171960734e+122;
        bool r26495 = r26465 <= r26494;
        double r26496 = 1;
        double r26497 = sqrt(r26496);
        double r26498 = r26487 / r26497;
        double r26499 = r26480 - r26463;
        double r26500 = sqrt(r26499);
        double r26501 = r26488 / r26500;
        double r26502 = r26498 * r26501;
        double r26503 = r26468 * r26502;
        double r26504 = r26489 * r26468;
        double r26505 = sqrt(r26465);
        double r26506 = r26504 / r26505;
        double r26507 = r26495 ? r26503 : r26506;
        double r26508 = r26486 ? r26493 : r26507;
        double r26509 = r26475 ? r26484 : r26508;
        double r26510 = r26467 ? r26473 : r26509;
        return r26510;
}

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 r26511, r26512, r26513, r26514, r26515, r26516, r26517, r26518, r26519, r26520, r26521, r26522;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3664);
        mpfr_init_set_str(r26511, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r26512, "2.0", 10, MPFR_RNDN);
        mpfr_init(r26513);
        mpfr_init(r26514);
        mpfr_init(r26515);
        mpfr_init(r26516);
        mpfr_init(r26517);
        mpfr_init(r26518);
        mpfr_init(r26519);
        mpfr_init(r26520);
        mpfr_init(r26521);
        mpfr_init(r26522);
}

double f_im(double re, double im) {
        ;
        ;
        mpfr_set_d(r26513, re, MPFR_RNDN);
        mpfr_mul(r26514, r26513, r26513, MPFR_RNDN);
        mpfr_set_d(r26515, im, MPFR_RNDN);
        mpfr_mul(r26516, r26515, r26515, MPFR_RNDN);
        mpfr_add(r26517, r26514, r26516, MPFR_RNDN);
        mpfr_sqrt(r26518, r26517, MPFR_RNDN);
        mpfr_add(r26519, r26518, r26513, MPFR_RNDN);
        mpfr_mul(r26520, r26512, r26519, MPFR_RNDN);
        mpfr_sqrt(r26521, r26520, MPFR_RNDN);
        mpfr_mul(r26522, r26511, r26521, MPFR_RNDN);
        return mpfr_get_d(r26522, MPFR_RNDN);
}

static mpfr_t r26523, r26524, r26525, r26526, r26527, r26528, r26529, r26530, r26531, r26532, r26533, r26534, r26535, r26536, r26537, r26538, r26539, r26540, r26541, r26542, r26543, r26544, r26545, r26546, r26547, r26548, r26549, r26550, r26551, r26552, r26553, r26554, r26555, r26556, r26557, r26558, r26559, r26560, r26561, r26562, r26563, r26564, r26565, r26566, r26567, r26568, r26569, r26570;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3664);
        mpfr_init(r26523);
        mpfr_init(r26524);
        mpfr_init(r26525);
        mpfr_init_set_str(r26526, "-7.535303373630258e+101", 10, MPFR_RNDN);
        mpfr_init(r26527);
        mpfr_init_set_str(r26528, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r26529, "2.0", 10, MPFR_RNDN);
        mpfr_init(r26530);
        mpfr_init(r26531);
        mpfr_init(r26532);
        mpfr_init(r26533);
        mpfr_init_set_str(r26534, "4.132528930729306e-250", 10, MPFR_RNDN);
        mpfr_init(r26535);
        mpfr_init(r26536);
        mpfr_init(r26537);
        mpfr_init(r26538);
        mpfr_init(r26539);
        mpfr_init(r26540);
        mpfr_init(r26541);
        mpfr_init(r26542);
        mpfr_init(r26543);
        mpfr_init(r26544);
        mpfr_init_set_str(r26545, "1.099289775224431e-128", 10, MPFR_RNDN);
        mpfr_init(r26546);
        mpfr_init(r26547);
        mpfr_init(r26548);
        mpfr_init(r26549);
        mpfr_init(r26550);
        mpfr_init(r26551);
        mpfr_init(r26552);
        mpfr_init(r26553);
        mpfr_init_set_str(r26554, "9.8132171960734e+122", 10, MPFR_RNDN);
        mpfr_init(r26555);
        mpfr_init_set_str(r26556, "1", 10, MPFR_RNDN);
        mpfr_init(r26557);
        mpfr_init(r26558);
        mpfr_init(r26559);
        mpfr_init(r26560);
        mpfr_init(r26561);
        mpfr_init(r26562);
        mpfr_init(r26563);
        mpfr_init(r26564);
        mpfr_init(r26565);
        mpfr_init(r26566);
        mpfr_init(r26567);
        mpfr_init(r26568);
        mpfr_init(r26569);
        mpfr_init(r26570);
}

double f_fm(double re, double im) {
        mpfr_set_d(r26523, re, MPFR_RNDN);
        mpfr_neg(r26524, r26523, MPFR_RNDN);
        mpfr_sub(r26525, r26524, r26523, MPFR_RNDN);
        ;
        mpfr_set_si(r26527, mpfr_cmp(r26525, r26526) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_add(r26530, r26523, r26523, MPFR_RNDN);
        mpfr_mul(r26531, r26529, r26530, MPFR_RNDN);
        mpfr_sqrt(r26532, r26531, MPFR_RNDN);
        mpfr_mul(r26533, r26528, r26532, MPFR_RNDN);
        ;
        mpfr_set_si(r26535, mpfr_cmp(r26525, r26534) <= 0, MPFR_RNDN);
        mpfr_mul(r26536, r26523, r26523, MPFR_RNDN);
        mpfr_set_d(r26537, im, MPFR_RNDN);
        mpfr_mul(r26538, r26537, r26537, MPFR_RNDN);
        mpfr_add(r26539, r26536, r26538, MPFR_RNDN);
        mpfr_sqrt(r26540, r26539, MPFR_RNDN);
        mpfr_add(r26541, r26540, r26523, MPFR_RNDN);
        mpfr_mul(r26542, r26529, r26541, MPFR_RNDN);
        mpfr_sqrt(r26543, r26542, MPFR_RNDN);
        mpfr_mul(r26544, r26528, r26543, MPFR_RNDN);
        ;
        mpfr_set_si(r26546, mpfr_cmp(r26525, r26545) <= 0, MPFR_RNDN);
        mpfr_sqrt(r26547, r26529, MPFR_RNDN);
        mpfr_abs(r26548, r26537, MPFR_RNDN);
        mpfr_mul(r26549, r26547, r26548, MPFR_RNDN);
        mpfr_sub(r26550, r26537, r26523, MPFR_RNDN);
        mpfr_sqrt(r26551, r26550, MPFR_RNDN);
        mpfr_div(r26552, r26549, r26551, MPFR_RNDN);
        mpfr_mul(r26553, r26528, r26552, MPFR_RNDN);
        ;
        mpfr_set_si(r26555, mpfr_cmp(r26525, r26554) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r26557, r26556, MPFR_RNDN);
        mpfr_div(r26558, r26547, r26557, MPFR_RNDN);
        mpfr_sub(r26559, r26540, r26523, MPFR_RNDN);
        mpfr_sqrt(r26560, r26559, MPFR_RNDN);
        mpfr_div(r26561, r26548, r26560, MPFR_RNDN);
        mpfr_mul(r26562, r26558, r26561, MPFR_RNDN);
        mpfr_mul(r26563, r26528, r26562, MPFR_RNDN);
        mpfr_mul(r26564, r26549, r26528, MPFR_RNDN);
        mpfr_sqrt(r26565, r26525, MPFR_RNDN);
        mpfr_div(r26566, r26564, r26565, MPFR_RNDN);
        if (mpfr_get_si(r26555, MPFR_RNDN)) { mpfr_set(r26567, r26563, MPFR_RNDN); } else { mpfr_set(r26567, r26566, MPFR_RNDN); };
        if (mpfr_get_si(r26546, MPFR_RNDN)) { mpfr_set(r26568, r26553, MPFR_RNDN); } else { mpfr_set(r26568, r26567, MPFR_RNDN); };
        if (mpfr_get_si(r26535, MPFR_RNDN)) { mpfr_set(r26569, r26544, MPFR_RNDN); } else { mpfr_set(r26569, r26568, MPFR_RNDN); };
        if (mpfr_get_si(r26527, MPFR_RNDN)) { mpfr_set(r26570, r26533, MPFR_RNDN); } else { mpfr_set(r26570, r26569, MPFR_RNDN); };
        return mpfr_get_d(r26570, MPFR_RNDN);
}

static mpfr_t r26571, r26572, r26573, r26574, r26575, r26576, r26577, r26578, r26579, r26580, r26581, r26582, r26583, r26584, r26585, r26586, r26587, r26588, r26589, r26590, r26591, r26592, r26593, r26594, r26595, r26596, r26597, r26598, r26599, r26600, r26601, r26602, r26603, r26604, r26605, r26606, r26607, r26608, r26609, r26610, r26611, r26612, r26613, r26614, r26615, r26616, r26617, r26618;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3664);
        mpfr_init(r26571);
        mpfr_init(r26572);
        mpfr_init(r26573);
        mpfr_init_set_str(r26574, "-7.535303373630258e+101", 10, MPFR_RNDN);
        mpfr_init(r26575);
        mpfr_init_set_str(r26576, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r26577, "2.0", 10, MPFR_RNDN);
        mpfr_init(r26578);
        mpfr_init(r26579);
        mpfr_init(r26580);
        mpfr_init(r26581);
        mpfr_init_set_str(r26582, "4.132528930729306e-250", 10, MPFR_RNDN);
        mpfr_init(r26583);
        mpfr_init(r26584);
        mpfr_init(r26585);
        mpfr_init(r26586);
        mpfr_init(r26587);
        mpfr_init(r26588);
        mpfr_init(r26589);
        mpfr_init(r26590);
        mpfr_init(r26591);
        mpfr_init(r26592);
        mpfr_init_set_str(r26593, "1.099289775224431e-128", 10, MPFR_RNDN);
        mpfr_init(r26594);
        mpfr_init(r26595);
        mpfr_init(r26596);
        mpfr_init(r26597);
        mpfr_init(r26598);
        mpfr_init(r26599);
        mpfr_init(r26600);
        mpfr_init(r26601);
        mpfr_init_set_str(r26602, "9.8132171960734e+122", 10, MPFR_RNDN);
        mpfr_init(r26603);
        mpfr_init_set_str(r26604, "1", 10, MPFR_RNDN);
        mpfr_init(r26605);
        mpfr_init(r26606);
        mpfr_init(r26607);
        mpfr_init(r26608);
        mpfr_init(r26609);
        mpfr_init(r26610);
        mpfr_init(r26611);
        mpfr_init(r26612);
        mpfr_init(r26613);
        mpfr_init(r26614);
        mpfr_init(r26615);
        mpfr_init(r26616);
        mpfr_init(r26617);
        mpfr_init(r26618);
}

double f_dm(double re, double im) {
        mpfr_set_d(r26571, re, MPFR_RNDN);
        mpfr_neg(r26572, r26571, MPFR_RNDN);
        mpfr_sub(r26573, r26572, r26571, MPFR_RNDN);
        ;
        mpfr_set_si(r26575, mpfr_cmp(r26573, r26574) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_add(r26578, r26571, r26571, MPFR_RNDN);
        mpfr_mul(r26579, r26577, r26578, MPFR_RNDN);
        mpfr_sqrt(r26580, r26579, MPFR_RNDN);
        mpfr_mul(r26581, r26576, r26580, MPFR_RNDN);
        ;
        mpfr_set_si(r26583, mpfr_cmp(r26573, r26582) <= 0, MPFR_RNDN);
        mpfr_mul(r26584, r26571, r26571, MPFR_RNDN);
        mpfr_set_d(r26585, im, MPFR_RNDN);
        mpfr_mul(r26586, r26585, r26585, MPFR_RNDN);
        mpfr_add(r26587, r26584, r26586, MPFR_RNDN);
        mpfr_sqrt(r26588, r26587, MPFR_RNDN);
        mpfr_add(r26589, r26588, r26571, MPFR_RNDN);
        mpfr_mul(r26590, r26577, r26589, MPFR_RNDN);
        mpfr_sqrt(r26591, r26590, MPFR_RNDN);
        mpfr_mul(r26592, r26576, r26591, MPFR_RNDN);
        ;
        mpfr_set_si(r26594, mpfr_cmp(r26573, r26593) <= 0, MPFR_RNDN);
        mpfr_sqrt(r26595, r26577, MPFR_RNDN);
        mpfr_abs(r26596, r26585, MPFR_RNDN);
        mpfr_mul(r26597, r26595, r26596, MPFR_RNDN);
        mpfr_sub(r26598, r26585, r26571, MPFR_RNDN);
        mpfr_sqrt(r26599, r26598, MPFR_RNDN);
        mpfr_div(r26600, r26597, r26599, MPFR_RNDN);
        mpfr_mul(r26601, r26576, r26600, MPFR_RNDN);
        ;
        mpfr_set_si(r26603, mpfr_cmp(r26573, r26602) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r26605, r26604, MPFR_RNDN);
        mpfr_div(r26606, r26595, r26605, MPFR_RNDN);
        mpfr_sub(r26607, r26588, r26571, MPFR_RNDN);
        mpfr_sqrt(r26608, r26607, MPFR_RNDN);
        mpfr_div(r26609, r26596, r26608, MPFR_RNDN);
        mpfr_mul(r26610, r26606, r26609, MPFR_RNDN);
        mpfr_mul(r26611, r26576, r26610, MPFR_RNDN);
        mpfr_mul(r26612, r26597, r26576, MPFR_RNDN);
        mpfr_sqrt(r26613, r26573, MPFR_RNDN);
        mpfr_div(r26614, r26612, r26613, MPFR_RNDN);
        if (mpfr_get_si(r26603, MPFR_RNDN)) { mpfr_set(r26615, r26611, MPFR_RNDN); } else { mpfr_set(r26615, r26614, MPFR_RNDN); };
        if (mpfr_get_si(r26594, MPFR_RNDN)) { mpfr_set(r26616, r26601, MPFR_RNDN); } else { mpfr_set(r26616, r26615, MPFR_RNDN); };
        if (mpfr_get_si(r26583, MPFR_RNDN)) { mpfr_set(r26617, r26592, MPFR_RNDN); } else { mpfr_set(r26617, r26616, MPFR_RNDN); };
        if (mpfr_get_si(r26575, MPFR_RNDN)) { mpfr_set(r26618, r26581, MPFR_RNDN); } else { mpfr_set(r26618, r26617, MPFR_RNDN); };
        return mpfr_get_d(r26618, MPFR_RNDN);
}

