#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 r15498 = re;
        float r15499 = r15498 * r15498;
        float r15500 = im;
        float r15501 = r15500 * r15500;
        float r15502 = r15499 + r15501;
        float r15503 = sqrt(r15502);
        float r15504 = log(r15503);
        float r15505 = 10.0f;
        float r15506 = log(r15505);
        float r15507 = r15504 / r15506;
        return r15507;
}

double f_id(double re, double im) {
        double r15508 = re;
        double r15509 = r15508 * r15508;
        double r15510 = im;
        double r15511 = r15510 * r15510;
        double r15512 = r15509 + r15511;
        double r15513 = sqrt(r15512);
        double r15514 = log(r15513);
        double r15515 = 10.0;
        double r15516 = log(r15515);
        double r15517 = r15514 / r15516;
        return r15517;
}


double f_of(float re, float im) {
        float r15518 = re;
        float r15519 = -2.2370754592070436e+105f;
        bool r15520 = r15518 <= r15519;
        float r15521 = -r15518;
        float r15522 = log(r15521);
        float r15523 = 10.0f;
        float r15524 = log(r15523);
        float r15525 = r15522 / r15524;
        float r15526 = -1.5608708420993077e-235f;
        bool r15527 = r15518 <= r15526;
        float r15528 = r15518 * r15518;
        float r15529 = im;
        float r15530 = r15529 * r15529;
        float r15531 = r15528 + r15530;
        float r15532 = sqrt(r15531);
        float r15533 = cbrt(r15532);
        float r15534 = r15533 * (r15533 * r15533);
        float r15535 = log(r15534);
        float r15536 = r15535 / r15524;
        float r15537 = -2.3665634646026902e-293f;
        bool r15538 = r15518 <= r15537;
        float r15539 = log(r15529);
        float r15540 = r15539 / r15524;
        float r15541 = 2.56976209479494e+109f;
        bool r15542 = r15518 <= r15541;
        float r15543 = log(r15518);
        float r15544 = r15543 / r15524;
        float r15545 = r15542 ? r15536 : r15544;
        float r15546 = r15538 ? r15540 : r15545;
        float r15547 = r15527 ? r15536 : r15546;
        float r15548 = r15520 ? r15525 : r15547;
        return r15548;
}

double f_od(double re, double im) {
        double r15549 = re;
        double r15550 = -2.2370754592070436e+105;
        bool r15551 = r15549 <= r15550;
        double r15552 = -r15549;
        double r15553 = log(r15552);
        double r15554 = 10.0;
        double r15555 = log(r15554);
        double r15556 = r15553 / r15555;
        double r15557 = -1.5608708420993077e-235;
        bool r15558 = r15549 <= r15557;
        double r15559 = r15549 * r15549;
        double r15560 = im;
        double r15561 = r15560 * r15560;
        double r15562 = r15559 + r15561;
        double r15563 = sqrt(r15562);
        double r15564 = cbrt(r15563);
        double r15565 = r15564 * (r15564 * r15564);
        double r15566 = log(r15565);
        double r15567 = r15566 / r15555;
        double r15568 = -2.3665634646026902e-293;
        bool r15569 = r15549 <= r15568;
        double r15570 = log(r15560);
        double r15571 = r15570 / r15555;
        double r15572 = 2.56976209479494e+109;
        bool r15573 = r15549 <= r15572;
        double r15574 = log(r15549);
        double r15575 = r15574 / r15555;
        double r15576 = r15573 ? r15567 : r15575;
        double r15577 = r15569 ? r15571 : r15576;
        double r15578 = r15558 ? r15567 : r15577;
        double r15579 = r15551 ? r15556 : r15578;
        return r15579;
}

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 r15580, r15581, r15582, r15583, r15584, r15585, r15586, r15587, r15588, r15589;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r15580);
        mpfr_init(r15581);
        mpfr_init(r15582);
        mpfr_init(r15583);
        mpfr_init(r15584);
        mpfr_init(r15585);
        mpfr_init(r15586);
        mpfr_init_set_str(r15587, "10", 10, MPFR_RNDN);
        mpfr_init(r15588);
        mpfr_init(r15589);
}

double f_im(double re, double im) {
        mpfr_set_d(r15580, re, MPFR_RNDN);
        mpfr_mul(r15581, r15580, r15580, MPFR_RNDN);
        mpfr_set_d(r15582, im, MPFR_RNDN);
        mpfr_mul(r15583, r15582, r15582, MPFR_RNDN);
        mpfr_add(r15584, r15581, r15583, MPFR_RNDN);
        mpfr_sqrt(r15585, r15584, MPFR_RNDN);
        mpfr_log(r15586, r15585, MPFR_RNDN);
        ;
        mpfr_log(r15588, r15587, MPFR_RNDN);
        mpfr_div(r15589, r15586, r15588, MPFR_RNDN);
        return mpfr_get_d(r15589, MPFR_RNDN);
}

