#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 r8380 = re;
        float r8381 = r8380 * r8380;
        float r8382 = im;
        float r8383 = r8382 * r8382;
        float r8384 = r8381 + r8383;
        float r8385 = sqrt(r8384);
        float r8386 = log(r8385);
        float r8387 = 10.0f;
        float r8388 = log(r8387);
        float r8389 = r8386 / r8388;
        return r8389;
}

double f_id(double re, double im) {
        double r8390 = re;
        double r8391 = r8390 * r8390;
        double r8392 = im;
        double r8393 = r8392 * r8392;
        double r8394 = r8391 + r8393;
        double r8395 = sqrt(r8394);
        double r8396 = log(r8395);
        double r8397 = 10.0;
        double r8398 = log(r8397);
        double r8399 = r8396 / r8398;
        return r8399;
}


double f_of(float re, float im) {
        float r8400 = -1.0f;
        float r8401 = re;
        float r8402 = r8400 / r8401;
        float r8403 = -4.469079448017009e+208f;
        bool r8404 = r8402 <= r8403;
        float r8405 = 0.5f;
        float r8406 = 10.0f;
        float r8407 = log(r8406);
        float r8408 = sqrt(r8407);
        float r8409 = r8405 / r8408;
        float r8410 = sqrt(r8409);
        float r8411 = im;
        float r8412 = r8411 * r8411;
        float r8413 = r8401 * r8401;
        float r8414 = r8412 + r8413;
        float r8415 = cbrt(r8414);
        float r8416 = r8415 * r8415;
        float r8417 = log(r8416);
        float r8418 = log(r8415);
        float r8419 = r8417 + r8418;
        float r8420 = r8419 / r8408;
        float r8421 = r8420 * r8410;
        float r8422 = r8410 * r8421;
        float r8423 = -2.076505029864966e+163f;
        bool r8424 = r8402 <= r8423;
        float r8425 = -r8405;
        float r8426 = r8425 / r8408;
        float r8427 = log(r8401);
        float r8428 = -2.0f;
        float r8429 = r8427 * r8428;
        float r8430 = 1.0f;
        float r8431 = r8430 / r8407;
        float r8432 = sqrt(r8431);
        float r8433 = r8429 * r8432;
        float r8434 = r8426 * r8433;
        float r8435 = -5.71089831282543e-113f;
        bool r8436 = r8402 <= r8435;
        float r8437 = 1.1454248398791993e-308f;
        bool r8438 = r8402 <= r8437;
        float r8439 = 5.973837020518981e-57f;
        bool r8440 = r8402 <= r8439;
        float r8441 = log(r8402);
        float r8442 = r8441 * r8432;
        float r8443 = r8428 * r8442;
        float r8444 = r8409 * r8443;
        float r8445 = r8440 ? r8444 : r8422;
        float r8446 = r8438 ? r8434 : r8445;
        float r8447 = r8436 ? r8422 : r8446;
        float r8448 = r8424 ? r8434 : r8447;
        float r8449 = r8404 ? r8422 : r8448;
        return r8449;
}

