#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 r12303 = 0.5;
        float r12304 = 2.0;
        float r12305 = re;
        float r12306 = r12305 * r12305;
        float r12307 = im;
        float r12308 = r12307 * r12307;
        float r12309 = r12306 + r12308;
        float r12310 = sqrt(r12309);
        float r12311 = r12310 + r12305;
        float r12312 = r12304 * r12311;
        float r12313 = sqrt(r12312);
        float r12314 = r12303 * r12313;
        return r12314;
}

double f_id(double re, double im) {
        double r12315 = 0.5;
        double r12316 = 2.0;
        double r12317 = re;
        double r12318 = r12317 * r12317;
        double r12319 = im;
        double r12320 = r12319 * r12319;
        double r12321 = r12318 + r12320;
        double r12322 = sqrt(r12321);
        double r12323 = r12322 + r12317;
        double r12324 = r12316 * r12323;
        double r12325 = sqrt(r12324);
        double r12326 = r12315 * r12325;
        return r12326;
}


double f_of(float re, float im) {
        float r12327 = 2.0;
        float r12328 = im;
        float r12329 = re;
        float r12330 = r12328 + r12329;
        float r12331 = r12327 * r12330;
        float r12332 = -1.0155650304118315e+155;
        bool r12333 = r12331 <= r12332;
        float r12334 = sqrt(r12327);
        float r12335 = fabs(r12328);
        float r12336 = 0.5;
        float r12337 = r12335 * r12336;
        float r12338 = r12334 * r12337;
        float r12339 = r12329 + r12329;
        float r12340 = -r12339;
        float r12341 = sqrt(r12340);
        float r12342 = r12338 / r12341;
        float r12343 = 6.764682218995417e-252;
        bool r12344 = r12331 <= r12343;
        float r12345 = r12334 * r12335;
        float r12346 = r12329 * r12329;
        float r12347 = r12328 * r12328;
        float r12348 = r12346 + r12347;
        float r12349 = sqrt(r12348);
        float r12350 = r12349 - r12329;
        float r12351 = sqrt(r12350);
        float r12352 = sqrt(r12351);
        float r12353 = r12352 * r12352;
        float r12354 = r12345 / r12353;
        float r12355 = r12336 * r12354;
        float r12356 = 1.6133845107950314e-175;
        bool r12357 = r12331 <= r12356;
        float r12358 = sqrt(r12331);
        float r12359 = r12336 * r12358;
        float r12360 = 3.865626513190947e+153;
        bool r12361 = r12331 <= r12360;
        float r12362 = r12349 + r12329;
        float r12363 = r12327 * r12362;
        float r12364 = sqrt(r12363);
        float r12365 = r12336 * r12364;
        float r12366 = 1.1511066346703824e+191;
        bool r12367 = r12331 <= r12366;
        float r12368 = 2.224269165108632e+253;
        bool r12369 = r12331 <= r12368;
        float r12370 = r12327 * r12339;
        float r12371 = sqrt(r12370);
        float r12372 = r12336 * r12371;
        float r12373 = r12369 ? r12372 : r12359;
        float r12374 = r12367 ? r12359 : r12373;
        float r12375 = r12361 ? r12365 : r12374;
        float r12376 = r12357 ? r12359 : r12375;
        float r12377 = r12344 ? r12355 : r12376;
        float r12378 = r12333 ? r12342 : r12377;
        return r12378;
}

