#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "math.log10 on complex, real part";

double f_if(float re, float im) {
        float r20341 = re;
        float r20342 = r20341 * r20341;
        float r20343 = im;
        float r20344 = r20343 * r20343;
        float r20345 = r20342 + r20344;
        float r20346 = sqrt(r20345);
        float r20347 = log(r20346);
        float r20348 = 10;
        float r20349 = log(r20348);
        float r20350 = r20347 / r20349;
        return r20350;
}

double f_id(double re, double im) {
        double r20351 = re;
        double r20352 = r20351 * r20351;
        double r20353 = im;
        double r20354 = r20353 * r20353;
        double r20355 = r20352 + r20354;
        double r20356 = sqrt(r20355);
        double r20357 = log(r20356);
        double r20358 = 10;
        double r20359 = log(r20358);
        double r20360 = r20357 / r20359;
        return r20360;
}


double f_of(float re, float im) {
        float r20361 = re;
        float r20362 = -2.5444508077594253e+135;
        bool r20363 = r20361 <= r20362;
        float r20364 = -r20361;
        float r20365 = log(r20364);
        float r20366 = 10;
        float r20367 = log(r20366);
        float r20368 = r20365 / r20367;
        float r20369 = -1.6471939554857127e-238;
        bool r20370 = r20361 <= r20369;
        float r20371 = 1/2;
        float r20372 = sqrt(r20367);
        float r20373 = r20371 / r20372;
        float r20374 = sqrt(r20373);
        float r20375 = r20361 * r20361;
        float r20376 = im;
        float r20377 = r20376 * r20376;
        float r20378 = r20375 + r20377;
        float r20379 = log(r20378);
        float r20380 = r20379 / r20372;
        float r20381 = r20374 * r20380;
        float r20382 = r20374 * r20381;
        float r20383 = 1.3032773090778938e-265;
        bool r20384 = r20361 <= r20383;
        float r20385 = 2;
        float r20386 = log(r20376);
        float r20387 = 1;
        float r20388 = r20387 / r20367;
        float r20389 = sqrt(r20388);
        float r20390 = r20386 * r20389;
        float r20391 = r20385 * r20390;
        float r20392 = r20373 * r20391;
        float r20393 = 3.513824930285112e+77;
        bool r20394 = r20361 <= r20393;
        float r20395 = log(r20361);
        float r20396 = r20395 / r20367;
        float r20397 = r20394 ? r20382 : r20396;
        float r20398 = r20384 ? r20392 : r20397;
        float r20399 = r20370 ? r20382 : r20398;
        float r20400 = r20363 ? r20368 : r20399;
        return r20400;
}

double f_od(double re, double im) {
        double r20401 = re;
        double r20402 = -2.5444508077594253e+135;
        bool r20403 = r20401 <= r20402;
        double r20404 = -r20401;
        double r20405 = log(r20404);
        double r20406 = 10;
        double r20407 = log(r20406);
        double r20408 = r20405 / r20407;
        double r20409 = -1.6471939554857127e-238;
        bool r20410 = r20401 <= r20409;
        double r20411 = 1/2;
        double r20412 = sqrt(r20407);
        double r20413 = r20411 / r20412;
        double r20414 = sqrt(r20413);
        double r20415 = r20401 * r20401;
        double r20416 = im;
        double r20417 = r20416 * r20416;
        double r20418 = r20415 + r20417;
        double r20419 = log(r20418);
        double r20420 = r20419 / r20412;
        double r20421 = r20414 * r20420;
        double r20422 = r20414 * r20421;
        double r20423 = 1.3032773090778938e-265;
        bool r20424 = r20401 <= r20423;
        double r20425 = 2;
        double r20426 = log(r20416);
        double r20427 = 1;
        double r20428 = r20427 / r20407;
        double r20429 = sqrt(r20428);
        double r20430 = r20426 * r20429;
        double r20431 = r20425 * r20430;
        double r20432 = r20413 * r20431;
        double r20433 = 3.513824930285112e+77;
        bool r20434 = r20401 <= r20433;
        double r20435 = log(r20401);
        double r20436 = r20435 / r20407;
        double r20437 = r20434 ? r20422 : r20436;
        double r20438 = r20424 ? r20432 : r20437;
        double r20439 = r20410 ? r20422 : r20438;
        double r20440 = r20403 ? r20408 : r20439;
        return r20440;
}

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 r20441, r20442, r20443, r20444, r20445, r20446, r20447, r20448, r20449, r20450;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r20441);
        mpfr_init(r20442);
        mpfr_init(r20443);
        mpfr_init(r20444);
        mpfr_init(r20445);
        mpfr_init(r20446);
        mpfr_init(r20447);
        mpfr_init_set_str(r20448, "10", 10, MPFR_RNDN);
        mpfr_init(r20449);
        mpfr_init(r20450);
}

