#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 r21076 = re;
        float r21077 = r21076 * r21076;
        float r21078 = im;
        float r21079 = r21078 * r21078;
        float r21080 = r21077 + r21079;
        float r21081 = sqrt(r21080);
        float r21082 = log(r21081);
        float r21083 = 10;
        float r21084 = log(r21083);
        float r21085 = r21082 / r21084;
        return r21085;
}

double f_id(double re, double im) {
        double r21086 = re;
        double r21087 = r21086 * r21086;
        double r21088 = im;
        double r21089 = r21088 * r21088;
        double r21090 = r21087 + r21089;
        double r21091 = sqrt(r21090);
        double r21092 = log(r21091);
        double r21093 = 10;
        double r21094 = log(r21093);
        double r21095 = r21092 / r21094;
        return r21095;
}


double f_of(float re, float im) {
        float r21096 = re;
        float r21097 = -1.165381495034067e+96;
        bool r21098 = r21096 <= r21097;
        float r21099 = -r21096;
        float r21100 = log(r21099);
        float r21101 = 10;
        float r21102 = log(r21101);
        float r21103 = r21100 / r21102;
        float r21104 = 2.4528332963254056e-195;
        bool r21105 = r21096 <= r21104;
        float r21106 = 1/2;
        float r21107 = sqrt(r21102);
        float r21108 = r21106 / r21107;
        float r21109 = r21096 * r21096;
        float r21110 = im;
        float r21111 = r21110 * r21110;
        float r21112 = r21109 + r21111;
        float r21113 = log(r21112);
        float r21114 = 1;
        float r21115 = r21114 / r21107;
        float r21116 = r21113 * r21115;
        float r21117 = r21108 * r21116;
        float r21118 = 4.8611610197161825e-177;
        bool r21119 = r21096 <= r21118;
        float r21120 = log(r21096);
        float r21121 = r21120 / r21102;
        float r21122 = 333726528697.66797;
        bool r21123 = r21096 <= r21122;
        float r21124 = r21123 ? r21117 : r21121;
        float r21125 = r21119 ? r21121 : r21124;
        float r21126 = r21105 ? r21117 : r21125;
        float r21127 = r21098 ? r21103 : r21126;
        return r21127;
}

double f_od(double re, double im) {
        double r21128 = re;
        double r21129 = -1.165381495034067e+96;
        bool r21130 = r21128 <= r21129;
        double r21131 = -r21128;
        double r21132 = log(r21131);
        double r21133 = 10;
        double r21134 = log(r21133);
        double r21135 = r21132 / r21134;
        double r21136 = 2.4528332963254056e-195;
        bool r21137 = r21128 <= r21136;
        double r21138 = 1/2;
        double r21139 = sqrt(r21134);
        double r21140 = r21138 / r21139;
        double r21141 = r21128 * r21128;
        double r21142 = im;
        double r21143 = r21142 * r21142;
        double r21144 = r21141 + r21143;
        double r21145 = log(r21144);
        double r21146 = 1;
        double r21147 = r21146 / r21139;
        double r21148 = r21145 * r21147;
        double r21149 = r21140 * r21148;
        double r21150 = 4.8611610197161825e-177;
        bool r21151 = r21128 <= r21150;
        double r21152 = log(r21128);
        double r21153 = r21152 / r21134;
        double r21154 = 333726528697.66797;
        bool r21155 = r21128 <= r21154;
        double r21156 = r21155 ? r21149 : r21153;
        double r21157 = r21151 ? r21153 : r21156;
        double r21158 = r21137 ? r21149 : r21157;
        double r21159 = r21130 ? r21135 : r21158;
        return r21159;
}

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 r21160, r21161, r21162, r21163, r21164, r21165, r21166, r21167, r21168, r21169;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r21160);
        mpfr_init(r21161);
        mpfr_init(r21162);
        mpfr_init(r21163);
        mpfr_init(r21164);
        mpfr_init(r21165);
        mpfr_init(r21166);
        mpfr_init_set_str(r21167, "10", 10, MPFR_RNDN);
        mpfr_init(r21168);
        mpfr_init(r21169);
}

double f_im(double re, double im) {
        mpfr_set_d(r21160, re, MPFR_RNDN);
        mpfr_mul(r21161, r21160, r21160, MPFR_RNDN);
        mpfr_set_d(r21162, im, MPFR_RNDN);
        mpfr_mul(r21163, r21162, r21162, MPFR_RNDN);
        mpfr_add(r21164, r21161, r21163, MPFR_RNDN);
        mpfr_sqrt(r21165, r21164, MPFR_RNDN);
        mpfr_log(r21166, r21165, MPFR_RNDN);
        ;
        mpfr_log(r21168, r21167, MPFR_RNDN);
        mpfr_div(r21169, r21166, r21168, MPFR_RNDN);
        return mpfr_get_d(r21169, MPFR_RNDN);
}

