#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 r8318 = re;
        float r8319 = r8318 * r8318;
        float r8320 = im;
        float r8321 = r8320 * r8320;
        float r8322 = r8319 + r8321;
        float r8323 = sqrt(r8322);
        float r8324 = log(r8323);
        float r8325 = 10.0f;
        float r8326 = log(r8325);
        float r8327 = r8324 / r8326;
        return r8327;
}

double f_id(double re, double im) {
        double r8328 = re;
        double r8329 = r8328 * r8328;
        double r8330 = im;
        double r8331 = r8330 * r8330;
        double r8332 = r8329 + r8331;
        double r8333 = sqrt(r8332);
        double r8334 = log(r8333);
        double r8335 = 10.0;
        double r8336 = log(r8335);
        double r8337 = r8334 / r8336;
        return r8337;
}


double f_of(float re, float im) {
        float r8338 = -1.0f;
        float r8339 = re;
        float r8340 = r8338 / r8339;
        float r8341 = -2.525975844693826e+235f;
        bool r8342 = r8340 <= r8341;
        float r8343 = 1.0f;
        float r8344 = 10.0f;
        float r8345 = log(r8344);
        float r8346 = r8343 / r8345;
        float r8347 = sqrt(r8346);
        float r8348 = im;
        float r8349 = log(r8348);
        float r8350 = r8347 * r8349;
        float r8351 = 2.0f;
        float r8352 = r8350 * r8351;
        float r8353 = 0.5f;
        float r8354 = sqrt(r8345);
        float r8355 = r8353 / r8354;
        float r8356 = r8352 * r8355;
        float r8357 = -2.251321097225161e-133f;
        bool r8358 = r8340 <= r8357;
        float r8359 = r8348 * r8348;
        float r8360 = r8339 * r8339;
        float r8361 = r8359 + r8360;
        float r8362 = sqrt(r8361);
        float r8363 = cbrt(r8362);
        float r8364 = r8363 * r8363;
        float r8365 = r8363 * r8364;
        float r8366 = log(r8365);
        float r8367 = r8366 / r8345;
        float r8368 = 2.065406484992251e-307f;
        bool r8369 = r8340 <= r8368;
        float r8370 = sqrt(r8355);
        float r8371 = log(r8339);
        float r8372 = r8371 * r8351;
        float r8373 = r8372 / r8354;
        float r8374 = r8373 * r8370;
        float r8375 = r8370 * r8374;
        float r8376 = 2.3470070404665523e-26f;
        bool r8377 = r8340 <= r8376;
        float r8378 = log(r8340);
        float r8379 = r8378 * r8347;
        float r8380 = -2.0f;
        float r8381 = r8379 * r8380;
        float r8382 = r8381 * r8355;
        float r8383 = 4.97412770624126e+163f;
        bool r8384 = r8340 <= r8383;
        float r8385 = 3.30617744033607e+266f;
        bool r8386 = r8340 <= r8385;
        float r8387 = !r8386;
        bool r8388 = r8384 || r8387;
        float r8389 = r8349 * r8351;
        float r8390 = r8389 / r8354;
        float r8391 = r8370 * r8390;
        float r8392 = r8370 * r8391;
        float r8393 = r8388 ? r8367 : r8392;
        float r8394 = r8377 ? r8382 : r8393;
        float r8395 = r8369 ? r8375 : r8394;
        float r8396 = r8358 ? r8367 : r8395;
        float r8397 = r8342 ? r8356 : r8396;
        return r8397;
}