double f_im(double re, double im) {
        mpfr_set_d(r20441, re, MPFR_RNDN);
        mpfr_mul(r20442, r20441, r20441, MPFR_RNDN);
        mpfr_set_d(r20443, im, MPFR_RNDN);
        mpfr_mul(r20444, r20443, r20443, MPFR_RNDN);
        mpfr_add(r20445, r20442, r20444, MPFR_RNDN);
        mpfr_sqrt(r20446, r20445, MPFR_RNDN);
        mpfr_log(r20447, r20446, MPFR_RNDN);
        ;
        mpfr_log(r20449, r20448, MPFR_RNDN);
        mpfr_div(r20450, r20447, r20449, MPFR_RNDN);
        return mpfr_get_d(r20450, MPFR_RNDN);
}

static mpfr_t r20451, r20452, r20453, r20454, r20455, r20456, r20457, r20458, r20459, r20460, r20461, r20462, r20463, r20464, r20465, r20466, r20467, r20468, r20469, r20470, r20471, r20472, r20473, r20474, r20475, r20476, r20477, r20478, r20479, r20480, r20481, r20482, r20483, r20484, r20485, r20486, r20487, r20488, r20489, r20490;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r20451);
        mpfr_init_set_str(r20452, "-2.5444508077594253e+135", 10, MPFR_RNDN);
        mpfr_init(r20453);
        mpfr_init(r20454);
        mpfr_init(r20455);
        mpfr_init_set_str(r20456, "10", 10, MPFR_RNDN);
        mpfr_init(r20457);
        mpfr_init(r20458);
        mpfr_init_set_str(r20459, "-1.6471939554857127e-238", 10, MPFR_RNDN);
        mpfr_init(r20460);
        mpfr_init_set_str(r20461, "1/2", 10, MPFR_RNDN);
        mpfr_init(r20462);
        mpfr_init(r20463);
        mpfr_init(r20464);
        mpfr_init(r20465);
        mpfr_init(r20466);
        mpfr_init(r20467);
        mpfr_init(r20468);
        mpfr_init(r20469);
        mpfr_init(r20470);
        mpfr_init(r20471);
        mpfr_init(r20472);
        mpfr_init_set_str(r20473, "1.3032773090778938e-265", 10, MPFR_RNDN);
        mpfr_init(r20474);
        mpfr_init_set_str(r20475, "2", 10, MPFR_RNDN);
        mpfr_init(r20476);
        mpfr_init_set_str(r20477, "1", 10, MPFR_RNDN);
        mpfr_init(r20478);
        mpfr_init(r20479);
        mpfr_init(r20480);
        mpfr_init(r20481);
        mpfr_init(r20482);
        mpfr_init_set_str(r20483, "3.513824930285112e+77", 10, MPFR_RNDN);
        mpfr_init(r20484);
        mpfr_init(r20485);
        mpfr_init(r20486);
        mpfr_init(r20487);
        mpfr_init(r20488);
        mpfr_init(r20489);
        mpfr_init(r20490);
}

