#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 r22138 = re;
        float r22139 = r22138 * r22138;
        float r22140 = im;
        float r22141 = r22140 * r22140;
        float r22142 = r22139 + r22141;
        float r22143 = sqrt(r22142);
        float r22144 = log(r22143);
        float r22145 = 10;
        float r22146 = log(r22145);
        float r22147 = r22144 / r22146;
        return r22147;
}

double f_id(double re, double im) {
        double r22148 = re;
        double r22149 = r22148 * r22148;
        double r22150 = im;
        double r22151 = r22150 * r22150;
        double r22152 = r22149 + r22151;
        double r22153 = sqrt(r22152);
        double r22154 = log(r22153);
        double r22155 = 10;
        double r22156 = log(r22155);
        double r22157 = r22154 / r22156;
        return r22157;
}


double f_of(float re, float im) {
        float r22158 = re;
        float r22159 = -30725208.689847544;
        bool r22160 = r22158 <= r22159;
        float r22161 = 1/2;
        float r22162 = 10;
        float r22163 = log(r22162);
        float r22164 = sqrt(r22163);
        float r22165 = r22161 / r22164;
        float r22166 = -2;
        float r22167 = -1;
        float r22168 = r22167 / r22158;
        float r22169 = log(r22168);
        float r22170 = 1;
        float r22171 = r22170 / r22163;
        float r22172 = sqrt(r22171);
        float r22173 = r22169 * r22172;
        float r22174 = r22166 * r22173;
        float r22175 = r22165 * r22174;
        float r22176 = 3.6255462934229706e+47;
        bool r22177 = r22158 <= r22176;
        float r22178 = r22158 * r22158;
        float r22179 = im;
        float r22180 = r22179 * r22179;
        float r22181 = r22178 + r22180;
        float r22182 = log(r22181);
        float r22183 = r22170 / r22164;
        float r22184 = r22182 * r22183;
        float r22185 = r22165 * r22184;
        float r22186 = log(r22158);
        float r22187 = -r22166;
        float r22188 = r22186 * r22187;
        float r22189 = r22172 * r22188;
        float r22190 = r22165 * r22189;
        float r22191 = r22177 ? r22185 : r22190;
        float r22192 = r22160 ? r22175 : r22191;
        return r22192;
}

double f_od(double re, double im) {
        double r22193 = re;
        double r22194 = -30725208.689847544;
        bool r22195 = r22193 <= r22194;
        double r22196 = 1/2;
        double r22197 = 10;
        double r22198 = log(r22197);
        double r22199 = sqrt(r22198);
        double r22200 = r22196 / r22199;
        double r22201 = -2;
        double r22202 = -1;
        double r22203 = r22202 / r22193;
        double r22204 = log(r22203);
        double r22205 = 1;
        double r22206 = r22205 / r22198;
        double r22207 = sqrt(r22206);
        double r22208 = r22204 * r22207;
        double r22209 = r22201 * r22208;
        double r22210 = r22200 * r22209;
        double r22211 = 3.6255462934229706e+47;
        bool r22212 = r22193 <= r22211;
        double r22213 = r22193 * r22193;
        double r22214 = im;
        double r22215 = r22214 * r22214;
        double r22216 = r22213 + r22215;
        double r22217 = log(r22216);
        double r22218 = r22205 / r22199;
        double r22219 = r22217 * r22218;
        double r22220 = r22200 * r22219;
        double r22221 = log(r22193);
        double r22222 = -r22201;
        double r22223 = r22221 * r22222;
        double r22224 = r22207 * r22223;
        double r22225 = r22200 * r22224;
        double r22226 = r22212 ? r22220 : r22225;
        double r22227 = r22195 ? r22210 : r22226;
        return r22227;
}

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 r22228, r22229, r22230, r22231, r22232, r22233, r22234, r22235, r22236, r22237;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r22228);
        mpfr_init(r22229);
        mpfr_init(r22230);
        mpfr_init(r22231);
        mpfr_init(r22232);
        mpfr_init(r22233);
        mpfr_init(r22234);
        mpfr_init_set_str(r22235, "10", 10, MPFR_RNDN);
        mpfr_init(r22236);
        mpfr_init(r22237);
}

double f_im(double re, double im) {
        mpfr_set_d(r22228, re, MPFR_RNDN);
        mpfr_mul(r22229, r22228, r22228, MPFR_RNDN);
        mpfr_set_d(r22230, im, MPFR_RNDN);
        mpfr_mul(r22231, r22230, r22230, MPFR_RNDN);
        mpfr_add(r22232, r22229, r22231, MPFR_RNDN);
        mpfr_sqrt(r22233, r22232, MPFR_RNDN);
        mpfr_log(r22234, r22233, MPFR_RNDN);
        ;
        mpfr_log(r22236, r22235, MPFR_RNDN);
        mpfr_div(r22237, r22234, r22236, MPFR_RNDN);
        return mpfr_get_d(r22237, MPFR_RNDN);
}