double f_od(double re, double im) {
        double r8398 = -1.0;
        double r8399 = re;
        double r8400 = r8398 / r8399;
        double r8401 = -2.525975844693826e+235;
        bool r8402 = r8400 <= r8401;
        double r8403 = 1.0;
        double r8404 = 10.0;
        double r8405 = log(r8404);
        double r8406 = r8403 / r8405;
        double r8407 = sqrt(r8406);
        double r8408 = im;
        double r8409 = log(r8408);
        double r8410 = r8407 * r8409;
        double r8411 = 2.0;
        double r8412 = r8410 * r8411;
        double r8413 = 0.5;
        double r8414 = sqrt(r8405);
        double r8415 = r8413 / r8414;
        double r8416 = r8412 * r8415;
        double r8417 = -2.251321097225161e-133;
        bool r8418 = r8400 <= r8417;
        double r8419 = r8408 * r8408;
        double r8420 = r8399 * r8399;
        double r8421 = r8419 + r8420;
        double r8422 = sqrt(r8421);
        double r8423 = cbrt(r8422);
        double r8424 = r8423 * r8423;
        double r8425 = r8423 * r8424;
        double r8426 = log(r8425);
        double r8427 = r8426 / r8405;
        double r8428 = 2.065406484992251e-307;
        bool r8429 = r8400 <= r8428;
        double r8430 = sqrt(r8415);
        double r8431 = log(r8399);
        double r8432 = r8431 * r8411;
        double r8433 = r8432 / r8414;
        double r8434 = r8433 * r8430;
        double r8435 = r8430 * r8434;
        double r8436 = 2.3470070404665523e-26;
        bool r8437 = r8400 <= r8436;
        double r8438 = log(r8400);
        double r8439 = r8438 * r8407;
        double r8440 = -2.0;
        double r8441 = r8439 * r8440;
        double r8442 = r8441 * r8415;
        double r8443 = 4.97412770624126e+163;
        bool r8444 = r8400 <= r8443;
        double r8445 = 3.30617744033607e+266;
        bool r8446 = r8400 <= r8445;
        double r8447 = !r8446;
        bool r8448 = r8444 || r8447;
        double r8449 = r8409 * r8411;
        double r8450 = r8449 / r8414;
        double r8451 = r8430 * r8450;
        double r8452 = r8430 * r8451;
        double r8453 = r8448 ? r8427 : r8452;
        double r8454 = r8437 ? r8442 : r8453;
        double r8455 = r8429 ? r8435 : r8454;
        double r8456 = r8418 ? r8427 : r8455;
        double r8457 = r8402 ? r8416 : r8456;
        return r8457;
}

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 r8458, r8459, r8460, r8461, r8462, r8463, r8464, r8465, r8466, r8467;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8458);
        mpfr_init(r8459);
        mpfr_init(r8460);
        mpfr_init(r8461);
        mpfr_init(r8462);
        mpfr_init(r8463);
        mpfr_init(r8464);
        mpfr_init_set_str(r8465, "10", 10, MPFR_RNDN);
        mpfr_init(r8466);
        mpfr_init(r8467);
}

double f_im(double re, double im) {
        mpfr_set_d(r8458, re, MPFR_RNDN);
        mpfr_mul(r8459, r8458, r8458, MPFR_RNDN);
        mpfr_set_d(r8460, im, MPFR_RNDN);
        mpfr_mul(r8461, r8460, r8460, MPFR_RNDN);
        mpfr_add(r8462, r8459, r8461, MPFR_RNDN);
        mpfr_sqrt(r8463, r8462, MPFR_RNDN);
        mpfr_log(r8464, r8463, MPFR_RNDN);
        ;
        mpfr_log(r8466, r8465, MPFR_RNDN);
        mpfr_div(r8467, r8464, r8466, MPFR_RNDN);
        return mpfr_get_d(r8467, MPFR_RNDN);
}

static mpfr_t r8468, r8469, r8470, r8471, r8472, r8473, r8474, r8475, r8476, r8477, r8478, r8479, r8480, r8481, r8482, r8483, r8484, r8485, r8486, r8487, r8488, r8489, r8490, r8491, r8492, r8493, r8494, r8495, r8496, r8497, r8498, r8499, r8500, r8501, r8502, r8503, r8504, r8505, r8506, r8507, r8508, r8509, r8510, r8511, r8512, r8513, r8514, r8515, r8516, r8517, r8518, r8519, r8520, r8521, r8522, r8523, r8524, r8525, r8526, r8527;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8468, "-1", 10, MPFR_RNDN);
        mpfr_init(r8469);
        mpfr_init(r8470);
        mpfr_init_set_str(r8471, "-2.525975844693826e+235", 10, MPFR_RNDN);
        mpfr_init(r8472);
        mpfr_init_set_str(r8473, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r8474, "10", 10, MPFR_RNDN);
        mpfr_init(r8475);
        mpfr_init(r8476);
        mpfr_init(r8477);
        mpfr_init(r8478);
        mpfr_init(r8479);
        mpfr_init(r8480);
        mpfr_init_set_str(r8481, "2", 10, MPFR_RNDN);
        mpfr_init(r8482);
        mpfr_init_set_str(r8483, "1/2", 10, MPFR_RNDN);
        mpfr_init(r8484);
        mpfr_init(r8485);
        mpfr_init(r8486);
        mpfr_init_set_str(r8487, "-2.251321097225161e-133", 10, MPFR_RNDN);
        mpfr_init(r8488);
        mpfr_init(r8489);
        mpfr_init(r8490);
        mpfr_init(r8491);
        mpfr_init(r8492);
        mpfr_init(r8493);
        mpfr_init(r8494);
        mpfr_init(r8495);
        mpfr_init(r8496);
        mpfr_init(r8497);
        mpfr_init_set_str(r8498, "2.065406484992251e-307", 10, MPFR_RNDN);
        mpfr_init(r8499);
        mpfr_init(r8500);
        mpfr_init(r8501);
        mpfr_init(r8502);
        mpfr_init(r8503);
        mpfr_init(r8504);
        mpfr_init(r8505);
        mpfr_init_set_str(r8506, "2.3470070404665523e-26", 10, MPFR_RNDN);
        mpfr_init(r8507);
        mpfr_init(r8508);
        mpfr_init(r8509);
        mpfr_init_set_str(r8510, "-2", 10, MPFR_RNDN);
        mpfr_init(r8511);
        mpfr_init(r8512);
        mpfr_init_set_str(r8513, "4.97412770624126e+163", 10, MPFR_RNDN);
        mpfr_init(r8514);
        mpfr_init_set_str(r8515, "3.30617744033607e+266", 10, MPFR_RNDN);
        mpfr_init(r8516);
        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);
}