double f_fm(double re, double im) {
        mpfr_set_d(r20451, re, MPFR_RNDN);
        ;
        mpfr_set_si(r20453, mpfr_cmp(r20451, r20452) <= 0, MPFR_RNDN);
        mpfr_neg(r20454, r20451, MPFR_RNDN);
        mpfr_log(r20455, r20454, MPFR_RNDN);
        ;
        mpfr_log(r20457, r20456, MPFR_RNDN);
        mpfr_div(r20458, r20455, r20457, MPFR_RNDN);
        ;
        mpfr_set_si(r20460, mpfr_cmp(r20451, r20459) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r20462, r20457, MPFR_RNDN);
        mpfr_div(r20463, r20461, r20462, MPFR_RNDN);
        mpfr_sqrt(r20464, r20463, MPFR_RNDN);
        mpfr_mul(r20465, r20451, r20451, MPFR_RNDN);
        mpfr_set_d(r20466, im, MPFR_RNDN);
        mpfr_mul(r20467, r20466, r20466, MPFR_RNDN);
        mpfr_add(r20468, r20465, r20467, MPFR_RNDN);
        mpfr_log(r20469, r20468, MPFR_RNDN);
        mpfr_div(r20470, r20469, r20462, MPFR_RNDN);
        mpfr_mul(r20471, r20464, r20470, MPFR_RNDN);
        mpfr_mul(r20472, r20464, r20471, MPFR_RNDN);
        ;
        mpfr_set_si(r20474, mpfr_cmp(r20451, r20473) <= 0, MPFR_RNDN);
        ;
        mpfr_log(r20476, r20466, MPFR_RNDN);
        ;
        mpfr_div(r20478, r20477, r20457, MPFR_RNDN);
        mpfr_sqrt(r20479, r20478, MPFR_RNDN);
        mpfr_mul(r20480, r20476, r20479, MPFR_RNDN);
        mpfr_mul(r20481, r20475, r20480, MPFR_RNDN);
        mpfr_mul(r20482, r20463, r20481, MPFR_RNDN);
        ;
        mpfr_set_si(r20484, mpfr_cmp(r20451, r20483) <= 0, MPFR_RNDN);
        mpfr_log(r20485, r20451, MPFR_RNDN);
        mpfr_div(r20486, r20485, r20457, MPFR_RNDN);
        if (mpfr_get_si(r20484, MPFR_RNDN)) { mpfr_set(r20487, r20472, MPFR_RNDN); } else { mpfr_set(r20487, r20486, MPFR_RNDN); };
        if (mpfr_get_si(r20474, MPFR_RNDN)) { mpfr_set(r20488, r20482, MPFR_RNDN); } else { mpfr_set(r20488, r20487, MPFR_RNDN); };
        if (mpfr_get_si(r20460, MPFR_RNDN)) { mpfr_set(r20489, r20472, MPFR_RNDN); } else { mpfr_set(r20489, r20488, MPFR_RNDN); };
        if (mpfr_get_si(r20453, MPFR_RNDN)) { mpfr_set(r20490, r20458, MPFR_RNDN); } else { mpfr_set(r20490, r20489, MPFR_RNDN); };
        return mpfr_get_d(r20490, MPFR_RNDN);
}

static mpfr_t r20491, r20492, r20493, r20494, r20495, r20496, r20497, r20498, r20499, r20500, r20501, r20502, r20503, r20504, r20505, r20506, r20507, r20508, r20509, r20510, r20511, r20512, r20513, r20514, r20515, r20516, r20517, r20518, r20519, r20520, r20521, r20522, r20523, r20524, r20525, r20526, r20527, r20528, r20529, r20530;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r20491);
        mpfr_init_set_str(r20492, "-2.5444508077594253e+135", 10, MPFR_RNDN);
        mpfr_init(r20493);
        mpfr_init(r20494);
        mpfr_init(r20495);
        mpfr_init_set_str(r20496, "10", 10, MPFR_RNDN);
        mpfr_init(r20497);
        mpfr_init(r20498);
        mpfr_init_set_str(r20499, "-1.6471939554857127e-238", 10, MPFR_RNDN);
        mpfr_init(r20500);
        mpfr_init_set_str(r20501, "1/2", 10, MPFR_RNDN);
        mpfr_init(r20502);
        mpfr_init(r20503);
        mpfr_init(r20504);
        mpfr_init(r20505);
        mpfr_init(r20506);
        mpfr_init(r20507);
        mpfr_init(r20508);
        mpfr_init(r20509);
        mpfr_init(r20510);
        mpfr_init(r20511);
        mpfr_init(r20512);
        mpfr_init_set_str(r20513, "1.3032773090778938e-265", 10, MPFR_RNDN);
        mpfr_init(r20514);
        mpfr_init_set_str(r20515, "2", 10, MPFR_RNDN);
        mpfr_init(r20516);
        mpfr_init_set_str(r20517, "1", 10, MPFR_RNDN);
        mpfr_init(r20518);
        mpfr_init(r20519);
        mpfr_init(r20520);
        mpfr_init(r20521);
        mpfr_init(r20522);
        mpfr_init_set_str(r20523, "3.513824930285112e+77", 10, MPFR_RNDN);
        mpfr_init(r20524);
        mpfr_init(r20525);
        mpfr_init(r20526);
        mpfr_init(r20527);
        mpfr_init(r20528);
        mpfr_init(r20529);
        mpfr_init(r20530);
}

