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

char *name = "_divideComplex, real part";

double f_if(float x_re, float x_im, float y_re, float y_im) {
        float r8701 = x_re;
        float r8702 = y_re;
        float r8703 = r8701 * r8702;
        float r8704 = x_im;
        float r8705 = y_im;
        float r8706 = r8704 * r8705;
        float r8707 = r8703 + r8706;
        float r8708 = r8702 * r8702;
        float r8709 = r8705 * r8705;
        float r8710 = r8708 + r8709;
        float r8711 = r8707 / r8710;
        return r8711;
}

double f_id(double x_re, double x_im, double y_re, double y_im) {
        double r8712 = x_re;
        double r8713 = y_re;
        double r8714 = r8712 * r8713;
        double r8715 = x_im;
        double r8716 = y_im;
        double r8717 = r8715 * r8716;
        double r8718 = r8714 + r8717;
        double r8719 = r8713 * r8713;
        double r8720 = r8716 * r8716;
        double r8721 = r8719 + r8720;
        double r8722 = r8718 / r8721;
        return r8722;
}


double f_of(float x_re, float x_im, float y_re, float y_im) {
        float r8723 = y_re;
        float r8724 = -4.0847043593511234e+198f;
        bool r8725 = r8723 <= r8724;
        float r8726 = 1.0f;
        float r8727 = -r8726;
        float r8728 = y_im;
        float r8729 = hypot(r8723, r8728);
        float r8730 = r8727 / r8729;
        float r8731 = x_re;
        float r8732 = r8730 * r8731;
        float r8733 = 1.480600527823983e+78f;
        bool r8734 = r8723 <= r8733;
        float r8735 = x_im;
        float r8736 = r8731 * r8723;
        float r8737 = fma(r8728, r8735, r8736);
        float r8738 = r8737 / r8729;
        float r8739 = r8738 / r8729;
        float r8740 = r8731 / r8729;
        float r8741 = r8734 ? r8739 : r8740;
        float r8742 = r8725 ? r8732 : r8741;
        return r8742;
}

double f_od(double x_re, double x_im, double y_re, double y_im) {
        double r8743 = y_re;
        double r8744 = -4.0847043593511234e+198;
        bool r8745 = r8743 <= r8744;
        double r8746 = 1.0;
        double r8747 = -r8746;
        double r8748 = y_im;
        double r8749 = hypot(r8743, r8748);
        double r8750 = r8747 / r8749;
        double r8751 = x_re;
        double r8752 = r8750 * r8751;
        double r8753 = 1.480600527823983e+78;
        bool r8754 = r8743 <= r8753;
        double r8755 = x_im;
        double r8756 = r8751 * r8743;
        double r8757 = fma(r8748, r8755, r8756);
        double r8758 = r8757 / r8749;
        double r8759 = r8758 / r8749;
        double r8760 = r8751 / r8749;
        double r8761 = r8754 ? r8759 : r8760;
        double r8762 = r8745 ? r8752 : r8761;
        return r8762;
}

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 r8763, r8764, r8765, r8766, r8767, r8768, r8769, r8770, r8771, r8772, r8773;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8763);
        mpfr_init(r8764);
        mpfr_init(r8765);
        mpfr_init(r8766);
        mpfr_init(r8767);
        mpfr_init(r8768);
        mpfr_init(r8769);
        mpfr_init(r8770);
        mpfr_init(r8771);
        mpfr_init(r8772);
        mpfr_init(r8773);
}

double f_im(double x_re, double x_im, double y_re, double y_im) {
        mpfr_set_d(r8763, x_re, MPFR_RNDN);
        mpfr_set_d(r8764, y_re, MPFR_RNDN);
        mpfr_mul(r8765, r8763, r8764, MPFR_RNDN);
        mpfr_set_d(r8766, x_im, MPFR_RNDN);
        mpfr_set_d(r8767, y_im, MPFR_RNDN);
        mpfr_mul(r8768, r8766, r8767, MPFR_RNDN);
        mpfr_add(r8769, r8765, r8768, MPFR_RNDN);
        mpfr_mul(r8770, r8764, r8764, MPFR_RNDN);
        mpfr_mul(r8771, r8767, r8767, MPFR_RNDN);
        mpfr_add(r8772, r8770, r8771, MPFR_RNDN);
        mpfr_div(r8773, r8769, r8772, MPFR_RNDN);
        return mpfr_get_d(r8773, MPFR_RNDN);
}

static mpfr_t r8774, r8775, r8776, r8777, r8778, r8779, r8780, r8781, r8782, r8783, r8784, r8785, r8786, r8787, r8788, r8789, r8790, r8791, r8792, r8793;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8774);
        mpfr_init_set_str(r8775, "-4.0847043593511234e+198", 10, MPFR_RNDN);
        mpfr_init(r8776);
        mpfr_init_set_str(r8777, "1", 10, MPFR_RNDN);
        mpfr_init(r8778);
        mpfr_init(r8779);
        mpfr_init(r8780);
        mpfr_init(r8781);
        mpfr_init(r8782);
        mpfr_init(r8783);
        mpfr_init_set_str(r8784, "1.480600527823983e+78", 10, MPFR_RNDN);
        mpfr_init(r8785);
        mpfr_init(r8786);
        mpfr_init(r8787);
        mpfr_init(r8788);
        mpfr_init(r8789);
        mpfr_init(r8790);
        mpfr_init(r8791);
        mpfr_init(r8792);
        mpfr_init(r8793);
}

