#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 r19415 = 0.5f;
        float r19416 = 2.0f;
        float r19417 = re;
        float r19418 = r19417 * r19417;
        float r19419 = im;
        float r19420 = r19419 * r19419;
        float r19421 = r19418 + r19420;
        float r19422 = sqrt(r19421);
        float r19423 = r19422 + r19417;
        float r19424 = r19416 * r19423;
        float r19425 = sqrt(r19424);
        float r19426 = r19415 * r19425;
        return r19426;
}

double f_id(double re, double im) {
        double r19427 = 0.5;
        double r19428 = 2.0;
        double r19429 = re;
        double r19430 = r19429 * r19429;
        double r19431 = im;
        double r19432 = r19431 * r19431;
        double r19433 = r19430 + r19432;
        double r19434 = sqrt(r19433);
        double r19435 = r19434 + r19429;
        double r19436 = r19428 * r19435;
        double r19437 = sqrt(r19436);
        double r19438 = r19427 * r19437;
        return r19438;
}


double f_of(float re, float im) {
        float r19439 = re;
        float r19440 = -5.001969231040948e+151f;
        bool r19441 = r19439 <= r19440;
        float r19442 = 0.5f;
        float r19443 = 2.0f;
        float r19444 = im;
        float r19445 = r19443 * r19444;
        float r19446 = r19445 * r19444;
        float r19447 = sqrt(r19446);
        float r19448 = -r19439;
        float r19449 = r19448 - r19439;
        float r19450 = sqrt(r19449);
        float r19451 = r19447 / r19450;
        float r19452 = r19442 * r19451;
        float r19453 = 4.633757336962986e-280f;
        bool r19454 = r19439 <= r19453;
        float r19455 = r19444 * r19444;
        float r19456 = r19439 * r19439;
        float r19457 = r19456 + r19455;
        float r19458 = sqrt(r19457);
        float r19459 = r19458 - r19439;
        float r19460 = r19455 / r19459;
        float r19461 = r19443 * r19460;
        float r19462 = sqrt(r19461);
        float r19463 = r19442 * r19462;
        float r19464 = 9.113198184177213e-181f;
        bool r19465 = r19439 <= r19464;
        float r19466 = r19444 + r19439;
        float r19467 = r19443 * r19466;
        float r19468 = sqrt(r19467);
        float r19469 = r19442 * r19468;
        float r19470 = 2.8291641631335695e-146f;
        bool r19471 = r19439 <= r19470;
        float r19472 = r19439 + r19439;
        float r19473 = r19443 * r19472;
        float r19474 = sqrt(r19473);
        float r19475 = r19442 * r19474;
        float r19476 = r19471 ? r19463 : r19475;
        float r19477 = r19465 ? r19469 : r19476;
        float r19478 = r19454 ? r19463 : r19477;
        float r19479 = r19441 ? r19452 : r19478;
        return r19479;
}

double f_od(double re, double im) {
        double r19480 = re;
        double r19481 = -5.001969231040948e+151;
        bool r19482 = r19480 <= r19481;
        double r19483 = 0.5;
        double r19484 = 2.0;
        double r19485 = im;
        double r19486 = r19484 * r19485;
        double r19487 = r19486 * r19485;
        double r19488 = sqrt(r19487);
        double r19489 = -r19480;
        double r19490 = r19489 - r19480;
        double r19491 = sqrt(r19490);
        double r19492 = r19488 / r19491;
        double r19493 = r19483 * r19492;
        double r19494 = 4.633757336962986e-280;
        bool r19495 = r19480 <= r19494;
        double r19496 = r19485 * r19485;
        double r19497 = r19480 * r19480;
        double r19498 = r19497 + r19496;
        double r19499 = sqrt(r19498);
        double r19500 = r19499 - r19480;
        double r19501 = r19496 / r19500;
        double r19502 = r19484 * r19501;
        double r19503 = sqrt(r19502);
        double r19504 = r19483 * r19503;
        double r19505 = 9.113198184177213e-181;
        bool r19506 = r19480 <= r19505;
        double r19507 = r19485 + r19480;
        double r19508 = r19484 * r19507;
        double r19509 = sqrt(r19508);
        double r19510 = r19483 * r19509;
        double r19511 = 2.8291641631335695e-146;
        bool r19512 = r19480 <= r19511;
        double r19513 = r19480 + r19480;
        double r19514 = r19484 * r19513;
        double r19515 = sqrt(r19514);
        double r19516 = r19483 * r19515;
        double r19517 = r19512 ? r19504 : r19516;
        double r19518 = r19506 ? r19510 : r19517;
        double r19519 = r19495 ? r19504 : r19518;
        double r19520 = r19482 ? r19493 : r19519;
        return r19520;
}

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 r19521, r19522, r19523, r19524, r19525, r19526, r19527, r19528, r19529, r19530, r19531, r19532;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19521, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r19522, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19523);
        mpfr_init(r19524);
        mpfr_init(r19525);
        mpfr_init(r19526);
        mpfr_init(r19527);
        mpfr_init(r19528);
        mpfr_init(r19529);
        mpfr_init(r19530);
        mpfr_init(r19531);
        mpfr_init(r19532);
}

