#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 r15430 = re;
        float r15431 = r15430 * r15430;
        float r15432 = im;
        float r15433 = r15432 * r15432;
        float r15434 = r15431 + r15433;
        float r15435 = sqrt(r15434);
        float r15436 = log(r15435);
        float r15437 = 10.0f;
        float r15438 = log(r15437);
        float r15439 = r15436 / r15438;
        return r15439;
}

double f_id(double re, double im) {
        double r15440 = re;
        double r15441 = r15440 * r15440;
        double r15442 = im;
        double r15443 = r15442 * r15442;
        double r15444 = r15441 + r15443;
        double r15445 = sqrt(r15444);
        double r15446 = log(r15445);
        double r15447 = 10.0;
        double r15448 = log(r15447);
        double r15449 = r15446 / r15448;
        return r15449;
}


double f_of(float re, float im) {
        float r15450 = re;
        float r15451 = -3.4790326343865455e+38f;
        bool r15452 = r15450 <= r15451;
        float r15453 = -r15450;
        float r15454 = log(r15453);
        float r15455 = 10.0f;
        float r15456 = log(r15455);
        float r15457 = r15454 / r15456;
        float r15458 = -4.379674431420248e-198f;
        bool r15459 = r15450 <= r15458;
        float r15460 = 1.0f;
        float r15461 = r15450 * r15450;
        float r15462 = im;
        float r15463 = r15462 * r15462;
        float r15464 = r15461 + r15463;
        float r15465 = sqrt(r15464);
        float r15466 = log(r15465);
        float r15467 = r15456 / r15466;
        float r15468 = r15460 / r15467;
        float r15469 = 4.185543182523104e-238f;
        bool r15470 = r15450 <= r15469;
        float r15471 = log(r15462);
        float r15472 = r15471 / r15456;
        float r15473 = 1.8039960838892567e+48f;
        bool r15474 = r15450 <= r15473;
        float r15475 = log(r15450);
        float r15476 = r15475 / r15456;
        float r15477 = r15474 ? r15468 : r15476;
        float r15478 = r15470 ? r15472 : r15477;
        float r15479 = r15459 ? r15468 : r15478;
        float r15480 = r15452 ? r15457 : r15479;
        return r15480;
}

double f_od(double re, double im) {
        double r15481 = re;
        double r15482 = -3.4790326343865455e+38;
        bool r15483 = r15481 <= r15482;
        double r15484 = -r15481;
        double r15485 = log(r15484);
        double r15486 = 10.0;
        double r15487 = log(r15486);
        double r15488 = r15485 / r15487;
        double r15489 = -4.379674431420248e-198;
        bool r15490 = r15481 <= r15489;
        double r15491 = 1.0;
        double r15492 = r15481 * r15481;
        double r15493 = im;
        double r15494 = r15493 * r15493;
        double r15495 = r15492 + r15494;
        double r15496 = sqrt(r15495);
        double r15497 = log(r15496);
        double r15498 = r15487 / r15497;
        double r15499 = r15491 / r15498;
        double r15500 = 4.185543182523104e-238;
        bool r15501 = r15481 <= r15500;
        double r15502 = log(r15493);
        double r15503 = r15502 / r15487;
        double r15504 = 1.8039960838892567e+48;
        bool r15505 = r15481 <= r15504;
        double r15506 = log(r15481);
        double r15507 = r15506 / r15487;
        double r15508 = r15505 ? r15499 : r15507;
        double r15509 = r15501 ? r15503 : r15508;
        double r15510 = r15490 ? r15499 : r15509;
        double r15511 = r15483 ? r15488 : r15510;
        return r15511;
}

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 r15512, r15513, r15514, r15515, r15516, r15517, r15518, r15519, r15520, r15521;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r15512);
        mpfr_init(r15513);
        mpfr_init(r15514);
        mpfr_init(r15515);
        mpfr_init(r15516);
        mpfr_init(r15517);
        mpfr_init(r15518);
        mpfr_init_set_str(r15519, "10", 10, MPFR_RNDN);
        mpfr_init(r15520);
        mpfr_init(r15521);
}

