#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "math.log/1 on complex, real part";

double f_if(float re, float im) {
        float r9293 = re;
        float r9294 = r9293 * r9293;
        float r9295 = im;
        float r9296 = r9295 * r9295;
        float r9297 = r9294 + r9296;
        float r9298 = sqrt(r9297);
        float r9299 = log(r9298);
        return r9299;
}

double f_id(double re, double im) {
        double r9300 = re;
        double r9301 = r9300 * r9300;
        double r9302 = im;
        double r9303 = r9302 * r9302;
        double r9304 = r9301 + r9303;
        double r9305 = sqrt(r9304);
        double r9306 = log(r9305);
        return r9306;
}


double f_of(float re, float im) {
        float r9307 = re;
        float r9308 = -r9307;
        float r9309 = -3.6077188296375152e+31;
        bool r9310 = r9308 <= r9309;
        float r9311 = log(r9307);
        float r9312 = -3.713042994084451e-251;
        bool r9313 = r9308 <= r9312;
        float r9314 = r9307 * r9307;
        float r9315 = im;
        float r9316 = r9315 * r9315;
        float r9317 = r9314 + r9316;
        float r9318 = sqrt(r9317);
        float r9319 = log(r9318);
        float r9320 = 5.643018672793251e-301;
        bool r9321 = r9308 <= r9320;
        float r9322 = log(r9315);
        float r9323 = 1.5954214813937854e+49;
        bool r9324 = r9308 <= r9323;
        float r9325 = log(r9308);
        float r9326 = r9324 ? r9319 : r9325;
        float r9327 = r9321 ? r9322 : r9326;
        float r9328 = r9313 ? r9319 : r9327;
        float r9329 = r9310 ? r9311 : r9328;
        return r9329;
}

double f_od(double re, double im) {
        double r9330 = re;
        double r9331 = -r9330;
        double r9332 = -3.6077188296375152e+31;
        bool r9333 = r9331 <= r9332;
        double r9334 = log(r9330);
        double r9335 = -3.713042994084451e-251;
        bool r9336 = r9331 <= r9335;
        double r9337 = r9330 * r9330;
        double r9338 = im;
        double r9339 = r9338 * r9338;
        double r9340 = r9337 + r9339;
        double r9341 = sqrt(r9340);
        double r9342 = log(r9341);
        double r9343 = 5.643018672793251e-301;
        bool r9344 = r9331 <= r9343;
        double r9345 = log(r9338);
        double r9346 = 1.5954214813937854e+49;
        bool r9347 = r9331 <= r9346;
        double r9348 = log(r9331);
        double r9349 = r9347 ? r9342 : r9348;
        double r9350 = r9344 ? r9345 : r9349;
        double r9351 = r9336 ? r9342 : r9350;
        double r9352 = r9333 ? r9334 : r9351;
        return r9352;
}

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 r9353, r9354, r9355, r9356, r9357, r9358, r9359;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9353);
        mpfr_init(r9354);
        mpfr_init(r9355);
        mpfr_init(r9356);
        mpfr_init(r9357);
        mpfr_init(r9358);
        mpfr_init(r9359);
}

double f_im(double re, double im) {
        mpfr_set_d(r9353, re, MPFR_RNDN);
        mpfr_mul(r9354, r9353, r9353, MPFR_RNDN);
        mpfr_set_d(r9355, im, MPFR_RNDN);
        mpfr_mul(r9356, r9355, r9355, MPFR_RNDN);
        mpfr_add(r9357, r9354, r9356, MPFR_RNDN);
        mpfr_sqrt(r9358, r9357, MPFR_RNDN);
        mpfr_log(r9359, r9358, MPFR_RNDN);
        return mpfr_get_d(r9359, MPFR_RNDN);
}

static mpfr_t r9360, r9361, r9362, r9363, r9364, r9365, r9366, r9367, r9368, r9369, r9370, r9371, r9372, r9373, r9374, r9375, r9376, r9377, r9378, r9379, r9380, r9381, r9382;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9360);
        mpfr_init(r9361);
        mpfr_init_set_str(r9362, "-3.6077188296375152e+31", 10, MPFR_RNDN);
        mpfr_init(r9363);
        mpfr_init(r9364);
        mpfr_init_set_str(r9365, "-3.713042994084451e-251", 10, MPFR_RNDN);
        mpfr_init(r9366);
        mpfr_init(r9367);
        mpfr_init(r9368);
        mpfr_init(r9369);
        mpfr_init(r9370);
        mpfr_init(r9371);
        mpfr_init(r9372);
        mpfr_init_set_str(r9373, "5.643018672793251e-301", 10, MPFR_RNDN);
        mpfr_init(r9374);
        mpfr_init(r9375);
        mpfr_init_set_str(r9376, "1.5954214813937854e+49", 10, MPFR_RNDN);
        mpfr_init(r9377);
        mpfr_init(r9378);
        mpfr_init(r9379);
        mpfr_init(r9380);
        mpfr_init(r9381);
        mpfr_init(r9382);
}