double f_fm(double re, double im) {
        ;
        mpfr_set_d(r8469, re, MPFR_RNDN);
        mpfr_div(r8470, r8468, r8469, MPFR_RNDN);
        ;
        mpfr_set_si(r8472, mpfr_cmp(r8470, r8471) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_log(r8475, r8474, MPFR_RNDN);
        mpfr_div(r8476, r8473, r8475, MPFR_RNDN);
        mpfr_sqrt(r8477, r8476, MPFR_RNDN);
        mpfr_set_d(r8478, im, MPFR_RNDN);
        mpfr_log(r8479, r8478, MPFR_RNDN);
        mpfr_mul(r8480, r8477, r8479, MPFR_RNDN);
        ;
        mpfr_mul(r8482, r8480, r8481, MPFR_RNDN);
        ;
        mpfr_sqrt(r8484, r8475, MPFR_RNDN);
        mpfr_div(r8485, r8483, r8484, MPFR_RNDN);
        mpfr_mul(r8486, r8482, r8485, MPFR_RNDN);
        ;
        mpfr_set_si(r8488, mpfr_cmp(r8470, r8487) <= 0, MPFR_RNDN);
        mpfr_mul(r8489, r8478, r8478, MPFR_RNDN);
        mpfr_mul(r8490, r8469, r8469, MPFR_RNDN);
        mpfr_add(r8491, r8489, r8490, MPFR_RNDN);
        mpfr_sqrt(r8492, r8491, MPFR_RNDN);
        mpfr_cbrt(r8493, r8492, MPFR_RNDN);
        mpfr_mul(r8494, r8493, r8493, MPFR_RNDN);
        mpfr_mul(r8495, r8493, r8494, MPFR_RNDN);
        mpfr_log(r8496, r8495, MPFR_RNDN);
        mpfr_div(r8497, r8496, r8475, MPFR_RNDN);
        ;
        mpfr_set_si(r8499, mpfr_cmp(r8470, r8498) <= 0, MPFR_RNDN);
        mpfr_sqrt(r8500, r8485, MPFR_RNDN);
        mpfr_log(r8501, r8469, MPFR_RNDN);
        mpfr_mul(r8502, r8501, r8481, MPFR_RNDN);
        mpfr_div(r8503, r8502, r8484, MPFR_RNDN);
        mpfr_mul(r8504, r8503, r8500, MPFR_RNDN);
        mpfr_mul(r8505, r8500, r8504, MPFR_RNDN);
        ;
        mpfr_set_si(r8507, mpfr_cmp(r8470, r8506) <= 0, MPFR_RNDN);
        mpfr_log(r8508, r8470, MPFR_RNDN);
        mpfr_mul(r8509, r8508, r8477, MPFR_RNDN);
        ;
        mpfr_mul(r8511, r8509, r8510, MPFR_RNDN);
        mpfr_mul(r8512, r8511, r8485, MPFR_RNDN);
        ;
        mpfr_set_si(r8514, mpfr_cmp(r8470, r8513) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r8516, mpfr_cmp(r8470, r8515) <= 0, MPFR_RNDN);
        mpfr_set_si(r8517, !mpfr_get_si(r8516, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r8518, mpfr_get_si(r8514, MPFR_RNDN) || mpfr_get_si(r8517, MPFR_RNDN), MPFR_RNDN);
        mpfr_mul(r8519, r8479, r8481, MPFR_RNDN);
        mpfr_div(r8520, r8519, r8484, MPFR_RNDN);
        mpfr_mul(r8521, r8500, r8520, MPFR_RNDN);
        mpfr_mul(r8522, r8500, r8521, MPFR_RNDN);
        if (mpfr_get_si(r8518, MPFR_RNDN)) { mpfr_set(r8523, r8497, MPFR_RNDN); } else { mpfr_set(r8523, r8522, MPFR_RNDN); };
        if (mpfr_get_si(r8507, MPFR_RNDN)) { mpfr_set(r8524, r8512, MPFR_RNDN); } else { mpfr_set(r8524, r8523, MPFR_RNDN); };
        if (mpfr_get_si(r8499, MPFR_RNDN)) { mpfr_set(r8525, r8505, MPFR_RNDN); } else { mpfr_set(r8525, r8524, MPFR_RNDN); };
        if (mpfr_get_si(r8488, MPFR_RNDN)) { mpfr_set(r8526, r8497, MPFR_RNDN); } else { mpfr_set(r8526, r8525, MPFR_RNDN); };
        if (mpfr_get_si(r8472, MPFR_RNDN)) { mpfr_set(r8527, r8486, MPFR_RNDN); } else { mpfr_set(r8527, r8526, MPFR_RNDN); };
        return mpfr_get_d(r8527, MPFR_RNDN);
}

static mpfr_t 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, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8528, "-1", 10, MPFR_RNDN);
        mpfr_init(r8529);
        mpfr_init(r8530);
        mpfr_init_set_str(r8531, "-2.525975844693826e+235", 10, MPFR_RNDN);
        mpfr_init(r8532);
        mpfr_init_set_str(r8533, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r8534, "10", 10, MPFR_RNDN);
        mpfr_init(r8535);
        mpfr_init(r8536);
        mpfr_init(r8537);
        mpfr_init(r8538);
        mpfr_init(r8539);
        mpfr_init(r8540);
        mpfr_init_set_str(r8541, "2", 10, MPFR_RNDN);
        mpfr_init(r8542);
        mpfr_init_set_str(r8543, "1/2", 10, MPFR_RNDN);
        mpfr_init(r8544);
        mpfr_init(r8545);
        mpfr_init(r8546);
        mpfr_init_set_str(r8547, "-2.251321097225161e-133", 10, MPFR_RNDN);
        mpfr_init(r8548);
        mpfr_init(r8549);
        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_set_str(r8558, "2.065406484992251e-307", 10, MPFR_RNDN);
        mpfr_init(r8559);
        mpfr_init(r8560);
        mpfr_init(r8561);
        mpfr_init(r8562);
        mpfr_init(r8563);
        mpfr_init(r8564);
        mpfr_init(r8565);
        mpfr_init_set_str(r8566, "2.3470070404665523e-26", 10, MPFR_RNDN);
        mpfr_init(r8567);
        mpfr_init(r8568);
        mpfr_init(r8569);
        mpfr_init_set_str(r8570, "-2", 10, MPFR_RNDN);
        mpfr_init(r8571);
        mpfr_init(r8572);
        mpfr_init_set_str(r8573, "4.97412770624126e+163", 10, MPFR_RNDN);
        mpfr_init(r8574);
        mpfr_init_set_str(r8575, "3.30617744033607e+266", 10, MPFR_RNDN);
        mpfr_init(r8576);
        mpfr_init(r8577);
        mpfr_init(r8578);
        mpfr_init(r8579);
        mpfr_init(r8580);
        mpfr_init(r8581);
        mpfr_init(r8582);
        mpfr_init(r8583);
        mpfr_init(r8584);
        mpfr_init(r8585);
        mpfr_init(r8586);
        mpfr_init(r8587);
}

