#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 r15530 = re;
        float r15531 = r15530 * r15530;
        float r15532 = im;
        float r15533 = r15532 * r15532;
        float r15534 = r15531 + r15533;
        float r15535 = sqrt(r15534);
        float r15536 = log(r15535);
        float r15537 = 10.0f;
        float r15538 = log(r15537);
        float r15539 = r15536 / r15538;
        return r15539;
}

double f_id(double re, double im) {
        double r15540 = re;
        double r15541 = r15540 * r15540;
        double r15542 = im;
        double r15543 = r15542 * r15542;
        double r15544 = r15541 + r15543;
        double r15545 = sqrt(r15544);
        double r15546 = log(r15545);
        double r15547 = 10.0;
        double r15548 = log(r15547);
        double r15549 = r15546 / r15548;
        return r15549;
}


double f_of(float re, float im) {
        float r15550 = re;
        float r15551 = -3.999543611763718e+108f;
        bool r15552 = r15550 <= r15551;
        float r15553 = -r15550;
        float r15554 = log(r15553);
        float r15555 = 10.0f;
        float r15556 = log(r15555);
        float r15557 = r15554 / r15556;
        float r15558 = 9.995586505648043e-300f;
        bool r15559 = r15550 <= r15558;
        float r15560 = r15550 * r15550;
        float r15561 = im;
        float r15562 = r15561 * r15561;
        float r15563 = r15560 + r15562;
        float r15564 = sqrt(r15563);
        float r15565 = log(r15564);
        float r15566 = r15565 / r15556;
        float r15567 = r15566 * (r15566 * r15566);
        float r15568 = cbrt(r15567);
        float r15569 = 1.6515950423484695e-133f;
        bool r15570 = r15550 <= r15569;
        float r15571 = log(r15561);
        float r15572 = r15571 / r15556;
        float r15573 = 5.469653306184636e+123f;
        bool r15574 = r15550 <= r15573;
        float r15575 = 3.0f;
        float r15576 = 1.0f;
        float r15577 = r15575 / r15576;
        float r15578 = cbrt(r15564);
        float r15579 = log(r15578);
        float r15580 = r15579 / r15556;
        float r15581 = r15577 * r15580;
        float r15582 = cbrt(r15550);
        float r15583 = log(r15582);
        float r15584 = r15556 / r15575;
        float r15585 = r15583 / r15584;
        float r15586 = r15574 ? r15581 : r15585;
        float r15587 = r15570 ? r15572 : r15586;
        float r15588 = r15559 ? r15568 : r15587;
        float r15589 = r15552 ? r15557 : r15588;
        return r15589;
}

double f_od(double re, double im) {
        double r15590 = re;
        double r15591 = -3.999543611763718e+108;
        bool r15592 = r15590 <= r15591;
        double r15593 = -r15590;
        double r15594 = log(r15593);
        double r15595 = 10.0;
        double r15596 = log(r15595);
        double r15597 = r15594 / r15596;
        double r15598 = 9.995586505648043e-300;
        bool r15599 = r15590 <= r15598;
        double r15600 = r15590 * r15590;
        double r15601 = im;
        double r15602 = r15601 * r15601;
        double r15603 = r15600 + r15602;
        double r15604 = sqrt(r15603);
        double r15605 = log(r15604);
        double r15606 = r15605 / r15596;
        double r15607 = r15606 * (r15606 * r15606);
        double r15608 = cbrt(r15607);
        double r15609 = 1.6515950423484695e-133;
        bool r15610 = r15590 <= r15609;
        double r15611 = log(r15601);
        double r15612 = r15611 / r15596;
        double r15613 = 5.469653306184636e+123;
        bool r15614 = r15590 <= r15613;
        double r15615 = 3.0;
        double r15616 = 1.0;
        double r15617 = r15615 / r15616;
        double r15618 = cbrt(r15604);
        double r15619 = log(r15618);
        double r15620 = r15619 / r15596;
        double r15621 = r15617 * r15620;
        double r15622 = cbrt(r15590);
        double r15623 = log(r15622);
        double r15624 = r15596 / r15615;
        double r15625 = r15623 / r15624;
        double r15626 = r15614 ? r15621 : r15625;
        double r15627 = r15610 ? r15612 : r15626;
        double r15628 = r15599 ? r15608 : r15627;
        double r15629 = r15592 ? r15597 : r15628;
        return r15629;
}

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 r15630, r15631, r15632, r15633, r15634, r15635, r15636, r15637, r15638, r15639;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r15630);
        mpfr_init(r15631);
        mpfr_init(r15632);
        mpfr_init(r15633);
        mpfr_init(r15634);
        mpfr_init(r15635);
        mpfr_init(r15636);
        mpfr_init_set_str(r15637, "10", 10, MPFR_RNDN);
        mpfr_init(r15638);
        mpfr_init(r15639);
}

