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

char *name = "Complex division, real part";

double f_if(float a, float b, float c, float d) {
        float r26083 = a;
        float r26084 = c;
        float r26085 = r26083 * r26084;
        float r26086 = b;
        float r26087 = d;
        float r26088 = r26086 * r26087;
        float r26089 = r26085 + r26088;
        float r26090 = r26084 * r26084;
        float r26091 = r26087 * r26087;
        float r26092 = r26090 + r26091;
        float r26093 = r26089 / r26092;
        return r26093;
}

double f_id(double a, double b, double c, double d) {
        double r26094 = a;
        double r26095 = c;
        double r26096 = r26094 * r26095;
        double r26097 = b;
        double r26098 = d;
        double r26099 = r26097 * r26098;
        double r26100 = r26096 + r26099;
        double r26101 = r26095 * r26095;
        double r26102 = r26098 * r26098;
        double r26103 = r26101 + r26102;
        double r26104 = r26100 / r26103;
        return r26104;
}


double f_of(float a, float b, float c, float d) {
        float r26105 = 1;
        float r26106 = c;
        float r26107 = d;
        float r26108 = hypot(r26106, r26107);
        float r26109 = r26105 / r26108;
        float r26110 = b;
        float r26111 = a;
        float r26112 = r26106 * r26111;
        float r26113 = fma(r26110, r26107, r26112);
        float r26114 = r26113 / r26108;
        float r26115 = cbrt(r26114);
        float r26116 = r26115 * r26115;
        float r26117 = r26116 * r26115;
        float r26118 = r26109 * r26117;
        float r26119 = -1.7792752541260413e+308;
        bool r26120 = r26118 <= r26119;
        float r26121 = r26110 / r26108;
        float r26122 = 1.771881421094445e+308;
        bool r26123 = r26118 <= r26122;
        float r26124 = r26111 * r26106;
        float r26125 = fma(r26107, r26110, r26124);
        float r26126 = r26125 / r26108;
        float r26127 = r26126 / r26108;
        float r26128 = r26123 ? r26127 : r26121;
        float r26129 = r26120 ? r26121 : r26128;
        return r26129;
}

double f_od(double a, double b, double c, double d) {
        double r26130 = 1;
        double r26131 = c;
        double r26132 = d;
        double r26133 = hypot(r26131, r26132);
        double r26134 = r26130 / r26133;
        double r26135 = b;
        double r26136 = a;
        double r26137 = r26131 * r26136;
        double r26138 = fma(r26135, r26132, r26137);
        double r26139 = r26138 / r26133;
        double r26140 = cbrt(r26139);
        double r26141 = r26140 * r26140;
        double r26142 = r26141 * r26140;
        double r26143 = r26134 * r26142;
        double r26144 = -1.7792752541260413e+308;
        bool r26145 = r26143 <= r26144;
        double r26146 = r26135 / r26133;
        double r26147 = 1.771881421094445e+308;
        bool r26148 = r26143 <= r26147;
        double r26149 = r26136 * r26131;
        double r26150 = fma(r26132, r26135, r26149);
        double r26151 = r26150 / r26133;
        double r26152 = r26151 / r26133;
        double r26153 = r26148 ? r26152 : r26146;
        double r26154 = r26145 ? r26146 : r26153;
        return r26154;
}

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 r26155, r26156, r26157, r26158, r26159, r26160, r26161, r26162, r26163, r26164, r26165;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26155);
        mpfr_init(r26156);
        mpfr_init(r26157);
        mpfr_init(r26158);
        mpfr_init(r26159);
        mpfr_init(r26160);
        mpfr_init(r26161);
        mpfr_init(r26162);
        mpfr_init(r26163);
        mpfr_init(r26164);
        mpfr_init(r26165);
}

