#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 r18769 = re;
        float r18770 = r18769 * r18769;
        float r18771 = im;
        float r18772 = r18771 * r18771;
        float r18773 = r18770 + r18772;
        float r18774 = sqrt(r18773);
        float r18775 = log(r18774);
        float r18776 = 10.0f;
        float r18777 = log(r18776);
        float r18778 = r18775 / r18777;
        return r18778;
}

double f_id(double re, double im) {
        double r18779 = re;
        double r18780 = r18779 * r18779;
        double r18781 = im;
        double r18782 = r18781 * r18781;
        double r18783 = r18780 + r18782;
        double r18784 = sqrt(r18783);
        double r18785 = log(r18784);
        double r18786 = 10.0;
        double r18787 = log(r18786);
        double r18788 = r18785 / r18787;
        return r18788;
}


double f_of(float re, float im) {
        float r18789 = re;
        float r18790 = -1.3055268278777005e+74f;
        bool r18791 = r18789 <= r18790;
        float r18792 = -r18789;
        float r18793 = log(r18792);
        float r18794 = 10.0f;
        float r18795 = log(r18794);
        float r18796 = r18793 / r18795;
        float r18797 = -2.321564696919607e-245f;
        bool r18798 = r18789 <= r18797;
        float r18799 = 3.0f;
        float r18800 = r18789 * r18789;
        float r18801 = im;
        float r18802 = r18801 * r18801;
        float r18803 = r18800 + r18802;
        float r18804 = sqrt(r18803);
        float r18805 = cbrt(r18804);
        float r18806 = log(r18805);
        float r18807 = r18795 / r18806;
        float r18808 = r18799 / r18807;
        float r18809 = -2.837848394186995e-306f;
        bool r18810 = r18789 <= r18809;
        float r18811 = cbrt(r18801);
        float r18812 = log(r18811);
        float r18813 = r18795 / r18812;
        float r18814 = r18799 / r18813;
        float r18815 = 5.33721959222845e+135f;
        bool r18816 = r18789 <= r18815;
        float r18817 = 1.0f;
        float r18818 = r18799 / r18817;
        float r18819 = r18806 / r18795;
        float r18820 = r18818 * r18819;
        float r18821 = log(r18789);
        float r18822 = r18821 / r18795;
        float r18823 = r18816 ? r18820 : r18822;
        float r18824 = r18810 ? r18814 : r18823;
        float r18825 = r18798 ? r18808 : r18824;
        float r18826 = r18791 ? r18796 : r18825;
        return r18826;
}

double f_od(double re, double im) {
        double r18827 = re;
        double r18828 = -1.3055268278777005e+74;
        bool r18829 = r18827 <= r18828;
        double r18830 = -r18827;
        double r18831 = log(r18830);
        double r18832 = 10.0;
        double r18833 = log(r18832);
        double r18834 = r18831 / r18833;
        double r18835 = -2.321564696919607e-245;
        bool r18836 = r18827 <= r18835;
        double r18837 = 3.0;
        double r18838 = r18827 * r18827;
        double r18839 = im;
        double r18840 = r18839 * r18839;
        double r18841 = r18838 + r18840;
        double r18842 = sqrt(r18841);
        double r18843 = cbrt(r18842);
        double r18844 = log(r18843);
        double r18845 = r18833 / r18844;
        double r18846 = r18837 / r18845;
        double r18847 = -2.837848394186995e-306;
        bool r18848 = r18827 <= r18847;
        double r18849 = cbrt(r18839);
        double r18850 = log(r18849);
        double r18851 = r18833 / r18850;
        double r18852 = r18837 / r18851;
        double r18853 = 5.33721959222845e+135;
        bool r18854 = r18827 <= r18853;
        double r18855 = 1.0;
        double r18856 = r18837 / r18855;
        double r18857 = r18844 / r18833;
        double r18858 = r18856 * r18857;
        double r18859 = log(r18827);
        double r18860 = r18859 / r18833;
        double r18861 = r18854 ? r18858 : r18860;
        double r18862 = r18848 ? r18852 : r18861;
        double r18863 = r18836 ? r18846 : r18862;
        double r18864 = r18829 ? r18834 : r18863;
        return r18864;
}

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 r18865, r18866, r18867, r18868, r18869, r18870, r18871, r18872, r18873, r18874;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r18865);
        mpfr_init(r18866);
        mpfr_init(r18867);
        mpfr_init(r18868);
        mpfr_init(r18869);
        mpfr_init(r18870);
        mpfr_init(r18871);
        mpfr_init_set_str(r18872, "10", 10, MPFR_RNDN);
        mpfr_init(r18873);
        mpfr_init(r18874);
}

