#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 r19455 = 0.5f;
        float r19456 = 2.0f;
        float r19457 = re;
        float r19458 = r19457 * r19457;
        float r19459 = im;
        float r19460 = r19459 * r19459;
        float r19461 = r19458 + r19460;
        float r19462 = sqrt(r19461);
        float r19463 = r19462 + r19457;
        float r19464 = r19456 * r19463;
        float r19465 = sqrt(r19464);
        float r19466 = r19455 * r19465;
        return r19466;
}

double f_id(double re, double im) {
        double r19467 = 0.5;
        double r19468 = 2.0;
        double r19469 = re;
        double r19470 = r19469 * r19469;
        double r19471 = im;
        double r19472 = r19471 * r19471;
        double r19473 = r19470 + r19472;
        double r19474 = sqrt(r19473);
        double r19475 = r19474 + r19469;
        double r19476 = r19468 * r19475;
        double r19477 = sqrt(r19476);
        double r19478 = r19467 * r19477;
        return r19478;
}


double f_of(float re, float im) {
        float r19479 = im;
        float r19480 = -1.917391145410354e-113f;
        bool r19481 = r19479 <= r19480;
        float r19482 = 0.5f;
        float r19483 = 2.0f;
        float r19484 = r19479 * r19479;
        float r19485 = re;
        float r19486 = r19485 * r19485;
        float r19487 = r19486 + r19484;
        float r19488 = sqrt(r19487);
        float r19489 = r19488 - r19485;
        float r19490 = r19484 / r19489;
        float r19491 = r19483 * r19490;
        float r19492 = sqrt(r19491);
        float r19493 = r19482 * r19492;
        float r19494 = 8.963489289291359e-91f;
        bool r19495 = r19479 <= r19494;
        float r19496 = r19485 + r19485;
        float r19497 = r19483 * r19496;
        float r19498 = sqrt(r19497);
        float r19499 = r19482 * r19498;
        float r19500 = 2.0836632160407144e+106f;
        bool r19501 = r19479 <= r19500;
        float r19502 = r19479 + r19485;
        float r19503 = r19483 * r19502;
        float r19504 = sqrt(r19503);
        float r19505 = r19482 * r19504;
        float r19506 = r19501 ? r19493 : r19505;
        float r19507 = r19495 ? r19499 : r19506;
        float r19508 = r19481 ? r19493 : r19507;
        return r19508;
}

double f_od(double re, double im) {
        double r19509 = im;
        double r19510 = -1.917391145410354e-113;
        bool r19511 = r19509 <= r19510;
        double r19512 = 0.5;
        double r19513 = 2.0;
        double r19514 = r19509 * r19509;
        double r19515 = re;
        double r19516 = r19515 * r19515;
        double r19517 = r19516 + r19514;
        double r19518 = sqrt(r19517);
        double r19519 = r19518 - r19515;
        double r19520 = r19514 / r19519;
        double r19521 = r19513 * r19520;
        double r19522 = sqrt(r19521);
        double r19523 = r19512 * r19522;
        double r19524 = 8.963489289291359e-91;
        bool r19525 = r19509 <= r19524;
        double r19526 = r19515 + r19515;
        double r19527 = r19513 * r19526;
        double r19528 = sqrt(r19527);
        double r19529 = r19512 * r19528;
        double r19530 = 2.0836632160407144e+106;
        bool r19531 = r19509 <= r19530;
        double r19532 = r19509 + r19515;
        double r19533 = r19513 * r19532;
        double r19534 = sqrt(r19533);
        double r19535 = r19512 * r19534;
        double r19536 = r19531 ? r19523 : r19535;
        double r19537 = r19525 ? r19529 : r19536;
        double r19538 = r19511 ? r19523 : r19537;
        return r19538;
}

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 r19539, r19540, r19541, r19542, r19543, r19544, r19545, r19546, r19547, r19548, r19549, r19550;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19539, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r19540, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19541);
        mpfr_init(r19542);
        mpfr_init(r19543);
        mpfr_init(r19544);
        mpfr_init(r19545);
        mpfr_init(r19546);
        mpfr_init(r19547);
        mpfr_init(r19548);
        mpfr_init(r19549);
        mpfr_init(r19550);
}

double f_im(double re, double im) {
        ;
        ;
        mpfr_set_d(r19541, re, MPFR_RNDN);
        mpfr_mul(r19542, r19541, r19541, MPFR_RNDN);
        mpfr_set_d(r19543, im, MPFR_RNDN);
        mpfr_mul(r19544, r19543, r19543, MPFR_RNDN);
        mpfr_add(r19545, r19542, r19544, MPFR_RNDN);
        mpfr_sqrt(r19546, r19545, MPFR_RNDN);
        mpfr_add(r19547, r19546, r19541, MPFR_RNDN);
        mpfr_mul(r19548, r19540, r19547, MPFR_RNDN);
        mpfr_sqrt(r19549, r19548, MPFR_RNDN);
        mpfr_mul(r19550, r19539, r19549, MPFR_RNDN);
        return mpfr_get_d(r19550, MPFR_RNDN);
}

