#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 r15538 = re;
        float r15539 = r15538 * r15538;
        float r15540 = im;
        float r15541 = r15540 * r15540;
        float r15542 = r15539 + r15541;
        float r15543 = sqrt(r15542);
        float r15544 = log(r15543);
        float r15545 = 10.0f;
        float r15546 = log(r15545);
        float r15547 = r15544 / r15546;
        return r15547;
}

double f_id(double re, double im) {
        double r15548 = re;
        double r15549 = r15548 * r15548;
        double r15550 = im;
        double r15551 = r15550 * r15550;
        double r15552 = r15549 + r15551;
        double r15553 = sqrt(r15552);
        double r15554 = log(r15553);
        double r15555 = 10.0;
        double r15556 = log(r15555);
        double r15557 = r15554 / r15556;
        return r15557;
}


double f_of(float re, float im) {
        float r15558 = re;
        float r15559 = -5.001969231040948e+151f;
        bool r15560 = r15558 <= r15559;
        float r15561 = -r15558;
        float r15562 = log(r15561);
        float r15563 = 10.0f;
        float r15564 = log(r15563);
        float r15565 = r15562 / r15564;
        float r15566 = 6.526828139904173e-268f;
        bool r15567 = r15558 <= r15566;
        float r15568 = 1.0f;
        float r15569 = r15558 * r15558;
        float r15570 = im;
        float r15571 = r15570 * r15570;
        float r15572 = r15569 + r15571;
        float r15573 = sqrt(r15572);
        float r15574 = log(r15573);
        float r15575 = r15564 / r15574;
        float r15576 = r15568 / r15575;
        float r15577 = 3.51720187277729e-183f;
        bool r15578 = r15558 <= r15577;
        float r15579 = log(r15570);
        float r15580 = r15579 / r15564;
        float r15581 = 3.0634872044683813e+39f;
        bool r15582 = r15558 <= r15581;
        float r15583 = log(r15558);
        float r15584 = r15583 / r15564;
        float r15585 = r15582 ? r15576 : r15584;
        float r15586 = r15578 ? r15580 : r15585;
        float r15587 = r15567 ? r15576 : r15586;
        float r15588 = r15560 ? r15565 : r15587;
        return r15588;
}

double f_od(double re, double im) {
        double r15589 = re;
        double r15590 = -5.001969231040948e+151;
        bool r15591 = r15589 <= r15590;
        double r15592 = -r15589;
        double r15593 = log(r15592);
        double r15594 = 10.0;
        double r15595 = log(r15594);
        double r15596 = r15593 / r15595;
        double r15597 = 6.526828139904173e-268;
        bool r15598 = r15589 <= r15597;
        double r15599 = 1.0;
        double r15600 = r15589 * r15589;
        double r15601 = im;
        double r15602 = r15601 * r15601;
        double r15603 = r15600 + r15602;
        double r15604 = sqrt(r15603);
        double r15605 = log(r15604);
        double r15606 = r15595 / r15605;
        double r15607 = r15599 / r15606;
        double r15608 = 3.51720187277729e-183;
        bool r15609 = r15589 <= r15608;
        double r15610 = log(r15601);
        double r15611 = r15610 / r15595;
        double r15612 = 3.0634872044683813e+39;
        bool r15613 = r15589 <= r15612;
        double r15614 = log(r15589);
        double r15615 = r15614 / r15595;
        double r15616 = r15613 ? r15607 : r15615;
        double r15617 = r15609 ? r15611 : r15616;
        double r15618 = r15598 ? r15607 : r15617;
        double r15619 = r15591 ? r15596 : r15618;
        return r15619;
}

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 r15620, r15621, r15622, r15623, r15624, r15625, r15626, r15627, r15628, r15629;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r15620);
        mpfr_init(r15621);
        mpfr_init(r15622);
        mpfr_init(r15623);
        mpfr_init(r15624);
        mpfr_init(r15625);
        mpfr_init(r15626);
        mpfr_init_set_str(r15627, "10", 10, MPFR_RNDN);
        mpfr_init(r15628);
        mpfr_init(r15629);
}

double f_im(double re, double im) {
        mpfr_set_d(r15620, re, MPFR_RNDN);
        mpfr_mul(r15621, r15620, r15620, MPFR_RNDN);
        mpfr_set_d(r15622, im, MPFR_RNDN);
        mpfr_mul(r15623, r15622, r15622, MPFR_RNDN);
        mpfr_add(r15624, r15621, r15623, MPFR_RNDN);
        mpfr_sqrt(r15625, r15624, MPFR_RNDN);
        mpfr_log(r15626, r15625, MPFR_RNDN);
        ;
        mpfr_log(r15628, r15627, MPFR_RNDN);
        mpfr_div(r15629, r15626, r15628, MPFR_RNDN);
        return mpfr_get_d(r15629, MPFR_RNDN);
}