double f_od(double re, double im) {
        double r12379 = 2.0;
        double r12380 = im;
        double r12381 = re;
        double r12382 = r12380 + r12381;
        double r12383 = r12379 * r12382;
        double r12384 = -1.0155650304118315e+155;
        bool r12385 = r12383 <= r12384;
        double r12386 = sqrt(r12379);
        double r12387 = fabs(r12380);
        double r12388 = 0.5;
        double r12389 = r12387 * r12388;
        double r12390 = r12386 * r12389;
        double r12391 = r12381 + r12381;
        double r12392 = -r12391;
        double r12393 = sqrt(r12392);
        double r12394 = r12390 / r12393;
        double r12395 = 6.764682218995417e-252;
        bool r12396 = r12383 <= r12395;
        double r12397 = r12386 * r12387;
        double r12398 = r12381 * r12381;
        double r12399 = r12380 * r12380;
        double r12400 = r12398 + r12399;
        double r12401 = sqrt(r12400);
        double r12402 = r12401 - r12381;
        double r12403 = sqrt(r12402);
        double r12404 = sqrt(r12403);
        double r12405 = r12404 * r12404;
        double r12406 = r12397 / r12405;
        double r12407 = r12388 * r12406;
        double r12408 = 1.6133845107950314e-175;
        bool r12409 = r12383 <= r12408;
        double r12410 = sqrt(r12383);
        double r12411 = r12388 * r12410;
        double r12412 = 3.865626513190947e+153;
        bool r12413 = r12383 <= r12412;
        double r12414 = r12401 + r12381;
        double r12415 = r12379 * r12414;
        double r12416 = sqrt(r12415);
        double r12417 = r12388 * r12416;
        double r12418 = 1.1511066346703824e+191;
        bool r12419 = r12383 <= r12418;
        double r12420 = 2.224269165108632e+253;
        bool r12421 = r12383 <= r12420;
        double r12422 = r12379 * r12391;
        double r12423 = sqrt(r12422);
        double r12424 = r12388 * r12423;
        double r12425 = r12421 ? r12424 : r12411;
        double r12426 = r12419 ? r12411 : r12425;
        double r12427 = r12413 ? r12417 : r12426;
        double r12428 = r12409 ? r12411 : r12427;
        double r12429 = r12396 ? r12407 : r12428;
        double r12430 = r12385 ? r12394 : r12429;
        return r12430;
}

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 r12431, r12432, r12433, r12434, r12435, r12436, r12437, r12438, r12439, r12440, r12441, r12442;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3664);
        mpfr_init_set_str(r12431, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r12432, "2.0", 10, MPFR_RNDN);
        mpfr_init(r12433);
        mpfr_init(r12434);
        mpfr_init(r12435);
        mpfr_init(r12436);
        mpfr_init(r12437);
        mpfr_init(r12438);
        mpfr_init(r12439);
        mpfr_init(r12440);
        mpfr_init(r12441);
        mpfr_init(r12442);
}

double f_im(double re, double im) {
        ;
        ;
        mpfr_set_d(r12433, re, MPFR_RNDN);
        mpfr_mul(r12434, r12433, r12433, MPFR_RNDN);
        mpfr_set_d(r12435, im, MPFR_RNDN);
        mpfr_mul(r12436, r12435, r12435, MPFR_RNDN);
        mpfr_add(r12437, r12434, r12436, MPFR_RNDN);
        mpfr_sqrt(r12438, r12437, MPFR_RNDN);
        mpfr_add(r12439, r12438, r12433, MPFR_RNDN);
        mpfr_mul(r12440, r12432, r12439, MPFR_RNDN);
        mpfr_sqrt(r12441, r12440, MPFR_RNDN);
        mpfr_mul(r12442, r12431, r12441, MPFR_RNDN);
        return mpfr_get_d(r12442, MPFR_RNDN);
}

static mpfr_t r12443, r12444, r12445, r12446, r12447, r12448, r12449, r12450, r12451, r12452, r12453, r12454, r12455, r12456, r12457, r12458, r12459, r12460, r12461, r12462, r12463, r12464, r12465, r12466, r12467, r12468, r12469, r12470, r12471, r12472, r12473, r12474, r12475, r12476, r12477, r12478, r12479, r12480, r12481, r12482, r12483, r12484, r12485, r12486, r12487, r12488, r12489, r12490, r12491, r12492, r12493, r12494;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3664);
        mpfr_init_set_str(r12443, "2.0", 10, MPFR_RNDN);
        mpfr_init(r12444);
        mpfr_init(r12445);
        mpfr_init(r12446);
        mpfr_init(r12447);
        mpfr_init_set_str(r12448, "-1.0155650304118315e+155", 10, MPFR_RNDN);
        mpfr_init(r12449);
        mpfr_init(r12450);
        mpfr_init(r12451);
        mpfr_init_set_str(r12452, "0.5", 10, MPFR_RNDN);
        mpfr_init(r12453);
        mpfr_init(r12454);
        mpfr_init(r12455);
        mpfr_init(r12456);
        mpfr_init(r12457);
        mpfr_init(r12458);
        mpfr_init_set_str(r12459, "6.764682218995417e-252", 10, MPFR_RNDN);
        mpfr_init(r12460);
        mpfr_init(r12461);
        mpfr_init(r12462);
        mpfr_init(r12463);
        mpfr_init(r12464);
        mpfr_init(r12465);
        mpfr_init(r12466);
        mpfr_init(r12467);
        mpfr_init(r12468);
        mpfr_init(r12469);
        mpfr_init(r12470);
        mpfr_init(r12471);
        mpfr_init_set_str(r12472, "1.6133845107950314e-175", 10, MPFR_RNDN);
        mpfr_init(r12473);
        mpfr_init(r12474);
        mpfr_init(r12475);
        mpfr_init_set_str(r12476, "3.865626513190947e+153", 10, MPFR_RNDN);
        mpfr_init(r12477);
        mpfr_init(r12478);
        mpfr_init(r12479);
        mpfr_init(r12480);
        mpfr_init(r12481);
        mpfr_init_set_str(r12482, "1.1511066346703824e+191", 10, MPFR_RNDN);
        mpfr_init(r12483);
        mpfr_init_set_str(r12484, "2.224269165108632e+253", 10, MPFR_RNDN);
        mpfr_init(r12485);
        mpfr_init(r12486);
        mpfr_init(r12487);
        mpfr_init(r12488);
        mpfr_init(r12489);
        mpfr_init(r12490);
        mpfr_init(r12491);
        mpfr_init(r12492);
        mpfr_init(r12493);
        mpfr_init(r12494);
}

