#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 r21064 = re;
        float r21065 = r21064 * r21064;
        float r21066 = im;
        float r21067 = r21066 * r21066;
        float r21068 = r21065 + r21067;
        float r21069 = sqrt(r21068);
        float r21070 = log(r21069);
        float r21071 = 10;
        float r21072 = log(r21071);
        float r21073 = r21070 / r21072;
        return r21073;
}

double f_id(double re, double im) {
        double r21074 = re;
        double r21075 = r21074 * r21074;
        double r21076 = im;
        double r21077 = r21076 * r21076;
        double r21078 = r21075 + r21077;
        double r21079 = sqrt(r21078);
        double r21080 = log(r21079);
        double r21081 = 10;
        double r21082 = log(r21081);
        double r21083 = r21080 / r21082;
        return r21083;
}


double f_of(float re, float im) {
        float r21084 = re;
        float r21085 = -1.165381495034067e+96;
        bool r21086 = r21084 <= r21085;
        float r21087 = -r21084;
        float r21088 = log(r21087);
        float r21089 = 10;
        float r21090 = log(r21089);
        float r21091 = r21088 / r21090;
        float r21092 = 2.4528332963254056e-195;
        bool r21093 = r21084 <= r21092;
        float r21094 = 1/2;
        float r21095 = sqrt(r21090);
        float r21096 = r21094 / r21095;
        float r21097 = r21084 * r21084;
        float r21098 = im;
        float r21099 = r21098 * r21098;
        float r21100 = r21097 + r21099;
        float r21101 = log(r21100);
        float r21102 = 1;
        float r21103 = r21102 / r21095;
        float r21104 = r21101 * r21103;
        float r21105 = r21096 * r21104;
        float r21106 = 4.8611610197161825e-177;
        bool r21107 = r21084 <= r21106;
        float r21108 = log(r21084);
        float r21109 = r21108 / r21090;
        float r21110 = 333726528697.66797;
        bool r21111 = r21084 <= r21110;
        float r21112 = r21111 ? r21105 : r21109;
        float r21113 = r21107 ? r21109 : r21112;
        float r21114 = r21093 ? r21105 : r21113;
        float r21115 = r21086 ? r21091 : r21114;
        return r21115;
}

double f_od(double re, double im) {
        double r21116 = re;
        double r21117 = -1.165381495034067e+96;
        bool r21118 = r21116 <= r21117;
        double r21119 = -r21116;
        double r21120 = log(r21119);
        double r21121 = 10;
        double r21122 = log(r21121);
        double r21123 = r21120 / r21122;
        double r21124 = 2.4528332963254056e-195;
        bool r21125 = r21116 <= r21124;
        double r21126 = 1/2;
        double r21127 = sqrt(r21122);
        double r21128 = r21126 / r21127;
        double r21129 = r21116 * r21116;
        double r21130 = im;
        double r21131 = r21130 * r21130;
        double r21132 = r21129 + r21131;
        double r21133 = log(r21132);
        double r21134 = 1;
        double r21135 = r21134 / r21127;
        double r21136 = r21133 * r21135;
        double r21137 = r21128 * r21136;
        double r21138 = 4.8611610197161825e-177;
        bool r21139 = r21116 <= r21138;
        double r21140 = log(r21116);
        double r21141 = r21140 / r21122;
        double r21142 = 333726528697.66797;
        bool r21143 = r21116 <= r21142;
        double r21144 = r21143 ? r21137 : r21141;
        double r21145 = r21139 ? r21141 : r21144;
        double r21146 = r21125 ? r21137 : r21145;
        double r21147 = r21118 ? r21123 : r21146;
        return r21147;
}

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 r21148, r21149, r21150, r21151, r21152, r21153, r21154, r21155, r21156, r21157;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r21148);
        mpfr_init(r21149);
        mpfr_init(r21150);
        mpfr_init(r21151);
        mpfr_init(r21152);
        mpfr_init(r21153);
        mpfr_init(r21154);
        mpfr_init_set_str(r21155, "10", 10, MPFR_RNDN);
        mpfr_init(r21156);
        mpfr_init(r21157);
}

double f_im(double re, double im) {
        mpfr_set_d(r21148, re, MPFR_RNDN);
        mpfr_mul(r21149, r21148, r21148, MPFR_RNDN);
        mpfr_set_d(r21150, im, MPFR_RNDN);
        mpfr_mul(r21151, r21150, r21150, MPFR_RNDN);
        mpfr_add(r21152, r21149, r21151, MPFR_RNDN);
        mpfr_sqrt(r21153, r21152, MPFR_RNDN);
        mpfr_log(r21154, r21153, MPFR_RNDN);
        ;
        mpfr_log(r21156, r21155, MPFR_RNDN);
        mpfr_div(r21157, r21154, r21156, MPFR_RNDN);
        return mpfr_get_d(r21157, MPFR_RNDN);
}