double f_im(double a, double b, double c, double d) {
        mpfr_set_d(r26155, a, MPFR_RNDN);
        mpfr_set_d(r26156, c, MPFR_RNDN);
        mpfr_mul(r26157, r26155, r26156, MPFR_RNDN);
        mpfr_set_d(r26158, b, MPFR_RNDN);
        mpfr_set_d(r26159, d, MPFR_RNDN);
        mpfr_mul(r26160, r26158, r26159, MPFR_RNDN);
        mpfr_add(r26161, r26157, r26160, MPFR_RNDN);
        mpfr_mul(r26162, r26156, r26156, MPFR_RNDN);
        mpfr_mul(r26163, r26159, r26159, MPFR_RNDN);
        mpfr_add(r26164, r26162, r26163, MPFR_RNDN);
        mpfr_div(r26165, r26161, r26164, MPFR_RNDN);
        return mpfr_get_d(r26165, MPFR_RNDN);
}

static mpfr_t r26166, r26167, r26168, r26169, r26170, r26171, r26172, r26173, r26174, r26175, r26176, r26177, r26178, r26179, r26180, r26181, r26182, r26183, r26184, r26185, r26186, r26187, r26188, r26189, r26190;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26166, "1", 10, MPFR_RNDN);
        mpfr_init(r26167);
        mpfr_init(r26168);
        mpfr_init(r26169);
        mpfr_init(r26170);
        mpfr_init(r26171);
        mpfr_init(r26172);
        mpfr_init(r26173);
        mpfr_init(r26174);
        mpfr_init(r26175);
        mpfr_init(r26176);
        mpfr_init(r26177);
        mpfr_init(r26178);
        mpfr_init(r26179);
        mpfr_init_set_str(r26180, "-1.7792752541260413e+308", 10, MPFR_RNDN);
        mpfr_init(r26181);
        mpfr_init(r26182);
        mpfr_init_set_str(r26183, "1.771881421094445e+308", 10, MPFR_RNDN);
        mpfr_init(r26184);
        mpfr_init(r26185);
        mpfr_init(r26186);
        mpfr_init(r26187);
        mpfr_init(r26188);
        mpfr_init(r26189);
        mpfr_init(r26190);
}

double f_fm(double a, double b, double c, double d) {
        ;
        mpfr_set_d(r26167, c, MPFR_RNDN);
        mpfr_set_d(r26168, d, MPFR_RNDN);
        mpfr_hypot(r26169, r26167, r26168, MPFR_RNDN);
        mpfr_div(r26170, r26166, r26169, MPFR_RNDN);
        mpfr_set_d(r26171, b, MPFR_RNDN);
        mpfr_set_d(r26172, a, MPFR_RNDN);
        mpfr_mul(r26173, r26167, r26172, MPFR_RNDN);
        mpfr_fma(r26174, r26171, r26168, r26173, MPFR_RNDN);
        mpfr_div(r26175, r26174, r26169, MPFR_RNDN);
        mpfr_cbrt(r26176, r26175, MPFR_RNDN);
        mpfr_mul(r26177, r26176, r26176, MPFR_RNDN);
        mpfr_mul(r26178, r26177, r26176, MPFR_RNDN);
        mpfr_mul(r26179, r26170, r26178, MPFR_RNDN);
        ;
        mpfr_set_si(r26181, mpfr_cmp(r26179, r26180) <= 0, MPFR_RNDN);
        mpfr_div(r26182, r26171, r26169, MPFR_RNDN);
        ;
        mpfr_set_si(r26184, mpfr_cmp(r26179, r26183) <= 0, MPFR_RNDN);
        mpfr_mul(r26185, r26172, r26167, MPFR_RNDN);
        mpfr_fma(r26186, r26168, r26171, r26185, MPFR_RNDN);
        mpfr_div(r26187, r26186, r26169, MPFR_RNDN);
        mpfr_div(r26188, r26187, r26169, MPFR_RNDN);
        if (mpfr_get_si(r26184, MPFR_RNDN)) { mpfr_set(r26189, r26188, MPFR_RNDN); } else { mpfr_set(r26189, r26182, MPFR_RNDN); };
        if (mpfr_get_si(r26181, MPFR_RNDN)) { mpfr_set(r26190, r26182, MPFR_RNDN); } else { mpfr_set(r26190, r26189, MPFR_RNDN); };
        return mpfr_get_d(r26190, MPFR_RNDN);
}