double f_fm(double re, double im) {
        ;
        mpfr_set_d(r12444, im, MPFR_RNDN);
        mpfr_set_d(r12445, re, MPFR_RNDN);
        mpfr_add(r12446, r12444, r12445, MPFR_RNDN);
        mpfr_mul(r12447, r12443, r12446, MPFR_RNDN);
        ;
        mpfr_set_si(r12449, mpfr_cmp(r12447, r12448) <= 0, MPFR_RNDN);
        mpfr_sqrt(r12450, r12443, MPFR_RNDN);
        mpfr_abs(r12451, r12444, MPFR_RNDN);
        ;
        mpfr_mul(r12453, r12451, r12452, MPFR_RNDN);
        mpfr_mul(r12454, r12450, r12453, MPFR_RNDN);
        mpfr_add(r12455, r12445, r12445, MPFR_RNDN);
        mpfr_neg(r12456, r12455, MPFR_RNDN);
        mpfr_sqrt(r12457, r12456, MPFR_RNDN);
        mpfr_div(r12458, r12454, r12457, MPFR_RNDN);
        ;
        mpfr_set_si(r12460, mpfr_cmp(r12447, r12459) <= 0, MPFR_RNDN);
        mpfr_mul(r12461, r12450, r12451, MPFR_RNDN);
        mpfr_mul(r12462, r12445, r12445, MPFR_RNDN);
        mpfr_mul(r12463, r12444, r12444, MPFR_RNDN);
        mpfr_add(r12464, r12462, r12463, MPFR_RNDN);
        mpfr_sqrt(r12465, r12464, MPFR_RNDN);
        mpfr_sub(r12466, r12465, r12445, MPFR_RNDN);
        mpfr_sqrt(r12467, r12466, MPFR_RNDN);
        mpfr_sqrt(r12468, r12467, MPFR_RNDN);
        mpfr_mul(r12469, r12468, r12468, MPFR_RNDN);
        mpfr_div(r12470, r12461, r12469, MPFR_RNDN);
        mpfr_mul(r12471, r12452, r12470, MPFR_RNDN);
        ;
        mpfr_set_si(r12473, mpfr_cmp(r12447, r12472) <= 0, MPFR_RNDN);
        mpfr_sqrt(r12474, r12447, MPFR_RNDN);
        mpfr_mul(r12475, r12452, r12474, MPFR_RNDN);
        ;
        mpfr_set_si(r12477, mpfr_cmp(r12447, r12476) <= 0, MPFR_RNDN);
        mpfr_add(r12478, r12465, r12445, MPFR_RNDN);
        mpfr_mul(r12479, r12443, r12478, MPFR_RNDN);
        mpfr_sqrt(r12480, r12479, MPFR_RNDN);
        mpfr_mul(r12481, r12452, r12480, MPFR_RNDN);
        ;
        mpfr_set_si(r12483, mpfr_cmp(r12447, r12482) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r12485, mpfr_cmp(r12447, r12484) <= 0, MPFR_RNDN);
        mpfr_mul(r12486, r12443, r12455, MPFR_RNDN);
        mpfr_sqrt(r12487, r12486, MPFR_RNDN);
        mpfr_mul(r12488, r12452, r12487, MPFR_RNDN);
        if (mpfr_get_si(r12485, MPFR_RNDN)) { mpfr_set(r12489, r12488, MPFR_RNDN); } else { mpfr_set(r12489, r12475, MPFR_RNDN); };
        if (mpfr_get_si(r12483, MPFR_RNDN)) { mpfr_set(r12490, r12475, MPFR_RNDN); } else { mpfr_set(r12490, r12489, MPFR_RNDN); };
        if (mpfr_get_si(r12477, MPFR_RNDN)) { mpfr_set(r12491, r12481, MPFR_RNDN); } else { mpfr_set(r12491, r12490, MPFR_RNDN); };
        if (mpfr_get_si(r12473, MPFR_RNDN)) { mpfr_set(r12492, r12475, MPFR_RNDN); } else { mpfr_set(r12492, r12491, MPFR_RNDN); };
        if (mpfr_get_si(r12460, MPFR_RNDN)) { mpfr_set(r12493, r12471, MPFR_RNDN); } else { mpfr_set(r12493, r12492, MPFR_RNDN); };
        if (mpfr_get_si(r12449, MPFR_RNDN)) { mpfr_set(r12494, r12458, MPFR_RNDN); } else { mpfr_set(r12494, r12493, MPFR_RNDN); };
        return mpfr_get_d(r12494, MPFR_RNDN);
}