static mpfr_t r22238, r22239, r22240, r22241, r22242, r22243, r22244, r22245, r22246, r22247, r22248, r22249, r22250, r22251, r22252, r22253, r22254, r22255, r22256, r22257, r22258, r22259, r22260, r22261, r22262, r22263, r22264, r22265, r22266, r22267, r22268, r22269, r22270, r22271, r22272;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r22238);
        mpfr_init_set_str(r22239, "-30725208.689847544", 10, MPFR_RNDN);
        mpfr_init(r22240);
        mpfr_init_set_str(r22241, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r22242, "10", 10, MPFR_RNDN);
        mpfr_init(r22243);
        mpfr_init(r22244);
        mpfr_init(r22245);
        mpfr_init_set_str(r22246, "-2", 10, MPFR_RNDN);
        mpfr_init_set_str(r22247, "-1", 10, MPFR_RNDN);
        mpfr_init(r22248);
        mpfr_init(r22249);
        mpfr_init_set_str(r22250, "1", 10, MPFR_RNDN);
        mpfr_init(r22251);
        mpfr_init(r22252);
        mpfr_init(r22253);
        mpfr_init(r22254);
        mpfr_init(r22255);
        mpfr_init_set_str(r22256, "3.6255462934229706e+47", 10, MPFR_RNDN);
        mpfr_init(r22257);
        mpfr_init(r22258);
        mpfr_init(r22259);
        mpfr_init(r22260);
        mpfr_init(r22261);
        mpfr_init(r22262);
        mpfr_init(r22263);
        mpfr_init(r22264);
        mpfr_init(r22265);
        mpfr_init(r22266);
        mpfr_init(r22267);
        mpfr_init(r22268);
        mpfr_init(r22269);
        mpfr_init(r22270);
        mpfr_init(r22271);
        mpfr_init(r22272);
}

double f_fm(double re, double im) {
        mpfr_set_d(r22238, re, MPFR_RNDN);
        ;
        mpfr_set_si(r22240, mpfr_cmp(r22238, r22239) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_log(r22243, r22242, MPFR_RNDN);
        mpfr_sqrt(r22244, r22243, MPFR_RNDN);
        mpfr_div(r22245, r22241, r22244, MPFR_RNDN);
        ;
        ;
        mpfr_div(r22248, r22247, r22238, MPFR_RNDN);
        mpfr_log(r22249, r22248, MPFR_RNDN);
        ;
        mpfr_div(r22251, r22250, r22243, MPFR_RNDN);
        mpfr_sqrt(r22252, r22251, MPFR_RNDN);
        mpfr_mul(r22253, r22249, r22252, MPFR_RNDN);
        mpfr_mul(r22254, r22246, r22253, MPFR_RNDN);
        mpfr_mul(r22255, r22245, r22254, MPFR_RNDN);
        ;
        mpfr_set_si(r22257, mpfr_cmp(r22238, r22256) <= 0, MPFR_RNDN);
        mpfr_mul(r22258, r22238, r22238, MPFR_RNDN);
        mpfr_set_d(r22259, im, MPFR_RNDN);
        mpfr_mul(r22260, r22259, r22259, MPFR_RNDN);
        mpfr_add(r22261, r22258, r22260, MPFR_RNDN);
        mpfr_log(r22262, r22261, MPFR_RNDN);
        mpfr_div(r22263, r22250, r22244, MPFR_RNDN);
        mpfr_mul(r22264, r22262, r22263, MPFR_RNDN);
        mpfr_mul(r22265, r22245, r22264, MPFR_RNDN);
        mpfr_log(r22266, r22238, MPFR_RNDN);
        mpfr_neg(r22267, r22246, MPFR_RNDN);
        mpfr_mul(r22268, r22266, r22267, MPFR_RNDN);
        mpfr_mul(r22269, r22252, r22268, MPFR_RNDN);
        mpfr_mul(r22270, r22245, r22269, MPFR_RNDN);
        if (mpfr_get_si(r22257, MPFR_RNDN)) { mpfr_set(r22271, r22265, MPFR_RNDN); } else { mpfr_set(r22271, r22270, MPFR_RNDN); };
        if (mpfr_get_si(r22240, MPFR_RNDN)) { mpfr_set(r22272, r22255, MPFR_RNDN); } else { mpfr_set(r22272, r22271, MPFR_RNDN); };
        return mpfr_get_d(r22272, MPFR_RNDN);
}

static mpfr_t r22273, r22274, r22275, r22276, r22277, r22278, r22279, r22280, r22281, r22282, r22283, r22284, r22285, r22286, r22287, r22288, r22289, r22290, r22291, r22292, r22293, r22294, r22295, r22296, r22297, r22298, r22299, r22300, r22301, r22302, r22303, r22304, r22305, r22306, r22307;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r22273);
        mpfr_init_set_str(r22274, "-30725208.689847544", 10, MPFR_RNDN);
        mpfr_init(r22275);
        mpfr_init_set_str(r22276, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r22277, "10", 10, MPFR_RNDN);
        mpfr_init(r22278);
        mpfr_init(r22279);
        mpfr_init(r22280);
        mpfr_init_set_str(r22281, "-2", 10, MPFR_RNDN);
        mpfr_init_set_str(r22282, "-1", 10, MPFR_RNDN);
        mpfr_init(r22283);
        mpfr_init(r22284);
        mpfr_init_set_str(r22285, "1", 10, MPFR_RNDN);
        mpfr_init(r22286);
        mpfr_init(r22287);
        mpfr_init(r22288);
        mpfr_init(r22289);
        mpfr_init(r22290);
        mpfr_init_set_str(r22291, "3.6255462934229706e+47", 10, MPFR_RNDN);
        mpfr_init(r22292);
        mpfr_init(r22293);
        mpfr_init(r22294);
        mpfr_init(r22295);
        mpfr_init(r22296);
        mpfr_init(r22297);
        mpfr_init(r22298);
        mpfr_init(r22299);
        mpfr_init(r22300);
        mpfr_init(r22301);
        mpfr_init(r22302);
        mpfr_init(r22303);
        mpfr_init(r22304);
        mpfr_init(r22305);
        mpfr_init(r22306);
        mpfr_init(r22307);
}