static mpfr_t r21158, r21159, r21160, r21161, r21162, r21163, r21164, r21165, r21166, r21167, r21168, r21169, r21170, r21171, r21172, r21173, r21174, r21175, r21176, r21177, r21178, r21179, r21180, r21181, r21182, r21183, r21184, r21185, r21186, r21187, r21188, r21189;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21158);
        mpfr_init_set_str(r21159, "-1.165381495034067e+96", 10, MPFR_RNDN);
        mpfr_init(r21160);
        mpfr_init(r21161);
        mpfr_init(r21162);
        mpfr_init_set_str(r21163, "10", 10, MPFR_RNDN);
        mpfr_init(r21164);
        mpfr_init(r21165);
        mpfr_init_set_str(r21166, "2.4528332963254056e-195", 10, MPFR_RNDN);
        mpfr_init(r21167);
        mpfr_init_set_str(r21168, "1/2", 10, MPFR_RNDN);
        mpfr_init(r21169);
        mpfr_init(r21170);
        mpfr_init(r21171);
        mpfr_init(r21172);
        mpfr_init(r21173);
        mpfr_init(r21174);
        mpfr_init(r21175);
        mpfr_init_set_str(r21176, "1", 10, MPFR_RNDN);
        mpfr_init(r21177);
        mpfr_init(r21178);
        mpfr_init(r21179);
        mpfr_init_set_str(r21180, "4.8611610197161825e-177", 10, MPFR_RNDN);
        mpfr_init(r21181);
        mpfr_init(r21182);
        mpfr_init(r21183);
        mpfr_init_set_str(r21184, "333726528697.66797", 10, MPFR_RNDN);
        mpfr_init(r21185);
        mpfr_init(r21186);
        mpfr_init(r21187);
        mpfr_init(r21188);
        mpfr_init(r21189);
}

double f_fm(double re, double im) {
        mpfr_set_d(r21158, re, MPFR_RNDN);
        ;
        mpfr_set_si(r21160, mpfr_cmp(r21158, r21159) <= 0, MPFR_RNDN);
        mpfr_neg(r21161, r21158, MPFR_RNDN);
        mpfr_log(r21162, r21161, MPFR_RNDN);
        ;
        mpfr_log(r21164, r21163, MPFR_RNDN);
        mpfr_div(r21165, r21162, r21164, MPFR_RNDN);
        ;
        mpfr_set_si(r21167, mpfr_cmp(r21158, r21166) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r21169, r21164, MPFR_RNDN);
        mpfr_div(r21170, r21168, r21169, MPFR_RNDN);
        mpfr_mul(r21171, r21158, r21158, MPFR_RNDN);
        mpfr_set_d(r21172, im, MPFR_RNDN);
        mpfr_mul(r21173, r21172, r21172, MPFR_RNDN);
        mpfr_add(r21174, r21171, r21173, MPFR_RNDN);
        mpfr_log(r21175, r21174, MPFR_RNDN);
        ;
        mpfr_div(r21177, r21176, r21169, MPFR_RNDN);
        mpfr_mul(r21178, r21175, r21177, MPFR_RNDN);
        mpfr_mul(r21179, r21170, r21178, MPFR_RNDN);
        ;
        mpfr_set_si(r21181, mpfr_cmp(r21158, r21180) <= 0, MPFR_RNDN);
        mpfr_log(r21182, r21158, MPFR_RNDN);
        mpfr_div(r21183, r21182, r21164, MPFR_RNDN);
        ;
        mpfr_set_si(r21185, mpfr_cmp(r21158, r21184) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r21185, MPFR_RNDN)) { mpfr_set(r21186, r21179, MPFR_RNDN); } else { mpfr_set(r21186, r21183, MPFR_RNDN); };
        if (mpfr_get_si(r21181, MPFR_RNDN)) { mpfr_set(r21187, r21183, MPFR_RNDN); } else { mpfr_set(r21187, r21186, MPFR_RNDN); };
        if (mpfr_get_si(r21167, MPFR_RNDN)) { mpfr_set(r21188, r21179, MPFR_RNDN); } else { mpfr_set(r21188, r21187, MPFR_RNDN); };
        if (mpfr_get_si(r21160, MPFR_RNDN)) { mpfr_set(r21189, r21165, MPFR_RNDN); } else { mpfr_set(r21189, r21188, MPFR_RNDN); };
        return mpfr_get_d(r21189, MPFR_RNDN);
}

