#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 r21108 = re;
        float r21109 = r21108 * r21108;
        float r21110 = im;
        float r21111 = r21110 * r21110;
        float r21112 = r21109 + r21111;
        float r21113 = sqrt(r21112);
        float r21114 = log(r21113);
        float r21115 = 10;
        float r21116 = log(r21115);
        float r21117 = r21114 / r21116;
        return r21117;
}

double f_id(double re, double im) {
        double r21118 = re;
        double r21119 = r21118 * r21118;
        double r21120 = im;
        double r21121 = r21120 * r21120;
        double r21122 = r21119 + r21121;
        double r21123 = sqrt(r21122);
        double r21124 = log(r21123);
        double r21125 = 10;
        double r21126 = log(r21125);
        double r21127 = r21124 / r21126;
        return r21127;
}


double f_of(float re, float im) {
        float r21128 = re;
        float r21129 = -3.2564584289677175e+97;
        bool r21130 = r21128 <= r21129;
        float r21131 = -r21128;
        float r21132 = log(r21131);
        float r21133 = 10;
        float r21134 = log(r21133);
        float r21135 = r21132 / r21134;
        float r21136 = 2.447855958190132e-195;
        bool r21137 = r21128 <= r21136;
        float r21138 = 1/2;
        float r21139 = sqrt(r21134);
        float r21140 = r21138 / r21139;
        float r21141 = r21128 * r21128;
        float r21142 = im;
        float r21143 = r21142 * r21142;
        float r21144 = r21141 + r21143;
        float r21145 = log(r21144);
        float r21146 = 1;
        float r21147 = r21146 / r21139;
        float r21148 = r21145 * r21147;
        float r21149 = r21140 * r21148;
        float r21150 = 1.539380988490176e-178;
        bool r21151 = r21128 <= r21150;
        float r21152 = log(r21128);
        float r21153 = r21152 / r21134;
        float r21154 = 323298652673.5006;
        bool r21155 = r21128 <= r21154;
        float r21156 = r21155 ? r21149 : r21153;
        float r21157 = r21151 ? r21153 : r21156;
        float r21158 = r21137 ? r21149 : r21157;
        float r21159 = r21130 ? r21135 : r21158;
        return r21159;
}

double f_od(double re, double im) {
        double r21160 = re;
        double r21161 = -3.2564584289677175e+97;
        bool r21162 = r21160 <= r21161;
        double r21163 = -r21160;
        double r21164 = log(r21163);
        double r21165 = 10;
        double r21166 = log(r21165);
        double r21167 = r21164 / r21166;
        double r21168 = 2.447855958190132e-195;
        bool r21169 = r21160 <= r21168;
        double r21170 = 1/2;
        double r21171 = sqrt(r21166);
        double r21172 = r21170 / r21171;
        double r21173 = r21160 * r21160;
        double r21174 = im;
        double r21175 = r21174 * r21174;
        double r21176 = r21173 + r21175;
        double r21177 = log(r21176);
        double r21178 = 1;
        double r21179 = r21178 / r21171;
        double r21180 = r21177 * r21179;
        double r21181 = r21172 * r21180;
        double r21182 = 1.539380988490176e-178;
        bool r21183 = r21160 <= r21182;
        double r21184 = log(r21160);
        double r21185 = r21184 / r21166;
        double r21186 = 323298652673.5006;
        bool r21187 = r21160 <= r21186;
        double r21188 = r21187 ? r21181 : r21185;
        double r21189 = r21183 ? r21185 : r21188;
        double r21190 = r21169 ? r21181 : r21189;
        double r21191 = r21162 ? r21167 : r21190;
        return r21191;
}

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 r21192, r21193, r21194, r21195, r21196, r21197, r21198, r21199, r21200, r21201;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r21192);
        mpfr_init(r21193);
        mpfr_init(r21194);
        mpfr_init(r21195);
        mpfr_init(r21196);
        mpfr_init(r21197);
        mpfr_init(r21198);
        mpfr_init_set_str(r21199, "10", 10, MPFR_RNDN);
        mpfr_init(r21200);
        mpfr_init(r21201);
}

double f_im(double re, double im) {
        mpfr_set_d(r21192, re, MPFR_RNDN);
        mpfr_mul(r21193, r21192, r21192, MPFR_RNDN);
        mpfr_set_d(r21194, im, MPFR_RNDN);
        mpfr_mul(r21195, r21194, r21194, MPFR_RNDN);
        mpfr_add(r21196, r21193, r21195, MPFR_RNDN);
        mpfr_sqrt(r21197, r21196, MPFR_RNDN);
        mpfr_log(r21198, r21197, MPFR_RNDN);
        ;
        mpfr_log(r21200, r21199, MPFR_RNDN);
        mpfr_div(r21201, r21198, r21200, MPFR_RNDN);
        return mpfr_get_d(r21201, MPFR_RNDN);
}

