#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 r9677 = re;
        float r9678 = r9677 * r9677;
        float r9679 = im;
        float r9680 = r9679 * r9679;
        float r9681 = r9678 + r9680;
        float r9682 = sqrt(r9681);
        return r9682;
}

double f_id(double re, double im) {
        double r9683 = re;
        double r9684 = r9683 * r9683;
        double r9685 = im;
        double r9686 = r9685 * r9685;
        double r9687 = r9684 + r9686;
        double r9688 = sqrt(r9687);
        return r9688;
}


double f_of(float re, float im) {
        float r9689 = re;
        float r9690 = -1.3332909757075433e+147;
        bool r9691 = r9689 <= r9690;
        float r9692 = -r9689;
        float r9693 = -8.30732108697294e-301;
        bool r9694 = r9689 <= r9693;
        float r9695 = r9689 * r9689;
        float r9696 = im;
        float r9697 = r9696 * r9696;
        float r9698 = r9695 + r9697;
        float r9699 = sqrt(r9698);
        float r9700 = 1.5101400909533284e-255;
        bool r9701 = r9689 <= r9700;
        float r9702 = 1.2288226746954848e+174;
        bool r9703 = r9689 <= r9702;
        float r9704 = r9703 ? r9699 : r9689;
        float r9705 = r9701 ? r9696 : r9704;
        float r9706 = r9694 ? r9699 : r9705;
        float r9707 = r9691 ? r9692 : r9706;
        return r9707;
}

double f_od(double re, double im) {
        double r9708 = re;
        double r9709 = -1.3332909757075433e+147;
        bool r9710 = r9708 <= r9709;
        double r9711 = -r9708;
        double r9712 = -8.30732108697294e-301;
        bool r9713 = r9708 <= r9712;
        double r9714 = r9708 * r9708;
        double r9715 = im;
        double r9716 = r9715 * r9715;
        double r9717 = r9714 + r9716;
        double r9718 = sqrt(r9717);
        double r9719 = 1.5101400909533284e-255;
        bool r9720 = r9708 <= r9719;
        double r9721 = 1.2288226746954848e+174;
        bool r9722 = r9708 <= r9721;
        double r9723 = r9722 ? r9718 : r9708;
        double r9724 = r9720 ? r9715 : r9723;
        double r9725 = r9713 ? r9718 : r9724;
        double r9726 = r9710 ? r9711 : r9725;
        return r9726;
}

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 r9727, r9728, r9729, r9730, r9731, r9732;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9727);
        mpfr_init(r9728);
        mpfr_init(r9729);
        mpfr_init(r9730);
        mpfr_init(r9731);
        mpfr_init(r9732);
}

double f_im(double re, double im) {
        mpfr_set_d(r9727, re, MPFR_RNDN);
        mpfr_mul(r9728, r9727, r9727, MPFR_RNDN);
        mpfr_set_d(r9729, im, MPFR_RNDN);
        mpfr_mul(r9730, r9729, r9729, MPFR_RNDN);
        mpfr_add(r9731, r9728, r9730, MPFR_RNDN);
        mpfr_sqrt(r9732, r9731, MPFR_RNDN);
        return mpfr_get_d(r9732, MPFR_RNDN);
}

static mpfr_t r9733, r9734, r9735, r9736, r9737, r9738, r9739, r9740, r9741, r9742, r9743, r9744, r9745, r9746, r9747, r9748, r9749, r9750, r9751;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9733);
        mpfr_init_set_str(r9734, "-1.3332909757075433e+147", 10, MPFR_RNDN);
        mpfr_init(r9735);
        mpfr_init(r9736);
        mpfr_init_set_str(r9737, "-8.30732108697294e-301", 10, MPFR_RNDN);
        mpfr_init(r9738);
        mpfr_init(r9739);
        mpfr_init(r9740);
        mpfr_init(r9741);
        mpfr_init(r9742);
        mpfr_init(r9743);
        mpfr_init_set_str(r9744, "1.5101400909533284e-255", 10, MPFR_RNDN);
        mpfr_init(r9745);
        mpfr_init_set_str(r9746, "1.2288226746954848e+174", 10, MPFR_RNDN);
        mpfr_init(r9747);
        mpfr_init(r9748);
        mpfr_init(r9749);
        mpfr_init(r9750);
        mpfr_init(r9751);
}