double f_im(double re, double im) {
        mpfr_set_d(r18865, re, MPFR_RNDN);
        mpfr_mul(r18866, r18865, r18865, MPFR_RNDN);
        mpfr_set_d(r18867, im, MPFR_RNDN);
        mpfr_mul(r18868, r18867, r18867, MPFR_RNDN);
        mpfr_add(r18869, r18866, r18868, MPFR_RNDN);
        mpfr_sqrt(r18870, r18869, MPFR_RNDN);
        mpfr_log(r18871, r18870, MPFR_RNDN);
        ;
        mpfr_log(r18873, r18872, MPFR_RNDN);
        mpfr_div(r18874, r18871, r18873, MPFR_RNDN);
        return mpfr_get_d(r18874, MPFR_RNDN);
}

static mpfr_t r18875, r18876, r18877, r18878, r18879, r18880, r18881, r18882, r18883, r18884, r18885, r18886, r18887, r18888, r18889, r18890, r18891, r18892, r18893, r18894, r18895, r18896, r18897, r18898, r18899, r18900, r18901, r18902, r18903, r18904, r18905, r18906, r18907, r18908, r18909, r18910, r18911, r18912;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r18875);
        mpfr_init_set_str(r18876, "-1.3055268278777005e+74", 10, MPFR_RNDN);
        mpfr_init(r18877);
        mpfr_init(r18878);
        mpfr_init(r18879);
        mpfr_init_set_str(r18880, "10", 10, MPFR_RNDN);
        mpfr_init(r18881);
        mpfr_init(r18882);
        mpfr_init_set_str(r18883, "-2.321564696919607e-245", 10, MPFR_RNDN);
        mpfr_init(r18884);
        mpfr_init_set_str(r18885, "3", 10, MPFR_RNDN);
        mpfr_init(r18886);
        mpfr_init(r18887);
        mpfr_init(r18888);
        mpfr_init(r18889);
        mpfr_init(r18890);
        mpfr_init(r18891);
        mpfr_init(r18892);
        mpfr_init(r18893);
        mpfr_init(r18894);
        mpfr_init_set_str(r18895, "-2.837848394186995e-306", 10, MPFR_RNDN);
        mpfr_init(r18896);
        mpfr_init(r18897);
        mpfr_init(r18898);
        mpfr_init(r18899);
        mpfr_init(r18900);
        mpfr_init_set_str(r18901, "5.33721959222845e+135", 10, MPFR_RNDN);
        mpfr_init(r18902);
        mpfr_init_set_str(r18903, "1", 10, MPFR_RNDN);
        mpfr_init(r18904);
        mpfr_init(r18905);
        mpfr_init(r18906);
        mpfr_init(r18907);
        mpfr_init(r18908);
        mpfr_init(r18909);
        mpfr_init(r18910);
        mpfr_init(r18911);
        mpfr_init(r18912);
}