double f_od(double re, double im) {
        double r8450 = -1.0;
        double r8451 = re;
        double r8452 = r8450 / r8451;
        double r8453 = -4.469079448017009e+208;
        bool r8454 = r8452 <= r8453;
        double r8455 = 0.5;
        double r8456 = 10.0;
        double r8457 = log(r8456);
        double r8458 = sqrt(r8457);
        double r8459 = r8455 / r8458;
        double r8460 = sqrt(r8459);
        double r8461 = im;
        double r8462 = r8461 * r8461;
        double r8463 = r8451 * r8451;
        double r8464 = r8462 + r8463;
        double r8465 = cbrt(r8464);
        double r8466 = r8465 * r8465;
        double r8467 = log(r8466);
        double r8468 = log(r8465);
        double r8469 = r8467 + r8468;
        double r8470 = r8469 / r8458;
        double r8471 = r8470 * r8460;
        double r8472 = r8460 * r8471;
        double r8473 = -2.076505029864966e+163;
        bool r8474 = r8452 <= r8473;
        double r8475 = -r8455;
        double r8476 = r8475 / r8458;
        double r8477 = log(r8451);
        double r8478 = -2.0;
        double r8479 = r8477 * r8478;
        double r8480 = 1.0;
        double r8481 = r8480 / r8457;
        double r8482 = sqrt(r8481);
        double r8483 = r8479 * r8482;
        double r8484 = r8476 * r8483;
        double r8485 = -5.71089831282543e-113;
        bool r8486 = r8452 <= r8485;
        double r8487 = 1.1454248398791993e-308;
        bool r8488 = r8452 <= r8487;
        double r8489 = 5.973837020518981e-57;
        bool r8490 = r8452 <= r8489;
        double r8491 = log(r8452);
        double r8492 = r8491 * r8482;
        double r8493 = r8478 * r8492;
        double r8494 = r8459 * r8493;
        double r8495 = r8490 ? r8494 : r8472;
        double r8496 = r8488 ? r8484 : r8495;
        double r8497 = r8486 ? r8472 : r8496;
        double r8498 = r8474 ? r8484 : r8497;
        double r8499 = r8454 ? r8472 : r8498;
        return r8499;
}

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 r8500, r8501, r8502, r8503, r8504, r8505, r8506, r8507, r8508, r8509;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r8500);
        mpfr_init(r8501);
        mpfr_init(r8502);
        mpfr_init(r8503);
        mpfr_init(r8504);
        mpfr_init(r8505);
        mpfr_init(r8506);
        mpfr_init_set_str(r8507, "10", 10, MPFR_RNDN);
        mpfr_init(r8508);
        mpfr_init(r8509);
}

double f_im(double re, double im) {
        mpfr_set_d(r8500, re, MPFR_RNDN);
        mpfr_mul(r8501, r8500, r8500, MPFR_RNDN);
        mpfr_set_d(r8502, im, MPFR_RNDN);
        mpfr_mul(r8503, r8502, r8502, MPFR_RNDN);
        mpfr_add(r8504, r8501, r8503, MPFR_RNDN);
        mpfr_sqrt(r8505, r8504, MPFR_RNDN);
        mpfr_log(r8506, r8505, MPFR_RNDN);
        ;
        mpfr_log(r8508, r8507, MPFR_RNDN);
        mpfr_div(r8509, r8506, r8508, MPFR_RNDN);
        return mpfr_get_d(r8509, MPFR_RNDN);
}

static mpfr_t r8510, r8511, r8512, r8513, r8514, r8515, r8516, r8517, r8518, r8519, r8520, r8521, r8522, r8523, r8524, r8525, r8526, r8527, r8528, r8529, r8530, r8531, r8532, r8533, r8534, r8535, r8536, r8537, r8538, r8539, r8540, r8541, r8542, r8543, r8544, r8545, r8546, r8547, r8548, r8549, r8550, r8551, r8552, r8553, r8554, r8555, r8556, r8557, r8558, r8559;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r8510, "-1", 10, MPFR_RNDN);
        mpfr_init(r8511);
        mpfr_init(r8512);
        mpfr_init_set_str(r8513, "-4.469079448017009e+208", 10, MPFR_RNDN);
        mpfr_init(r8514);
        mpfr_init_set_str(r8515, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r8516, "10", 10, MPFR_RNDN);
        mpfr_init(r8517);
        mpfr_init(r8518);
        mpfr_init(r8519);
        mpfr_init(r8520);
        mpfr_init(r8521);
        mpfr_init(r8522);
        mpfr_init(r8523);
        mpfr_init(r8524);
        mpfr_init(r8525);
        mpfr_init(r8526);
        mpfr_init(r8527);
        mpfr_init(r8528);
        mpfr_init(r8529);
        mpfr_init(r8530);
        mpfr_init(r8531);
        mpfr_init(r8532);
        mpfr_init_set_str(r8533, "-2.076505029864966e+163", 10, MPFR_RNDN);
        mpfr_init(r8534);
        mpfr_init(r8535);
        mpfr_init(r8536);
        mpfr_init(r8537);
        mpfr_init_set_str(r8538, "-2", 10, MPFR_RNDN);
        mpfr_init(r8539);
        mpfr_init_set_str(r8540, "1", 10, MPFR_RNDN);
        mpfr_init(r8541);
        mpfr_init(r8542);
        mpfr_init(r8543);
        mpfr_init(r8544);
        mpfr_init_set_str(r8545, "-5.71089831282543e-113", 10, MPFR_RNDN);
        mpfr_init(r8546);
        mpfr_init_set_str(r8547, "1.1454248398791993e-308", 10, MPFR_RNDN);
        mpfr_init(r8548);
        mpfr_init_set_str(r8549, "5.973837020518981e-57", 10, MPFR_RNDN);
        mpfr_init(r8550);
        mpfr_init(r8551);
        mpfr_init(r8552);
        mpfr_init(r8553);
        mpfr_init(r8554);
        mpfr_init(r8555);
        mpfr_init(r8556);
        mpfr_init(r8557);
        mpfr_init(r8558);
        mpfr_init(r8559);
}