double f_dm(double re, double im) {
        ;
        mpfr_set_d(r8529, re, MPFR_RNDN);
        mpfr_div(r8530, r8528, r8529, MPFR_RNDN);
        ;
        mpfr_set_si(r8532, mpfr_cmp(r8530, r8531) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_log(r8535, r8534, MPFR_RNDN);
        mpfr_div(r8536, r8533, r8535, MPFR_RNDN);
        mpfr_sqrt(r8537, r8536, MPFR_RNDN);
        mpfr_set_d(r8538, im, MPFR_RNDN);
        mpfr_log(r8539, r8538, MPFR_RNDN);
        mpfr_mul(r8540, r8537, r8539, MPFR_RNDN);
        ;
        mpfr_mul(r8542, r8540, r8541, MPFR_RNDN);
        ;
        mpfr_sqrt(r8544, r8535, MPFR_RNDN);
        mpfr_div(r8545, r8543, r8544, MPFR_RNDN);
        mpfr_mul(r8546, r8542, r8545, MPFR_RNDN);
        ;
        mpfr_set_si(r8548, mpfr_cmp(r8530, r8547) <= 0, MPFR_RNDN);
        mpfr_mul(r8549, r8538, r8538, MPFR_RNDN);
        mpfr_mul(r8550, r8529, r8529, MPFR_RNDN);
        mpfr_add(r8551, r8549, r8550, MPFR_RNDN);
        mpfr_sqrt(r8552, r8551, MPFR_RNDN);
        mpfr_cbrt(r8553, r8552, MPFR_RNDN);
        mpfr_mul(r8554, r8553, r8553, MPFR_RNDN);
        mpfr_mul(r8555, r8553, r8554, MPFR_RNDN);
        mpfr_log(r8556, r8555, MPFR_RNDN);
        mpfr_div(r8557, r8556, r8535, MPFR_RNDN);
        ;
        mpfr_set_si(r8559, mpfr_cmp(r8530, r8558) <= 0, MPFR_RNDN);
        mpfr_sqrt(r8560, r8545, MPFR_RNDN);
        mpfr_log(r8561, r8529, MPFR_RNDN);
        mpfr_mul(r8562, r8561, r8541, MPFR_RNDN);
        mpfr_div(r8563, r8562, r8544, MPFR_RNDN);
        mpfr_mul(r8564, r8563, r8560, MPFR_RNDN);
        mpfr_mul(r8565, r8560, r8564, MPFR_RNDN);
        ;
        mpfr_set_si(r8567, mpfr_cmp(r8530, r8566) <= 0, MPFR_RNDN);
        mpfr_log(r8568, r8530, MPFR_RNDN);
        mpfr_mul(r8569, r8568, r8537, MPFR_RNDN);
        ;
        mpfr_mul(r8571, r8569, r8570, MPFR_RNDN);
        mpfr_mul(r8572, r8571, r8545, MPFR_RNDN);
        ;
        mpfr_set_si(r8574, mpfr_cmp(r8530, r8573) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r8576, mpfr_cmp(r8530, r8575) <= 0, MPFR_RNDN);
        mpfr_set_si(r8577, !mpfr_get_si(r8576, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r8578, mpfr_get_si(r8574, MPFR_RNDN) || mpfr_get_si(r8577, MPFR_RNDN), MPFR_RNDN);
        mpfr_mul(r8579, r8539, r8541, MPFR_RNDN);
        mpfr_div(r8580, r8579, r8544, MPFR_RNDN);
        mpfr_mul(r8581, r8560, r8580, MPFR_RNDN);
        mpfr_mul(r8582, r8560, r8581, MPFR_RNDN);
        if (mpfr_get_si(r8578, MPFR_RNDN)) { mpfr_set(r8583, r8557, MPFR_RNDN); } else { mpfr_set(r8583, r8582, MPFR_RNDN); };
        if (mpfr_get_si(r8567, MPFR_RNDN)) { mpfr_set(r8584, r8572, MPFR_RNDN); } else { mpfr_set(r8584, r8583, MPFR_RNDN); };
        if (mpfr_get_si(r8559, MPFR_RNDN)) { mpfr_set(r8585, r8565, MPFR_RNDN); } else { mpfr_set(r8585, r8584, MPFR_RNDN); };
        if (mpfr_get_si(r8548, MPFR_RNDN)) { mpfr_set(r8586, r8557, MPFR_RNDN); } else { mpfr_set(r8586, r8585, MPFR_RNDN); };
        if (mpfr_get_si(r8532, MPFR_RNDN)) { mpfr_set(r8587, r8546, MPFR_RNDN); } else { mpfr_set(r8587, r8586, MPFR_RNDN); };
        return mpfr_get_d(r8587, MPFR_RNDN);
}