static mpfr_t r12495, r12496, r12497, r12498, r12499, r12500, r12501, r12502, r12503, r12504, r12505, r12506, r12507, r12508, r12509, r12510, r12511, r12512, r12513, r12514, r12515, r12516, r12517, r12518, r12519, r12520, r12521, r12522, r12523, r12524, r12525, r12526, r12527, r12528, r12529, r12530, r12531, r12532, r12533, r12534, r12535, r12536, r12537, r12538, r12539, r12540, r12541, r12542, r12543, r12544, r12545, r12546;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3664);
        mpfr_init_set_str(r12495, "2.0", 10, MPFR_RNDN);
        mpfr_init(r12496);
        mpfr_init(r12497);
        mpfr_init(r12498);
        mpfr_init(r12499);
        mpfr_init_set_str(r12500, "-1.0155650304118315e+155", 10, MPFR_RNDN);
        mpfr_init(r12501);
        mpfr_init(r12502);
        mpfr_init(r12503);
        mpfr_init_set_str(r12504, "0.5", 10, MPFR_RNDN);
        mpfr_init(r12505);
        mpfr_init(r12506);
        mpfr_init(r12507);
        mpfr_init(r12508);
        mpfr_init(r12509);
        mpfr_init(r12510);
        mpfr_init_set_str(r12511, "6.764682218995417e-252", 10, MPFR_RNDN);
        mpfr_init(r12512);
        mpfr_init(r12513);
        mpfr_init(r12514);
        mpfr_init(r12515);
        mpfr_init(r12516);
        mpfr_init(r12517);
        mpfr_init(r12518);
        mpfr_init(r12519);
        mpfr_init(r12520);
        mpfr_init(r12521);
        mpfr_init(r12522);
        mpfr_init(r12523);
        mpfr_init_set_str(r12524, "1.6133845107950314e-175", 10, MPFR_RNDN);
        mpfr_init(r12525);
        mpfr_init(r12526);
        mpfr_init(r12527);
        mpfr_init_set_str(r12528, "3.865626513190947e+153", 10, MPFR_RNDN);
        mpfr_init(r12529);
        mpfr_init(r12530);
        mpfr_init(r12531);
        mpfr_init(r12532);
        mpfr_init(r12533);
        mpfr_init_set_str(r12534, "1.1511066346703824e+191", 10, MPFR_RNDN);
        mpfr_init(r12535);
        mpfr_init_set_str(r12536, "2.224269165108632e+253", 10, MPFR_RNDN);
        mpfr_init(r12537);
        mpfr_init(r12538);
        mpfr_init(r12539);
        mpfr_init(r12540);
        mpfr_init(r12541);
        mpfr_init(r12542);
        mpfr_init(r12543);
        mpfr_init(r12544);
        mpfr_init(r12545);
        mpfr_init(r12546);
}