double f_fm(double x_re, double x_im, double y_re, double y_im) {
        mpfr_set_d(r8774, y_re, MPFR_RNDN);
        ;
        mpfr_set_si(r8776, mpfr_cmp(r8774, r8775) <= 0, MPFR_RNDN);
        ;
        mpfr_neg(r8778, r8777, MPFR_RNDN);
        mpfr_set_d(r8779, y_im, MPFR_RNDN);
        mpfr_hypot(r8780, r8774, r8779, MPFR_RNDN);
        mpfr_div(r8781, r8778, r8780, MPFR_RNDN);
        mpfr_set_d(r8782, x_re, MPFR_RNDN);
        mpfr_mul(r8783, r8781, r8782, MPFR_RNDN);
        ;
        mpfr_set_si(r8785, mpfr_cmp(r8774, r8784) <= 0, MPFR_RNDN);
        mpfr_set_d(r8786, x_im, MPFR_RNDN);
        mpfr_mul(r8787, r8782, r8774, MPFR_RNDN);
        mpfr_fma(r8788, r8779, r8786, r8787, MPFR_RNDN);
        mpfr_div(r8789, r8788, r8780, MPFR_RNDN);
        mpfr_div(r8790, r8789, r8780, MPFR_RNDN);
        mpfr_div(r8791, r8782, r8780, MPFR_RNDN);
        if (mpfr_get_si(r8785, MPFR_RNDN)) { mpfr_set(r8792, r8790, MPFR_RNDN); } else { mpfr_set(r8792, r8791, MPFR_RNDN); };
        if (mpfr_get_si(r8776, MPFR_RNDN)) { mpfr_set(r8793, r8783, MPFR_RNDN); } else { mpfr_set(r8793, r8792, MPFR_RNDN); };
        return mpfr_get_d(r8793, MPFR_RNDN);
}

static mpfr_t r8794, r8795, r8796, r8797, r8798, r8799, r8800, r8801, r8802, r8803, r8804, r8805, r8806, r8807, r8808, r8809, r8810, r8811, r8812, r8813;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8794);
        mpfr_init_set_str(r8795, "-4.0847043593511234e+198", 10, MPFR_RNDN);
        mpfr_init(r8796);
        mpfr_init_set_str(r8797, "1", 10, MPFR_RNDN);
        mpfr_init(r8798);
        mpfr_init(r8799);
        mpfr_init(r8800);
        mpfr_init(r8801);
        mpfr_init(r8802);
        mpfr_init(r8803);
        mpfr_init_set_str(r8804, "1.480600527823983e+78", 10, MPFR_RNDN);
        mpfr_init(r8805);
        mpfr_init(r8806);
        mpfr_init(r8807);
        mpfr_init(r8808);
        mpfr_init(r8809);
        mpfr_init(r8810);
        mpfr_init(r8811);
        mpfr_init(r8812);
        mpfr_init(r8813);
}

double f_dm(double x_re, double x_im, double y_re, double y_im) {
        mpfr_set_d(r8794, y_re, MPFR_RNDN);
        ;
        mpfr_set_si(r8796, mpfr_cmp(r8794, r8795) <= 0, MPFR_RNDN);
        ;
        mpfr_neg(r8798, r8797, MPFR_RNDN);
        mpfr_set_d(r8799, y_im, MPFR_RNDN);
        mpfr_hypot(r8800, r8794, r8799, MPFR_RNDN);
        mpfr_div(r8801, r8798, r8800, MPFR_RNDN);
        mpfr_set_d(r8802, x_re, MPFR_RNDN);
        mpfr_mul(r8803, r8801, r8802, MPFR_RNDN);
        ;
        mpfr_set_si(r8805, mpfr_cmp(r8794, r8804) <= 0, MPFR_RNDN);
        mpfr_set_d(r8806, x_im, MPFR_RNDN);
        mpfr_mul(r8807, r8802, r8794, MPFR_RNDN);
        mpfr_fma(r8808, r8799, r8806, r8807, MPFR_RNDN);
        mpfr_div(r8809, r8808, r8800, MPFR_RNDN);
        mpfr_div(r8810, r8809, r8800, MPFR_RNDN);
        mpfr_div(r8811, r8802, r8800, MPFR_RNDN);
        if (mpfr_get_si(r8805, MPFR_RNDN)) { mpfr_set(r8812, r8810, MPFR_RNDN); } else { mpfr_set(r8812, r8811, MPFR_RNDN); };
        if (mpfr_get_si(r8796, MPFR_RNDN)) { mpfr_set(r8813, r8803, MPFR_RNDN); } else { mpfr_set(r8813, r8812, MPFR_RNDN); };
        return mpfr_get_d(r8813, MPFR_RNDN);
}