double f_dm(double re, double im) {
        mpfr_set_d(r20491, re, MPFR_RNDN);
        ;
        mpfr_set_si(r20493, mpfr_cmp(r20491, r20492) <= 0, MPFR_RNDN);
        mpfr_neg(r20494, r20491, MPFR_RNDN);
        mpfr_log(r20495, r20494, MPFR_RNDN);
        ;
        mpfr_log(r20497, r20496, MPFR_RNDN);
        mpfr_div(r20498, r20495, r20497, MPFR_RNDN);
        ;
        mpfr_set_si(r20500, mpfr_cmp(r20491, r20499) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r20502, r20497, MPFR_RNDN);
        mpfr_div(r20503, r20501, r20502, MPFR_RNDN);
        mpfr_sqrt(r20504, r20503, MPFR_RNDN);
        mpfr_mul(r20505, r20491, r20491, MPFR_RNDN);
        mpfr_set_d(r20506, im, MPFR_RNDN);
        mpfr_mul(r20507, r20506, r20506, MPFR_RNDN);
        mpfr_add(r20508, r20505, r20507, MPFR_RNDN);
        mpfr_log(r20509, r20508, MPFR_RNDN);
        mpfr_div(r20510, r20509, r20502, MPFR_RNDN);
        mpfr_mul(r20511, r20504, r20510, MPFR_RNDN);
        mpfr_mul(r20512, r20504, r20511, MPFR_RNDN);
        ;
        mpfr_set_si(r20514, mpfr_cmp(r20491, r20513) <= 0, MPFR_RNDN);
        ;
        mpfr_log(r20516, r20506, MPFR_RNDN);
        ;
        mpfr_div(r20518, r20517, r20497, MPFR_RNDN);
        mpfr_sqrt(r20519, r20518, MPFR_RNDN);
        mpfr_mul(r20520, r20516, r20519, MPFR_RNDN);
        mpfr_mul(r20521, r20515, r20520, MPFR_RNDN);
        mpfr_mul(r20522, r20503, r20521, MPFR_RNDN);
        ;
        mpfr_set_si(r20524, mpfr_cmp(r20491, r20523) <= 0, MPFR_RNDN);
        mpfr_log(r20525, r20491, MPFR_RNDN);
        mpfr_div(r20526, r20525, r20497, MPFR_RNDN);
        if (mpfr_get_si(r20524, MPFR_RNDN)) { mpfr_set(r20527, r20512, MPFR_RNDN); } else { mpfr_set(r20527, r20526, MPFR_RNDN); };
        if (mpfr_get_si(r20514, MPFR_RNDN)) { mpfr_set(r20528, r20522, MPFR_RNDN); } else { mpfr_set(r20528, r20527, MPFR_RNDN); };
        if (mpfr_get_si(r20500, MPFR_RNDN)) { mpfr_set(r20529, r20512, MPFR_RNDN); } else { mpfr_set(r20529, r20528, MPFR_RNDN); };
        if (mpfr_get_si(r20493, MPFR_RNDN)) { mpfr_set(r20530, r20498, MPFR_RNDN); } else { mpfr_set(r20530, r20529, MPFR_RNDN); };
        return mpfr_get_d(r20530, MPFR_RNDN);
}

