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

char *name = "Quotient of products";

double f_if(float a1, float a2, float b1, float b2) {
        float r27129 = a1;
        float r27130 = a2;
        float r27131 = r27129 * r27130;
        float r27132 = b1;
        float r27133 = b2;
        float r27134 = r27132 * r27133;
        float r27135 = r27131 / r27134;
        return r27135;
}

double f_id(double a1, double a2, double b1, double b2) {
        double r27136 = a1;
        double r27137 = a2;
        double r27138 = r27136 * r27137;
        double r27139 = b1;
        double r27140 = b2;
        double r27141 = r27139 * r27140;
        double r27142 = r27138 / r27141;
        return r27142;
}


double f_of(float a1, float a2, float b1, float b2) {
        float r27143 = 1;
        float r27144 = b2;
        float r27145 = b1;
        float r27146 = r27144 * r27145;
        float r27147 = r27143 / r27146;
        float r27148 = a2;
        float r27149 = a1;
        float r27150 = r27148 * r27149;
        float r27151 = r27147 * r27150;
        float r27152 = -1.4971996319998483e+307;
        bool r27153 = r27151 <= r27152;
        float r27154 = r27149 / r27145;
        float r27155 = r27148 / r27144;
        float r27156 = r27154 * r27155;
        float r27157 = -4.9406564584125e-324;
        bool r27158 = r27151 <= r27157;
        float r27159 = 1.8670147877566e-318;
        bool r27160 = r27151 <= r27159;
        float r27161 = r27148 / r27145;
        float r27162 = r27149 / r27144;
        float r27163 = r27161 * r27162;
        float r27164 = expm1(r27163);
        float r27165 = log1p(r27164);
        float r27166 = 4.667883831678636e+289;
        bool r27167 = r27151 <= r27166;
        float r27168 = r27144 / r27148;
        float r27169 = r27154 / r27168;
        float r27170 = r27167 ? r27151 : r27169;
        float r27171 = r27160 ? r27165 : r27170;
        float r27172 = r27158 ? r27151 : r27171;
        float r27173 = r27153 ? r27156 : r27172;
        return r27173;
}

double f_od(double a1, double a2, double b1, double b2) {
        double r27174 = 1;
        double r27175 = b2;
        double r27176 = b1;
        double r27177 = r27175 * r27176;
        double r27178 = r27174 / r27177;
        double r27179 = a2;
        double r27180 = a1;
        double r27181 = r27179 * r27180;
        double r27182 = r27178 * r27181;
        double r27183 = -1.4971996319998483e+307;
        bool r27184 = r27182 <= r27183;
        double r27185 = r27180 / r27176;
        double r27186 = r27179 / r27175;
        double r27187 = r27185 * r27186;
        double r27188 = -4.9406564584125e-324;
        bool r27189 = r27182 <= r27188;
        double r27190 = 1.8670147877566e-318;
        bool r27191 = r27182 <= r27190;
        double r27192 = r27179 / r27176;
        double r27193 = r27180 / r27175;
        double r27194 = r27192 * r27193;
        double r27195 = expm1(r27194);
        double r27196 = log1p(r27195);
        double r27197 = 4.667883831678636e+289;
        bool r27198 = r27182 <= r27197;
        double r27199 = r27175 / r27179;
        double r27200 = r27185 / r27199;
        double r27201 = r27198 ? r27182 : r27200;
        double r27202 = r27191 ? r27196 : r27201;
        double r27203 = r27189 ? r27182 : r27202;
        double r27204 = r27184 ? r27187 : r27203;
        return r27204;
}

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 r27205, r27206, r27207, r27208, r27209, r27210, r27211;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r27205);
        mpfr_init(r27206);
        mpfr_init(r27207);
        mpfr_init(r27208);
        mpfr_init(r27209);
        mpfr_init(r27210);
        mpfr_init(r27211);
}

double f_im(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r27205, a1, MPFR_RNDN);
        mpfr_set_d(r27206, a2, MPFR_RNDN);
        mpfr_mul(r27207, r27205, r27206, MPFR_RNDN);
        mpfr_set_d(r27208, b1, MPFR_RNDN);
        mpfr_set_d(r27209, b2, MPFR_RNDN);
        mpfr_mul(r27210, r27208, r27209, MPFR_RNDN);
        mpfr_div(r27211, r27207, r27210, MPFR_RNDN);
        return mpfr_get_d(r27211, MPFR_RNDN);
}