double f_dm(double re, double im) {
        ;
        mpfr_set_d(r12496, im, MPFR_RNDN);
        mpfr_set_d(r12497, re, MPFR_RNDN);
        mpfr_add(r12498, r12496, r12497, MPFR_RNDN);
        mpfr_mul(r12499, r12495, r12498, MPFR_RNDN);
        ;
        mpfr_set_si(r12501, mpfr_cmp(r12499, r12500) <= 0, MPFR_RNDN);
        mpfr_sqrt(r12502, r12495, MPFR_RNDN);
        mpfr_abs(r12503, r12496, MPFR_RNDN);
        ;
        mpfr_mul(r12505, r12503, r12504, MPFR_RNDN);
        mpfr_mul(r12506, r12502, r12505, MPFR_RNDN);
        mpfr_add(r12507, r12497, r12497, MPFR_RNDN);
        mpfr_neg(r12508, r12507, MPFR_RNDN);
        mpfr_sqrt(r12509, r12508, MPFR_RNDN);
        mpfr_div(r12510, r12506, r12509, MPFR_RNDN);
        ;
        mpfr_set_si(r12512, mpfr_cmp(r12499, r12511) <= 0, MPFR_RNDN);
        mpfr_mul(r12513, r12502, r12503, MPFR_RNDN);
        mpfr_mul(r12514, r12497, r12497, MPFR_RNDN);
        mpfr_mul(r12515, r12496, r12496, MPFR_RNDN);
        mpfr_add(r12516, r12514, r12515, MPFR_RNDN);
        mpfr_sqrt(r12517, r12516, MPFR_RNDN);
        mpfr_sub(r12518, r12517, r12497, MPFR_RNDN);
        mpfr_sqrt(r12519, r12518, MPFR_RNDN);
        mpfr_sqrt(r12520, r12519, MPFR_RNDN);
        mpfr_mul(r12521, r12520, r12520, MPFR_RNDN);
        mpfr_div(r12522, r12513, r12521, MPFR_RNDN);
        mpfr_mul(r12523, r12504, r12522, MPFR_RNDN);
        ;
        mpfr_set_si(r12525, mpfr_cmp(r12499, r12524) <= 0, MPFR_RNDN);
        mpfr_sqrt(r12526, r12499, MPFR_RNDN);
        mpfr_mul(r12527, r12504, r12526, MPFR_RNDN);
        ;
        mpfr_set_si(r12529, mpfr_cmp(r12499, r12528) <= 0, MPFR_RNDN);
        mpfr_add(r12530, r12517, r12497, MPFR_RNDN);
        mpfr_mul(r12531, r12495, r12530, MPFR_RNDN);
        mpfr_sqrt(r12532, r12531, MPFR_RNDN);
        mpfr_mul(r12533, r12504, r12532, MPFR_RNDN);
        ;
        mpfr_set_si(r12535, mpfr_cmp(r12499, r12534) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r12537, mpfr_cmp(r12499, r12536) <= 0, MPFR_RNDN);
        mpfr_mul(r12538, r12495, r12507, MPFR_RNDN);
        mpfr_sqrt(r12539, r12538, MPFR_RNDN);
        mpfr_mul(r12540, r12504, r12539, MPFR_RNDN);
        if (mpfr_get_si(r12537, MPFR_RNDN)) { mpfr_set(r12541, r12540, MPFR_RNDN); } else { mpfr_set(r12541, r12527, MPFR_RNDN); };
        if (mpfr_get_si(r12535, MPFR_RNDN)) { mpfr_set(r12542, r12527, MPFR_RNDN); } else { mpfr_set(r12542, r12541, MPFR_RNDN); };
        if (mpfr_get_si(r12529, MPFR_RNDN)) { mpfr_set(r12543, r12533, MPFR_RNDN); } else { mpfr_set(r12543, r12542, MPFR_RNDN); };
        if (mpfr_get_si(r12525, MPFR_RNDN)) { mpfr_set(r12544, r12527, MPFR_RNDN); } else { mpfr_set(r12544, r12543, MPFR_RNDN); };
        if (mpfr_get_si(r12512, MPFR_RNDN)) { mpfr_set(r12545, r12523, MPFR_RNDN); } else { mpfr_set(r12545, r12544, MPFR_RNDN); };
        if (mpfr_get_si(r12501, MPFR_RNDN)) { mpfr_set(r12546, r12510, MPFR_RNDN); } else { mpfr_set(r12546, r12545, MPFR_RNDN); };
        return mpfr_get_d(r12546, MPFR_RNDN);
}