double f_fm(double re, double im) {
        mpfr_set_d(r18875, re, MPFR_RNDN);
        ;
        mpfr_set_si(r18877, mpfr_cmp(r18875, r18876) <= 0, MPFR_RNDN);
        mpfr_neg(r18878, r18875, MPFR_RNDN);
        mpfr_log(r18879, r18878, MPFR_RNDN);
        ;
        mpfr_log(r18881, r18880, MPFR_RNDN);
        mpfr_div(r18882, r18879, r18881, MPFR_RNDN);
        ;
        mpfr_set_si(r18884, mpfr_cmp(r18875, r18883) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r18886, r18875, r18875, MPFR_RNDN);
        mpfr_set_d(r18887, im, MPFR_RNDN);
        mpfr_mul(r18888, r18887, r18887, MPFR_RNDN);
        mpfr_add(r18889, r18886, r18888, MPFR_RNDN);
        mpfr_sqrt(r18890, r18889, MPFR_RNDN);
        mpfr_cbrt(r18891, r18890, MPFR_RNDN);
        mpfr_log(r18892, r18891, MPFR_RNDN);
        mpfr_div(r18893, r18881, r18892, MPFR_RNDN);
        mpfr_div(r18894, r18885, r18893, MPFR_RNDN);
        ;
        mpfr_set_si(r18896, mpfr_cmp(r18875, r18895) <= 0, MPFR_RNDN);
        mpfr_cbrt(r18897, r18887, MPFR_RNDN);
        mpfr_log(r18898, r18897, MPFR_RNDN);
        mpfr_div(r18899, r18881, r18898, MPFR_RNDN);
        mpfr_div(r18900, r18885, r18899, MPFR_RNDN);
        ;
        mpfr_set_si(r18902, mpfr_cmp(r18875, r18901) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r18904, r18885, r18903, MPFR_RNDN);
        mpfr_div(r18905, r18892, r18881, MPFR_RNDN);
        mpfr_mul(r18906, r18904, r18905, MPFR_RNDN);
        mpfr_log(r18907, r18875, MPFR_RNDN);
        mpfr_div(r18908, r18907, r18881, MPFR_RNDN);
        if (mpfr_get_si(r18902, MPFR_RNDN)) { mpfr_set(r18909, r18906, MPFR_RNDN); } else { mpfr_set(r18909, r18908, MPFR_RNDN); };
        if (mpfr_get_si(r18896, MPFR_RNDN)) { mpfr_set(r18910, r18900, MPFR_RNDN); } else { mpfr_set(r18910, r18909, MPFR_RNDN); };
        if (mpfr_get_si(r18884, MPFR_RNDN)) { mpfr_set(r18911, r18894, MPFR_RNDN); } else { mpfr_set(r18911, r18910, MPFR_RNDN); };
        if (mpfr_get_si(r18877, MPFR_RNDN)) { mpfr_set(r18912, r18882, MPFR_RNDN); } else { mpfr_set(r18912, r18911, MPFR_RNDN); };
        return mpfr_get_d(r18912, MPFR_RNDN);
}

static mpfr_t r18913, r18914, r18915, r18916, r18917, r18918, r18919, r18920, r18921, r18922, r18923, r18924, r18925, r18926, r18927, r18928, r18929, r18930, r18931, r18932, r18933, r18934, r18935, r18936, r18937, r18938, r18939, r18940, r18941, r18942, r18943, r18944, r18945, r18946, r18947, r18948, r18949, r18950;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r18913);
        mpfr_init_set_str(r18914, "-1.3055268278777005e+74", 10, MPFR_RNDN);
        mpfr_init(r18915);
        mpfr_init(r18916);
        mpfr_init(r18917);
        mpfr_init_set_str(r18918, "10", 10, MPFR_RNDN);
        mpfr_init(r18919);
        mpfr_init(r18920);
        mpfr_init_set_str(r18921, "-2.321564696919607e-245", 10, MPFR_RNDN);
        mpfr_init(r18922);
        mpfr_init_set_str(r18923, "3", 10, MPFR_RNDN);
        mpfr_init(r18924);
        mpfr_init(r18925);
        mpfr_init(r18926);
        mpfr_init(r18927);
        mpfr_init(r18928);
        mpfr_init(r18929);
        mpfr_init(r18930);
        mpfr_init(r18931);
        mpfr_init(r18932);
        mpfr_init_set_str(r18933, "-2.837848394186995e-306", 10, MPFR_RNDN);
        mpfr_init(r18934);
        mpfr_init(r18935);
        mpfr_init(r18936);
        mpfr_init(r18937);
        mpfr_init(r18938);
        mpfr_init_set_str(r18939, "5.33721959222845e+135", 10, MPFR_RNDN);
        mpfr_init(r18940);
        mpfr_init_set_str(r18941, "1", 10, MPFR_RNDN);
        mpfr_init(r18942);
        mpfr_init(r18943);
        mpfr_init(r18944);
        mpfr_init(r18945);
        mpfr_init(r18946);
        mpfr_init(r18947);
        mpfr_init(r18948);
        mpfr_init(r18949);
        mpfr_init(r18950);
}

