#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 r9190 = x_re;
        float r9191 = y_re;
        float r9192 = r9190 * r9191;
        float r9193 = x_im;
        float r9194 = y_im;
        float r9195 = r9193 * r9194;
        float r9196 = r9192 + r9195;
        float r9197 = r9191 * r9191;
        float r9198 = r9194 * r9194;
        float r9199 = r9197 + r9198;
        float r9200 = r9196 / r9199;
        return r9200;
}

double f_id(double x_re, double x_im, double y_re, double y_im) {
        double r9201 = x_re;
        double r9202 = y_re;
        double r9203 = r9201 * r9202;
        double r9204 = x_im;
        double r9205 = y_im;
        double r9206 = r9204 * r9205;
        double r9207 = r9203 + r9206;
        double r9208 = r9202 * r9202;
        double r9209 = r9205 * r9205;
        double r9210 = r9208 + r9209;
        double r9211 = r9207 / r9210;
        return r9211;
}


double f_of(float x_re, float x_im, float y_re, float y_im) {
        float r9212 = 1;
        float r9213 = y_im;
        float r9214 = y_re;
        float r9215 = hypot(r9213, r9214);
        float r9216 = r9212 / r9215;
        float r9217 = x_im;
        float r9218 = x_re;
        float r9219 = r9218 * r9214;
        float r9220 = fma(r9213, r9217, r9219);
        float r9221 = r9220 / r9215;
        float r9222 = r9216 * r9221;
        float r9223 = -2.8397407804438993e+230;
        bool r9224 = r9222 <= r9223;
        float r9225 = r9218 / r9215;
        float r9226 = 2.552437099348262e+295;
        bool r9227 = r9222 <= r9226;
        float r9228 = -r9217;
        float r9229 = r9228 / r9215;
        float r9230 = r9227 ? r9222 : r9229;
        float r9231 = r9224 ? r9225 : r9230;
        return r9231;
}

double f_od(double x_re, double x_im, double y_re, double y_im) {
        double r9232 = 1;
        double r9233 = y_im;
        double r9234 = y_re;
        double r9235 = hypot(r9233, r9234);
        double r9236 = r9232 / r9235;
        double r9237 = x_im;
        double r9238 = x_re;
        double r9239 = r9238 * r9234;
        double r9240 = fma(r9233, r9237, r9239);
        double r9241 = r9240 / r9235;
        double r9242 = r9236 * r9241;
        double r9243 = -2.8397407804438993e+230;
        bool r9244 = r9242 <= r9243;
        double r9245 = r9238 / r9235;
        double r9246 = 2.552437099348262e+295;
        bool r9247 = r9242 <= r9246;
        double r9248 = -r9237;
        double r9249 = r9248 / r9235;
        double r9250 = r9247 ? r9242 : r9249;
        double r9251 = r9244 ? r9245 : r9250;
        return r9251;
}

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 r9252, r9253, r9254, r9255, r9256, r9257, r9258, r9259, r9260, r9261, r9262;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9252);
        mpfr_init(r9253);
        mpfr_init(r9254);
        mpfr_init(r9255);
        mpfr_init(r9256);
        mpfr_init(r9257);
        mpfr_init(r9258);
        mpfr_init(r9259);
        mpfr_init(r9260);
        mpfr_init(r9261);
        mpfr_init(r9262);
}

double f_im(double x_re, double x_im, double y_re, double y_im) {
        mpfr_set_d(r9252, x_re, MPFR_RNDN);
        mpfr_set_d(r9253, y_re, MPFR_RNDN);
        mpfr_mul(r9254, r9252, r9253, MPFR_RNDN);
        mpfr_set_d(r9255, x_im, MPFR_RNDN);
        mpfr_set_d(r9256, y_im, MPFR_RNDN);
        mpfr_mul(r9257, r9255, r9256, MPFR_RNDN);
        mpfr_add(r9258, r9254, r9257, MPFR_RNDN);
        mpfr_mul(r9259, r9253, r9253, MPFR_RNDN);
        mpfr_mul(r9260, r9256, r9256, MPFR_RNDN);
        mpfr_add(r9261, r9259, r9260, MPFR_RNDN);
        mpfr_div(r9262, r9258, r9261, MPFR_RNDN);
        return mpfr_get_d(r9262, MPFR_RNDN);
}

static mpfr_t r9263, r9264, r9265, r9266, r9267, r9268, r9269, r9270, r9271, r9272, r9273, r9274, r9275, r9276, r9277, r9278, r9279, r9280, r9281, r9282;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r9263, "1", 10, MPFR_RNDN);
        mpfr_init(r9264);
        mpfr_init(r9265);
        mpfr_init(r9266);
        mpfr_init(r9267);
        mpfr_init(r9268);
        mpfr_init(r9269);
        mpfr_init(r9270);
        mpfr_init(r9271);
        mpfr_init(r9272);
        mpfr_init(r9273);
        mpfr_init_set_str(r9274, "-2.8397407804438993e+230", 10, MPFR_RNDN);
        mpfr_init(r9275);
        mpfr_init(r9276);
        mpfr_init_set_str(r9277, "2.552437099348262e+295", 10, MPFR_RNDN);
        mpfr_init(r9278);
        mpfr_init(r9279);
        mpfr_init(r9280);
        mpfr_init(r9281);
        mpfr_init(r9282);
}