double f_im(double re, double im) {
        mpfr_set_d(r15630, re, MPFR_RNDN);
        mpfr_mul(r15631, r15630, r15630, 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_log(r15636, r15635, MPFR_RNDN);
        ;
        mpfr_log(r15638, r15637, MPFR_RNDN);
        mpfr_div(r15639, r15636, r15638, MPFR_RNDN);
        return mpfr_get_d(r15639, MPFR_RNDN);
}

static mpfr_t r15640, r15641, 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, r15672, r15673, r15674, r15675, r15676, r15677, r15678, r15679;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15640);
        mpfr_init_set_str(r15641, "-3.999543611763718e+108", 10, MPFR_RNDN);
        mpfr_init(r15642);
        mpfr_init(r15643);
        mpfr_init(r15644);
        mpfr_init_set_str(r15645, "10", 10, MPFR_RNDN);
        mpfr_init(r15646);
        mpfr_init(r15647);
        mpfr_init_set_str(r15648, "9.995586505648043e-300", 10, MPFR_RNDN);
        mpfr_init(r15649);
        mpfr_init(r15650);
        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_set_str(r15659, "1.6515950423484695e-133", 10, MPFR_RNDN);
        mpfr_init(r15660);
        mpfr_init(r15661);
        mpfr_init(r15662);
        mpfr_init_set_str(r15663, "5.469653306184636e+123", 10, MPFR_RNDN);
        mpfr_init(r15664);
        mpfr_init_set_str(r15665, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r15666, "1", 10, MPFR_RNDN);
        mpfr_init(r15667);
        mpfr_init(r15668);
        mpfr_init(r15669);
        mpfr_init(r15670);
        mpfr_init(r15671);
        mpfr_init(r15672);
        mpfr_init(r15673);
        mpfr_init(r15674);
        mpfr_init(r15675);
        mpfr_init(r15676);
        mpfr_init(r15677);
        mpfr_init(r15678);
        mpfr_init(r15679);
}

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

static mpfr_t r15680, r15681, r15682, r15683, r15684, r15685, r15686, r15687, r15688, r15689, r15690, r15691, r15692, r15693, r15694, r15695, r15696, r15697, r15698, r15699, r15700, r15701, r15702, r15703, r15704, r15705, r15706, r15707, r15708, r15709, r15710, r15711, r15712, r15713, r15714, r15715, r15716, r15717, r15718, r15719;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15680);
        mpfr_init_set_str(r15681, "-3.999543611763718e+108", 10, MPFR_RNDN);
        mpfr_init(r15682);
        mpfr_init(r15683);
        mpfr_init(r15684);
        mpfr_init_set_str(r15685, "10", 10, MPFR_RNDN);
        mpfr_init(r15686);
        mpfr_init(r15687);
        mpfr_init_set_str(r15688, "9.995586505648043e-300", 10, MPFR_RNDN);
        mpfr_init(r15689);
        mpfr_init(r15690);
        mpfr_init(r15691);
        mpfr_init(r15692);
        mpfr_init(r15693);
        mpfr_init(r15694);
        mpfr_init(r15695);
        mpfr_init(r15696);
        mpfr_init(r15697);
        mpfr_init(r15698);
        mpfr_init_set_str(r15699, "1.6515950423484695e-133", 10, MPFR_RNDN);
        mpfr_init(r15700);
        mpfr_init(r15701);
        mpfr_init(r15702);
        mpfr_init_set_str(r15703, "5.469653306184636e+123", 10, MPFR_RNDN);
        mpfr_init(r15704);
        mpfr_init_set_str(r15705, "3", 10, MPFR_RNDN);
        mpfr_init_set_str(r15706, "1", 10, MPFR_RNDN);
        mpfr_init(r15707);
        mpfr_init(r15708);
        mpfr_init(r15709);
        mpfr_init(r15710);
        mpfr_init(r15711);
        mpfr_init(r15712);
        mpfr_init(r15713);
        mpfr_init(r15714);
        mpfr_init(r15715);
        mpfr_init(r15716);
        mpfr_init(r15717);
        mpfr_init(r15718);
        mpfr_init(r15719);
}

