#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 r20313 = re;
        float r20314 = r20313 * r20313;
        float r20315 = im;
        float r20316 = r20315 * r20315;
        float r20317 = r20314 + r20316;
        float r20318 = sqrt(r20317);
        float r20319 = log(r20318);
        float r20320 = 10;
        float r20321 = log(r20320);
        float r20322 = r20319 / r20321;
        return r20322;
}

double f_id(double re, double im) {
        double r20323 = re;
        double r20324 = r20323 * r20323;
        double r20325 = im;
        double r20326 = r20325 * r20325;
        double r20327 = r20324 + r20326;
        double r20328 = sqrt(r20327);
        double r20329 = log(r20328);
        double r20330 = 10;
        double r20331 = log(r20330);
        double r20332 = r20329 / r20331;
        return r20332;
}


double f_of(float re, float im) {
        float r20333 = re;
        float r20334 = -2.5444508077594253e+135;
        bool r20335 = r20333 <= r20334;
        float r20336 = -r20333;
        float r20337 = log(r20336);
        float r20338 = 10;
        float r20339 = log(r20338);
        float r20340 = r20337 / r20339;
        float r20341 = -1.6471939554857127e-238;
        bool r20342 = r20333 <= r20341;
        float r20343 = 1/2;
        float r20344 = sqrt(r20339);
        float r20345 = r20343 / r20344;
        float r20346 = sqrt(r20345);
        float r20347 = r20333 * r20333;
        float r20348 = im;
        float r20349 = r20348 * r20348;
        float r20350 = r20347 + r20349;
        float r20351 = log(r20350);
        float r20352 = r20351 / r20344;
        float r20353 = r20346 * r20352;
        float r20354 = r20346 * r20353;
        float r20355 = 1.3032773090778938e-265;
        bool r20356 = r20333 <= r20355;
        float r20357 = 2;
        float r20358 = log(r20348);
        float r20359 = 1;
        float r20360 = r20359 / r20339;
        float r20361 = sqrt(r20360);
        float r20362 = r20358 * r20361;
        float r20363 = r20357 * r20362;
        float r20364 = r20345 * r20363;
        float r20365 = 3.513824930285112e+77;
        bool r20366 = r20333 <= r20365;
        float r20367 = log(r20333);
        float r20368 = r20367 / r20339;
        float r20369 = r20366 ? r20354 : r20368;
        float r20370 = r20356 ? r20364 : r20369;
        float r20371 = r20342 ? r20354 : r20370;
        float r20372 = r20335 ? r20340 : r20371;
        return r20372;
}

double f_od(double re, double im) {
        double r20373 = re;
        double r20374 = -2.5444508077594253e+135;
        bool r20375 = r20373 <= r20374;
        double r20376 = -r20373;
        double r20377 = log(r20376);
        double r20378 = 10;
        double r20379 = log(r20378);
        double r20380 = r20377 / r20379;
        double r20381 = -1.6471939554857127e-238;
        bool r20382 = r20373 <= r20381;
        double r20383 = 1/2;
        double r20384 = sqrt(r20379);
        double r20385 = r20383 / r20384;
        double r20386 = sqrt(r20385);
        double r20387 = r20373 * r20373;
        double r20388 = im;
        double r20389 = r20388 * r20388;
        double r20390 = r20387 + r20389;
        double r20391 = log(r20390);
        double r20392 = r20391 / r20384;
        double r20393 = r20386 * r20392;
        double r20394 = r20386 * r20393;
        double r20395 = 1.3032773090778938e-265;
        bool r20396 = r20373 <= r20395;
        double r20397 = 2;
        double r20398 = log(r20388);
        double r20399 = 1;
        double r20400 = r20399 / r20379;
        double r20401 = sqrt(r20400);
        double r20402 = r20398 * r20401;
        double r20403 = r20397 * r20402;
        double r20404 = r20385 * r20403;
        double r20405 = 3.513824930285112e+77;
        bool r20406 = r20373 <= r20405;
        double r20407 = log(r20373);
        double r20408 = r20407 / r20379;
        double r20409 = r20406 ? r20394 : r20408;
        double r20410 = r20396 ? r20404 : r20409;
        double r20411 = r20382 ? r20394 : r20410;
        double r20412 = r20375 ? r20380 : r20411;
        return r20412;
}

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 r20413, r20414, r20415, r20416, r20417, r20418, r20419, r20420, r20421, r20422;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r20413);
        mpfr_init(r20414);
        mpfr_init(r20415);
        mpfr_init(r20416);
        mpfr_init(r20417);
        mpfr_init(r20418);
        mpfr_init(r20419);
        mpfr_init_set_str(r20420, "10", 10, MPFR_RNDN);
        mpfr_init(r20421);
        mpfr_init(r20422);
}