static mpfr_t r19551, r19552, r19553, r19554, r19555, r19556, r19557, r19558, r19559, r19560, r19561, r19562, r19563, r19564, r19565, r19566, r19567, r19568, r19569, r19570, r19571, r19572, r19573, r19574, r19575, r19576, r19577, r19578, r19579, r19580;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19551);
        mpfr_init_set_str(r19552, "-1.917391145410354e-113", 10, MPFR_RNDN);
        mpfr_init(r19553);
        mpfr_init_set_str(r19554, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r19555, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19556);
        mpfr_init(r19557);
        mpfr_init(r19558);
        mpfr_init(r19559);
        mpfr_init(r19560);
        mpfr_init(r19561);
        mpfr_init(r19562);
        mpfr_init(r19563);
        mpfr_init(r19564);
        mpfr_init(r19565);
        mpfr_init_set_str(r19566, "8.963489289291359e-91", 10, MPFR_RNDN);
        mpfr_init(r19567);
        mpfr_init(r19568);
        mpfr_init(r19569);
        mpfr_init(r19570);
        mpfr_init(r19571);
        mpfr_init_set_str(r19572, "2.0836632160407144e+106", 10, MPFR_RNDN);
        mpfr_init(r19573);
        mpfr_init(r19574);
        mpfr_init(r19575);
        mpfr_init(r19576);
        mpfr_init(r19577);
        mpfr_init(r19578);
        mpfr_init(r19579);
        mpfr_init(r19580);
}

double f_fm(double re, double im) {
        mpfr_set_d(r19551, im, MPFR_RNDN);
        ;
        mpfr_set_si(r19553, mpfr_cmp(r19551, r19552) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r19556, r19551, r19551, MPFR_RNDN);
        mpfr_set_d(r19557, re, MPFR_RNDN);
        mpfr_sqr(r19558, r19557, MPFR_RNDN);
        mpfr_add(r19559, r19558, r19556, MPFR_RNDN);
        mpfr_sqrt(r19560, r19559, MPFR_RNDN);
        mpfr_sub(r19561, r19560, r19557, MPFR_RNDN);
        mpfr_div(r19562, r19556, r19561, MPFR_RNDN);
        mpfr_mul(r19563, r19555, r19562, MPFR_RNDN);
        mpfr_sqrt(r19564, r19563, MPFR_RNDN);
        mpfr_mul(r19565, r19554, r19564, MPFR_RNDN);
        ;
        mpfr_set_si(r19567, mpfr_cmp(r19551, r19566) <= 0, MPFR_RNDN);
        mpfr_add(r19568, r19557, r19557, MPFR_RNDN);
        mpfr_mul(r19569, r19555, r19568, MPFR_RNDN);
        mpfr_sqrt(r19570, r19569, MPFR_RNDN);
        mpfr_mul(r19571, r19554, r19570, MPFR_RNDN);
        ;
        mpfr_set_si(r19573, mpfr_cmp(r19551, r19572) <= 0, MPFR_RNDN);
        mpfr_add(r19574, r19551, r19557, MPFR_RNDN);
        mpfr_mul(r19575, r19555, r19574, MPFR_RNDN);
        mpfr_sqrt(r19576, r19575, MPFR_RNDN);
        mpfr_mul(r19577, r19554, r19576, MPFR_RNDN);
        if (mpfr_get_si(r19573, MPFR_RNDN)) { mpfr_set(r19578, r19565, MPFR_RNDN); } else { mpfr_set(r19578, r19577, MPFR_RNDN); };
        if (mpfr_get_si(r19567, MPFR_RNDN)) { mpfr_set(r19579, r19571, MPFR_RNDN); } else { mpfr_set(r19579, r19578, MPFR_RNDN); };
        if (mpfr_get_si(r19553, MPFR_RNDN)) { mpfr_set(r19580, r19565, MPFR_RNDN); } else { mpfr_set(r19580, r19579, MPFR_RNDN); };
        return mpfr_get_d(r19580, MPFR_RNDN);
}

static mpfr_t 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19581);
        mpfr_init_set_str(r19582, "-1.917391145410354e-113", 10, MPFR_RNDN);
        mpfr_init(r19583);
        mpfr_init_set_str(r19584, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r19585, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19586);
        mpfr_init(r19587);
        mpfr_init(r19588);
        mpfr_init(r19589);
        mpfr_init(r19590);
        mpfr_init(r19591);
        mpfr_init(r19592);
        mpfr_init(r19593);
        mpfr_init(r19594);
        mpfr_init(r19595);
        mpfr_init_set_str(r19596, "8.963489289291359e-91", 10, MPFR_RNDN);
        mpfr_init(r19597);
        mpfr_init(r19598);
        mpfr_init(r19599);
        mpfr_init(r19600);
        mpfr_init(r19601);
        mpfr_init_set_str(r19602, "2.0836632160407144e+106", 10, MPFR_RNDN);
        mpfr_init(r19603);
        mpfr_init(r19604);
        mpfr_init(r19605);
        mpfr_init(r19606);
        mpfr_init(r19607);
        mpfr_init(r19608);
        mpfr_init(r19609);
        mpfr_init(r19610);
}

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