static mpfr_t r27212, r27213, r27214, r27215, r27216, r27217, r27218, r27219, r27220, r27221, r27222, r27223, r27224, r27225, r27226, r27227, r27228, r27229, r27230, r27231, r27232, r27233, r27234, r27235, r27236, r27237, r27238, r27239, r27240, r27241, r27242;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27212, "1", 10, MPFR_RNDN);
        mpfr_init(r27213);
        mpfr_init(r27214);
        mpfr_init(r27215);
        mpfr_init(r27216);
        mpfr_init(r27217);
        mpfr_init(r27218);
        mpfr_init(r27219);
        mpfr_init(r27220);
        mpfr_init_set_str(r27221, "-1.4971996319998483e+307", 10, MPFR_RNDN);
        mpfr_init(r27222);
        mpfr_init(r27223);
        mpfr_init(r27224);
        mpfr_init(r27225);
        mpfr_init_set_str(r27226, "-4.9406564584125e-324", 10, MPFR_RNDN);
        mpfr_init(r27227);
        mpfr_init_set_str(r27228, "1.8670147877566e-318", 10, MPFR_RNDN);
        mpfr_init(r27229);
        mpfr_init(r27230);
        mpfr_init(r27231);
        mpfr_init(r27232);
        mpfr_init(r27233);
        mpfr_init(r27234);
        mpfr_init_set_str(r27235, "4.667883831678636e+289", 10, MPFR_RNDN);
        mpfr_init(r27236);
        mpfr_init(r27237);
        mpfr_init(r27238);
        mpfr_init(r27239);
        mpfr_init(r27240);
        mpfr_init(r27241);
        mpfr_init(r27242);
}

double f_fm(double a1, double a2, double b1, double b2) {
        ;
        mpfr_set_d(r27213, b2, MPFR_RNDN);
        mpfr_set_d(r27214, b1, MPFR_RNDN);
        mpfr_mul(r27215, r27213, r27214, MPFR_RNDN);
        mpfr_div(r27216, r27212, r27215, MPFR_RNDN);
        mpfr_set_d(r27217, a2, MPFR_RNDN);
        mpfr_set_d(r27218, a1, MPFR_RNDN);
        mpfr_mul(r27219, r27217, r27218, MPFR_RNDN);
        mpfr_mul(r27220, r27216, r27219, MPFR_RNDN);
        ;
        mpfr_set_si(r27222, mpfr_cmp(r27220, r27221) <= 0, MPFR_RNDN);
        mpfr_div(r27223, r27218, r27214, MPFR_RNDN);
        mpfr_div(r27224, r27217, r27213, MPFR_RNDN);
        mpfr_mul(r27225, r27223, r27224, MPFR_RNDN);
        ;
        mpfr_set_si(r27227, mpfr_cmp(r27220, r27226) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r27229, mpfr_cmp(r27220, r27228) <= 0, MPFR_RNDN);
        mpfr_div(r27230, r27217, r27214, MPFR_RNDN);
        mpfr_div(r27231, r27218, r27213, MPFR_RNDN);
        mpfr_mul(r27232, r27230, r27231, MPFR_RNDN);
        mpfr_expm1(r27233, r27232, MPFR_RNDN);
        mpfr_log1p(r27234, r27233, MPFR_RNDN);
        ;
        mpfr_set_si(r27236, mpfr_cmp(r27220, r27235) <= 0, MPFR_RNDN);
        mpfr_div(r27237, r27213, r27217, MPFR_RNDN);
        mpfr_div(r27238, r27223, r27237, MPFR_RNDN);
        if (mpfr_get_si(r27236, MPFR_RNDN)) { mpfr_set(r27239, r27220, MPFR_RNDN); } else { mpfr_set(r27239, r27238, MPFR_RNDN); };
        if (mpfr_get_si(r27229, MPFR_RNDN)) { mpfr_set(r27240, r27234, MPFR_RNDN); } else { mpfr_set(r27240, r27239, MPFR_RNDN); };
        if (mpfr_get_si(r27227, MPFR_RNDN)) { mpfr_set(r27241, r27220, MPFR_RNDN); } else { mpfr_set(r27241, r27240, MPFR_RNDN); };
        if (mpfr_get_si(r27222, MPFR_RNDN)) { mpfr_set(r27242, r27225, MPFR_RNDN); } else { mpfr_set(r27242, r27241, MPFR_RNDN); };
        return mpfr_get_d(r27242, MPFR_RNDN);
}