double f_im(double re, double im) {
        mpfr_set_d(r20413, re, MPFR_RNDN);
        mpfr_mul(r20414, r20413, r20413, MPFR_RNDN);
        mpfr_set_d(r20415, im, MPFR_RNDN);
        mpfr_mul(r20416, r20415, r20415, MPFR_RNDN);
        mpfr_add(r20417, r20414, r20416, MPFR_RNDN);
        mpfr_sqrt(r20418, r20417, MPFR_RNDN);
        mpfr_log(r20419, r20418, MPFR_RNDN);
        ;
        mpfr_log(r20421, r20420, MPFR_RNDN);
        mpfr_div(r20422, r20419, r20421, MPFR_RNDN);
        return mpfr_get_d(r20422, MPFR_RNDN);
}

static mpfr_t r20423, r20424, r20425, r20426, r20427, r20428, r20429, r20430, r20431, r20432, r20433, r20434, r20435, r20436, r20437, r20438, r20439, r20440, r20441, r20442, r20443, r20444, r20445, r20446, r20447, r20448, r20449, r20450, r20451, r20452, r20453, r20454, r20455, r20456, r20457, r20458, r20459, r20460, r20461, r20462;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r20423);
        mpfr_init_set_str(r20424, "-2.5444508077594253e+135", 10, MPFR_RNDN);
        mpfr_init(r20425);
        mpfr_init(r20426);
        mpfr_init(r20427);
        mpfr_init_set_str(r20428, "10", 10, MPFR_RNDN);
        mpfr_init(r20429);
        mpfr_init(r20430);
        mpfr_init_set_str(r20431, "-1.6471939554857127e-238", 10, MPFR_RNDN);
        mpfr_init(r20432);
        mpfr_init_set_str(r20433, "1/2", 10, MPFR_RNDN);
        mpfr_init(r20434);
        mpfr_init(r20435);
        mpfr_init(r20436);
        mpfr_init(r20437);
        mpfr_init(r20438);
        mpfr_init(r20439);
        mpfr_init(r20440);
        mpfr_init(r20441);
        mpfr_init(r20442);
        mpfr_init(r20443);
        mpfr_init(r20444);
        mpfr_init_set_str(r20445, "1.3032773090778938e-265", 10, MPFR_RNDN);
        mpfr_init(r20446);
        mpfr_init_set_str(r20447, "2", 10, MPFR_RNDN);
        mpfr_init(r20448);
        mpfr_init_set_str(r20449, "1", 10, MPFR_RNDN);
        mpfr_init(r20450);
        mpfr_init(r20451);
        mpfr_init(r20452);
        mpfr_init(r20453);
        mpfr_init(r20454);
        mpfr_init_set_str(r20455, "3.513824930285112e+77", 10, MPFR_RNDN);
        mpfr_init(r20456);
        mpfr_init(r20457);
        mpfr_init(r20458);
        mpfr_init(r20459);
        mpfr_init(r20460);
        mpfr_init(r20461);
        mpfr_init(r20462);
}