double f_im(double re, double im) {
        ;
        ;
        mpfr_set_d(r19523, re, MPFR_RNDN);
        mpfr_mul(r19524, r19523, r19523, MPFR_RNDN);
        mpfr_set_d(r19525, im, MPFR_RNDN);
        mpfr_mul(r19526, r19525, r19525, MPFR_RNDN);
        mpfr_add(r19527, r19524, r19526, MPFR_RNDN);
        mpfr_sqrt(r19528, r19527, MPFR_RNDN);
        mpfr_add(r19529, r19528, r19523, MPFR_RNDN);
        mpfr_mul(r19530, r19522, r19529, MPFR_RNDN);
        mpfr_sqrt(r19531, r19530, MPFR_RNDN);
        mpfr_mul(r19532, r19521, r19531, MPFR_RNDN);
        return mpfr_get_d(r19532, MPFR_RNDN);
}

static mpfr_t r19533, r19534, r19535, r19536, r19537, r19538, r19539, r19540, r19541, r19542, r19543, r19544, r19545, r19546, r19547, r19548, r19549, r19550, r19551, r19552, r19553, r19554, r19555, r19556, r19557, r19558, r19559, r19560, r19561, r19562, r19563, r19564, r19565, r19566, r19567, r19568, r19569, r19570, r19571, r19572, r19573;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19533);
        mpfr_init_set_str(r19534, "-5.001969231040948e+151", 10, MPFR_RNDN);
        mpfr_init(r19535);
        mpfr_init_set_str(r19536, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r19537, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19538);
        mpfr_init(r19539);
        mpfr_init(r19540);
        mpfr_init(r19541);
        mpfr_init(r19542);
        mpfr_init(r19543);
        mpfr_init(r19544);
        mpfr_init(r19545);
        mpfr_init(r19546);
        mpfr_init_set_str(r19547, "4.633757336962986e-280", 10, MPFR_RNDN);
        mpfr_init(r19548);
        mpfr_init(r19549);
        mpfr_init(r19550);
        mpfr_init(r19551);
        mpfr_init(r19552);
        mpfr_init(r19553);
        mpfr_init(r19554);
        mpfr_init(r19555);
        mpfr_init(r19556);
        mpfr_init(r19557);
        mpfr_init_set_str(r19558, "9.113198184177213e-181", 10, MPFR_RNDN);
        mpfr_init(r19559);
        mpfr_init(r19560);
        mpfr_init(r19561);
        mpfr_init(r19562);
        mpfr_init(r19563);
        mpfr_init_set_str(r19564, "2.8291641631335695e-146", 10, MPFR_RNDN);
        mpfr_init(r19565);
        mpfr_init(r19566);
        mpfr_init(r19567);
        mpfr_init(r19568);
        mpfr_init(r19569);
        mpfr_init(r19570);
        mpfr_init(r19571);
        mpfr_init(r19572);
        mpfr_init(r19573);
}