static mpfr_t r15630, r15631, r15632, r15633, r15634, r15635, r15636, r15637, r15638, r15639, r15640, r15641, r15642, r15643, r15644, r15645, r15646, r15647, r15648, r15649, r15650, r15651, r15652, r15653, r15654, r15655, r15656, r15657, r15658, r15659, r15660;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15630);
        mpfr_init_set_str(r15631, "-5.001969231040948e+151", 10, MPFR_RNDN);
        mpfr_init(r15632);
        mpfr_init(r15633);
        mpfr_init(r15634);
        mpfr_init_set_str(r15635, "10", 10, MPFR_RNDN);
        mpfr_init(r15636);
        mpfr_init(r15637);
        mpfr_init_set_str(r15638, "6.526828139904173e-268", 10, MPFR_RNDN);
        mpfr_init(r15639);
        mpfr_init_set_str(r15640, "1", 10, MPFR_RNDN);
        mpfr_init(r15641);
        mpfr_init(r15642);
        mpfr_init(r15643);
        mpfr_init(r15644);
        mpfr_init(r15645);
        mpfr_init(r15646);
        mpfr_init(r15647);
        mpfr_init(r15648);
        mpfr_init_set_str(r15649, "3.51720187277729e-183", 10, MPFR_RNDN);
        mpfr_init(r15650);
        mpfr_init(r15651);
        mpfr_init(r15652);
        mpfr_init_set_str(r15653, "3.0634872044683813e+39", 10, MPFR_RNDN);
        mpfr_init(r15654);
        mpfr_init(r15655);
        mpfr_init(r15656);
        mpfr_init(r15657);
        mpfr_init(r15658);
        mpfr_init(r15659);
        mpfr_init(r15660);
}

double f_fm(double re, double im) {
        mpfr_set_d(r15630, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15632, mpfr_cmp(r15630, r15631) <= 0, MPFR_RNDN);
        mpfr_neg(r15633, r15630, MPFR_RNDN);
        mpfr_log(r15634, r15633, MPFR_RNDN);
        ;
        mpfr_log(r15636, r15635, MPFR_RNDN);
        mpfr_div(r15637, r15634, r15636, MPFR_RNDN);
        ;
        mpfr_set_si(r15639, mpfr_cmp(r15630, r15638) <= 0, MPFR_RNDN);
        ;
        mpfr_sqr(r15641, r15630, MPFR_RNDN);
        mpfr_set_d(r15642, im, MPFR_RNDN);
        mpfr_mul(r15643, r15642, r15642, MPFR_RNDN);
        mpfr_add(r15644, r15641, r15643, MPFR_RNDN);
        mpfr_sqrt(r15645, r15644, MPFR_RNDN);
        mpfr_log(r15646, r15645, MPFR_RNDN);
        mpfr_div(r15647, r15636, r15646, MPFR_RNDN);
        mpfr_div(r15648, r15640, r15647, MPFR_RNDN);
        ;
        mpfr_set_si(r15650, mpfr_cmp(r15630, r15649) <= 0, MPFR_RNDN);
        mpfr_log(r15651, r15642, MPFR_RNDN);
        mpfr_div(r15652, r15651, r15636, MPFR_RNDN);
        ;
        mpfr_set_si(r15654, mpfr_cmp(r15630, r15653) <= 0, MPFR_RNDN);
        mpfr_log(r15655, r15630, MPFR_RNDN);
        mpfr_div(r15656, r15655, r15636, MPFR_RNDN);
        if (mpfr_get_si(r15654, MPFR_RNDN)) { mpfr_set(r15657, r15648, MPFR_RNDN); } else { mpfr_set(r15657, r15656, MPFR_RNDN); };
        if (mpfr_get_si(r15650, MPFR_RNDN)) { mpfr_set(r15658, r15652, MPFR_RNDN); } else { mpfr_set(r15658, r15657, MPFR_RNDN); };
        if (mpfr_get_si(r15639, MPFR_RNDN)) { mpfr_set(r15659, r15648, MPFR_RNDN); } else { mpfr_set(r15659, r15658, MPFR_RNDN); };
        if (mpfr_get_si(r15632, MPFR_RNDN)) { mpfr_set(r15660, r15637, MPFR_RNDN); } else { mpfr_set(r15660, r15659, MPFR_RNDN); };
        return mpfr_get_d(r15660, MPFR_RNDN);
}