double f_im(double re, double im) {
        mpfr_set_d(r15512, re, MPFR_RNDN);
        mpfr_mul(r15513, r15512, r15512, MPFR_RNDN);
        mpfr_set_d(r15514, im, MPFR_RNDN);
        mpfr_mul(r15515, r15514, r15514, MPFR_RNDN);
        mpfr_add(r15516, r15513, r15515, MPFR_RNDN);
        mpfr_sqrt(r15517, r15516, MPFR_RNDN);
        mpfr_log(r15518, r15517, MPFR_RNDN);
        ;
        mpfr_log(r15520, r15519, MPFR_RNDN);
        mpfr_div(r15521, r15518, r15520, MPFR_RNDN);
        return mpfr_get_d(r15521, MPFR_RNDN);
}

static mpfr_t r15522, r15523, r15524, r15525, r15526, r15527, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15522);
        mpfr_init_set_str(r15523, "-3.4790326343865455e+38", 10, MPFR_RNDN);
        mpfr_init(r15524);
        mpfr_init(r15525);
        mpfr_init(r15526);
        mpfr_init_set_str(r15527, "10", 10, MPFR_RNDN);
        mpfr_init(r15528);
        mpfr_init(r15529);
        mpfr_init_set_str(r15530, "-4.379674431420248e-198", 10, MPFR_RNDN);
        mpfr_init(r15531);
        mpfr_init_set_str(r15532, "1", 10, MPFR_RNDN);
        mpfr_init(r15533);
        mpfr_init(r15534);
        mpfr_init(r15535);
        mpfr_init(r15536);
        mpfr_init(r15537);
        mpfr_init(r15538);
        mpfr_init(r15539);
        mpfr_init(r15540);
        mpfr_init_set_str(r15541, "4.185543182523104e-238", 10, MPFR_RNDN);
        mpfr_init(r15542);
        mpfr_init(r15543);
        mpfr_init(r15544);
        mpfr_init_set_str(r15545, "1.8039960838892567e+48", 10, MPFR_RNDN);
        mpfr_init(r15546);
        mpfr_init(r15547);
        mpfr_init(r15548);
        mpfr_init(r15549);
        mpfr_init(r15550);
        mpfr_init(r15551);
        mpfr_init(r15552);
}

double f_fm(double re, double im) {
        mpfr_set_d(r15522, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15524, mpfr_cmp(r15522, r15523) <= 0, MPFR_RNDN);
        mpfr_neg(r15525, r15522, MPFR_RNDN);
        mpfr_log(r15526, r15525, MPFR_RNDN);
        ;
        mpfr_log(r15528, r15527, MPFR_RNDN);
        mpfr_div(r15529, r15526, r15528, MPFR_RNDN);
        ;
        mpfr_set_si(r15531, mpfr_cmp(r15522, r15530) <= 0, MPFR_RNDN);
        ;
        mpfr_sqr(r15533, r15522, MPFR_RNDN);
        mpfr_set_d(r15534, im, MPFR_RNDN);
        mpfr_mul(r15535, r15534, r15534, MPFR_RNDN);
        mpfr_add(r15536, r15533, r15535, MPFR_RNDN);
        mpfr_sqrt(r15537, r15536, MPFR_RNDN);
        mpfr_log(r15538, r15537, MPFR_RNDN);
        mpfr_div(r15539, r15528, r15538, MPFR_RNDN);
        mpfr_div(r15540, r15532, r15539, MPFR_RNDN);
        ;
        mpfr_set_si(r15542, mpfr_cmp(r15522, r15541) <= 0, MPFR_RNDN);
        mpfr_log(r15543, r15534, MPFR_RNDN);
        mpfr_div(r15544, r15543, r15528, MPFR_RNDN);
        ;
        mpfr_set_si(r15546, mpfr_cmp(r15522, r15545) <= 0, MPFR_RNDN);
        mpfr_log(r15547, r15522, MPFR_RNDN);
        mpfr_div(r15548, r15547, r15528, MPFR_RNDN);
        if (mpfr_get_si(r15546, MPFR_RNDN)) { mpfr_set(r15549, r15540, MPFR_RNDN); } else { mpfr_set(r15549, r15548, MPFR_RNDN); };
        if (mpfr_get_si(r15542, MPFR_RNDN)) { mpfr_set(r15550, r15544, MPFR_RNDN); } else { mpfr_set(r15550, r15549, MPFR_RNDN); };
        if (mpfr_get_si(r15531, MPFR_RNDN)) { mpfr_set(r15551, r15540, MPFR_RNDN); } else { mpfr_set(r15551, r15550, MPFR_RNDN); };
        if (mpfr_get_si(r15524, MPFR_RNDN)) { mpfr_set(r15552, r15529, MPFR_RNDN); } else { mpfr_set(r15552, r15551, MPFR_RNDN); };
        return mpfr_get_d(r15552, MPFR_RNDN);
}

