#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 r15422 = re;
        float r15423 = r15422 * r15422;
        float r15424 = im;
        float r15425 = r15424 * r15424;
        float r15426 = r15423 + r15425;
        float r15427 = sqrt(r15426);
        float r15428 = log(r15427);
        float r15429 = 10.0f;
        float r15430 = log(r15429);
        float r15431 = r15428 / r15430;
        return r15431;
}

double f_id(double re, double im) {
        double r15432 = re;
        double r15433 = r15432 * r15432;
        double r15434 = im;
        double r15435 = r15434 * r15434;
        double r15436 = r15433 + r15435;
        double r15437 = sqrt(r15436);
        double r15438 = log(r15437);
        double r15439 = 10.0;
        double r15440 = log(r15439);
        double r15441 = r15438 / r15440;
        return r15441;
}


double f_of(float re, float im) {
        float r15442 = re;
        float r15443 = -3.999543611763718e+108f;
        bool r15444 = r15442 <= r15443;
        float r15445 = -r15442;
        float r15446 = log(r15445);
        float r15447 = 10.0f;
        float r15448 = log(r15447);
        float r15449 = r15446 / r15448;
        float r15450 = 9.995586505648043e-300f;
        bool r15451 = r15442 <= r15450;
        float r15452 = r15442 * r15442;
        float r15453 = im;
        float r15454 = r15453 * r15453;
        float r15455 = r15452 + r15454;
        float r15456 = sqrt(r15455);
        float r15457 = log(r15456);
        float r15458 = r15457 / r15448;
        float r15459 = r15458 * (r15458 * r15458);
        float r15460 = cbrt(r15459);
        float r15461 = 1.6515950423484695e-133f;
        bool r15462 = r15442 <= r15461;
        float r15463 = log(r15453);
        float r15464 = r15463 / r15448;
        float r15465 = 5.469653306184636e+123f;
        bool r15466 = r15442 <= r15465;
        float r15467 = 3.0f;
        float r15468 = 1.0f;
        float r15469 = r15467 / r15468;
        float r15470 = cbrt(r15456);
        float r15471 = log(r15470);
        float r15472 = r15471 / r15448;
        float r15473 = r15469 * r15472;
        float r15474 = log(r15442);
        float r15475 = r15474 / r15448;
        float r15476 = r15466 ? r15473 : r15475;
        float r15477 = r15462 ? r15464 : r15476;
        float r15478 = r15451 ? r15460 : r15477;
        float r15479 = r15444 ? r15449 : r15478;
        return r15479;
}

double f_od(double re, double im) {
        double r15480 = re;
        double r15481 = -3.999543611763718e+108;
        bool r15482 = r15480 <= r15481;
        double r15483 = -r15480;
        double r15484 = log(r15483);
        double r15485 = 10.0;
        double r15486 = log(r15485);
        double r15487 = r15484 / r15486;
        double r15488 = 9.995586505648043e-300;
        bool r15489 = r15480 <= r15488;
        double r15490 = r15480 * r15480;
        double r15491 = im;
        double r15492 = r15491 * r15491;
        double r15493 = r15490 + r15492;
        double r15494 = sqrt(r15493);
        double r15495 = log(r15494);
        double r15496 = r15495 / r15486;
        double r15497 = r15496 * (r15496 * r15496);
        double r15498 = cbrt(r15497);
        double r15499 = 1.6515950423484695e-133;
        bool r15500 = r15480 <= r15499;
        double r15501 = log(r15491);
        double r15502 = r15501 / r15486;
        double r15503 = 5.469653306184636e+123;
        bool r15504 = r15480 <= r15503;
        double r15505 = 3.0;
        double r15506 = 1.0;
        double r15507 = r15505 / r15506;
        double r15508 = cbrt(r15494);
        double r15509 = log(r15508);
        double r15510 = r15509 / r15486;
        double r15511 = r15507 * r15510;
        double r15512 = log(r15480);
        double r15513 = r15512 / r15486;
        double r15514 = r15504 ? r15511 : r15513;
        double r15515 = r15500 ? r15502 : r15514;
        double r15516 = r15489 ? r15498 : r15515;
        double r15517 = r15482 ? r15487 : r15516;
        return r15517;
}

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 r15518, r15519, r15520, r15521, r15522, r15523, r15524, r15525, r15526, r15527;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r15518);
        mpfr_init(r15519);
        mpfr_init(r15520);
        mpfr_init(r15521);
        mpfr_init(r15522);
        mpfr_init(r15523);
        mpfr_init(r15524);
        mpfr_init_set_str(r15525, "10", 10, MPFR_RNDN);
        mpfr_init(r15526);
        mpfr_init(r15527);
}