double f_fm(double x_re, double x_im, double y_re, double y_im) {
        ;
        mpfr_set_d(r9264, y_im, MPFR_RNDN);
        mpfr_set_d(r9265, y_re, MPFR_RNDN);
        mpfr_hypot(r9266, r9264, r9265, MPFR_RNDN);
        mpfr_div(r9267, r9263, r9266, MPFR_RNDN);
        mpfr_set_d(r9268, x_im, MPFR_RNDN);
        mpfr_set_d(r9269, x_re, MPFR_RNDN);
        mpfr_mul(r9270, r9269, r9265, MPFR_RNDN);
        mpfr_fma(r9271, r9264, r9268, r9270, MPFR_RNDN);
        mpfr_div(r9272, r9271, r9266, MPFR_RNDN);
        mpfr_mul(r9273, r9267, r9272, MPFR_RNDN);
        ;
        mpfr_set_si(r9275, mpfr_cmp(r9273, r9274) <= 0, MPFR_RNDN);
        mpfr_div(r9276, r9269, r9266, MPFR_RNDN);
        ;
        mpfr_set_si(r9278, mpfr_cmp(r9273, r9277) <= 0, MPFR_RNDN);
        mpfr_neg(r9279, r9268, MPFR_RNDN);
        mpfr_div(r9280, r9279, r9266, MPFR_RNDN);
        if (mpfr_get_si(r9278, MPFR_RNDN)) { mpfr_set(r9281, r9273, MPFR_RNDN); } else { mpfr_set(r9281, r9280, MPFR_RNDN); };
        if (mpfr_get_si(r9275, MPFR_RNDN)) { mpfr_set(r9282, r9276, MPFR_RNDN); } else { mpfr_set(r9282, r9281, MPFR_RNDN); };
        return mpfr_get_d(r9282, MPFR_RNDN);
}

static mpfr_t r9283, r9284, r9285, r9286, r9287, r9288, r9289, r9290, r9291, r9292, r9293, r9294, r9295, r9296, r9297, r9298, r9299, r9300, r9301, r9302;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r9283, "1", 10, MPFR_RNDN);
        mpfr_init(r9284);
        mpfr_init(r9285);
        mpfr_init(r9286);
        mpfr_init(r9287);
        mpfr_init(r9288);
        mpfr_init(r9289);
        mpfr_init(r9290);
        mpfr_init(r9291);
        mpfr_init(r9292);
        mpfr_init(r9293);
        mpfr_init_set_str(r9294, "-2.8397407804438993e+230", 10, MPFR_RNDN);
        mpfr_init(r9295);
        mpfr_init(r9296);
        mpfr_init_set_str(r9297, "2.552437099348262e+295", 10, MPFR_RNDN);
        mpfr_init(r9298);
        mpfr_init(r9299);
        mpfr_init(r9300);
        mpfr_init(r9301);
        mpfr_init(r9302);
}

double f_dm(double x_re, double x_im, double y_re, double y_im) {
        ;
        mpfr_set_d(r9284, y_im, MPFR_RNDN);
        mpfr_set_d(r9285, y_re, MPFR_RNDN);
        mpfr_hypot(r9286, r9284, r9285, MPFR_RNDN);
        mpfr_div(r9287, r9283, r9286, MPFR_RNDN);
        mpfr_set_d(r9288, x_im, MPFR_RNDN);
        mpfr_set_d(r9289, x_re, MPFR_RNDN);
        mpfr_mul(r9290, r9289, r9285, MPFR_RNDN);
        mpfr_fma(r9291, r9284, r9288, r9290, MPFR_RNDN);
        mpfr_div(r9292, r9291, r9286, MPFR_RNDN);
        mpfr_mul(r9293, r9287, r9292, MPFR_RNDN);
        ;
        mpfr_set_si(r9295, mpfr_cmp(r9293, r9294) <= 0, MPFR_RNDN);
        mpfr_div(r9296, r9289, r9286, MPFR_RNDN);
        ;
        mpfr_set_si(r9298, mpfr_cmp(r9293, r9297) <= 0, MPFR_RNDN);
        mpfr_neg(r9299, r9288, MPFR_RNDN);
        mpfr_div(r9300, r9299, r9286, MPFR_RNDN);
        if (mpfr_get_si(r9298, MPFR_RNDN)) { mpfr_set(r9301, r9293, MPFR_RNDN); } else { mpfr_set(r9301, r9300, MPFR_RNDN); };
        if (mpfr_get_si(r9295, MPFR_RNDN)) { mpfr_set(r9302, r9296, MPFR_RNDN); } else { mpfr_set(r9302, r9301, MPFR_RNDN); };
        return mpfr_get_d(r9302, MPFR_RNDN);
}