double f_fm(double re, double im) {
        mpfr_set_d(r20423, re, MPFR_RNDN);
        ;
        mpfr_set_si(r20425, mpfr_cmp(r20423, r20424) <= 0, MPFR_RNDN);
        mpfr_neg(r20426, r20423, MPFR_RNDN);
        mpfr_log(r20427, r20426, MPFR_RNDN);
        ;
        mpfr_log(r20429, r20428, MPFR_RNDN);
        mpfr_div(r20430, r20427, r20429, MPFR_RNDN);
        ;
        mpfr_set_si(r20432, mpfr_cmp(r20423, r20431) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r20434, r20429, MPFR_RNDN);
        mpfr_div(r20435, r20433, r20434, MPFR_RNDN);
        mpfr_sqrt(r20436, r20435, MPFR_RNDN);
        mpfr_mul(r20437, r20423, r20423, MPFR_RNDN);
        mpfr_set_d(r20438, im, MPFR_RNDN);
        mpfr_mul(r20439, r20438, r20438, MPFR_RNDN);
        mpfr_add(r20440, r20437, r20439, MPFR_RNDN);
        mpfr_log(r20441, r20440, MPFR_RNDN);
        mpfr_div(r20442, r20441, r20434, MPFR_RNDN);
        mpfr_mul(r20443, r20436, r20442, MPFR_RNDN);
        mpfr_mul(r20444, r20436, r20443, MPFR_RNDN);
        ;
        mpfr_set_si(r20446, mpfr_cmp(r20423, r20445) <= 0, MPFR_RNDN);
        ;
        mpfr_log(r20448, r20438, MPFR_RNDN);
        ;
        mpfr_div(r20450, r20449, r20429, MPFR_RNDN);
        mpfr_sqrt(r20451, r20450, MPFR_RNDN);
        mpfr_mul(r20452, r20448, r20451, MPFR_RNDN);
        mpfr_mul(r20453, r20447, r20452, MPFR_RNDN);
        mpfr_mul(r20454, r20435, r20453, MPFR_RNDN);
        ;
        mpfr_set_si(r20456, mpfr_cmp(r20423, r20455) <= 0, MPFR_RNDN);
        mpfr_log(r20457, r20423, MPFR_RNDN);
        mpfr_div(r20458, r20457, r20429, MPFR_RNDN);
        if (mpfr_get_si(r20456, MPFR_RNDN)) { mpfr_set(r20459, r20444, MPFR_RNDN); } else { mpfr_set(r20459, r20458, MPFR_RNDN); };
        if (mpfr_get_si(r20446, MPFR_RNDN)) { mpfr_set(r20460, r20454, MPFR_RNDN); } else { mpfr_set(r20460, r20459, MPFR_RNDN); };
        if (mpfr_get_si(r20432, MPFR_RNDN)) { mpfr_set(r20461, r20444, MPFR_RNDN); } else { mpfr_set(r20461, r20460, MPFR_RNDN); };
        if (mpfr_get_si(r20425, MPFR_RNDN)) { mpfr_set(r20462, r20430, MPFR_RNDN); } else { mpfr_set(r20462, r20461, MPFR_RNDN); };
        return mpfr_get_d(r20462, MPFR_RNDN);
}

static mpfr_t 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, r20491, r20492, r20493, r20494, r20495, r20496, r20497, r20498, r20499, r20500, r20501, r20502;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r20463);
        mpfr_init_set_str(r20464, "-2.5444508077594253e+135", 10, MPFR_RNDN);
        mpfr_init(r20465);
        mpfr_init(r20466);
        mpfr_init(r20467);
        mpfr_init_set_str(r20468, "10", 10, MPFR_RNDN);
        mpfr_init(r20469);
        mpfr_init(r20470);
        mpfr_init_set_str(r20471, "-1.6471939554857127e-238", 10, MPFR_RNDN);
        mpfr_init(r20472);
        mpfr_init_set_str(r20473, "1/2", 10, MPFR_RNDN);
        mpfr_init(r20474);
        mpfr_init(r20475);
        mpfr_init(r20476);
        mpfr_init(r20477);
        mpfr_init(r20478);
        mpfr_init(r20479);
        mpfr_init(r20480);
        mpfr_init(r20481);
        mpfr_init(r20482);
        mpfr_init(r20483);
        mpfr_init(r20484);
        mpfr_init_set_str(r20485, "1.3032773090778938e-265", 10, MPFR_RNDN);
        mpfr_init(r20486);
        mpfr_init_set_str(r20487, "2", 10, MPFR_RNDN);
        mpfr_init(r20488);
        mpfr_init_set_str(r20489, "1", 10, MPFR_RNDN);
        mpfr_init(r20490);
        mpfr_init(r20491);
        mpfr_init(r20492);
        mpfr_init(r20493);
        mpfr_init(r20494);
        mpfr_init_set_str(r20495, "3.513824930285112e+77", 10, MPFR_RNDN);
        mpfr_init(r20496);
        mpfr_init(r20497);
        mpfr_init(r20498);
        mpfr_init(r20499);
        mpfr_init(r20500);
        mpfr_init(r20501);
        mpfr_init(r20502);
}