static mpfr_t r15590, r15591, r15592, r15593, r15594, r15595, r15596, r15597, r15598, r15599, r15600, r15601, r15602, r15603, r15604, r15605, r15606, r15607, r15608, r15609, r15610, r15611, r15612, r15613, r15614, r15615, r15616, r15617, r15618, r15619, r15620;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15590);
        mpfr_init_set_str(r15591, "-2.2370754592070436e+105", 10, MPFR_RNDN);
        mpfr_init(r15592);
        mpfr_init(r15593);
        mpfr_init(r15594);
        mpfr_init_set_str(r15595, "10", 10, MPFR_RNDN);
        mpfr_init(r15596);
        mpfr_init(r15597);
        mpfr_init_set_str(r15598, "-1.5608708420993077e-235", 10, MPFR_RNDN);
        mpfr_init(r15599);
        mpfr_init(r15600);
        mpfr_init(r15601);
        mpfr_init(r15602);
        mpfr_init(r15603);
        mpfr_init(r15604);
        mpfr_init(r15605);
        mpfr_init(r15606);
        mpfr_init(r15607);
        mpfr_init(r15608);
        mpfr_init_set_str(r15609, "-2.3665634646026902e-293", 10, MPFR_RNDN);
        mpfr_init(r15610);
        mpfr_init(r15611);
        mpfr_init(r15612);
        mpfr_init_set_str(r15613, "2.56976209479494e+109", 10, MPFR_RNDN);
        mpfr_init(r15614);
        mpfr_init(r15615);
        mpfr_init(r15616);
        mpfr_init(r15617);
        mpfr_init(r15618);
        mpfr_init(r15619);
        mpfr_init(r15620);
}

double f_fm(double re, double im) {
        mpfr_set_d(r15590, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15592, mpfr_cmp(r15590, r15591) <= 0, MPFR_RNDN);
        mpfr_neg(r15593, r15590, MPFR_RNDN);
        mpfr_log(r15594, r15593, MPFR_RNDN);
        ;
        mpfr_log(r15596, r15595, MPFR_RNDN);
        mpfr_div(r15597, r15594, r15596, MPFR_RNDN);
        ;
        mpfr_set_si(r15599, mpfr_cmp(r15590, r15598) <= 0, MPFR_RNDN);
        mpfr_sqr(r15600, r15590, MPFR_RNDN);
        mpfr_set_d(r15601, im, MPFR_RNDN);
        mpfr_mul(r15602, r15601, r15601, MPFR_RNDN);
        mpfr_add(r15603, r15600, r15602, MPFR_RNDN);
        mpfr_sqrt(r15604, r15603, MPFR_RNDN);
        mpfr_cbrt(r15605, r15604, MPFR_RNDN);
        mpfr_mul(r15606, r15605, r15605, MPFR_RNDN); mpfr_mul(r15606, r15606, r15605, MPFR_RNDN);
        mpfr_log(r15607, r15606, MPFR_RNDN);
        mpfr_div(r15608, r15607, r15596, MPFR_RNDN);
        ;
        mpfr_set_si(r15610, mpfr_cmp(r15590, r15609) <= 0, MPFR_RNDN);
        mpfr_log(r15611, r15601, MPFR_RNDN);
        mpfr_div(r15612, r15611, r15596, MPFR_RNDN);
        ;
        mpfr_set_si(r15614, mpfr_cmp(r15590, r15613) <= 0, MPFR_RNDN);
        mpfr_log(r15615, r15590, MPFR_RNDN);
        mpfr_div(r15616, r15615, r15596, MPFR_RNDN);
        if (mpfr_get_si(r15614, MPFR_RNDN)) { mpfr_set(r15617, r15608, MPFR_RNDN); } else { mpfr_set(r15617, r15616, MPFR_RNDN); };
        if (mpfr_get_si(r15610, MPFR_RNDN)) { mpfr_set(r15618, r15612, MPFR_RNDN); } else { mpfr_set(r15618, r15617, MPFR_RNDN); };
        if (mpfr_get_si(r15599, MPFR_RNDN)) { mpfr_set(r15619, r15608, MPFR_RNDN); } else { mpfr_set(r15619, r15618, MPFR_RNDN); };
        if (mpfr_get_si(r15592, MPFR_RNDN)) { mpfr_set(r15620, r15597, MPFR_RNDN); } else { mpfr_set(r15620, r15619, MPFR_RNDN); };
        return mpfr_get_d(r15620, MPFR_RNDN);
}

