#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 r8625 = re;
        float r8626 = r8625 * r8625;
        float r8627 = im;
        float r8628 = r8627 * r8627;
        float r8629 = r8626 + r8628;
        float r8630 = sqrt(r8629);
        float r8631 = log(r8630);
        float r8632 = 10;
        float r8633 = log(r8632);
        float r8634 = r8631 / r8633;
        return r8634;
}

double f_id(double re, double im) {
        double r8635 = re;
        double r8636 = r8635 * r8635;
        double r8637 = im;
        double r8638 = r8637 * r8637;
        double r8639 = r8636 + r8638;
        double r8640 = sqrt(r8639);
        double r8641 = log(r8640);
        double r8642 = 10;
        double r8643 = log(r8642);
        double r8644 = r8641 / r8643;
        return r8644;
}


double f_of(float re, float im) {
        float r8645 = 1;
        float r8646 = 10;
        float r8647 = log(r8646);
        float r8648 = sqrt(r8647);
        float r8649 = r8645 / r8648;
        float r8650 = re;
        float r8651 = im;
        float r8652 = hypot(r8650, r8651);
        float r8653 = log(r8652);
        float r8654 = r8653 * r8649;
        float r8655 = r8649 * r8654;
        return r8655;
}

double f_od(double re, double im) {
        double r8656 = 1;
        double r8657 = 10;
        double r8658 = log(r8657);
        double r8659 = sqrt(r8658);
        double r8660 = r8656 / r8659;
        double r8661 = re;
        double r8662 = im;
        double r8663 = hypot(r8661, r8662);
        double r8664 = log(r8663);
        double r8665 = r8664 * r8660;
        double r8666 = r8660 * r8665;
        return r8666;
}

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 r8667, r8668, r8669, r8670, r8671, r8672, r8673, r8674, r8675, r8676;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8667);
        mpfr_init(r8668);
        mpfr_init(r8669);
        mpfr_init(r8670);
        mpfr_init(r8671);
        mpfr_init(r8672);
        mpfr_init(r8673);
        mpfr_init_set_str(r8674, "10", 10, MPFR_RNDN);
        mpfr_init(r8675);
        mpfr_init(r8676);
}

double f_im(double re, double im) {
        mpfr_set_d(r8667, re, MPFR_RNDN);
        mpfr_mul(r8668, r8667, r8667, MPFR_RNDN);
        mpfr_set_d(r8669, im, MPFR_RNDN);
        mpfr_mul(r8670, r8669, r8669, MPFR_RNDN);
        mpfr_add(r8671, r8668, r8670, MPFR_RNDN);
        mpfr_sqrt(r8672, r8671, MPFR_RNDN);
        mpfr_log(r8673, r8672, MPFR_RNDN);
        ;
        mpfr_log(r8675, r8674, MPFR_RNDN);
        mpfr_div(r8676, r8673, r8675, MPFR_RNDN);
        return mpfr_get_d(r8676, MPFR_RNDN);
}

static mpfr_t r8677, r8678, r8679, r8680, r8681, r8682, r8683, r8684, r8685, r8686, r8687;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8677, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r8678, "10", 10, MPFR_RNDN);
        mpfr_init(r8679);
        mpfr_init(r8680);
        mpfr_init(r8681);
        mpfr_init(r8682);
        mpfr_init(r8683);
        mpfr_init(r8684);
        mpfr_init(r8685);
        mpfr_init(r8686);
        mpfr_init(r8687);
}

double f_fm(double re, double im) {
        ;
        ;
        mpfr_log(r8679, r8678, MPFR_RNDN);
        mpfr_sqrt(r8680, r8679, MPFR_RNDN);
        mpfr_div(r8681, r8677, r8680, MPFR_RNDN);
        mpfr_set_d(r8682, re, MPFR_RNDN);
        mpfr_set_d(r8683, im, MPFR_RNDN);
        mpfr_hypot(r8684, r8682, r8683, MPFR_RNDN);
        mpfr_log(r8685, r8684, MPFR_RNDN);
        mpfr_mul(r8686, r8685, r8681, MPFR_RNDN);
        mpfr_mul(r8687, r8681, r8686, MPFR_RNDN);
        return mpfr_get_d(r8687, MPFR_RNDN);
}

static mpfr_t r8688, r8689, r8690, r8691, r8692, r8693, r8694, r8695, r8696, r8697, r8698;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8688, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r8689, "10", 10, MPFR_RNDN);
        mpfr_init(r8690);
        mpfr_init(r8691);
        mpfr_init(r8692);
        mpfr_init(r8693);
        mpfr_init(r8694);
        mpfr_init(r8695);
        mpfr_init(r8696);
        mpfr_init(r8697);
        mpfr_init(r8698);
}

double f_dm(double re, double im) {
        ;
        ;
        mpfr_log(r8690, r8689, MPFR_RNDN);
        mpfr_sqrt(r8691, r8690, MPFR_RNDN);
        mpfr_div(r8692, r8688, r8691, MPFR_RNDN);
        mpfr_set_d(r8693, re, MPFR_RNDN);
        mpfr_set_d(r8694, im, MPFR_RNDN);
        mpfr_hypot(r8695, r8693, r8694, MPFR_RNDN);
        mpfr_log(r8696, r8695, MPFR_RNDN);
        mpfr_mul(r8697, r8696, r8692, MPFR_RNDN);
        mpfr_mul(r8698, r8692, r8697, MPFR_RNDN);
        return mpfr_get_d(r8698, MPFR_RNDN);
}