static mpfr_t r21170, r21171, r21172, r21173, r21174, r21175, r21176, r21177, r21178, r21179, r21180, r21181, r21182, r21183, r21184, r21185, r21186, r21187, r21188, r21189, r21190, r21191, r21192, r21193, r21194, r21195, r21196, r21197, r21198, r21199, r21200, r21201;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21170);
        mpfr_init_set_str(r21171, "-1.165381495034067e+96", 10, MPFR_RNDN);
        mpfr_init(r21172);
        mpfr_init(r21173);
        mpfr_init(r21174);
        mpfr_init_set_str(r21175, "10", 10, MPFR_RNDN);
        mpfr_init(r21176);
        mpfr_init(r21177);
        mpfr_init_set_str(r21178, "2.4528332963254056e-195", 10, MPFR_RNDN);
        mpfr_init(r21179);
        mpfr_init_set_str(r21180, "1/2", 10, MPFR_RNDN);
        mpfr_init(r21181);
        mpfr_init(r21182);
        mpfr_init(r21183);
        mpfr_init(r21184);
        mpfr_init(r21185);
        mpfr_init(r21186);
        mpfr_init(r21187);
        mpfr_init_set_str(r21188, "1", 10, MPFR_RNDN);
        mpfr_init(r21189);
        mpfr_init(r21190);
        mpfr_init(r21191);
        mpfr_init_set_str(r21192, "4.8611610197161825e-177", 10, MPFR_RNDN);
        mpfr_init(r21193);
        mpfr_init(r21194);
        mpfr_init(r21195);
        mpfr_init_set_str(r21196, "333726528697.66797", 10, MPFR_RNDN);
        mpfr_init(r21197);
        mpfr_init(r21198);
        mpfr_init(r21199);
        mpfr_init(r21200);
        mpfr_init(r21201);
}

double f_fm(double re, double im) {
        mpfr_set_d(r21170, re, MPFR_RNDN);
        ;
        mpfr_set_si(r21172, mpfr_cmp(r21170, r21171) <= 0, MPFR_RNDN);
        mpfr_neg(r21173, r21170, MPFR_RNDN);
        mpfr_log(r21174, r21173, MPFR_RNDN);
        ;
        mpfr_log(r21176, r21175, MPFR_RNDN);
        mpfr_div(r21177, r21174, r21176, MPFR_RNDN);
        ;
        mpfr_set_si(r21179, mpfr_cmp(r21170, r21178) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r21181, r21176, MPFR_RNDN);
        mpfr_div(r21182, r21180, r21181, MPFR_RNDN);
        mpfr_mul(r21183, r21170, r21170, MPFR_RNDN);
        mpfr_set_d(r21184, im, MPFR_RNDN);
        mpfr_mul(r21185, r21184, r21184, MPFR_RNDN);
        mpfr_add(r21186, r21183, r21185, MPFR_RNDN);
        mpfr_log(r21187, r21186, MPFR_RNDN);
        ;
        mpfr_div(r21189, r21188, r21181, MPFR_RNDN);
        mpfr_mul(r21190, r21187, r21189, MPFR_RNDN);
        mpfr_mul(r21191, r21182, r21190, MPFR_RNDN);
        ;
        mpfr_set_si(r21193, mpfr_cmp(r21170, r21192) <= 0, MPFR_RNDN);
        mpfr_log(r21194, r21170, MPFR_RNDN);
        mpfr_div(r21195, r21194, r21176, MPFR_RNDN);
        ;
        mpfr_set_si(r21197, mpfr_cmp(r21170, r21196) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r21197, MPFR_RNDN)) { mpfr_set(r21198, r21191, MPFR_RNDN); } else { mpfr_set(r21198, r21195, MPFR_RNDN); };
        if (mpfr_get_si(r21193, MPFR_RNDN)) { mpfr_set(r21199, r21195, MPFR_RNDN); } else { mpfr_set(r21199, r21198, MPFR_RNDN); };
        if (mpfr_get_si(r21179, MPFR_RNDN)) { mpfr_set(r21200, r21191, MPFR_RNDN); } else { mpfr_set(r21200, r21199, MPFR_RNDN); };
        if (mpfr_get_si(r21172, MPFR_RNDN)) { mpfr_set(r21201, r21177, MPFR_RNDN); } else { mpfr_set(r21201, 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_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21202);
        mpfr_init_set_str(r21203, "-1.165381495034067e+96", 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.4528332963254056e-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, "4.8611610197161825e-177", 10, MPFR_RNDN);
        mpfr_init(r21225);
        mpfr_init(r21226);
        mpfr_init(r21227);
        mpfr_init_set_str(r21228, "333726528697.66797", 10, MPFR_RNDN);
        mpfr_init(r21229);
        mpfr_init(r21230);
        mpfr_init(r21231);
        mpfr_init(r21232);
        mpfr_init(r21233);
}

double f_dm(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);
}