static mpfr_t r21202, r21203, r21204, r21205, r21206, r21207, r21208, r21209, r21210, r21211, r21212, r21213, r21214, r21215, r21216, r21217, r21218, r21219, r21220, r21221, r21222, r21223, r21224, r21225, r21226, r21227, r21228, r21229, r21230, r21231, r21232, r21233;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21202);
        mpfr_init_set_str(r21203, "-3.2564584289677175e+97", 10, MPFR_RNDN);
        mpfr_init(r21204);
        mpfr_init(r21205);
        mpfr_init(r21206);
        mpfr_init_set_str(r21207, "10", 10, MPFR_RNDN);
        mpfr_init(r21208);
        mpfr_init(r21209);
        mpfr_init_set_str(r21210, "2.447855958190132e-195", 10, MPFR_RNDN);
        mpfr_init(r21211);
        mpfr_init_set_str(r21212, "1/2", 10, MPFR_RNDN);
        mpfr_init(r21213);
        mpfr_init(r21214);
        mpfr_init(r21215);
        mpfr_init(r21216);
        mpfr_init(r21217);
        mpfr_init(r21218);
        mpfr_init(r21219);
        mpfr_init_set_str(r21220, "1", 10, MPFR_RNDN);
        mpfr_init(r21221);
        mpfr_init(r21222);
        mpfr_init(r21223);
        mpfr_init_set_str(r21224, "1.539380988490176e-178", 10, MPFR_RNDN);
        mpfr_init(r21225);
        mpfr_init(r21226);
        mpfr_init(r21227);
        mpfr_init_set_str(r21228, "323298652673.5006", 10, MPFR_RNDN);
        mpfr_init(r21229);
        mpfr_init(r21230);
        mpfr_init(r21231);
        mpfr_init(r21232);
        mpfr_init(r21233);
}

double f_fm(double re, double im) {
        mpfr_set_d(r21202, re, MPFR_RNDN);
        ;
        mpfr_set_si(r21204, mpfr_cmp(r21202, r21203) <= 0, MPFR_RNDN);
        mpfr_neg(r21205, r21202, MPFR_RNDN);
        mpfr_log(r21206, r21205, MPFR_RNDN);
        ;
        mpfr_log(r21208, r21207, MPFR_RNDN);
        mpfr_div(r21209, r21206, r21208, MPFR_RNDN);
        ;
        mpfr_set_si(r21211, mpfr_cmp(r21202, r21210) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r21213, r21208, MPFR_RNDN);
        mpfr_div(r21214, r21212, r21213, MPFR_RNDN);
        mpfr_mul(r21215, r21202, r21202, MPFR_RNDN);
        mpfr_set_d(r21216, im, MPFR_RNDN);
        mpfr_mul(r21217, r21216, r21216, MPFR_RNDN);
        mpfr_add(r21218, r21215, r21217, MPFR_RNDN);
        mpfr_log(r21219, r21218, MPFR_RNDN);
        ;
        mpfr_div(r21221, r21220, r21213, MPFR_RNDN);
        mpfr_mul(r21222, r21219, r21221, MPFR_RNDN);
        mpfr_mul(r21223, r21214, r21222, MPFR_RNDN);
        ;
        mpfr_set_si(r21225, mpfr_cmp(r21202, r21224) <= 0, MPFR_RNDN);
        mpfr_log(r21226, r21202, MPFR_RNDN);
        mpfr_div(r21227, r21226, r21208, MPFR_RNDN);
        ;
        mpfr_set_si(r21229, mpfr_cmp(r21202, r21228) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r21229, MPFR_RNDN)) { mpfr_set(r21230, r21223, MPFR_RNDN); } else { mpfr_set(r21230, r21227, MPFR_RNDN); };
        if (mpfr_get_si(r21225, MPFR_RNDN)) { mpfr_set(r21231, r21227, MPFR_RNDN); } else { mpfr_set(r21231, r21230, MPFR_RNDN); };
        if (mpfr_get_si(r21211, MPFR_RNDN)) { mpfr_set(r21232, r21223, MPFR_RNDN); } else { mpfr_set(r21232, r21231, MPFR_RNDN); };
        if (mpfr_get_si(r21204, MPFR_RNDN)) { mpfr_set(r21233, r21209, MPFR_RNDN); } else { mpfr_set(r21233, r21232, MPFR_RNDN); };
        return mpfr_get_d(r21233, MPFR_RNDN);
}