double f_dm(double re, double im) {
        mpfr_set_d(r22273, re, MPFR_RNDN);
        ;
        mpfr_set_si(r22275, mpfr_cmp(r22273, r22274) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_log(r22278, r22277, MPFR_RNDN);
        mpfr_sqrt(r22279, r22278, MPFR_RNDN);
        mpfr_div(r22280, r22276, r22279, MPFR_RNDN);
        ;
        ;
        mpfr_div(r22283, r22282, r22273, MPFR_RNDN);
        mpfr_log(r22284, r22283, MPFR_RNDN);
        ;
        mpfr_div(r22286, r22285, r22278, MPFR_RNDN);
        mpfr_sqrt(r22287, r22286, MPFR_RNDN);
        mpfr_mul(r22288, r22284, r22287, MPFR_RNDN);
        mpfr_mul(r22289, r22281, r22288, MPFR_RNDN);
        mpfr_mul(r22290, r22280, r22289, MPFR_RNDN);
        ;
        mpfr_set_si(r22292, mpfr_cmp(r22273, r22291) <= 0, MPFR_RNDN);
        mpfr_mul(r22293, r22273, r22273, MPFR_RNDN);
        mpfr_set_d(r22294, im, MPFR_RNDN);
        mpfr_mul(r22295, r22294, r22294, MPFR_RNDN);
        mpfr_add(r22296, r22293, r22295, MPFR_RNDN);
        mpfr_log(r22297, r22296, MPFR_RNDN);
        mpfr_div(r22298, r22285, r22279, MPFR_RNDN);
        mpfr_mul(r22299, r22297, r22298, MPFR_RNDN);
        mpfr_mul(r22300, r22280, r22299, MPFR_RNDN);
        mpfr_log(r22301, r22273, MPFR_RNDN);
        mpfr_neg(r22302, r22281, MPFR_RNDN);
        mpfr_mul(r22303, r22301, r22302, MPFR_RNDN);
        mpfr_mul(r22304, r22287, r22303, MPFR_RNDN);
        mpfr_mul(r22305, r22280, r22304, MPFR_RNDN);
        if (mpfr_get_si(r22292, MPFR_RNDN)) { mpfr_set(r22306, r22300, MPFR_RNDN); } else { mpfr_set(r22306, r22305, MPFR_RNDN); };
        if (mpfr_get_si(r22275, MPFR_RNDN)) { mpfr_set(r22307, r22290, MPFR_RNDN); } else { mpfr_set(r22307, r22306, MPFR_RNDN); };
        return mpfr_get_d(r22307, MPFR_RNDN);
}