double f_fm(double re, double im) {
        ;
        mpfr_set_d(r8511, re, MPFR_RNDN);
        mpfr_div(r8512, r8510, r8511, MPFR_RNDN);
        ;
        mpfr_set_si(r8514, mpfr_cmp(r8512, r8513) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_log(r8517, r8516, MPFR_RNDN);
        mpfr_sqrt(r8518, r8517, MPFR_RNDN);
        mpfr_div(r8519, r8515, r8518, MPFR_RNDN);
        mpfr_sqrt(r8520, r8519, MPFR_RNDN);
        mpfr_set_d(r8521, im, MPFR_RNDN);
        mpfr_mul(r8522, r8521, r8521, MPFR_RNDN);
        mpfr_mul(r8523, r8511, r8511, MPFR_RNDN);
        mpfr_add(r8524, r8522, r8523, MPFR_RNDN);
        mpfr_cbrt(r8525, r8524, MPFR_RNDN);
        mpfr_mul(r8526, r8525, r8525, MPFR_RNDN);
        mpfr_log(r8527, r8526, MPFR_RNDN);
        mpfr_log(r8528, r8525, MPFR_RNDN);
        mpfr_add(r8529, r8527, r8528, MPFR_RNDN);
        mpfr_div(r8530, r8529, r8518, MPFR_RNDN);
        mpfr_mul(r8531, r8530, r8520, MPFR_RNDN);
        mpfr_mul(r8532, r8520, r8531, MPFR_RNDN);
        ;
        mpfr_set_si(r8534, mpfr_cmp(r8512, r8533) <= 0, MPFR_RNDN);
        mpfr_neg(r8535, r8515, MPFR_RNDN);
        mpfr_div(r8536, r8535, r8518, MPFR_RNDN);
        mpfr_log(r8537, r8511, MPFR_RNDN);
        ;
        mpfr_mul(r8539, r8537, r8538, MPFR_RNDN);
        ;
        mpfr_div(r8541, r8540, r8517, MPFR_RNDN);
        mpfr_sqrt(r8542, r8541, MPFR_RNDN);
        mpfr_mul(r8543, r8539, r8542, MPFR_RNDN);
        mpfr_mul(r8544, r8536, r8543, MPFR_RNDN);
        ;
        mpfr_set_si(r8546, mpfr_cmp(r8512, r8545) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r8548, mpfr_cmp(r8512, r8547) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r8550, mpfr_cmp(r8512, r8549) <= 0, MPFR_RNDN);
        mpfr_log(r8551, r8512, MPFR_RNDN);
        mpfr_mul(r8552, r8551, r8542, MPFR_RNDN);
        mpfr_mul(r8553, r8538, r8552, MPFR_RNDN);
        mpfr_mul(r8554, r8519, r8553, MPFR_RNDN);
        if (mpfr_get_si(r8550, MPFR_RNDN)) { mpfr_set(r8555, r8554, MPFR_RNDN); } else { mpfr_set(r8555, r8532, MPFR_RNDN); };
        if (mpfr_get_si(r8548, MPFR_RNDN)) { mpfr_set(r8556, r8544, MPFR_RNDN); } else { mpfr_set(r8556, r8555, MPFR_RNDN); };
        if (mpfr_get_si(r8546, MPFR_RNDN)) { mpfr_set(r8557, r8532, MPFR_RNDN); } else { mpfr_set(r8557, r8556, MPFR_RNDN); };
        if (mpfr_get_si(r8534, MPFR_RNDN)) { mpfr_set(r8558, r8544, MPFR_RNDN); } else { mpfr_set(r8558, r8557, MPFR_RNDN); };
        if (mpfr_get_si(r8514, MPFR_RNDN)) { mpfr_set(r8559, r8532, MPFR_RNDN); } else { mpfr_set(r8559, r8558, MPFR_RNDN); };
        return mpfr_get_d(r8559, MPFR_RNDN);
}

static mpfr_t r8560, r8561, r8562, r8563, r8564, r8565, r8566, r8567, r8568, r8569, r8570, r8571, r8572, r8573, r8574, r8575, r8576, r8577, r8578, r8579, r8580, r8581, r8582, r8583, r8584, r8585, r8586, r8587, r8588, r8589, r8590, r8591, r8592, r8593, r8594, r8595, r8596, r8597, r8598, r8599, r8600, r8601, r8602, r8603, r8604, r8605, r8606, r8607, r8608, r8609;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r8560, "-1", 10, MPFR_RNDN);
        mpfr_init(r8561);
        mpfr_init(r8562);
        mpfr_init_set_str(r8563, "-4.469079448017009e+208", 10, MPFR_RNDN);
        mpfr_init(r8564);
        mpfr_init_set_str(r8565, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r8566, "10", 10, MPFR_RNDN);
        mpfr_init(r8567);
        mpfr_init(r8568);
        mpfr_init(r8569);
        mpfr_init(r8570);
        mpfr_init(r8571);
        mpfr_init(r8572);
        mpfr_init(r8573);
        mpfr_init(r8574);
        mpfr_init(r8575);
        mpfr_init(r8576);
        mpfr_init(r8577);
        mpfr_init(r8578);
        mpfr_init(r8579);
        mpfr_init(r8580);
        mpfr_init(r8581);
        mpfr_init(r8582);
        mpfr_init_set_str(r8583, "-2.076505029864966e+163", 10, MPFR_RNDN);
        mpfr_init(r8584);
        mpfr_init(r8585);
        mpfr_init(r8586);
        mpfr_init(r8587);
        mpfr_init_set_str(r8588, "-2", 10, MPFR_RNDN);
        mpfr_init(r8589);
        mpfr_init_set_str(r8590, "1", 10, MPFR_RNDN);
        mpfr_init(r8591);
        mpfr_init(r8592);
        mpfr_init(r8593);
        mpfr_init(r8594);
        mpfr_init_set_str(r8595, "-5.71089831282543e-113", 10, MPFR_RNDN);
        mpfr_init(r8596);
        mpfr_init_set_str(r8597, "1.1454248398791993e-308", 10, MPFR_RNDN);
        mpfr_init(r8598);
        mpfr_init_set_str(r8599, "5.973837020518981e-57", 10, MPFR_RNDN);
        mpfr_init(r8600);
        mpfr_init(r8601);
        mpfr_init(r8602);
        mpfr_init(r8603);
        mpfr_init(r8604);
        mpfr_init(r8605);
        mpfr_init(r8606);
        mpfr_init(r8607);
        mpfr_init(r8608);
        mpfr_init(r8609);
}