double f_fm(double re, double im) {
        mpfr_set_d(r9360, re, MPFR_RNDN);
        mpfr_neg(r9361, r9360, MPFR_RNDN);
        ;
        mpfr_set_si(r9363, mpfr_cmp(r9361, r9362) <= 0, MPFR_RNDN);
        mpfr_log(r9364, r9360, MPFR_RNDN);
        ;
        mpfr_set_si(r9366, mpfr_cmp(r9361, r9365) <= 0, MPFR_RNDN);
        mpfr_mul(r9367, r9360, r9360, MPFR_RNDN);
        mpfr_set_d(r9368, im, MPFR_RNDN);
        mpfr_mul(r9369, r9368, r9368, MPFR_RNDN);
        mpfr_add(r9370, r9367, r9369, MPFR_RNDN);
        mpfr_sqrt(r9371, r9370, MPFR_RNDN);
        mpfr_log(r9372, r9371, MPFR_RNDN);
        ;
        mpfr_set_si(r9374, mpfr_cmp(r9361, r9373) <= 0, MPFR_RNDN);
        mpfr_log(r9375, r9368, MPFR_RNDN);
        ;
        mpfr_set_si(r9377, mpfr_cmp(r9361, r9376) <= 0, MPFR_RNDN);
        mpfr_log(r9378, r9361, MPFR_RNDN);
        if (mpfr_get_si(r9377, MPFR_RNDN)) { mpfr_set(r9379, r9372, MPFR_RNDN); } else { mpfr_set(r9379, r9378, MPFR_RNDN); };
        if (mpfr_get_si(r9374, MPFR_RNDN)) { mpfr_set(r9380, r9375, MPFR_RNDN); } else { mpfr_set(r9380, r9379, MPFR_RNDN); };
        if (mpfr_get_si(r9366, MPFR_RNDN)) { mpfr_set(r9381, r9372, MPFR_RNDN); } else { mpfr_set(r9381, r9380, MPFR_RNDN); };
        if (mpfr_get_si(r9363, MPFR_RNDN)) { mpfr_set(r9382, r9364, MPFR_RNDN); } else { mpfr_set(r9382, r9381, MPFR_RNDN); };
        return mpfr_get_d(r9382, MPFR_RNDN);
}

static mpfr_t r9383, r9384, r9385, r9386, r9387, r9388, r9389, r9390, r9391, r9392, r9393, r9394, r9395, r9396, r9397, r9398, r9399, r9400, r9401, r9402, r9403, r9404, r9405;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9383);
        mpfr_init(r9384);
        mpfr_init_set_str(r9385, "-3.6077188296375152e+31", 10, MPFR_RNDN);
        mpfr_init(r9386);
        mpfr_init(r9387);
        mpfr_init_set_str(r9388, "-3.713042994084451e-251", 10, MPFR_RNDN);
        mpfr_init(r9389);
        mpfr_init(r9390);
        mpfr_init(r9391);
        mpfr_init(r9392);
        mpfr_init(r9393);
        mpfr_init(r9394);
        mpfr_init(r9395);
        mpfr_init_set_str(r9396, "5.643018672793251e-301", 10, MPFR_RNDN);
        mpfr_init(r9397);
        mpfr_init(r9398);
        mpfr_init_set_str(r9399, "1.5954214813937854e+49", 10, MPFR_RNDN);
        mpfr_init(r9400);
        mpfr_init(r9401);
        mpfr_init(r9402);
        mpfr_init(r9403);
        mpfr_init(r9404);
        mpfr_init(r9405);
}

double f_dm(double re, double im) {
        mpfr_set_d(r9383, re, MPFR_RNDN);
        mpfr_neg(r9384, r9383, MPFR_RNDN);
        ;
        mpfr_set_si(r9386, mpfr_cmp(r9384, r9385) <= 0, MPFR_RNDN);
        mpfr_log(r9387, r9383, MPFR_RNDN);
        ;
        mpfr_set_si(r9389, mpfr_cmp(r9384, r9388) <= 0, MPFR_RNDN);
        mpfr_mul(r9390, r9383, r9383, MPFR_RNDN);
        mpfr_set_d(r9391, im, MPFR_RNDN);
        mpfr_mul(r9392, r9391, r9391, MPFR_RNDN);
        mpfr_add(r9393, r9390, r9392, MPFR_RNDN);
        mpfr_sqrt(r9394, r9393, MPFR_RNDN);
        mpfr_log(r9395, r9394, MPFR_RNDN);
        ;
        mpfr_set_si(r9397, mpfr_cmp(r9384, r9396) <= 0, MPFR_RNDN);
        mpfr_log(r9398, r9391, MPFR_RNDN);
        ;
        mpfr_set_si(r9400, mpfr_cmp(r9384, r9399) <= 0, MPFR_RNDN);
        mpfr_log(r9401, r9384, MPFR_RNDN);
        if (mpfr_get_si(r9400, MPFR_RNDN)) { mpfr_set(r9402, r9395, MPFR_RNDN); } else { mpfr_set(r9402, r9401, MPFR_RNDN); };
        if (mpfr_get_si(r9397, MPFR_RNDN)) { mpfr_set(r9403, r9398, MPFR_RNDN); } else { mpfr_set(r9403, r9402, MPFR_RNDN); };
        if (mpfr_get_si(r9389, MPFR_RNDN)) { mpfr_set(r9404, r9395, MPFR_RNDN); } else { mpfr_set(r9404, r9403, MPFR_RNDN); };
        if (mpfr_get_si(r9386, MPFR_RNDN)) { mpfr_set(r9405, r9387, MPFR_RNDN); } else { mpfr_set(r9405, r9404, MPFR_RNDN); };
        return mpfr_get_d(r9405, MPFR_RNDN);
}