double f_fm(double re, double im) {
        mpfr_set_d(r19533, re, MPFR_RNDN);
        ;
        mpfr_set_si(r19535, mpfr_cmp(r19533, r19534) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r19538, im, MPFR_RNDN);
        mpfr_mul(r19539, r19537, r19538, MPFR_RNDN);
        mpfr_mul(r19540, r19539, r19538, MPFR_RNDN);
        mpfr_sqrt(r19541, r19540, MPFR_RNDN);
        mpfr_neg(r19542, r19533, MPFR_RNDN);
        mpfr_sub(r19543, r19542, r19533, MPFR_RNDN);
        mpfr_sqrt(r19544, r19543, MPFR_RNDN);
        mpfr_div(r19545, r19541, r19544, MPFR_RNDN);
        mpfr_mul(r19546, r19536, r19545, MPFR_RNDN);
        ;
        mpfr_set_si(r19548, mpfr_cmp(r19533, r19547) <= 0, MPFR_RNDN);
        mpfr_mul(r19549, r19538, r19538, MPFR_RNDN);
        mpfr_sqr(r19550, r19533, MPFR_RNDN);
        mpfr_add(r19551, r19550, r19549, MPFR_RNDN);
        mpfr_sqrt(r19552, r19551, MPFR_RNDN);
        mpfr_sub(r19553, r19552, r19533, MPFR_RNDN);
        mpfr_div(r19554, r19549, r19553, MPFR_RNDN);
        mpfr_mul(r19555, r19537, r19554, MPFR_RNDN);
        mpfr_sqrt(r19556, r19555, MPFR_RNDN);
        mpfr_mul(r19557, r19536, r19556, MPFR_RNDN);
        ;
        mpfr_set_si(r19559, mpfr_cmp(r19533, r19558) <= 0, MPFR_RNDN);
        mpfr_add(r19560, r19538, r19533, MPFR_RNDN);
        mpfr_mul(r19561, r19537, r19560, MPFR_RNDN);
        mpfr_sqrt(r19562, r19561, MPFR_RNDN);
        mpfr_mul(r19563, r19536, r19562, MPFR_RNDN);
        ;
        mpfr_set_si(r19565, mpfr_cmp(r19533, r19564) <= 0, MPFR_RNDN);
        mpfr_add(r19566, r19533, r19533, MPFR_RNDN);
        mpfr_mul(r19567, r19537, r19566, MPFR_RNDN);
        mpfr_sqrt(r19568, r19567, MPFR_RNDN);
        mpfr_mul(r19569, r19536, r19568, MPFR_RNDN);
        if (mpfr_get_si(r19565, MPFR_RNDN)) { mpfr_set(r19570, r19557, MPFR_RNDN); } else { mpfr_set(r19570, r19569, MPFR_RNDN); };
        if (mpfr_get_si(r19559, MPFR_RNDN)) { mpfr_set(r19571, r19563, MPFR_RNDN); } else { mpfr_set(r19571, r19570, MPFR_RNDN); };
        if (mpfr_get_si(r19548, MPFR_RNDN)) { mpfr_set(r19572, r19557, MPFR_RNDN); } else { mpfr_set(r19572, r19571, MPFR_RNDN); };
        if (mpfr_get_si(r19535, MPFR_RNDN)) { mpfr_set(r19573, r19546, MPFR_RNDN); } else { mpfr_set(r19573, r19572, MPFR_RNDN); };
        return mpfr_get_d(r19573, MPFR_RNDN);
}

static mpfr_t r19574, r19575, r19576, r19577, r19578, r19579, r19580, r19581, r19582, r19583, r19584, r19585, r19586, r19587, r19588, r19589, r19590, r19591, r19592, r19593, r19594, r19595, r19596, r19597, r19598, r19599, r19600, r19601, r19602, r19603, r19604, r19605, r19606, r19607, r19608, r19609, r19610, r19611, r19612, r19613, r19614;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19574);
        mpfr_init_set_str(r19575, "-5.001969231040948e+151", 10, MPFR_RNDN);
        mpfr_init(r19576);
        mpfr_init_set_str(r19577, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r19578, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19579);
        mpfr_init(r19580);
        mpfr_init(r19581);
        mpfr_init(r19582);
        mpfr_init(r19583);
        mpfr_init(r19584);
        mpfr_init(r19585);
        mpfr_init(r19586);
        mpfr_init(r19587);
        mpfr_init_set_str(r19588, "4.633757336962986e-280", 10, MPFR_RNDN);
        mpfr_init(r19589);
        mpfr_init(r19590);
        mpfr_init(r19591);
        mpfr_init(r19592);
        mpfr_init(r19593);
        mpfr_init(r19594);
        mpfr_init(r19595);
        mpfr_init(r19596);
        mpfr_init(r19597);
        mpfr_init(r19598);
        mpfr_init_set_str(r19599, "9.113198184177213e-181", 10, MPFR_RNDN);
        mpfr_init(r19600);
        mpfr_init(r19601);
        mpfr_init(r19602);
        mpfr_init(r19603);
        mpfr_init(r19604);
        mpfr_init_set_str(r19605, "2.8291641631335695e-146", 10, MPFR_RNDN);
        mpfr_init(r19606);
        mpfr_init(r19607);
        mpfr_init(r19608);
        mpfr_init(r19609);
        mpfr_init(r19610);
        mpfr_init(r19611);
        mpfr_init(r19612);
        mpfr_init(r19613);
        mpfr_init(r19614);
}

