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

char *name = "math.abs on complex";

double f_if(float re, float im) {
        float r23698 = re;
        float r23699 = r23698 * r23698;
        float r23700 = im;
        float r23701 = r23700 * r23700;
        float r23702 = r23699 + r23701;
        float r23703 = sqrt(r23702);
        return r23703;
}

double f_id(double re, double im) {
        double r23704 = re;
        double r23705 = r23704 * r23704;
        double r23706 = im;
        double r23707 = r23706 * r23706;
        double r23708 = r23705 + r23707;
        double r23709 = sqrt(r23708);
        return r23709;
}


double f_of(float re, float im) {
        float r23710 = re;
        float r23711 = -r23710;
        float r23712 = -1.1118641726789477e+157;
        bool r23713 = r23711 <= r23712;
        float r23714 = 3.6121788646421074e-250;
        bool r23715 = r23711 <= r23714;
        float r23716 = r23710 * r23710;
        float r23717 = im;
        float r23718 = r23717 * r23717;
        float r23719 = r23716 + r23718;
        float r23720 = sqrt(r23719);
        float r23721 = 1.1934306545466922e-134;
        bool r23722 = r23711 <= r23721;
        float r23723 = 4.567139333627045e+124;
        bool r23724 = r23711 <= r23723;
        float r23725 = r23724 ? r23720 : r23711;
        float r23726 = r23722 ? r23717 : r23725;
        float r23727 = r23715 ? r23720 : r23726;
        float r23728 = r23713 ? r23710 : r23727;
        return r23728;
}

double f_od(double re, double im) {
        double r23729 = re;
        double r23730 = -r23729;
        double r23731 = -1.1118641726789477e+157;
        bool r23732 = r23730 <= r23731;
        double r23733 = 3.6121788646421074e-250;
        bool r23734 = r23730 <= r23733;
        double r23735 = r23729 * r23729;
        double r23736 = im;
        double r23737 = r23736 * r23736;
        double r23738 = r23735 + r23737;
        double r23739 = sqrt(r23738);
        double r23740 = 1.1934306545466922e-134;
        bool r23741 = r23730 <= r23740;
        double r23742 = 4.567139333627045e+124;
        bool r23743 = r23730 <= r23742;
        double r23744 = r23743 ? r23739 : r23730;
        double r23745 = r23741 ? r23736 : r23744;
        double r23746 = r23734 ? r23739 : r23745;
        double r23747 = r23732 ? r23729 : r23746;
        return r23747;
}

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 r23748, r23749, r23750, r23751, r23752, r23753;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r23748);
        mpfr_init(r23749);
        mpfr_init(r23750);
        mpfr_init(r23751);
        mpfr_init(r23752);
        mpfr_init(r23753);
}

double f_im(double re, double im) {
        mpfr_set_d(r23748, re, MPFR_RNDN);
        mpfr_mul(r23749, r23748, r23748, MPFR_RNDN);
        mpfr_set_d(r23750, im, MPFR_RNDN);
        mpfr_mul(r23751, r23750, r23750, MPFR_RNDN);
        mpfr_add(r23752, r23749, r23751, MPFR_RNDN);
        mpfr_sqrt(r23753, r23752, MPFR_RNDN);
        return mpfr_get_d(r23753, MPFR_RNDN);
}

static mpfr_t r23754, r23755, r23756, r23757, r23758, r23759, r23760, r23761, r23762, r23763, r23764, r23765, r23766, r23767, r23768, r23769, r23770, r23771, r23772;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r23754);
        mpfr_init(r23755);
        mpfr_init_set_str(r23756, "-1.1118641726789477e+157", 10, MPFR_RNDN);
        mpfr_init(r23757);
        mpfr_init_set_str(r23758, "3.6121788646421074e-250", 10, MPFR_RNDN);
        mpfr_init(r23759);
        mpfr_init(r23760);
        mpfr_init(r23761);
        mpfr_init(r23762);
        mpfr_init(r23763);
        mpfr_init(r23764);
        mpfr_init_set_str(r23765, "1.1934306545466922e-134", 10, MPFR_RNDN);
        mpfr_init(r23766);
        mpfr_init_set_str(r23767, "4.567139333627045e+124", 10, MPFR_RNDN);
        mpfr_init(r23768);
        mpfr_init(r23769);
        mpfr_init(r23770);
        mpfr_init(r23771);
        mpfr_init(r23772);
}