double f_dm(double re, double im) {
        mpfr_set_d(r18913, re, MPFR_RNDN);
        ;
        mpfr_set_si(r18915, mpfr_cmp(r18913, r18914) <= 0, MPFR_RNDN);
        mpfr_neg(r18916, r18913, MPFR_RNDN);
        mpfr_log(r18917, r18916, MPFR_RNDN);
        ;
        mpfr_log(r18919, r18918, MPFR_RNDN);
        mpfr_div(r18920, r18917, r18919, MPFR_RNDN);
        ;
        mpfr_set_si(r18922, mpfr_cmp(r18913, r18921) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r18924, r18913, r18913, MPFR_RNDN);
        mpfr_set_d(r18925, im, MPFR_RNDN);
        mpfr_mul(r18926, r18925, r18925, MPFR_RNDN);
        mpfr_add(r18927, r18924, r18926, MPFR_RNDN);
        mpfr_sqrt(r18928, r18927, MPFR_RNDN);
        mpfr_cbrt(r18929, r18928, MPFR_RNDN);
        mpfr_log(r18930, r18929, MPFR_RNDN);
        mpfr_div(r18931, r18919, r18930, MPFR_RNDN);
        mpfr_div(r18932, r18923, r18931, MPFR_RNDN);
        ;
        mpfr_set_si(r18934, mpfr_cmp(r18913, r18933) <= 0, MPFR_RNDN);
        mpfr_cbrt(r18935, r18925, MPFR_RNDN);
        mpfr_log(r18936, r18935, MPFR_RNDN);
        mpfr_div(r18937, r18919, r18936, MPFR_RNDN);
        mpfr_div(r18938, r18923, r18937, MPFR_RNDN);
        ;
        mpfr_set_si(r18940, mpfr_cmp(r18913, r18939) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r18942, r18923, r18941, MPFR_RNDN);
        mpfr_div(r18943, r18930, r18919, MPFR_RNDN);
        mpfr_mul(r18944, r18942, r18943, MPFR_RNDN);
        mpfr_log(r18945, r18913, MPFR_RNDN);
        mpfr_div(r18946, r18945, r18919, MPFR_RNDN);
        if (mpfr_get_si(r18940, MPFR_RNDN)) { mpfr_set(r18947, r18944, MPFR_RNDN); } else { mpfr_set(r18947, r18946, MPFR_RNDN); };
        if (mpfr_get_si(r18934, MPFR_RNDN)) { mpfr_set(r18948, r18938, MPFR_RNDN); } else { mpfr_set(r18948, r18947, MPFR_RNDN); };
        if (mpfr_get_si(r18922, MPFR_RNDN)) { mpfr_set(r18949, r18932, MPFR_RNDN); } else { mpfr_set(r18949, r18948, MPFR_RNDN); };
        if (mpfr_get_si(r18915, MPFR_RNDN)) { mpfr_set(r18950, r18920, MPFR_RNDN); } else { mpfr_set(r18950, r18949, MPFR_RNDN); };
        return mpfr_get_d(r18950, MPFR_RNDN);
}