static mpfr_t r15553, r15554, r15555, r15556, r15557, r15558, r15559, r15560, r15561, r15562, r15563, r15564, r15565, r15566, r15567, r15568, r15569, r15570, r15571, r15572, r15573, r15574, r15575, r15576, r15577, r15578, r15579, r15580, r15581, r15582, r15583;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15553);
        mpfr_init_set_str(r15554, "-3.4790326343865455e+38", 10, MPFR_RNDN);
        mpfr_init(r15555);
        mpfr_init(r15556);
        mpfr_init(r15557);
        mpfr_init_set_str(r15558, "10", 10, MPFR_RNDN);
        mpfr_init(r15559);
        mpfr_init(r15560);
        mpfr_init_set_str(r15561, "-4.379674431420248e-198", 10, MPFR_RNDN);
        mpfr_init(r15562);
        mpfr_init_set_str(r15563, "1", 10, MPFR_RNDN);
        mpfr_init(r15564);
        mpfr_init(r15565);
        mpfr_init(r15566);
        mpfr_init(r15567);
        mpfr_init(r15568);
        mpfr_init(r15569);
        mpfr_init(r15570);
        mpfr_init(r15571);
        mpfr_init_set_str(r15572, "4.185543182523104e-238", 10, MPFR_RNDN);
        mpfr_init(r15573);
        mpfr_init(r15574);
        mpfr_init(r15575);
        mpfr_init_set_str(r15576, "1.8039960838892567e+48", 10, MPFR_RNDN);
        mpfr_init(r15577);
        mpfr_init(r15578);
        mpfr_init(r15579);
        mpfr_init(r15580);
        mpfr_init(r15581);
        mpfr_init(r15582);
        mpfr_init(r15583);
}

double f_dm(double re, double im) {
        mpfr_set_d(r15553, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15555, mpfr_cmp(r15553, r15554) <= 0, MPFR_RNDN);
        mpfr_neg(r15556, r15553, MPFR_RNDN);
        mpfr_log(r15557, r15556, MPFR_RNDN);
        ;
        mpfr_log(r15559, r15558, MPFR_RNDN);
        mpfr_div(r15560, r15557, r15559, MPFR_RNDN);
        ;
        mpfr_set_si(r15562, mpfr_cmp(r15553, r15561) <= 0, MPFR_RNDN);
        ;
        mpfr_sqr(r15564, r15553, MPFR_RNDN);
        mpfr_set_d(r15565, im, MPFR_RNDN);
        mpfr_mul(r15566, r15565, r15565, MPFR_RNDN);
        mpfr_add(r15567, r15564, r15566, MPFR_RNDN);
        mpfr_sqrt(r15568, r15567, MPFR_RNDN);
        mpfr_log(r15569, r15568, MPFR_RNDN);
        mpfr_div(r15570, r15559, r15569, MPFR_RNDN);
        mpfr_div(r15571, r15563, r15570, MPFR_RNDN);
        ;
        mpfr_set_si(r15573, mpfr_cmp(r15553, r15572) <= 0, MPFR_RNDN);
        mpfr_log(r15574, r15565, MPFR_RNDN);
        mpfr_div(r15575, r15574, r15559, MPFR_RNDN);
        ;
        mpfr_set_si(r15577, mpfr_cmp(r15553, r15576) <= 0, MPFR_RNDN);
        mpfr_log(r15578, r15553, MPFR_RNDN);
        mpfr_div(r15579, r15578, r15559, MPFR_RNDN);
        if (mpfr_get_si(r15577, MPFR_RNDN)) { mpfr_set(r15580, r15571, MPFR_RNDN); } else { mpfr_set(r15580, r15579, MPFR_RNDN); };
        if (mpfr_get_si(r15573, MPFR_RNDN)) { mpfr_set(r15581, r15575, MPFR_RNDN); } else { mpfr_set(r15581, r15580, MPFR_RNDN); };
        if (mpfr_get_si(r15562, MPFR_RNDN)) { mpfr_set(r15582, r15571, MPFR_RNDN); } else { mpfr_set(r15582, r15581, MPFR_RNDN); };
        if (mpfr_get_si(r15555, MPFR_RNDN)) { mpfr_set(r15583, r15560, MPFR_RNDN); } else { mpfr_set(r15583, r15582, MPFR_RNDN); };
        return mpfr_get_d(r15583, MPFR_RNDN);
}