double f_im(double re, double im) {
        mpfr_set_d(r15518, re, MPFR_RNDN);
        mpfr_mul(r15519, r15518, r15518, MPFR_RNDN);
        mpfr_set_d(r15520, im, MPFR_RNDN);
        mpfr_mul(r15521, r15520, r15520, MPFR_RNDN);
        mpfr_add(r15522, r15519, r15521, MPFR_RNDN);
        mpfr_sqrt(r15523, r15522, MPFR_RNDN);
        mpfr_log(r15524, r15523, MPFR_RNDN);
        ;
        mpfr_log(r15526, r15525, MPFR_RNDN);
        mpfr_div(r15527, r15524, r15526, MPFR_RNDN);
        return mpfr_get_d(r15527, MPFR_RNDN);
}

static mpfr_t r15528, r15529, r15530, r15531, r15532, r15533, r15534, r15535, r15536, r15537, r15538, r15539, r15540, r15541, r15542, r15543, r15544, r15545, r15546, r15547, r15548, r15549, r15550, r15551, r15552, r15553, r15554, r15555, r15556, r15557, r15558, r15559, r15560, r15561, r15562, r15563, r15564, r15565;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15528);
        mpfr_init_set_str(r15529, "-3.999543611763718e+108", 10, MPFR_RNDN);
        mpfr_init(r15530);
        mpfr_init(r15531);
        mpfr_init(r15532);
        mpfr_init_set_str(r15533, "10", 10, MPFR_RNDN);
        mpfr_init(r15534);
        mpfr_init(r15535);
        mpfr_init_set_str(r15536, "9.995586505648043e-300", 10, MPFR_RNDN);
        mpfr_init(r15537);
        mpfr_init(r15538);
        mpfr_init(r15539);
        mpfr_init(r15540);
        mpfr_init(r15541);
        mpfr_init(r15542);
        mpfr_init(r15543);
        mpfr_init(r15544);
        mpfr_init(r15545);
        mpfr_init(r15546);
        mpfr_init_set_str(r15547, "1.6515950423484695e-133", 10, MPFR_RNDN);
        mpfr_init(r15548);
        mpfr_init(r15549);
        mpfr_init(r15550);
        mpfr_init_set_str(r15551, "5.469653306184636e+123", 10, MPFR_RNDN);
        mpfr_init(r15552);
        mpfr_init_set_str(r15553, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r15554, "1", 10, MPFR_RNDN);
        mpfr_init(r15555);
        mpfr_init(r15556);
        mpfr_init(r15557);
        mpfr_init(r15558);
        mpfr_init(r15559);
        mpfr_init(r15560);
        mpfr_init(r15561);
        mpfr_init(r15562);
        mpfr_init(r15563);
        mpfr_init(r15564);
        mpfr_init(r15565);
}