double f_dm(double re, double im) {
        mpfr_set_d(r20463, re, MPFR_RNDN);
        ;
        mpfr_set_si(r20465, mpfr_cmp(r20463, r20464) <= 0, MPFR_RNDN);
        mpfr_neg(r20466, r20463, MPFR_RNDN);
        mpfr_log(r20467, r20466, MPFR_RNDN);
        ;
        mpfr_log(r20469, r20468, MPFR_RNDN);
        mpfr_div(r20470, r20467, r20469, MPFR_RNDN);
        ;
        mpfr_set_si(r20472, mpfr_cmp(r20463, r20471) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r20474, r20469, MPFR_RNDN);
        mpfr_div(r20475, r20473, r20474, MPFR_RNDN);
        mpfr_sqrt(r20476, r20475, MPFR_RNDN);
        mpfr_mul(r20477, r20463, r20463, MPFR_RNDN);
        mpfr_set_d(r20478, im, MPFR_RNDN);
        mpfr_mul(r20479, r20478, r20478, MPFR_RNDN);
        mpfr_add(r20480, r20477, r20479, MPFR_RNDN);
        mpfr_log(r20481, r20480, MPFR_RNDN);
        mpfr_div(r20482, r20481, r20474, MPFR_RNDN);
        mpfr_mul(r20483, r20476, r20482, MPFR_RNDN);
        mpfr_mul(r20484, r20476, r20483, MPFR_RNDN);
        ;
        mpfr_set_si(r20486, mpfr_cmp(r20463, r20485) <= 0, MPFR_RNDN);
        ;
        mpfr_log(r20488, r20478, MPFR_RNDN);
        ;
        mpfr_div(r20490, r20489, r20469, MPFR_RNDN);
        mpfr_sqrt(r20491, r20490, MPFR_RNDN);
        mpfr_mul(r20492, r20488, r20491, MPFR_RNDN);
        mpfr_mul(r20493, r20487, r20492, MPFR_RNDN);
        mpfr_mul(r20494, r20475, r20493, MPFR_RNDN);
        ;
        mpfr_set_si(r20496, mpfr_cmp(r20463, r20495) <= 0, MPFR_RNDN);
        mpfr_log(r20497, r20463, MPFR_RNDN);
        mpfr_div(r20498, r20497, r20469, MPFR_RNDN);
        if (mpfr_get_si(r20496, MPFR_RNDN)) { mpfr_set(r20499, r20484, MPFR_RNDN); } else { mpfr_set(r20499, r20498, MPFR_RNDN); };
        if (mpfr_get_si(r20486, MPFR_RNDN)) { mpfr_set(r20500, r20494, MPFR_RNDN); } else { mpfr_set(r20500, r20499, MPFR_RNDN); };
        if (mpfr_get_si(r20472, MPFR_RNDN)) { mpfr_set(r20501, r20484, MPFR_RNDN); } else { mpfr_set(r20501, r20500, MPFR_RNDN); };
        if (mpfr_get_si(r20465, MPFR_RNDN)) { mpfr_set(r20502, r20470, MPFR_RNDN); } else { mpfr_set(r20502, r20501, MPFR_RNDN); };
        return mpfr_get_d(r20502, MPFR_RNDN);
}

