#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 r62530623 = im;
        float r62530624 = re;
        float r62530625 = atan2(r62530623, r62530624);
        float r62530626 = 10;
        float r62530627 = log(r62530626);
        float r62530628 = r62530625 / r62530627;
        return r62530628;
}

double f_id(double re, double im) {
        double r62530629 = im;
        double r62530630 = re;
        double r62530631 = atan2(r62530629, r62530630);
        double r62530632 = 10;
        double r62530633 = log(r62530632);
        double r62530634 = r62530631 / r62530633;
        return r62530634;
}


double f_of(float re, float im) {
        float r62530635 = 1;
        float r62530636 = 10;
        float r62530637 = log(r62530636);
        float r62530638 = sqrt(r62530637);
        float r62530639 = r62530635 / r62530638;
        float r62530640 = sqrt(r62530639);
        float r62530641 = cbrt(r62530640);
        float r62530642 = r62530641 * r62530641;
        float r62530643 = im;
        float r62530644 = re;
        float r62530645 = atan2(r62530643, r62530644);
        float r62530646 = r62530645 / r62530638;
        float r62530647 = r62530640 * r62530646;
        float r62530648 = r62530641 * r62530647;
        float r62530649 = r62530642 * r62530648;
        return r62530649;
}

double f_od(double re, double im) {
        double r62530650 = 1;
        double r62530651 = 10;
        double r62530652 = log(r62530651);
        double r62530653 = sqrt(r62530652);
        double r62530654 = r62530650 / r62530653;
        double r62530655 = sqrt(r62530654);
        double r62530656 = cbrt(r62530655);
        double r62530657 = r62530656 * r62530656;
        double r62530658 = im;
        double r62530659 = re;
        double r62530660 = atan2(r62530658, r62530659);
        double r62530661 = r62530660 / r62530653;
        double r62530662 = r62530655 * r62530661;
        double r62530663 = r62530656 * r62530662;
        double r62530664 = r62530657 * r62530663;
        return r62530664;
}

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 r62530665, r62530666, r62530667, r62530668, r62530669, r62530670;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r62530665);
        mpfr_init(r62530666);
        mpfr_init(r62530667);
        mpfr_init_set_str(r62530668, "10", 10, MPFR_RNDN);
        mpfr_init(r62530669);
        mpfr_init(r62530670);
}

double f_im(double re, double im) {
        mpfr_set_d(r62530665, im, MPFR_RNDN);
        mpfr_set_d(r62530666, re, MPFR_RNDN);
        mpfr_atan2(r62530667, r62530665, r62530666, MPFR_RNDN);
        ;
        mpfr_log(r62530669, r62530668, MPFR_RNDN);
        mpfr_div(r62530670, r62530667, r62530669, MPFR_RNDN);
        return mpfr_get_d(r62530670, MPFR_RNDN);
}

static mpfr_t r62530671, r62530672, r62530673, r62530674, r62530675, r62530676, r62530677, r62530678, r62530679, r62530680, r62530681, r62530682, r62530683, r62530684, r62530685;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r62530671, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r62530672, "10", 10, MPFR_RNDN);
        mpfr_init(r62530673);
        mpfr_init(r62530674);
        mpfr_init(r62530675);
        mpfr_init(r62530676);
        mpfr_init(r62530677);
        mpfr_init(r62530678);
        mpfr_init(r62530679);
        mpfr_init(r62530680);
        mpfr_init(r62530681);
        mpfr_init(r62530682);
        mpfr_init(r62530683);
        mpfr_init(r62530684);
        mpfr_init(r62530685);
}

double f_fm(double re, double im) {
        ;
        ;
        mpfr_log(r62530673, r62530672, MPFR_RNDN);
        mpfr_sqrt(r62530674, r62530673, MPFR_RNDN);
        mpfr_div(r62530675, r62530671, r62530674, MPFR_RNDN);
        mpfr_sqrt(r62530676, r62530675, MPFR_RNDN);
        mpfr_cbrt(r62530677, r62530676, MPFR_RNDN);
        mpfr_mul(r62530678, r62530677, r62530677, MPFR_RNDN);
        mpfr_set_d(r62530679, im, MPFR_RNDN);
        mpfr_set_d(r62530680, re, MPFR_RNDN);
        mpfr_atan2(r62530681, r62530679, r62530680, MPFR_RNDN);
        mpfr_div(r62530682, r62530681, r62530674, MPFR_RNDN);
        mpfr_mul(r62530683, r62530676, r62530682, MPFR_RNDN);
        mpfr_mul(r62530684, r62530677, r62530683, MPFR_RNDN);
        mpfr_mul(r62530685, r62530678, r62530684, MPFR_RNDN);
        return mpfr_get_d(r62530685, MPFR_RNDN);
}

static mpfr_t r62530686, r62530687, r62530688, r62530689, r62530690, r62530691, r62530692, r62530693, r62530694, r62530695, r62530696, r62530697, r62530698, r62530699, r62530700;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r62530686, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r62530687, "10", 10, MPFR_RNDN);
        mpfr_init(r62530688);
        mpfr_init(r62530689);
        mpfr_init(r62530690);
        mpfr_init(r62530691);
        mpfr_init(r62530692);
        mpfr_init(r62530693);
        mpfr_init(r62530694);
        mpfr_init(r62530695);
        mpfr_init(r62530696);
        mpfr_init(r62530697);
        mpfr_init(r62530698);
        mpfr_init(r62530699);
        mpfr_init(r62530700);
}

double f_dm(double re, double im) {
        ;
        ;
        mpfr_log(r62530688, r62530687, MPFR_RNDN);
        mpfr_sqrt(r62530689, r62530688, MPFR_RNDN);
        mpfr_div(r62530690, r62530686, r62530689, MPFR_RNDN);
        mpfr_sqrt(r62530691, r62530690, MPFR_RNDN);
        mpfr_cbrt(r62530692, r62530691, MPFR_RNDN);
        mpfr_mul(r62530693, r62530692, r62530692, MPFR_RNDN);
        mpfr_set_d(r62530694, im, MPFR_RNDN);
        mpfr_set_d(r62530695, re, MPFR_RNDN);
        mpfr_atan2(r62530696, r62530694, r62530695, MPFR_RNDN);
        mpfr_div(r62530697, r62530696, r62530689, MPFR_RNDN);
        mpfr_mul(r62530698, r62530691, r62530697, MPFR_RNDN);
        mpfr_mul(r62530699, r62530692, r62530698, MPFR_RNDN);
        mpfr_mul(r62530700, r62530693, r62530699, MPFR_RNDN);
        return mpfr_get_d(r62530700, MPFR_RNDN);
}