double f_fm(double re, double im) {
        mpfr_set_d(r15528, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15530, mpfr_cmp(r15528, r15529) <= 0, MPFR_RNDN);
        mpfr_neg(r15531, r15528, MPFR_RNDN);
        mpfr_log(r15532, r15531, MPFR_RNDN);
        ;
        mpfr_log(r15534, r15533, MPFR_RNDN);
        mpfr_div(r15535, r15532, r15534, MPFR_RNDN);
        ;
        mpfr_set_si(r15537, mpfr_cmp(r15528, r15536) <= 0, MPFR_RNDN);
        mpfr_sqr(r15538, r15528, MPFR_RNDN);
        mpfr_set_d(r15539, im, MPFR_RNDN);
        mpfr_mul(r15540, r15539, r15539, MPFR_RNDN);
        mpfr_add(r15541, r15538, r15540, MPFR_RNDN);
        mpfr_sqrt(r15542, r15541, MPFR_RNDN);
        mpfr_log(r15543, r15542, MPFR_RNDN);
        mpfr_div(r15544, r15543, r15534, MPFR_RNDN);
        mpfr_mul(r15545, r15544, r15544, MPFR_RNDN); mpfr_mul(r15545, r15545, r15544, MPFR_RNDN);
        mpfr_cbrt(r15546, r15545, MPFR_RNDN);
        ;
        mpfr_set_si(r15548, mpfr_cmp(r15528, r15547) <= 0, MPFR_RNDN);
        mpfr_log(r15549, r15539, MPFR_RNDN);
        mpfr_div(r15550, r15549, r15534, MPFR_RNDN);
        ;
        mpfr_set_si(r15552, mpfr_cmp(r15528, r15551) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r15555, r15553, r15554, MPFR_RNDN);
        mpfr_cbrt(r15556, r15542, MPFR_RNDN);
        mpfr_log(r15557, r15556, MPFR_RNDN);
        mpfr_div(r15558, r15557, r15534, MPFR_RNDN);
        mpfr_mul(r15559, r15555, r15558, MPFR_RNDN);
        mpfr_log(r15560, r15528, MPFR_RNDN);
        mpfr_div(r15561, r15560, r15534, MPFR_RNDN);
        if (mpfr_get_si(r15552, MPFR_RNDN)) { mpfr_set(r15562, r15559, MPFR_RNDN); } else { mpfr_set(r15562, r15561, MPFR_RNDN); };
        if (mpfr_get_si(r15548, MPFR_RNDN)) { mpfr_set(r15563, r15550, MPFR_RNDN); } else { mpfr_set(r15563, r15562, MPFR_RNDN); };
        if (mpfr_get_si(r15537, MPFR_RNDN)) { mpfr_set(r15564, r15546, MPFR_RNDN); } else { mpfr_set(r15564, r15563, MPFR_RNDN); };
        if (mpfr_get_si(r15530, MPFR_RNDN)) { mpfr_set(r15565, r15535, MPFR_RNDN); } else { mpfr_set(r15565, r15564, MPFR_RNDN); };
        return mpfr_get_d(r15565, MPFR_RNDN);
}

static mpfr_t r15566, r15567, r15568, r15569, r15570, r15571, r15572, r15573, r15574, r15575, r15576, r15577, r15578, r15579, r15580, r15581, r15582, r15583, r15584, r15585, r15586, r15587, r15588, r15589, r15590, r15591, r15592, r15593, r15594, r15595, r15596, r15597, r15598, r15599, r15600, r15601, r15602, r15603;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15566);
        mpfr_init_set_str(r15567, "-3.999543611763718e+108", 10, MPFR_RNDN);
        mpfr_init(r15568);
        mpfr_init(r15569);
        mpfr_init(r15570);
        mpfr_init_set_str(r15571, "10", 10, MPFR_RNDN);
        mpfr_init(r15572);
        mpfr_init(r15573);
        mpfr_init_set_str(r15574, "9.995586505648043e-300", 10, MPFR_RNDN);
        mpfr_init(r15575);
        mpfr_init(r15576);
        mpfr_init(r15577);
        mpfr_init(r15578);
        mpfr_init(r15579);
        mpfr_init(r15580);
        mpfr_init(r15581);
        mpfr_init(r15582);
        mpfr_init(r15583);
        mpfr_init(r15584);
        mpfr_init_set_str(r15585, "1.6515950423484695e-133", 10, MPFR_RNDN);
        mpfr_init(r15586);
        mpfr_init(r15587);
        mpfr_init(r15588);
        mpfr_init_set_str(r15589, "5.469653306184636e+123", 10, MPFR_RNDN);
        mpfr_init(r15590);
        mpfr_init_set_str(r15591, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r15592, "1", 10, MPFR_RNDN);
        mpfr_init(r15593);
        mpfr_init(r15594);
        mpfr_init(r15595);
        mpfr_init(r15596);
        mpfr_init(r15597);
        mpfr_init(r15598);
        mpfr_init(r15599);
        mpfr_init(r15600);
        mpfr_init(r15601);
        mpfr_init(r15602);
        mpfr_init(r15603);
}

