#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 r8473 = re;
        float r8474 = r8473 * r8473;
        float r8475 = im;
        float r8476 = r8475 * r8475;
        float r8477 = r8474 + r8476;
        float r8478 = sqrt(r8477);
        float r8479 = log(r8478);
        float r8480 = 10;
        float r8481 = log(r8480);
        float r8482 = r8479 / r8481;
        return r8482;
}

double f_id(double re, double im) {
        double r8483 = re;
        double r8484 = r8483 * r8483;
        double r8485 = im;
        double r8486 = r8485 * r8485;
        double r8487 = r8484 + r8486;
        double r8488 = sqrt(r8487);
        double r8489 = log(r8488);
        double r8490 = 10;
        double r8491 = log(r8490);
        double r8492 = r8489 / r8491;
        return r8492;
}


double f_of(float re, float im) {
        float r8493 = -1;
        float r8494 = re;
        float r8495 = r8493 / r8494;
        float r8496 = -1.3576420698193105e-95;
        bool r8497 = r8495 <= r8496;
        float r8498 = r8494 * r8494;
        float r8499 = im;
        float r8500 = r8499 * r8499;
        float r8501 = r8498 + r8500;
        float r8502 = sqrt(r8501);
        float r8503 = log(r8502);
        float r8504 = 10;
        float r8505 = log(r8504);
        float r8506 = r8503 / r8505;
        float r8507 = 3;
        float r8508 = pow(r8506, r8507);
        float r8509 = cbrt(r8508);
        float r8510 = 3.928193180907568e-306;
        bool r8511 = r8495 <= r8510;
        float r8512 = 1/2;
        float r8513 = sqrt(r8505);
        float r8514 = r8512 / r8513;
        float r8515 = log(r8494);
        float r8516 = -2;
        float r8517 = -r8516;
        float r8518 = r8515 * r8517;
        float r8519 = 1;
        float r8520 = r8519 / r8505;
        float r8521 = sqrt(r8520);
        float r8522 = r8518 * r8521;
        float r8523 = r8514 * r8522;
        float r8524 = 2.27589279457223e-39;
        bool r8525 = r8495 <= r8524;
        float r8526 = log(r8495);
        float r8527 = r8526 * r8521;
        float r8528 = r8516 * r8527;
        float r8529 = r8514 * r8528;
        float r8530 = cbrt(r8501);
        float r8531 = fabs(r8530);
        float r8532 = sqrt(r8530);
        float r8533 = r8531 * r8532;
        float r8534 = log(r8533);
        float r8535 = r8534 / r8505;
        float r8536 = r8525 ? r8529 : r8535;
        float r8537 = r8511 ? r8523 : r8536;
        float r8538 = r8497 ? r8509 : r8537;
        return r8538;
}

double f_od(double re, double im) {
        double r8539 = -1;
        double r8540 = re;
        double r8541 = r8539 / r8540;
        double r8542 = -1.3576420698193105e-95;
        bool r8543 = r8541 <= r8542;
        double r8544 = r8540 * r8540;
        double r8545 = im;
        double r8546 = r8545 * r8545;
        double r8547 = r8544 + r8546;
        double r8548 = sqrt(r8547);
        double r8549 = log(r8548);
        double r8550 = 10;
        double r8551 = log(r8550);
        double r8552 = r8549 / r8551;
        double r8553 = 3;
        double r8554 = pow(r8552, r8553);
        double r8555 = cbrt(r8554);
        double r8556 = 3.928193180907568e-306;
        bool r8557 = r8541 <= r8556;
        double r8558 = 1/2;
        double r8559 = sqrt(r8551);
        double r8560 = r8558 / r8559;
        double r8561 = log(r8540);
        double r8562 = -2;
        double r8563 = -r8562;
        double r8564 = r8561 * r8563;
        double r8565 = 1;
        double r8566 = r8565 / r8551;
        double r8567 = sqrt(r8566);
        double r8568 = r8564 * r8567;
        double r8569 = r8560 * r8568;
        double r8570 = 2.27589279457223e-39;
        bool r8571 = r8541 <= r8570;
        double r8572 = log(r8541);
        double r8573 = r8572 * r8567;
        double r8574 = r8562 * r8573;
        double r8575 = r8560 * r8574;
        double r8576 = cbrt(r8547);
        double r8577 = fabs(r8576);
        double r8578 = sqrt(r8576);
        double r8579 = r8577 * r8578;
        double r8580 = log(r8579);
        double r8581 = r8580 / r8551;
        double r8582 = r8571 ? r8575 : r8581;
        double r8583 = r8557 ? r8569 : r8582;
        double r8584 = r8543 ? r8555 : r8583;
        return r8584;
}

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 r8585, r8586, r8587, r8588, r8589, r8590, r8591, r8592, r8593, r8594;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8585);
        mpfr_init(r8586);
        mpfr_init(r8587);
        mpfr_init(r8588);
        mpfr_init(r8589);
        mpfr_init(r8590);
        mpfr_init(r8591);
        mpfr_init_set_str(r8592, "10", 10, MPFR_RNDN);
        mpfr_init(r8593);
        mpfr_init(r8594);
}