double f_dm(double re, double im) {
        mpfr_set_d(r15680, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15682, mpfr_cmp(r15680, r15681) <= 0, MPFR_RNDN);
        mpfr_neg(r15683, r15680, MPFR_RNDN);
        mpfr_log(r15684, r15683, MPFR_RNDN);
        ;
        mpfr_log(r15686, r15685, MPFR_RNDN);
        mpfr_div(r15687, r15684, r15686, MPFR_RNDN);
        ;
        mpfr_set_si(r15689, mpfr_cmp(r15680, r15688) <= 0, MPFR_RNDN);
        mpfr_sqr(r15690, r15680, MPFR_RNDN);
        mpfr_set_d(r15691, im, MPFR_RNDN);
        mpfr_mul(r15692, r15691, r15691, MPFR_RNDN);
        mpfr_add(r15693, r15690, r15692, MPFR_RNDN);
        mpfr_sqrt(r15694, r15693, MPFR_RNDN);
        mpfr_log(r15695, r15694, MPFR_RNDN);
        mpfr_div(r15696, r15695, r15686, MPFR_RNDN);
        mpfr_mul(r15697, r15696, r15696, MPFR_RNDN); mpfr_mul(r15697, r15697, r15696, MPFR_RNDN);
        mpfr_cbrt(r15698, r15697, MPFR_RNDN);
        ;
        mpfr_set_si(r15700, mpfr_cmp(r15680, r15699) <= 0, MPFR_RNDN);
        mpfr_log(r15701, r15691, MPFR_RNDN);
        mpfr_div(r15702, r15701, r15686, MPFR_RNDN);
        ;
        mpfr_set_si(r15704, mpfr_cmp(r15680, r15703) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_div(r15707, r15705, r15706, MPFR_RNDN);
        mpfr_cbrt(r15708, r15694, MPFR_RNDN);
        mpfr_log(r15709, r15708, MPFR_RNDN);
        mpfr_div(r15710, r15709, r15686, MPFR_RNDN);
        mpfr_mul(r15711, r15707, r15710, MPFR_RNDN);
        mpfr_cbrt(r15712, r15680, MPFR_RNDN);
        mpfr_log(r15713, r15712, MPFR_RNDN);
        mpfr_div(r15714, r15686, r15705, MPFR_RNDN);
        mpfr_div(r15715, r15713, r15714, MPFR_RNDN);
        if (mpfr_get_si(r15704, MPFR_RNDN)) { mpfr_set(r15716, r15711, MPFR_RNDN); } else { mpfr_set(r15716, r15715, MPFR_RNDN); };
        if (mpfr_get_si(r15700, MPFR_RNDN)) { mpfr_set(r15717, r15702, MPFR_RNDN); } else { mpfr_set(r15717, r15716, MPFR_RNDN); };
        if (mpfr_get_si(r15689, MPFR_RNDN)) { mpfr_set(r15718, r15698, MPFR_RNDN); } else { mpfr_set(r15718, r15717, MPFR_RNDN); };
        if (mpfr_get_si(r15682, MPFR_RNDN)) { mpfr_set(r15719, r15687, MPFR_RNDN); } else { mpfr_set(r15719, r15718, MPFR_RNDN); };
        return mpfr_get_d(r15719, MPFR_RNDN);
}

