#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "math.log10 on complex, imaginary part";

double f_if(float re, float im) {
        float r17792 = im;
        float r17793 = re;
        float r17794 = atan2(r17792, r17793);
        float r17795 = 10.0f;
        float r17796 = log(r17795);
        float r17797 = r17794 / r17796;
        return r17797;
}

double f_id(double re, double im) {
        double r17798 = im;
        double r17799 = re;
        double r17800 = atan2(r17798, r17799);
        double r17801 = 10.0;
        double r17802 = log(r17801);
        double r17803 = r17800 / r17802;
        return r17803;
}


double f_of(float re, float im) {
        float r17804 = 1.0f;
        float r17805 = 10.0f;
        float r17806 = log(r17805);
        float r17807 = im;
        float r17808 = re;
        float r17809 = atan2(r17807, r17808);
        float r17810 = r17806 / r17809;
        float r17811 = cbrt(r17810);
        float r17812 = r17811 * (r17811 * r17811);
        float r17813 = cbrt(r17812);
        float r17814 = r17813 * (r17813 * r17813);
        float r17815 = r17804 / r17814;
        return r17815;
}

double f_od(double re, double im) {
        double r17816 = 1.0;
        double r17817 = 10.0;
        double r17818 = log(r17817);
        double r17819 = im;
        double r17820 = re;
        double r17821 = atan2(r17819, r17820);
        double r17822 = r17818 / r17821;
        double r17823 = cbrt(r17822);
        double r17824 = r17823 * (r17823 * r17823);
        double r17825 = cbrt(r17824);
        double r17826 = r17825 * (r17825 * r17825);
        double r17827 = r17816 / r17826;
        return r17827;
}

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 r17828, r17829, r17830, r17831, r17832, r17833;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r17828);
        mpfr_init(r17829);
        mpfr_init(r17830);
        mpfr_init_set_str(r17831, "10", 10, MPFR_RNDN);
        mpfr_init(r17832);
        mpfr_init(r17833);
}

double f_im(double re, double im) {
        mpfr_set_d(r17828, im, MPFR_RNDN);
        mpfr_set_d(r17829, re, MPFR_RNDN);
        mpfr_atan2(r17830, r17828, r17829, MPFR_RNDN);
        ;
        mpfr_log(r17832, r17831, MPFR_RNDN);
        mpfr_div(r17833, r17830, r17832, MPFR_RNDN);
        return mpfr_get_d(r17833, MPFR_RNDN);
}

static mpfr_t r17834, r17835, r17836, r17837, r17838, r17839, r17840, r17841, r17842, r17843, r17844, r17845;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r17834, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17835, "10", 10, MPFR_RNDN);
        mpfr_init(r17836);
        mpfr_init(r17837);
        mpfr_init(r17838);
        mpfr_init(r17839);
        mpfr_init(r17840);
        mpfr_init(r17841);
        mpfr_init(r17842);
        mpfr_init(r17843);
        mpfr_init(r17844);
        mpfr_init(r17845);
}

double f_fm(double re, double im) {
        ;
        ;
        mpfr_log(r17836, r17835, MPFR_RNDN);
        mpfr_set_d(r17837, im, MPFR_RNDN);
        mpfr_set_d(r17838, re, MPFR_RNDN);
        mpfr_atan2(r17839, r17837, r17838, MPFR_RNDN);
        mpfr_div(r17840, r17836, r17839, MPFR_RNDN);
        mpfr_cbrt(r17841, r17840, MPFR_RNDN);
        mpfr_mul(r17842, r17841, r17841, MPFR_RNDN); mpfr_mul(r17842, r17842, r17841, MPFR_RNDN);
        mpfr_cbrt(r17843, r17842, MPFR_RNDN);
        mpfr_mul(r17844, r17843, r17843, MPFR_RNDN); mpfr_mul(r17844, r17844, r17843, MPFR_RNDN);
        mpfr_div(r17845, r17834, r17844, MPFR_RNDN);
        return mpfr_get_d(r17845, MPFR_RNDN);
}

static mpfr_t r17846, r17847, r17848, r17849, r17850, r17851, r17852, r17853, r17854, r17855, r17856, r17857;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r17846, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r17847, "10", 10, MPFR_RNDN);
        mpfr_init(r17848);
        mpfr_init(r17849);
        mpfr_init(r17850);
        mpfr_init(r17851);
        mpfr_init(r17852);
        mpfr_init(r17853);
        mpfr_init(r17854);
        mpfr_init(r17855);
        mpfr_init(r17856);
        mpfr_init(r17857);
}

double f_dm(double re, double im) {
        ;
        ;
        mpfr_log(r17848, r17847, MPFR_RNDN);
        mpfr_set_d(r17849, im, MPFR_RNDN);
        mpfr_set_d(r17850, re, MPFR_RNDN);
        mpfr_atan2(r17851, r17849, r17850, MPFR_RNDN);
        mpfr_div(r17852, r17848, r17851, MPFR_RNDN);
        mpfr_cbrt(r17853, r17852, MPFR_RNDN);
        mpfr_mul(r17854, r17853, r17853, MPFR_RNDN); mpfr_mul(r17854, r17854, r17853, MPFR_RNDN);
        mpfr_cbrt(r17855, r17854, MPFR_RNDN);
        mpfr_mul(r17856, r17855, r17855, MPFR_RNDN); mpfr_mul(r17856, r17856, r17855, MPFR_RNDN);
        mpfr_div(r17857, r17846, r17856, MPFR_RNDN);
        return mpfr_get_d(r17857, MPFR_RNDN);
}