double f_dm(double re, double im) {
        ;
        mpfr_set_d(r8561, re, MPFR_RNDN);
        mpfr_div(r8562, r8560, r8561, MPFR_RNDN);
        ;
        mpfr_set_si(r8564, mpfr_cmp(r8562, r8563) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_log(r8567, r8566, MPFR_RNDN);
        mpfr_sqrt(r8568, r8567, MPFR_RNDN);
        mpfr_div(r8569, r8565, r8568, MPFR_RNDN);
        mpfr_sqrt(r8570, r8569, MPFR_RNDN);
        mpfr_set_d(r8571, im, MPFR_RNDN);
        mpfr_mul(r8572, r8571, r8571, MPFR_RNDN);
        mpfr_mul(r8573, r8561, r8561, MPFR_RNDN);
        mpfr_add(r8574, r8572, r8573, MPFR_RNDN);
        mpfr_cbrt(r8575, r8574, MPFR_RNDN);
        mpfr_mul(r8576, r8575, r8575, MPFR_RNDN);
        mpfr_log(r8577, r8576, MPFR_RNDN);
        mpfr_log(r8578, r8575, MPFR_RNDN);
        mpfr_add(r8579, r8577, r8578, MPFR_RNDN);
        mpfr_div(r8580, r8579, r8568, MPFR_RNDN);
        mpfr_mul(r8581, r8580, r8570, MPFR_RNDN);
        mpfr_mul(r8582, r8570, r8581, MPFR_RNDN);
        ;
        mpfr_set_si(r8584, mpfr_cmp(r8562, r8583) <= 0, MPFR_RNDN);
        mpfr_neg(r8585, r8565, MPFR_RNDN);
        mpfr_div(r8586, r8585, r8568, MPFR_RNDN);
        mpfr_log(r8587, r8561, MPFR_RNDN);
        ;
        mpfr_mul(r8589, r8587, r8588, MPFR_RNDN);
        ;
        mpfr_div(r8591, r8590, r8567, MPFR_RNDN);
        mpfr_sqrt(r8592, r8591, MPFR_RNDN);
        mpfr_mul(r8593, r8589, r8592, MPFR_RNDN);
        mpfr_mul(r8594, r8586, r8593, MPFR_RNDN);
        ;
        mpfr_set_si(r8596, mpfr_cmp(r8562, r8595) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r8598, mpfr_cmp(r8562, r8597) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r8600, mpfr_cmp(r8562, r8599) <= 0, MPFR_RNDN);
        mpfr_log(r8601, r8562, MPFR_RNDN);
        mpfr_mul(r8602, r8601, r8592, MPFR_RNDN);
        mpfr_mul(r8603, r8588, r8602, MPFR_RNDN);
        mpfr_mul(r8604, r8569, r8603, MPFR_RNDN);
        if (mpfr_get_si(r8600, MPFR_RNDN)) { mpfr_set(r8605, r8604, MPFR_RNDN); } else { mpfr_set(r8605, r8582, MPFR_RNDN); };
        if (mpfr_get_si(r8598, MPFR_RNDN)) { mpfr_set(r8606, r8594, MPFR_RNDN); } else { mpfr_set(r8606, r8605, MPFR_RNDN); };
        if (mpfr_get_si(r8596, MPFR_RNDN)) { mpfr_set(r8607, r8582, MPFR_RNDN); } else { mpfr_set(r8607, r8606, MPFR_RNDN); };
        if (mpfr_get_si(r8584, MPFR_RNDN)) { mpfr_set(r8608, r8594, MPFR_RNDN); } else { mpfr_set(r8608, r8607, MPFR_RNDN); };
        if (mpfr_get_si(r8564, MPFR_RNDN)) { mpfr_set(r8609, r8582, MPFR_RNDN); } else { mpfr_set(r8609, r8608, MPFR_RNDN); };
        return mpfr_get_d(r8609, MPFR_RNDN);
}