static mpfr_t r21234, r21235, r21236, r21237, r21238, r21239, r21240, r21241, r21242, r21243, r21244, r21245, r21246, r21247, r21248, r21249, r21250, r21251, r21252, r21253, r21254, r21255, r21256, r21257, r21258, r21259, r21260, r21261, r21262, r21263, r21264, r21265;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21234);
        mpfr_init_set_str(r21235, "-3.2564584289677175e+97", 10, MPFR_RNDN);
        mpfr_init(r21236);
        mpfr_init(r21237);
        mpfr_init(r21238);
        mpfr_init_set_str(r21239, "10", 10, MPFR_RNDN);
        mpfr_init(r21240);
        mpfr_init(r21241);
        mpfr_init_set_str(r21242, "2.447855958190132e-195", 10, MPFR_RNDN);
        mpfr_init(r21243);
        mpfr_init_set_str(r21244, "1/2", 10, MPFR_RNDN);
        mpfr_init(r21245);
        mpfr_init(r21246);
        mpfr_init(r21247);
        mpfr_init(r21248);
        mpfr_init(r21249);
        mpfr_init(r21250);
        mpfr_init(r21251);
        mpfr_init_set_str(r21252, "1", 10, MPFR_RNDN);
        mpfr_init(r21253);
        mpfr_init(r21254);
        mpfr_init(r21255);
        mpfr_init_set_str(r21256, "1.539380988490176e-178", 10, MPFR_RNDN);
        mpfr_init(r21257);
        mpfr_init(r21258);
        mpfr_init(r21259);
        mpfr_init_set_str(r21260, "323298652673.5006", 10, MPFR_RNDN);
        mpfr_init(r21261);
        mpfr_init(r21262);
        mpfr_init(r21263);
        mpfr_init(r21264);
        mpfr_init(r21265);
}

double f_dm(double re, double im) {
        mpfr_set_d(r21234, re, MPFR_RNDN);
        ;
        mpfr_set_si(r21236, mpfr_cmp(r21234, r21235) <= 0, MPFR_RNDN);
        mpfr_neg(r21237, r21234, MPFR_RNDN);
        mpfr_log(r21238, r21237, MPFR_RNDN);
        ;
        mpfr_log(r21240, r21239, MPFR_RNDN);
        mpfr_div(r21241, r21238, r21240, MPFR_RNDN);
        ;
        mpfr_set_si(r21243, mpfr_cmp(r21234, r21242) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r21245, r21240, MPFR_RNDN);
        mpfr_div(r21246, r21244, r21245, MPFR_RNDN);
        mpfr_mul(r21247, r21234, r21234, MPFR_RNDN);
        mpfr_set_d(r21248, im, MPFR_RNDN);
        mpfr_mul(r21249, r21248, r21248, MPFR_RNDN);
        mpfr_add(r21250, r21247, r21249, MPFR_RNDN);
        mpfr_log(r21251, r21250, MPFR_RNDN);
        ;
        mpfr_div(r21253, r21252, r21245, MPFR_RNDN);
        mpfr_mul(r21254, r21251, r21253, MPFR_RNDN);
        mpfr_mul(r21255, r21246, r21254, MPFR_RNDN);
        ;
        mpfr_set_si(r21257, mpfr_cmp(r21234, r21256) <= 0, MPFR_RNDN);
        mpfr_log(r21258, r21234, MPFR_RNDN);
        mpfr_div(r21259, r21258, r21240, MPFR_RNDN);
        ;
        mpfr_set_si(r21261, mpfr_cmp(r21234, r21260) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r21261, MPFR_RNDN)) { mpfr_set(r21262, r21255, MPFR_RNDN); } else { mpfr_set(r21262, r21259, MPFR_RNDN); };
        if (mpfr_get_si(r21257, MPFR_RNDN)) { mpfr_set(r21263, r21259, MPFR_RNDN); } else { mpfr_set(r21263, r21262, MPFR_RNDN); };
        if (mpfr_get_si(r21243, MPFR_RNDN)) { mpfr_set(r21264, r21255, MPFR_RNDN); } else { mpfr_set(r21264, r21263, MPFR_RNDN); };
        if (mpfr_get_si(r21236, MPFR_RNDN)) { mpfr_set(r21265, r21241, MPFR_RNDN); } else { mpfr_set(r21265, r21264, MPFR_RNDN); };
        return mpfr_get_d(r21265, MPFR_RNDN);
}