static mpfr_t r26191, r26192, r26193, r26194, r26195, r26196, r26197, r26198, r26199, r26200, r26201, r26202, r26203, r26204, r26205, r26206, r26207, r26208, r26209, r26210, r26211, r26212, r26213, r26214, r26215;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26191, "1", 10, MPFR_RNDN);
        mpfr_init(r26192);
        mpfr_init(r26193);
        mpfr_init(r26194);
        mpfr_init(r26195);
        mpfr_init(r26196);
        mpfr_init(r26197);
        mpfr_init(r26198);
        mpfr_init(r26199);
        mpfr_init(r26200);
        mpfr_init(r26201);
        mpfr_init(r26202);
        mpfr_init(r26203);
        mpfr_init(r26204);
        mpfr_init_set_str(r26205, "-1.7792752541260413e+308", 10, MPFR_RNDN);
        mpfr_init(r26206);
        mpfr_init(r26207);
        mpfr_init_set_str(r26208, "1.771881421094445e+308", 10, MPFR_RNDN);
        mpfr_init(r26209);
        mpfr_init(r26210);
        mpfr_init(r26211);
        mpfr_init(r26212);
        mpfr_init(r26213);
        mpfr_init(r26214);
        mpfr_init(r26215);
}

double f_dm(double a, double b, double c, double d) {
        ;
        mpfr_set_d(r26192, c, MPFR_RNDN);
        mpfr_set_d(r26193, d, MPFR_RNDN);
        mpfr_hypot(r26194, r26192, r26193, MPFR_RNDN);
        mpfr_div(r26195, r26191, r26194, MPFR_RNDN);
        mpfr_set_d(r26196, b, MPFR_RNDN);
        mpfr_set_d(r26197, a, MPFR_RNDN);
        mpfr_mul(r26198, r26192, r26197, MPFR_RNDN);
        mpfr_fma(r26199, r26196, r26193, r26198, MPFR_RNDN);
        mpfr_div(r26200, r26199, r26194, MPFR_RNDN);
        mpfr_cbrt(r26201, r26200, MPFR_RNDN);
        mpfr_mul(r26202, r26201, r26201, MPFR_RNDN);
        mpfr_mul(r26203, r26202, r26201, MPFR_RNDN);
        mpfr_mul(r26204, r26195, r26203, MPFR_RNDN);
        ;
        mpfr_set_si(r26206, mpfr_cmp(r26204, r26205) <= 0, MPFR_RNDN);
        mpfr_div(r26207, r26196, r26194, MPFR_RNDN);
        ;
        mpfr_set_si(r26209, mpfr_cmp(r26204, r26208) <= 0, MPFR_RNDN);
        mpfr_mul(r26210, r26197, r26192, MPFR_RNDN);
        mpfr_fma(r26211, r26193, r26196, r26210, MPFR_RNDN);
        mpfr_div(r26212, r26211, r26194, MPFR_RNDN);
        mpfr_div(r26213, r26212, r26194, MPFR_RNDN);
        if (mpfr_get_si(r26209, MPFR_RNDN)) { mpfr_set(r26214, r26213, MPFR_RNDN); } else { mpfr_set(r26214, r26207, MPFR_RNDN); };
        if (mpfr_get_si(r26206, MPFR_RNDN)) { mpfr_set(r26215, r26207, MPFR_RNDN); } else { mpfr_set(r26215, r26214, MPFR_RNDN); };
        return mpfr_get_d(r26215, MPFR_RNDN);
}