static mpfr_t r15661, r15662, r15663, r15664, r15665, r15666, r15667, r15668, r15669, r15670, r15671, r15672, r15673, r15674, r15675, r15676, r15677, r15678, r15679, r15680, r15681, r15682, r15683, r15684, r15685, r15686, r15687, r15688, r15689, r15690, r15691;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r15661);
        mpfr_init_set_str(r15662, "-5.001969231040948e+151", 10, MPFR_RNDN);
        mpfr_init(r15663);
        mpfr_init(r15664);
        mpfr_init(r15665);
        mpfr_init_set_str(r15666, "10", 10, MPFR_RNDN);
        mpfr_init(r15667);
        mpfr_init(r15668);
        mpfr_init_set_str(r15669, "6.526828139904173e-268", 10, MPFR_RNDN);
        mpfr_init(r15670);
        mpfr_init_set_str(r15671, "1", 10, MPFR_RNDN);
        mpfr_init(r15672);
        mpfr_init(r15673);
        mpfr_init(r15674);
        mpfr_init(r15675);
        mpfr_init(r15676);
        mpfr_init(r15677);
        mpfr_init(r15678);
        mpfr_init(r15679);
        mpfr_init_set_str(r15680, "3.51720187277729e-183", 10, MPFR_RNDN);
        mpfr_init(r15681);
        mpfr_init(r15682);
        mpfr_init(r15683);
        mpfr_init_set_str(r15684, "3.0634872044683813e+39", 10, MPFR_RNDN);
        mpfr_init(r15685);
        mpfr_init(r15686);
        mpfr_init(r15687);
        mpfr_init(r15688);
        mpfr_init(r15689);
        mpfr_init(r15690);
        mpfr_init(r15691);
}

double f_dm(double re, double im) {
        mpfr_set_d(r15661, re, MPFR_RNDN);
        ;
        mpfr_set_si(r15663, mpfr_cmp(r15661, r15662) <= 0, MPFR_RNDN);
        mpfr_neg(r15664, r15661, MPFR_RNDN);
        mpfr_log(r15665, r15664, MPFR_RNDN);
        ;
        mpfr_log(r15667, r15666, MPFR_RNDN);
        mpfr_div(r15668, r15665, r15667, MPFR_RNDN);
        ;
        mpfr_set_si(r15670, mpfr_cmp(r15661, r15669) <= 0, MPFR_RNDN);
        ;
        mpfr_sqr(r15672, r15661, MPFR_RNDN);
        mpfr_set_d(r15673, im, MPFR_RNDN);
        mpfr_mul(r15674, r15673, r15673, MPFR_RNDN);
        mpfr_add(r15675, r15672, r15674, MPFR_RNDN);
        mpfr_sqrt(r15676, r15675, MPFR_RNDN);
        mpfr_log(r15677, r15676, MPFR_RNDN);
        mpfr_div(r15678, r15667, r15677, MPFR_RNDN);
        mpfr_div(r15679, r15671, r15678, MPFR_RNDN);
        ;
        mpfr_set_si(r15681, mpfr_cmp(r15661, r15680) <= 0, MPFR_RNDN);
        mpfr_log(r15682, r15673, MPFR_RNDN);
        mpfr_div(r15683, r15682, r15667, MPFR_RNDN);
        ;
        mpfr_set_si(r15685, mpfr_cmp(r15661, r15684) <= 0, MPFR_RNDN);
        mpfr_log(r15686, r15661, MPFR_RNDN);
        mpfr_div(r15687, r15686, r15667, MPFR_RNDN);
        if (mpfr_get_si(r15685, MPFR_RNDN)) { mpfr_set(r15688, r15679, MPFR_RNDN); } else { mpfr_set(r15688, r15687, MPFR_RNDN); };
        if (mpfr_get_si(r15681, MPFR_RNDN)) { mpfr_set(r15689, r15683, MPFR_RNDN); } else { mpfr_set(r15689, r15688, MPFR_RNDN); };
        if (mpfr_get_si(r15670, MPFR_RNDN)) { mpfr_set(r15690, r15679, MPFR_RNDN); } else { mpfr_set(r15690, r15689, MPFR_RNDN); };
        if (mpfr_get_si(r15663, MPFR_RNDN)) { mpfr_set(r15691, r15668, MPFR_RNDN); } else { mpfr_set(r15691, r15690, MPFR_RNDN); };
        return mpfr_get_d(r15691, MPFR_RNDN);
}