static mpfr_t r27243, r27244, r27245, r27246, r27247, r27248, r27249, r27250, r27251, r27252, r27253, r27254, r27255, r27256, r27257, r27258, r27259, r27260, r27261, r27262, r27263, r27264, r27265, r27266, r27267, r27268, r27269, r27270, r27271, r27272, r27273;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27243, "1", 10, MPFR_RNDN);
        mpfr_init(r27244);
        mpfr_init(r27245);
        mpfr_init(r27246);
        mpfr_init(r27247);
        mpfr_init(r27248);
        mpfr_init(r27249);
        mpfr_init(r27250);
        mpfr_init(r27251);
        mpfr_init_set_str(r27252, "-1.4971996319998483e+307", 10, MPFR_RNDN);
        mpfr_init(r27253);
        mpfr_init(r27254);
        mpfr_init(r27255);
        mpfr_init(r27256);
        mpfr_init_set_str(r27257, "-4.9406564584125e-324", 10, MPFR_RNDN);
        mpfr_init(r27258);
        mpfr_init_set_str(r27259, "1.8670147877566e-318", 10, MPFR_RNDN);
        mpfr_init(r27260);
        mpfr_init(r27261);
        mpfr_init(r27262);
        mpfr_init(r27263);
        mpfr_init(r27264);
        mpfr_init(r27265);
        mpfr_init_set_str(r27266, "4.667883831678636e+289", 10, MPFR_RNDN);
        mpfr_init(r27267);
        mpfr_init(r27268);
        mpfr_init(r27269);
        mpfr_init(r27270);
        mpfr_init(r27271);
        mpfr_init(r27272);
        mpfr_init(r27273);
}

double f_dm(double a1, double a2, double b1, double b2) {
        ;
        mpfr_set_d(r27244, b2, MPFR_RNDN);
        mpfr_set_d(r27245, b1, MPFR_RNDN);
        mpfr_mul(r27246, r27244, r27245, MPFR_RNDN);
        mpfr_div(r27247, r27243, r27246, MPFR_RNDN);
        mpfr_set_d(r27248, a2, MPFR_RNDN);
        mpfr_set_d(r27249, a1, MPFR_RNDN);
        mpfr_mul(r27250, r27248, r27249, MPFR_RNDN);
        mpfr_mul(r27251, r27247, r27250, MPFR_RNDN);
        ;
        mpfr_set_si(r27253, mpfr_cmp(r27251, r27252) <= 0, MPFR_RNDN);
        mpfr_div(r27254, r27249, r27245, MPFR_RNDN);
        mpfr_div(r27255, r27248, r27244, MPFR_RNDN);
        mpfr_mul(r27256, r27254, r27255, MPFR_RNDN);
        ;
        mpfr_set_si(r27258, mpfr_cmp(r27251, r27257) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r27260, mpfr_cmp(r27251, r27259) <= 0, MPFR_RNDN);
        mpfr_div(r27261, r27248, r27245, MPFR_RNDN);
        mpfr_div(r27262, r27249, r27244, MPFR_RNDN);
        mpfr_mul(r27263, r27261, r27262, MPFR_RNDN);
        mpfr_expm1(r27264, r27263, MPFR_RNDN);
        mpfr_log1p(r27265, r27264, MPFR_RNDN);
        ;
        mpfr_set_si(r27267, mpfr_cmp(r27251, r27266) <= 0, MPFR_RNDN);
        mpfr_div(r27268, r27244, r27248, MPFR_RNDN);
        mpfr_div(r27269, r27254, r27268, MPFR_RNDN);
        if (mpfr_get_si(r27267, MPFR_RNDN)) { mpfr_set(r27270, r27251, MPFR_RNDN); } else { mpfr_set(r27270, r27269, MPFR_RNDN); };
        if (mpfr_get_si(r27260, MPFR_RNDN)) { mpfr_set(r27271, r27265, MPFR_RNDN); } else { mpfr_set(r27271, r27270, MPFR_RNDN); };
        if (mpfr_get_si(r27258, MPFR_RNDN)) { mpfr_set(r27272, r27251, MPFR_RNDN); } else { mpfr_set(r27272, r27271, MPFR_RNDN); };
        if (mpfr_get_si(r27253, MPFR_RNDN)) { mpfr_set(r27273, r27256, MPFR_RNDN); } else { mpfr_set(r27273, r27272, MPFR_RNDN); };
        return mpfr_get_d(r27273, MPFR_RNDN);
}