double f_fm(double re, double im) {
        mpfr_set_d(r9733, re, MPFR_RNDN);
        ;
        mpfr_set_si(r9735, mpfr_cmp(r9733, r9734) <= 0, MPFR_RNDN);
        mpfr_neg(r9736, r9733, MPFR_RNDN);
        ;
        mpfr_set_si(r9738, mpfr_cmp(r9733, r9737) <= 0, MPFR_RNDN);
        mpfr_mul(r9739, r9733, r9733, MPFR_RNDN);
        mpfr_set_d(r9740, im, MPFR_RNDN);
        mpfr_mul(r9741, r9740, r9740, MPFR_RNDN);
        mpfr_add(r9742, r9739, r9741, MPFR_RNDN);
        mpfr_sqrt(r9743, r9742, MPFR_RNDN);
        ;
        mpfr_set_si(r9745, mpfr_cmp(r9733, r9744) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9747, mpfr_cmp(r9733, r9746) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r9747, MPFR_RNDN)) { mpfr_set(r9748, r9743, MPFR_RNDN); } else { mpfr_set(r9748, r9733, MPFR_RNDN); };
        if (mpfr_get_si(r9745, MPFR_RNDN)) { mpfr_set(r9749, r9740, MPFR_RNDN); } else { mpfr_set(r9749, r9748, MPFR_RNDN); };
        if (mpfr_get_si(r9738, MPFR_RNDN)) { mpfr_set(r9750, r9743, MPFR_RNDN); } else { mpfr_set(r9750, r9749, MPFR_RNDN); };
        if (mpfr_get_si(r9735, MPFR_RNDN)) { mpfr_set(r9751, r9736, MPFR_RNDN); } else { mpfr_set(r9751, r9750, MPFR_RNDN); };
        return mpfr_get_d(r9751, MPFR_RNDN);
}

static mpfr_t r9752, r9753, r9754, r9755, r9756, r9757, r9758, r9759, r9760, r9761, r9762, r9763, r9764, r9765, r9766, r9767, r9768, r9769, r9770;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9752);
        mpfr_init_set_str(r9753, "-1.3332909757075433e+147", 10, MPFR_RNDN);
        mpfr_init(r9754);
        mpfr_init(r9755);
        mpfr_init_set_str(r9756, "-8.30732108697294e-301", 10, MPFR_RNDN);
        mpfr_init(r9757);
        mpfr_init(r9758);
        mpfr_init(r9759);
        mpfr_init(r9760);
        mpfr_init(r9761);
        mpfr_init(r9762);
        mpfr_init_set_str(r9763, "1.5101400909533284e-255", 10, MPFR_RNDN);
        mpfr_init(r9764);
        mpfr_init_set_str(r9765, "1.2288226746954848e+174", 10, MPFR_RNDN);
        mpfr_init(r9766);
        mpfr_init(r9767);
        mpfr_init(r9768);
        mpfr_init(r9769);
        mpfr_init(r9770);
}

double f_dm(double re, double im) {
        mpfr_set_d(r9752, re, MPFR_RNDN);
        ;
        mpfr_set_si(r9754, mpfr_cmp(r9752, r9753) <= 0, MPFR_RNDN);
        mpfr_neg(r9755, r9752, MPFR_RNDN);
        ;
        mpfr_set_si(r9757, mpfr_cmp(r9752, r9756) <= 0, MPFR_RNDN);
        mpfr_mul(r9758, r9752, r9752, MPFR_RNDN);
        mpfr_set_d(r9759, im, MPFR_RNDN);
        mpfr_mul(r9760, r9759, r9759, MPFR_RNDN);
        mpfr_add(r9761, r9758, r9760, MPFR_RNDN);
        mpfr_sqrt(r9762, r9761, MPFR_RNDN);
        ;
        mpfr_set_si(r9764, mpfr_cmp(r9752, r9763) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r9766, mpfr_cmp(r9752, r9765) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r9766, MPFR_RNDN)) { mpfr_set(r9767, r9762, MPFR_RNDN); } else { mpfr_set(r9767, r9752, MPFR_RNDN); };
        if (mpfr_get_si(r9764, MPFR_RNDN)) { mpfr_set(r9768, r9759, MPFR_RNDN); } else { mpfr_set(r9768, r9767, MPFR_RNDN); };
        if (mpfr_get_si(r9757, MPFR_RNDN)) { mpfr_set(r9769, r9762, MPFR_RNDN); } else { mpfr_set(r9769, r9768, MPFR_RNDN); };
        if (mpfr_get_si(r9754, MPFR_RNDN)) { mpfr_set(r9770, r9755, MPFR_RNDN); } else { mpfr_set(r9770, r9769, MPFR_RNDN); };
        return mpfr_get_d(r9770, MPFR_RNDN);
}