static mpfr_t r21190, r21191, r21192, r21193, r21194, r21195, r21196, r21197, r21198, r21199, r21200, r21201, r21202, r21203, r21204, r21205, r21206, r21207, r21208, r21209, r21210, r21211, r21212, r21213, r21214, r21215, r21216, r21217, r21218, r21219, r21220, r21221;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21190);
        mpfr_init_set_str(r21191, "-1.165381495034067e+96", 10, MPFR_RNDN);
        mpfr_init(r21192);
        mpfr_init(r21193);
        mpfr_init(r21194);
        mpfr_init_set_str(r21195, "10", 10, MPFR_RNDN);
        mpfr_init(r21196);
        mpfr_init(r21197);
        mpfr_init_set_str(r21198, "2.4528332963254056e-195", 10, MPFR_RNDN);
        mpfr_init(r21199);
        mpfr_init_set_str(r21200, "1/2", 10, MPFR_RNDN);
        mpfr_init(r21201);
        mpfr_init(r21202);
        mpfr_init(r21203);
        mpfr_init(r21204);
        mpfr_init(r21205);
        mpfr_init(r21206);
        mpfr_init(r21207);
        mpfr_init_set_str(r21208, "1", 10, MPFR_RNDN);
        mpfr_init(r21209);
        mpfr_init(r21210);
        mpfr_init(r21211);
        mpfr_init_set_str(r21212, "4.8611610197161825e-177", 10, MPFR_RNDN);
        mpfr_init(r21213);
        mpfr_init(r21214);
        mpfr_init(r21215);
        mpfr_init_set_str(r21216, "333726528697.66797", 10, MPFR_RNDN);
        mpfr_init(r21217);
        mpfr_init(r21218);
        mpfr_init(r21219);
        mpfr_init(r21220);
        mpfr_init(r21221);
}

double f_dm(double re, double im) {
        mpfr_set_d(r21190, re, MPFR_RNDN);
        ;
        mpfr_set_si(r21192, mpfr_cmp(r21190, r21191) <= 0, MPFR_RNDN);
        mpfr_neg(r21193, r21190, MPFR_RNDN);
        mpfr_log(r21194, r21193, MPFR_RNDN);
        ;
        mpfr_log(r21196, r21195, MPFR_RNDN);
        mpfr_div(r21197, r21194, r21196, MPFR_RNDN);
        ;
        mpfr_set_si(r21199, mpfr_cmp(r21190, r21198) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r21201, r21196, MPFR_RNDN);
        mpfr_div(r21202, r21200, r21201, MPFR_RNDN);
        mpfr_mul(r21203, r21190, r21190, MPFR_RNDN);
        mpfr_set_d(r21204, im, MPFR_RNDN);
        mpfr_mul(r21205, r21204, r21204, MPFR_RNDN);
        mpfr_add(r21206, r21203, r21205, MPFR_RNDN);
        mpfr_log(r21207, r21206, MPFR_RNDN);
        ;
        mpfr_div(r21209, r21208, r21201, MPFR_RNDN);
        mpfr_mul(r21210, r21207, r21209, MPFR_RNDN);
        mpfr_mul(r21211, r21202, r21210, MPFR_RNDN);
        ;
        mpfr_set_si(r21213, mpfr_cmp(r21190, r21212) <= 0, MPFR_RNDN);
        mpfr_log(r21214, r21190, MPFR_RNDN);
        mpfr_div(r21215, r21214, r21196, MPFR_RNDN);
        ;
        mpfr_set_si(r21217, mpfr_cmp(r21190, r21216) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r21217, MPFR_RNDN)) { mpfr_set(r21218, r21211, MPFR_RNDN); } else { mpfr_set(r21218, r21215, MPFR_RNDN); };
        if (mpfr_get_si(r21213, MPFR_RNDN)) { mpfr_set(r21219, r21215, MPFR_RNDN); } else { mpfr_set(r21219, r21218, MPFR_RNDN); };
        if (mpfr_get_si(r21199, MPFR_RNDN)) { mpfr_set(r21220, r21211, MPFR_RNDN); } else { mpfr_set(r21220, r21219, MPFR_RNDN); };
        if (mpfr_get_si(r21192, MPFR_RNDN)) { mpfr_set(r21221, r21197, MPFR_RNDN); } else { mpfr_set(r21221, r21220, MPFR_RNDN); };
        return mpfr_get_d(r21221, MPFR_RNDN);
}