double f_im(double re, double im) {
        mpfr_set_d(r8585, re, MPFR_RNDN);
        mpfr_mul(r8586, r8585, r8585, MPFR_RNDN);
        mpfr_set_d(r8587, im, MPFR_RNDN);
        mpfr_mul(r8588, r8587, r8587, MPFR_RNDN);
        mpfr_add(r8589, r8586, r8588, MPFR_RNDN);
        mpfr_sqrt(r8590, r8589, MPFR_RNDN);
        mpfr_log(r8591, r8590, MPFR_RNDN);
        ;
        mpfr_log(r8593, r8592, MPFR_RNDN);
        mpfr_div(r8594, r8591, r8593, MPFR_RNDN);
        return mpfr_get_d(r8594, MPFR_RNDN);
}

static mpfr_t r8595, r8596, r8597, r8598, r8599, r8600, r8601, r8602, r8603, r8604, r8605, r8606, r8607, r8608, r8609, r8610, r8611, r8612, r8613, r8614, r8615, r8616, r8617, r8618, r8619, r8620, r8621, r8622, r8623, r8624, r8625, r8626, r8627, r8628, r8629, r8630, r8631, r8632, r8633, r8634, r8635, r8636, r8637, r8638, r8639, r8640;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8595, "-1", 10, MPFR_RNDN);
        mpfr_init(r8596);
        mpfr_init(r8597);
        mpfr_init_set_str(r8598, "-1.3576420698193105e-95", 10, MPFR_RNDN);
        mpfr_init(r8599);
        mpfr_init(r8600);
        mpfr_init(r8601);
        mpfr_init(r8602);
        mpfr_init(r8603);
        mpfr_init(r8604);
        mpfr_init(r8605);
        mpfr_init_set_str(r8606, "10", 10, MPFR_RNDN);
        mpfr_init(r8607);
        mpfr_init(r8608);
        mpfr_init_set_str(r8609, "3", 10, MPFR_RNDN);
        mpfr_init(r8610);
        mpfr_init(r8611);
        mpfr_init_set_str(r8612, "3.928193180907568e-306", 10, MPFR_RNDN);
        mpfr_init(r8613);
        mpfr_init_set_str(r8614, "1/2", 10, MPFR_RNDN);
        mpfr_init(r8615);
        mpfr_init(r8616);
        mpfr_init(r8617);
        mpfr_init_set_str(r8618, "-2", 10, MPFR_RNDN);
        mpfr_init(r8619);
        mpfr_init(r8620);
        mpfr_init_set_str(r8621, "1", 10, MPFR_RNDN);
        mpfr_init(r8622);
        mpfr_init(r8623);
        mpfr_init(r8624);
        mpfr_init(r8625);
        mpfr_init_set_str(r8626, "2.27589279457223e-39", 10, MPFR_RNDN);
        mpfr_init(r8627);
        mpfr_init(r8628);
        mpfr_init(r8629);
        mpfr_init(r8630);
        mpfr_init(r8631);
        mpfr_init(r8632);
        mpfr_init(r8633);
        mpfr_init(r8634);
        mpfr_init(r8635);
        mpfr_init(r8636);
        mpfr_init(r8637);
        mpfr_init(r8638);
        mpfr_init(r8639);
        mpfr_init(r8640);
}

