#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 r15522 = re;
        float r15523 = r15522 * r15522;
        float r15524 = im;
        float r15525 = r15524 * r15524;
        float r15526 = r15523 + r15525;
        float r15527 = sqrt(r15526);
        float r15528 = log(r15527);
        float r15529 = 10.0f;
        float r15530 = log(r15529);
        float r15531 = r15528 / r15530;
        return r15531;
}

double f_id(double re, double im) {
        double r15532 = re;
        double r15533 = r15532 * r15532;
        double r15534 = im;
        double r15535 = r15534 * r15534;
        double r15536 = r15533 + r15535;
        double r15537 = sqrt(r15536);
        double r15538 = log(r15537);
        double r15539 = 10.0;
        double r15540 = log(r15539);
        double r15541 = r15538 / r15540;
        return r15541;
}


double f_of(float re, float im) {
        float r15542 = re;
        float r15543 = -7.515261356325578e+104f;
        bool r15544 = r15542 <= r15543;
        float r15545 = -r15542;
        float r15546 = log(r15545);
        float r15547 = 10.0f;
        float r15548 = log(r15547);
        float r15549 = r15546 / r15548;
        float r15550 = 4.3827392081136433e+102f;
        bool r15551 = r15542 <= r15550;
        float r15552 = r15542 * r15542;
        float r15553 = im;
        float r15554 = r15553 * r15553;
        float r15555 = r15552 + r15554;
        float r15556 = sqrt(r15555);
        float r15557 = log(r15556);
        float r15558 = exp(r15557);
        float r15559 = cbrt(r15558);
        float r15560 = log(r15559);
        float r15561 = exp(r15560);
        float r15562 = r15561 * (r15561 * r15561);
        float r15563 = log(r15562);
        float r15564 = r15563 / r15548;
        float r15565 = 3.0f;
        float r15566 = r15565 / r15548;
        float r15567 = cbrt(r15542);
        float r15568 = log(r15567);
        float r15569 = r15566 * r15568;
        float r15570 = r15551 ? r15564 : r15569;
        float r15571 = r15544 ? r15549 : r15570;
        return r15571;
}

double f_od(double re, double im) {
        double r15572 = re;
        double r15573 = -7.515261356325578e+104;
        bool r15574 = r15572 <= r15573;
        double r15575 = -r15572;
        double r15576 = log(r15575);
        double r15577 = 10.0;
        double r15578 = log(r15577);
        double r15579 = r15576 / r15578;
        double r15580 = 4.3827392081136433e+102;
        bool r15581 = r15572 <= r15580;
        double r15582 = r15572 * r15572;
        double r15583 = im;
        double r15584 = r15583 * r15583;
        double r15585 = r15582 + r15584;
        double r15586 = sqrt(r15585);
        double r15587 = log(r15586);
        double r15588 = exp(r15587);
        double r15589 = cbrt(r15588);
        double r15590 = log(r15589);
        double r15591 = exp(r15590);
        double r15592 = r15591 * (r15591 * r15591);
        double r15593 = log(r15592);
        double r15594 = r15593 / r15578;
        double r15595 = 3.0;
        double r15596 = r15595 / r15578;
        double r15597 = cbrt(r15572);
        double r15598 = log(r15597);
        double r15599 = r15596 * r15598;
        double r15600 = r15581 ? r15594 : r15599;
        double r15601 = r15574 ? r15579 : r15600;
        return r15601;
}

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 r15602, r15603, r15604, r15605, r15606, r15607, r15608, r15609, r15610, r15611;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        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, "10", 10, MPFR_RNDN);
        mpfr_init(r15610);
        mpfr_init(r15611);
}

double f_im(double re, double im) {
        mpfr_set_d(r15602, re, MPFR_RNDN);
        mpfr_mul(r15603, r15602, r15602, MPFR_RNDN);
        mpfr_set_d(r15604, im, MPFR_RNDN);
        mpfr_mul(r15605, r15604, r15604, MPFR_RNDN);
        mpfr_add(r15606, r15603, r15605, MPFR_RNDN);
        mpfr_sqrt(r15607, r15606, MPFR_RNDN);
        mpfr_log(r15608, r15607, MPFR_RNDN);
        ;
        mpfr_log(r15610, r15609, MPFR_RNDN);
        mpfr_div(r15611, r15608, r15610, MPFR_RNDN);
        return mpfr_get_d(r15611, MPFR_RNDN);
}