double f_fm(double re, double im) {
        mpfr_set_d(r23754, re, MPFR_RNDN);
        mpfr_neg(r23755, r23754, MPFR_RNDN);
        ;
        mpfr_set_si(r23757, mpfr_cmp(r23755, r23756) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r23759, mpfr_cmp(r23755, r23758) <= 0, MPFR_RNDN);
        mpfr_mul(r23760, r23754, r23754, MPFR_RNDN);
        mpfr_set_d(r23761, im, MPFR_RNDN);
        mpfr_mul(r23762, r23761, r23761, MPFR_RNDN);
        mpfr_add(r23763, r23760, r23762, MPFR_RNDN);
        mpfr_sqrt(r23764, r23763, MPFR_RNDN);
        ;
        mpfr_set_si(r23766, mpfr_cmp(r23755, r23765) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r23768, mpfr_cmp(r23755, r23767) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r23768, MPFR_RNDN)) { mpfr_set(r23769, r23764, MPFR_RNDN); } else { mpfr_set(r23769, r23755, MPFR_RNDN); };
        if (mpfr_get_si(r23766, MPFR_RNDN)) { mpfr_set(r23770, r23761, MPFR_RNDN); } else { mpfr_set(r23770, r23769, MPFR_RNDN); };
        if (mpfr_get_si(r23759, MPFR_RNDN)) { mpfr_set(r23771, r23764, MPFR_RNDN); } else { mpfr_set(r23771, r23770, MPFR_RNDN); };
        if (mpfr_get_si(r23757, MPFR_RNDN)) { mpfr_set(r23772, r23754, MPFR_RNDN); } else { mpfr_set(r23772, r23771, MPFR_RNDN); };
        return mpfr_get_d(r23772, MPFR_RNDN);
}

static mpfr_t r23773, r23774, r23775, r23776, r23777, r23778, r23779, r23780, r23781, r23782, r23783, r23784, r23785, r23786, r23787, r23788, r23789, r23790, r23791;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r23773);
        mpfr_init(r23774);
        mpfr_init_set_str(r23775, "-1.1118641726789477e+157", 10, MPFR_RNDN);
        mpfr_init(r23776);
        mpfr_init_set_str(r23777, "3.6121788646421074e-250", 10, MPFR_RNDN);
        mpfr_init(r23778);
        mpfr_init(r23779);
        mpfr_init(r23780);
        mpfr_init(r23781);
        mpfr_init(r23782);
        mpfr_init(r23783);
        mpfr_init_set_str(r23784, "1.1934306545466922e-134", 10, MPFR_RNDN);
        mpfr_init(r23785);
        mpfr_init_set_str(r23786, "4.567139333627045e+124", 10, MPFR_RNDN);
        mpfr_init(r23787);
        mpfr_init(r23788);
        mpfr_init(r23789);
        mpfr_init(r23790);
        mpfr_init(r23791);
}

double f_dm(double re, double im) {
        mpfr_set_d(r23773, re, MPFR_RNDN);
        mpfr_neg(r23774, r23773, MPFR_RNDN);
        ;
        mpfr_set_si(r23776, mpfr_cmp(r23774, r23775) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r23778, mpfr_cmp(r23774, r23777) <= 0, MPFR_RNDN);
        mpfr_mul(r23779, r23773, r23773, MPFR_RNDN);
        mpfr_set_d(r23780, im, MPFR_RNDN);
        mpfr_mul(r23781, r23780, r23780, MPFR_RNDN);
        mpfr_add(r23782, r23779, r23781, MPFR_RNDN);
        mpfr_sqrt(r23783, r23782, MPFR_RNDN);
        ;
        mpfr_set_si(r23785, mpfr_cmp(r23774, r23784) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r23787, mpfr_cmp(r23774, r23786) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r23787, MPFR_RNDN)) { mpfr_set(r23788, r23783, MPFR_RNDN); } else { mpfr_set(r23788, r23774, MPFR_RNDN); };
        if (mpfr_get_si(r23785, MPFR_RNDN)) { mpfr_set(r23789, r23780, MPFR_RNDN); } else { mpfr_set(r23789, r23788, MPFR_RNDN); };
        if (mpfr_get_si(r23778, MPFR_RNDN)) { mpfr_set(r23790, r23783, MPFR_RNDN); } else { mpfr_set(r23790, r23789, MPFR_RNDN); };
        if (mpfr_get_si(r23776, MPFR_RNDN)) { mpfr_set(r23791, r23773, MPFR_RNDN); } else { mpfr_set(r23791, r23790, MPFR_RNDN); };
        return mpfr_get_d(r23791, MPFR_RNDN);
}