double f_fm(double re, double im) {
        ;
        mpfr_set_d(r8596, re, MPFR_RNDN);
        mpfr_div(r8597, r8595, r8596, MPFR_RNDN);
        ;
        mpfr_set_si(r8599, mpfr_cmp(r8597, r8598) <= 0, MPFR_RNDN);
        mpfr_mul(r8600, r8596, r8596, MPFR_RNDN);
        mpfr_set_d(r8601, im, MPFR_RNDN);
        mpfr_mul(r8602, r8601, r8601, MPFR_RNDN);
        mpfr_add(r8603, r8600, r8602, MPFR_RNDN);
        mpfr_sqrt(r8604, r8603, MPFR_RNDN);
        mpfr_log(r8605, r8604, MPFR_RNDN);
        ;
        mpfr_log(r8607, r8606, MPFR_RNDN);
        mpfr_div(r8608, r8605, r8607, MPFR_RNDN);
        ;
        mpfr_pow(r8610, r8608, r8609, MPFR_RNDN);
        mpfr_cbrt(r8611, r8610, MPFR_RNDN);
        ;
        mpfr_set_si(r8613, mpfr_cmp(r8597, r8612) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r8615, r8607, MPFR_RNDN);
        mpfr_div(r8616, r8614, r8615, MPFR_RNDN);
        mpfr_log(r8617, r8596, MPFR_RNDN);
        ;
        mpfr_neg(r8619, r8618, MPFR_RNDN);
        mpfr_mul(r8620, r8617, r8619, MPFR_RNDN);
        ;
        mpfr_div(r8622, r8621, r8607, MPFR_RNDN);
        mpfr_sqrt(r8623, r8622, MPFR_RNDN);
        mpfr_mul(r8624, r8620, r8623, MPFR_RNDN);
        mpfr_mul(r8625, r8616, r8624, MPFR_RNDN);
        ;
        mpfr_set_si(r8627, mpfr_cmp(r8597, r8626) <= 0, MPFR_RNDN);
        mpfr_log(r8628, r8597, MPFR_RNDN);
        mpfr_mul(r8629, r8628, r8623, MPFR_RNDN);
        mpfr_mul(r8630, r8618, r8629, MPFR_RNDN);
        mpfr_mul(r8631, r8616, r8630, MPFR_RNDN);
        mpfr_cbrt(r8632, r8603, MPFR_RNDN);
        mpfr_abs(r8633, r8632, MPFR_RNDN);
        mpfr_sqrt(r8634, r8632, MPFR_RNDN);
        mpfr_mul(r8635, r8633, r8634, MPFR_RNDN);
        mpfr_log(r8636, r8635, MPFR_RNDN);
        mpfr_div(r8637, r8636, r8607, MPFR_RNDN);
        if (mpfr_get_si(r8627, MPFR_RNDN)) { mpfr_set(r8638, r8631, MPFR_RNDN); } else { mpfr_set(r8638, r8637, MPFR_RNDN); };
        if (mpfr_get_si(r8613, MPFR_RNDN)) { mpfr_set(r8639, r8625, MPFR_RNDN); } else { mpfr_set(r8639, r8638, MPFR_RNDN); };
        if (mpfr_get_si(r8599, MPFR_RNDN)) { mpfr_set(r8640, r8611, MPFR_RNDN); } else { mpfr_set(r8640, r8639, MPFR_RNDN); };
        return mpfr_get_d(r8640, MPFR_RNDN);
}

static mpfr_t r8641, r8642, r8643, r8644, r8645, r8646, r8647, r8648, r8649, r8650, r8651, r8652, r8653, r8654, r8655, r8656, r8657, r8658, r8659, r8660, r8661, r8662, r8663, r8664, r8665, r8666, r8667, r8668, r8669, r8670, r8671, r8672, r8673, r8674, r8675, r8676, r8677, r8678, r8679, r8680, r8681, r8682, r8683, r8684, r8685, r8686;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8641, "-1", 10, MPFR_RNDN);
        mpfr_init(r8642);
        mpfr_init(r8643);
        mpfr_init_set_str(r8644, "-1.3576420698193105e-95", 10, MPFR_RNDN);
        mpfr_init(r8645);
        mpfr_init(r8646);
        mpfr_init(r8647);
        mpfr_init(r8648);
        mpfr_init(r8649);
        mpfr_init(r8650);
        mpfr_init(r8651);
        mpfr_init_set_str(r8652, "10", 10, MPFR_RNDN);
        mpfr_init(r8653);
        mpfr_init(r8654);
        mpfr_init_set_str(r8655, "3", 10, MPFR_RNDN);
        mpfr_init(r8656);
        mpfr_init(r8657);
        mpfr_init_set_str(r8658, "3.928193180907568e-306", 10, MPFR_RNDN);
        mpfr_init(r8659);
        mpfr_init_set_str(r8660, "1/2", 10, MPFR_RNDN);
        mpfr_init(r8661);
        mpfr_init(r8662);
        mpfr_init(r8663);
        mpfr_init_set_str(r8664, "-2", 10, MPFR_RNDN);
        mpfr_init(r8665);
        mpfr_init(r8666);
        mpfr_init_set_str(r8667, "1", 10, MPFR_RNDN);
        mpfr_init(r8668);
        mpfr_init(r8669);
        mpfr_init(r8670);
        mpfr_init(r8671);
        mpfr_init_set_str(r8672, "2.27589279457223e-39", 10, MPFR_RNDN);
        mpfr_init(r8673);
        mpfr_init(r8674);
        mpfr_init(r8675);
        mpfr_init(r8676);
        mpfr_init(r8677);
        mpfr_init(r8678);
        mpfr_init(r8679);
        mpfr_init(r8680);
        mpfr_init(r8681);
        mpfr_init(r8682);
        mpfr_init(r8683);
        mpfr_init(r8684);
        mpfr_init(r8685);
        mpfr_init(r8686);
}