static mpfr_t r15612, r15613, r15614, r15615, r15616, r15617, r15618, r15619, r15620, r15621, r15622, r15623, r15624, r15625, r15626, r15627, r15628, r15629, r15630, r15631, r15632, r15633, r15634, r15635, r15636, r15637, r15638, r15639, r15640, r15641;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15612);
        mpfr_init_set_str(r15613, "-7.515261356325578e+104", 10, MPFR_RNDN);
        mpfr_init(r15614);
        mpfr_init(r15615);
        mpfr_init(r15616);
        mpfr_init_set_str(r15617, "10", 10, MPFR_RNDN);
        mpfr_init(r15618);
        mpfr_init(r15619);
        mpfr_init_set_str(r15620, "4.3827392081136433e+102", 10, MPFR_RNDN);
        mpfr_init(r15621);
        mpfr_init(r15622);
        mpfr_init(r15623);
        mpfr_init(r15624);
        mpfr_init(r15625);
        mpfr_init(r15626);
        mpfr_init(r15627);
        mpfr_init(r15628);
        mpfr_init(r15629);
        mpfr_init(r15630);
        mpfr_init(r15631);
        mpfr_init(r15632);
        mpfr_init(r15633);
        mpfr_init(r15634);
        mpfr_init_set_str(r15635, "3", 10, MPFR_RNDN);
        mpfr_init(r15636);
        mpfr_init(r15637);
        mpfr_init(r15638);
        mpfr_init(r15639);
        mpfr_init(r15640);
        mpfr_init(r15641);
}

double f_fm(double re, double im) {
        mpfr_set_d(r15612, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15614, mpfr_cmp(r15612, r15613) <= 0, MPFR_RNDN);
        mpfr_neg(r15615, r15612, MPFR_RNDN);
        mpfr_log(r15616, r15615, MPFR_RNDN);
        ;
        mpfr_log(r15618, r15617, MPFR_RNDN);
        mpfr_div(r15619, r15616, r15618, MPFR_RNDN);
        ;
        mpfr_set_si(r15621, mpfr_cmp(r15612, r15620) <= 0, MPFR_RNDN);
        mpfr_sqr(r15622, r15612, MPFR_RNDN);
        mpfr_set_d(r15623, im, MPFR_RNDN);
        mpfr_mul(r15624, r15623, r15623, MPFR_RNDN);
        mpfr_add(r15625, r15622, r15624, MPFR_RNDN);
        mpfr_sqrt(r15626, r15625, MPFR_RNDN);
        mpfr_log(r15627, r15626, MPFR_RNDN);
        mpfr_exp(r15628, r15627, MPFR_RNDN);
        mpfr_cbrt(r15629, r15628, MPFR_RNDN);
        mpfr_log(r15630, r15629, MPFR_RNDN);
        mpfr_exp(r15631, r15630, MPFR_RNDN);
        mpfr_mul(r15632, r15631, r15631, MPFR_RNDN); mpfr_mul(r15632, r15632, r15631, MPFR_RNDN);
        mpfr_log(r15633, r15632, MPFR_RNDN);
        mpfr_div(r15634, r15633, r15618, MPFR_RNDN);
        ;
        mpfr_div(r15636, r15635, r15618, MPFR_RNDN);
        mpfr_cbrt(r15637, r15612, MPFR_RNDN);
        mpfr_log(r15638, r15637, MPFR_RNDN);
        mpfr_mul(r15639, r15636, r15638, MPFR_RNDN);
        if (mpfr_get_si(r15621, MPFR_RNDN)) { mpfr_set(r15640, r15634, MPFR_RNDN); } else { mpfr_set(r15640, r15639, MPFR_RNDN); };
        if (mpfr_get_si(r15614, MPFR_RNDN)) { mpfr_set(r15641, r15619, MPFR_RNDN); } else { mpfr_set(r15641, r15640, MPFR_RNDN); };
        return mpfr_get_d(r15641, MPFR_RNDN);
}