static mpfr_t r15621, r15622, r15623, r15624, r15625, r15626, r15627, r15628, r15629, r15630, r15631, r15632, r15633, r15634, r15635, r15636, r15637, r15638, r15639, r15640, r15641, r15642, r15643, r15644, r15645, r15646, r15647, r15648, r15649, r15650, r15651;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15621);
        mpfr_init_set_str(r15622, "-2.2370754592070436e+105", 10, MPFR_RNDN);
        mpfr_init(r15623);
        mpfr_init(r15624);
        mpfr_init(r15625);
        mpfr_init_set_str(r15626, "10", 10, MPFR_RNDN);
        mpfr_init(r15627);
        mpfr_init(r15628);
        mpfr_init_set_str(r15629, "-1.5608708420993077e-235", 10, MPFR_RNDN);
        mpfr_init(r15630);
        mpfr_init(r15631);
        mpfr_init(r15632);
        mpfr_init(r15633);
        mpfr_init(r15634);
        mpfr_init(r15635);
        mpfr_init(r15636);
        mpfr_init(r15637);
        mpfr_init(r15638);
        mpfr_init(r15639);
        mpfr_init_set_str(r15640, "-2.3665634646026902e-293", 10, MPFR_RNDN);
        mpfr_init(r15641);
        mpfr_init(r15642);
        mpfr_init(r15643);
        mpfr_init_set_str(r15644, "2.56976209479494e+109", 10, MPFR_RNDN);
        mpfr_init(r15645);
        mpfr_init(r15646);
        mpfr_init(r15647);
        mpfr_init(r15648);
        mpfr_init(r15649);
        mpfr_init(r15650);
        mpfr_init(r15651);
}

double f_dm(double re, double im) {
        mpfr_set_d(r15621, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15623, mpfr_cmp(r15621, r15622) <= 0, MPFR_RNDN);
        mpfr_neg(r15624, r15621, MPFR_RNDN);
        mpfr_log(r15625, r15624, MPFR_RNDN);
        ;
        mpfr_log(r15627, r15626, MPFR_RNDN);
        mpfr_div(r15628, r15625, r15627, MPFR_RNDN);
        ;
        mpfr_set_si(r15630, mpfr_cmp(r15621, r15629) <= 0, MPFR_RNDN);
        mpfr_sqr(r15631, r15621, MPFR_RNDN);
        mpfr_set_d(r15632, im, MPFR_RNDN);
        mpfr_mul(r15633, r15632, r15632, MPFR_RNDN);
        mpfr_add(r15634, r15631, r15633, MPFR_RNDN);
        mpfr_sqrt(r15635, r15634, MPFR_RNDN);
        mpfr_cbrt(r15636, r15635, MPFR_RNDN);
        mpfr_mul(r15637, r15636, r15636, MPFR_RNDN); mpfr_mul(r15637, r15637, r15636, MPFR_RNDN);
        mpfr_log(r15638, r15637, MPFR_RNDN);
        mpfr_div(r15639, r15638, r15627, MPFR_RNDN);
        ;
        mpfr_set_si(r15641, mpfr_cmp(r15621, r15640) <= 0, MPFR_RNDN);
        mpfr_log(r15642, r15632, MPFR_RNDN);
        mpfr_div(r15643, r15642, r15627, MPFR_RNDN);
        ;
        mpfr_set_si(r15645, mpfr_cmp(r15621, r15644) <= 0, MPFR_RNDN);
        mpfr_log(r15646, r15621, MPFR_RNDN);
        mpfr_div(r15647, r15646, r15627, MPFR_RNDN);
        if (mpfr_get_si(r15645, MPFR_RNDN)) { mpfr_set(r15648, r15639, MPFR_RNDN); } else { mpfr_set(r15648, r15647, MPFR_RNDN); };
        if (mpfr_get_si(r15641, MPFR_RNDN)) { mpfr_set(r15649, r15643, MPFR_RNDN); } else { mpfr_set(r15649, r15648, MPFR_RNDN); };
        if (mpfr_get_si(r15630, MPFR_RNDN)) { mpfr_set(r15650, r15639, MPFR_RNDN); } else { mpfr_set(r15650, r15649, MPFR_RNDN); };
        if (mpfr_get_si(r15623, MPFR_RNDN)) { mpfr_set(r15651, r15628, MPFR_RNDN); } else { mpfr_set(r15651, r15650, MPFR_RNDN); };
        return mpfr_get_d(r15651, MPFR_RNDN);
}