double f_dm(double re, double im) {
        ;
        mpfr_set_d(r8642, re, MPFR_RNDN);
        mpfr_div(r8643, r8641, r8642, MPFR_RNDN);
        ;
        mpfr_set_si(r8645, mpfr_cmp(r8643, r8644) <= 0, MPFR_RNDN);
        mpfr_mul(r8646, r8642, r8642, MPFR_RNDN);
        mpfr_set_d(r8647, im, MPFR_RNDN);
        mpfr_mul(r8648, r8647, r8647, MPFR_RNDN);
        mpfr_add(r8649, r8646, r8648, MPFR_RNDN);
        mpfr_sqrt(r8650, r8649, MPFR_RNDN);
        mpfr_log(r8651, r8650, MPFR_RNDN);
        ;
        mpfr_log(r8653, r8652, MPFR_RNDN);
        mpfr_div(r8654, r8651, r8653, MPFR_RNDN);
        ;
        mpfr_pow(r8656, r8654, r8655, MPFR_RNDN);
        mpfr_cbrt(r8657, r8656, MPFR_RNDN);
        ;
        mpfr_set_si(r8659, mpfr_cmp(r8643, r8658) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r8661, r8653, MPFR_RNDN);
        mpfr_div(r8662, r8660, r8661, MPFR_RNDN);
        mpfr_log(r8663, r8642, MPFR_RNDN);
        ;
        mpfr_neg(r8665, r8664, MPFR_RNDN);
        mpfr_mul(r8666, r8663, r8665, MPFR_RNDN);
        ;
        mpfr_div(r8668, r8667, r8653, MPFR_RNDN);
        mpfr_sqrt(r8669, r8668, MPFR_RNDN);
        mpfr_mul(r8670, r8666, r8669, MPFR_RNDN);
        mpfr_mul(r8671, r8662, r8670, MPFR_RNDN);
        ;
        mpfr_set_si(r8673, mpfr_cmp(r8643, r8672) <= 0, MPFR_RNDN);
        mpfr_log(r8674, r8643, MPFR_RNDN);
        mpfr_mul(r8675, r8674, r8669, MPFR_RNDN);
        mpfr_mul(r8676, r8664, r8675, MPFR_RNDN);
        mpfr_mul(r8677, r8662, r8676, MPFR_RNDN);
        mpfr_cbrt(r8678, r8649, MPFR_RNDN);
        mpfr_abs(r8679, r8678, MPFR_RNDN);
        mpfr_sqrt(r8680, r8678, MPFR_RNDN);
        mpfr_mul(r8681, r8679, r8680, MPFR_RNDN);
        mpfr_log(r8682, r8681, MPFR_RNDN);
        mpfr_div(r8683, r8682, r8653, MPFR_RNDN);
        if (mpfr_get_si(r8673, MPFR_RNDN)) { mpfr_set(r8684, r8677, MPFR_RNDN); } else { mpfr_set(r8684, r8683, MPFR_RNDN); };
        if (mpfr_get_si(r8659, MPFR_RNDN)) { mpfr_set(r8685, r8671, MPFR_RNDN); } else { mpfr_set(r8685, r8684, MPFR_RNDN); };
        if (mpfr_get_si(r8645, MPFR_RNDN)) { mpfr_set(r8686, r8657, MPFR_RNDN); } else { mpfr_set(r8686, r8685, MPFR_RNDN); };
        return mpfr_get_d(r8686, MPFR_RNDN);
}