double f_dm(double re, double im) {
        mpfr_set_d(r19574, re, MPFR_RNDN);
        ;
        mpfr_set_si(r19576, mpfr_cmp(r19574, r19575) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r19579, im, MPFR_RNDN);
        mpfr_mul(r19580, r19578, r19579, MPFR_RNDN);
        mpfr_mul(r19581, r19580, r19579, MPFR_RNDN);
        mpfr_sqrt(r19582, r19581, MPFR_RNDN);
        mpfr_neg(r19583, r19574, MPFR_RNDN);
        mpfr_sub(r19584, r19583, r19574, MPFR_RNDN);
        mpfr_sqrt(r19585, r19584, MPFR_RNDN);
        mpfr_div(r19586, r19582, r19585, MPFR_RNDN);
        mpfr_mul(r19587, r19577, r19586, MPFR_RNDN);
        ;
        mpfr_set_si(r19589, mpfr_cmp(r19574, r19588) <= 0, MPFR_RNDN);
        mpfr_mul(r19590, r19579, r19579, MPFR_RNDN);
        mpfr_sqr(r19591, r19574, MPFR_RNDN);
        mpfr_add(r19592, r19591, r19590, MPFR_RNDN);
        mpfr_sqrt(r19593, r19592, MPFR_RNDN);
        mpfr_sub(r19594, r19593, r19574, MPFR_RNDN);
        mpfr_div(r19595, r19590, r19594, MPFR_RNDN);
        mpfr_mul(r19596, r19578, r19595, MPFR_RNDN);
        mpfr_sqrt(r19597, r19596, MPFR_RNDN);
        mpfr_mul(r19598, r19577, r19597, MPFR_RNDN);
        ;
        mpfr_set_si(r19600, mpfr_cmp(r19574, r19599) <= 0, MPFR_RNDN);
        mpfr_add(r19601, r19579, r19574, MPFR_RNDN);
        mpfr_mul(r19602, r19578, r19601, MPFR_RNDN);
        mpfr_sqrt(r19603, r19602, MPFR_RNDN);
        mpfr_mul(r19604, r19577, r19603, MPFR_RNDN);
        ;
        mpfr_set_si(r19606, mpfr_cmp(r19574, r19605) <= 0, MPFR_RNDN);
        mpfr_add(r19607, r19574, r19574, MPFR_RNDN);
        mpfr_mul(r19608, r19578, r19607, MPFR_RNDN);
        mpfr_sqrt(r19609, r19608, MPFR_RNDN);
        mpfr_mul(r19610, r19577, r19609, MPFR_RNDN);
        if (mpfr_get_si(r19606, MPFR_RNDN)) { mpfr_set(r19611, r19598, MPFR_RNDN); } else { mpfr_set(r19611, r19610, MPFR_RNDN); };
        if (mpfr_get_si(r19600, MPFR_RNDN)) { mpfr_set(r19612, r19604, MPFR_RNDN); } else { mpfr_set(r19612, r19611, MPFR_RNDN); };
        if (mpfr_get_si(r19589, MPFR_RNDN)) { mpfr_set(r19613, r19598, MPFR_RNDN); } else { mpfr_set(r19613, r19612, MPFR_RNDN); };
        if (mpfr_get_si(r19576, MPFR_RNDN)) { mpfr_set(r19614, r19587, MPFR_RNDN); } else { mpfr_set(r19614, r19613, MPFR_RNDN); };
        return mpfr_get_d(r19614, MPFR_RNDN);
}