double f_dm(double re, double im) {
        mpfr_set_d(r15566, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15568, mpfr_cmp(r15566, r15567) <= 0, MPFR_RNDN);
        mpfr_neg(r15569, r15566, MPFR_RNDN);
        mpfr_log(r15570, r15569, MPFR_RNDN);
        ;
        mpfr_log(r15572, r15571, MPFR_RNDN);
        mpfr_div(r15573, r15570, r15572, MPFR_RNDN);
        ;
        mpfr_set_si(r15575, mpfr_cmp(r15566, r15574) <= 0, MPFR_RNDN);
        mpfr_sqr(r15576, r15566, MPFR_RNDN);
        mpfr_set_d(r15577, im, MPFR_RNDN);
        mpfr_mul(r15578, r15577, r15577, MPFR_RNDN);
        mpfr_add(r15579, r15576, r15578, MPFR_RNDN);
        mpfr_sqrt(r15580, r15579, MPFR_RNDN);
        mpfr_log(r15581, r15580, MPFR_RNDN);
        mpfr_div(r15582, r15581, r15572, MPFR_RNDN);
        mpfr_mul(r15583, r15582, r15582, MPFR_RNDN); mpfr_mul(r15583, r15583, r15582, MPFR_RNDN);
        mpfr_cbrt(r15584, r15583, MPFR_RNDN);
        ;
        mpfr_set_si(r15586, mpfr_cmp(r15566, r15585) <= 0, MPFR_RNDN);
        mpfr_log(r15587, r15577, MPFR_RNDN);
        mpfr_div(r15588, r15587, r15572, MPFR_RNDN);
        ;
        mpfr_set_si(r15590, mpfr_cmp(r15566, r15589) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r15593, r15591, r15592, MPFR_RNDN);
        mpfr_cbrt(r15594, r15580, MPFR_RNDN);
        mpfr_log(r15595, r15594, MPFR_RNDN);
        mpfr_div(r15596, r15595, r15572, MPFR_RNDN);
        mpfr_mul(r15597, r15593, r15596, MPFR_RNDN);
        mpfr_log(r15598, r15566, MPFR_RNDN);
        mpfr_div(r15599, r15598, r15572, MPFR_RNDN);
        if (mpfr_get_si(r15590, MPFR_RNDN)) { mpfr_set(r15600, r15597, MPFR_RNDN); } else { mpfr_set(r15600, r15599, MPFR_RNDN); };
        if (mpfr_get_si(r15586, MPFR_RNDN)) { mpfr_set(r15601, r15588, MPFR_RNDN); } else { mpfr_set(r15601, r15600, MPFR_RNDN); };
        if (mpfr_get_si(r15575, MPFR_RNDN)) { mpfr_set(r15602, r15584, MPFR_RNDN); } else { mpfr_set(r15602, r15601, MPFR_RNDN); };
        if (mpfr_get_si(r15568, MPFR_RNDN)) { mpfr_set(r15603, r15573, MPFR_RNDN); } else { mpfr_set(r15603, r15602, MPFR_RNDN); };
        return mpfr_get_d(r15603, MPFR_RNDN);
}