static mpfr_t r15642, r15643, r15644, r15645, r15646, r15647, r15648, r15649, r15650, r15651, r15652, r15653, r15654, r15655, r15656, r15657, r15658, r15659, r15660, r15661, r15662, r15663, r15664, r15665, r15666, r15667, r15668, r15669, r15670, r15671;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15642);
        mpfr_init_set_str(r15643, "-7.515261356325578e+104", 10, MPFR_RNDN);
        mpfr_init(r15644);
        mpfr_init(r15645);
        mpfr_init(r15646);
        mpfr_init_set_str(r15647, "10", 10, MPFR_RNDN);
        mpfr_init(r15648);
        mpfr_init(r15649);
        mpfr_init_set_str(r15650, "4.3827392081136433e+102", 10, MPFR_RNDN);
        mpfr_init(r15651);
        mpfr_init(r15652);
        mpfr_init(r15653);
        mpfr_init(r15654);
        mpfr_init(r15655);
        mpfr_init(r15656);
        mpfr_init(r15657);
        mpfr_init(r15658);
        mpfr_init(r15659);
        mpfr_init(r15660);
        mpfr_init(r15661);
        mpfr_init(r15662);
        mpfr_init(r15663);
        mpfr_init(r15664);
        mpfr_init_set_str(r15665, "3", 10, MPFR_RNDN);
        mpfr_init(r15666);
        mpfr_init(r15667);
        mpfr_init(r15668);
        mpfr_init(r15669);
        mpfr_init(r15670);
        mpfr_init(r15671);
}

double f_dm(double re, double im) {
        mpfr_set_d(r15642, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15644, mpfr_cmp(r15642, r15643) <= 0, MPFR_RNDN);
        mpfr_neg(r15645, r15642, MPFR_RNDN);
        mpfr_log(r15646, r15645, MPFR_RNDN);
        ;
        mpfr_log(r15648, r15647, MPFR_RNDN);
        mpfr_div(r15649, r15646, r15648, MPFR_RNDN);
        ;
        mpfr_set_si(r15651, mpfr_cmp(r15642, r15650) <= 0, MPFR_RNDN);
        mpfr_sqr(r15652, r15642, MPFR_RNDN);
        mpfr_set_d(r15653, im, MPFR_RNDN);
        mpfr_mul(r15654, r15653, r15653, MPFR_RNDN);
        mpfr_add(r15655, r15652, r15654, MPFR_RNDN);
        mpfr_sqrt(r15656, r15655, MPFR_RNDN);
        mpfr_log(r15657, r15656, MPFR_RNDN);
        mpfr_exp(r15658, r15657, MPFR_RNDN);
        mpfr_cbrt(r15659, r15658, MPFR_RNDN);
        mpfr_log(r15660, r15659, MPFR_RNDN);
        mpfr_exp(r15661, r15660, MPFR_RNDN);
        mpfr_mul(r15662, r15661, r15661, MPFR_RNDN); mpfr_mul(r15662, r15662, r15661, MPFR_RNDN);
        mpfr_log(r15663, r15662, MPFR_RNDN);
        mpfr_div(r15664, r15663, r15648, MPFR_RNDN);
        ;
        mpfr_div(r15666, r15665, r15648, MPFR_RNDN);
        mpfr_cbrt(r15667, r15642, MPFR_RNDN);
        mpfr_log(r15668, r15667, MPFR_RNDN);
        mpfr_mul(r15669, r15666, r15668, MPFR_RNDN);
        if (mpfr_get_si(r15651, MPFR_RNDN)) { mpfr_set(r15670, r15664, MPFR_RNDN); } else { mpfr_set(r15670, r15669, MPFR_RNDN); };
        if (mpfr_get_si(r15644, MPFR_RNDN)) { mpfr_set(r15671, r15649, MPFR_RNDN); } else { mpfr_set(r15671, r15670, MPFR_RNDN); };
        return mpfr_get_d(r15671, MPFR_RNDN);
}

