#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 r41127 = a1;
        float r41128 = a2;
        float r41129 = r41127 * r41128;
        float r41130 = b1;
        float r41131 = b2;
        float r41132 = r41130 * r41131;
        float r41133 = r41129 / r41132;
        return r41133;
}

double f_id(double a1, double a2, double b1, double b2) {
        double r41134 = a1;
        double r41135 = a2;
        double r41136 = r41134 * r41135;
        double r41137 = b1;
        double r41138 = b2;
        double r41139 = r41137 * r41138;
        double r41140 = r41136 / r41139;
        return r41140;
}


double f_of(float a1, float a2, float b1, float b2) {
        float r41141 = a2;
        float r41142 = -6.045083951305319e+266;
        bool r41143 = r41141 <= r41142;
        float r41144 = a1;
        float r41145 = b1;
        float r41146 = r41144 / r41145;
        float r41147 = b2;
        float r41148 = r41141 / r41147;
        float r41149 = r41146 * r41148;
        float r41150 = -5.414745926231163e+82;
        bool r41151 = r41141 <= r41150;
        float r41152 = r41144 * r41141;
        float r41153 = 1;
        float r41154 = r41145 * r41147;
        float r41155 = r41153 / r41154;
        float r41156 = r41152 * r41155;
        float r41157 = 2.449520349025656e-107;
        bool r41158 = r41141 <= r41157;
        float r41159 = r41145 / r41141;
        float r41160 = r41144 / r41159;
        float r41161 = r41160 / r41147;
        float r41162 = 4.900372329870422e+156;
        bool r41163 = r41141 <= r41162;
        float r41164 = 5.746979328945049e+206;
        bool r41165 = r41141 <= r41164;
        float r41166 = r41152 / r41145;
        float r41167 = r41147 / r41166;
        float r41168 = r41153 / r41167;
        float r41169 = r41165 ? r41168 : r41161;
        float r41170 = r41163 ? r41149 : r41169;
        float r41171 = r41158 ? r41161 : r41170;
        float r41172 = r41151 ? r41156 : r41171;
        float r41173 = r41143 ? r41149 : r41172;
        return r41173;
}

double f_od(double a1, double a2, double b1, double b2) {
        double r41174 = a2;
        double r41175 = -6.045083951305319e+266;
        bool r41176 = r41174 <= r41175;
        double r41177 = a1;
        double r41178 = b1;
        double r41179 = r41177 / r41178;
        double r41180 = b2;
        double r41181 = r41174 / r41180;
        double r41182 = r41179 * r41181;
        double r41183 = -5.414745926231163e+82;
        bool r41184 = r41174 <= r41183;
        double r41185 = r41177 * r41174;
        double r41186 = 1;
        double r41187 = r41178 * r41180;
        double r41188 = r41186 / r41187;
        double r41189 = r41185 * r41188;
        double r41190 = 2.449520349025656e-107;
        bool r41191 = r41174 <= r41190;
        double r41192 = r41178 / r41174;
        double r41193 = r41177 / r41192;
        double r41194 = r41193 / r41180;
        double r41195 = 4.900372329870422e+156;
        bool r41196 = r41174 <= r41195;
        double r41197 = 5.746979328945049e+206;
        bool r41198 = r41174 <= r41197;
        double r41199 = r41185 / r41178;
        double r41200 = r41180 / r41199;
        double r41201 = r41186 / r41200;
        double r41202 = r41198 ? r41201 : r41194;
        double r41203 = r41196 ? r41182 : r41202;
        double r41204 = r41191 ? r41194 : r41203;
        double r41205 = r41184 ? r41189 : r41204;
        double r41206 = r41176 ? r41182 : r41205;
        return r41206;
}

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 r41207, r41208, r41209, r41210, r41211, r41212, r41213;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r41207);
        mpfr_init(r41208);
        mpfr_init(r41209);
        mpfr_init(r41210);
        mpfr_init(r41211);
        mpfr_init(r41212);
        mpfr_init(r41213);
}

double f_im(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r41207, a1, MPFR_RNDN);
        mpfr_set_d(r41208, a2, MPFR_RNDN);
        mpfr_mul(r41209, r41207, r41208, MPFR_RNDN);
        mpfr_set_d(r41210, b1, MPFR_RNDN);
        mpfr_set_d(r41211, b2, MPFR_RNDN);
        mpfr_mul(r41212, r41210, r41211, MPFR_RNDN);
        mpfr_div(r41213, r41209, r41212, MPFR_RNDN);
        return mpfr_get_d(r41213, MPFR_RNDN);
}

static mpfr_t r41214, r41215, r41216, r41217, r41218, r41219, r41220, r41221, r41222, r41223, r41224, r41225, r41226, r41227, r41228, r41229, r41230, r41231, r41232, r41233, r41234, r41235, r41236, r41237, r41238, r41239, r41240, r41241, r41242, r41243, r41244, r41245, r41246;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41214);
        mpfr_init_set_str(r41215, "-6.045083951305319e+266", 10, MPFR_RNDN);
        mpfr_init(r41216);
        mpfr_init(r41217);
        mpfr_init(r41218);
        mpfr_init(r41219);
        mpfr_init(r41220);
        mpfr_init(r41221);
        mpfr_init(r41222);
        mpfr_init_set_str(r41223, "-5.414745926231163e+82", 10, MPFR_RNDN);
        mpfr_init(r41224);
        mpfr_init(r41225);
        mpfr_init_set_str(r41226, "1", 10, MPFR_RNDN);
        mpfr_init(r41227);
        mpfr_init(r41228);
        mpfr_init(r41229);
        mpfr_init_set_str(r41230, "2.449520349025656e-107", 10, MPFR_RNDN);
        mpfr_init(r41231);
        mpfr_init(r41232);
        mpfr_init(r41233);
        mpfr_init(r41234);
        mpfr_init_set_str(r41235, "4.900372329870422e+156", 10, MPFR_RNDN);
        mpfr_init(r41236);
        mpfr_init_set_str(r41237, "5.746979328945049e+206", 10, MPFR_RNDN);
        mpfr_init(r41238);
        mpfr_init(r41239);
        mpfr_init(r41240);
        mpfr_init(r41241);
        mpfr_init(r41242);
        mpfr_init(r41243);
        mpfr_init(r41244);
        mpfr_init(r41245);
        mpfr_init(r41246);
}

double f_fm(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r41214, a2, MPFR_RNDN);
        ;
        mpfr_set_si(r41216, mpfr_cmp(r41214, r41215) <= 0, MPFR_RNDN);
        mpfr_set_d(r41217, a1, MPFR_RNDN);
        mpfr_set_d(r41218, b1, MPFR_RNDN);
        mpfr_div(r41219, r41217, r41218, MPFR_RNDN);
        mpfr_set_d(r41220, b2, MPFR_RNDN);
        mpfr_div(r41221, r41214, r41220, MPFR_RNDN);
        mpfr_mul(r41222, r41219, r41221, MPFR_RNDN);
        ;
        mpfr_set_si(r41224, mpfr_cmp(r41214, r41223) <= 0, MPFR_RNDN);
        mpfr_mul(r41225, r41217, r41214, MPFR_RNDN);
        ;
        mpfr_mul(r41227, r41218, r41220, MPFR_RNDN);
        mpfr_div(r41228, r41226, r41227, MPFR_RNDN);
        mpfr_mul(r41229, r41225, r41228, MPFR_RNDN);
        ;
        mpfr_set_si(r41231, mpfr_cmp(r41214, r41230) <= 0, MPFR_RNDN);
        mpfr_div(r41232, r41218, r41214, MPFR_RNDN);
        mpfr_div(r41233, r41217, r41232, MPFR_RNDN);
        mpfr_div(r41234, r41233, r41220, MPFR_RNDN);
        ;
        mpfr_set_si(r41236, mpfr_cmp(r41214, r41235) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r41238, mpfr_cmp(r41214, r41237) <= 0, MPFR_RNDN);
        mpfr_div(r41239, r41225, r41218, MPFR_RNDN);
        mpfr_div(r41240, r41220, r41239, MPFR_RNDN);
        mpfr_div(r41241, r41226, r41240, MPFR_RNDN);
        if (mpfr_get_si(r41238, MPFR_RNDN)) { mpfr_set(r41242, r41241, MPFR_RNDN); } else { mpfr_set(r41242, r41234, MPFR_RNDN); };
        if (mpfr_get_si(r41236, MPFR_RNDN)) { mpfr_set(r41243, r41222, MPFR_RNDN); } else { mpfr_set(r41243, r41242, MPFR_RNDN); };
        if (mpfr_get_si(r41231, MPFR_RNDN)) { mpfr_set(r41244, r41234, MPFR_RNDN); } else { mpfr_set(r41244, r41243, MPFR_RNDN); };
        if (mpfr_get_si(r41224, MPFR_RNDN)) { mpfr_set(r41245, r41229, MPFR_RNDN); } else { mpfr_set(r41245, r41244, MPFR_RNDN); };
        if (mpfr_get_si(r41216, MPFR_RNDN)) { mpfr_set(r41246, r41222, MPFR_RNDN); } else { mpfr_set(r41246, r41245, MPFR_RNDN); };
        return mpfr_get_d(r41246, MPFR_RNDN);
}

static mpfr_t r41247, r41248, r41249, r41250, r41251, r41252, r41253, r41254, r41255, r41256, r41257, r41258, r41259, r41260, r41261, r41262, r41263, r41264, r41265, r41266, r41267, r41268, r41269, r41270, r41271, r41272, r41273, r41274, r41275, r41276, r41277, r41278, r41279;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41247);
        mpfr_init_set_str(r41248, "-6.045083951305319e+266", 10, MPFR_RNDN);
        mpfr_init(r41249);
        mpfr_init(r41250);
        mpfr_init(r41251);
        mpfr_init(r41252);
        mpfr_init(r41253);
        mpfr_init(r41254);
        mpfr_init(r41255);
        mpfr_init_set_str(r41256, "-5.414745926231163e+82", 10, MPFR_RNDN);
        mpfr_init(r41257);
        mpfr_init(r41258);
        mpfr_init_set_str(r41259, "1", 10, MPFR_RNDN);
        mpfr_init(r41260);
        mpfr_init(r41261);
        mpfr_init(r41262);
        mpfr_init_set_str(r41263, "2.449520349025656e-107", 10, MPFR_RNDN);
        mpfr_init(r41264);
        mpfr_init(r41265);
        mpfr_init(r41266);
        mpfr_init(r41267);
        mpfr_init_set_str(r41268, "4.900372329870422e+156", 10, MPFR_RNDN);
        mpfr_init(r41269);
        mpfr_init_set_str(r41270, "5.746979328945049e+206", 10, MPFR_RNDN);
        mpfr_init(r41271);
        mpfr_init(r41272);
        mpfr_init(r41273);
        mpfr_init(r41274);
        mpfr_init(r41275);
        mpfr_init(r41276);
        mpfr_init(r41277);
        mpfr_init(r41278);
        mpfr_init(r41279);
}

double f_dm(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r41247, a2, MPFR_RNDN);
        ;
        mpfr_set_si(r41249, mpfr_cmp(r41247, r41248) <= 0, MPFR_RNDN);
        mpfr_set_d(r41250, a1, MPFR_RNDN);
        mpfr_set_d(r41251, b1, MPFR_RNDN);
        mpfr_div(r41252, r41250, r41251, MPFR_RNDN);
        mpfr_set_d(r41253, b2, MPFR_RNDN);
        mpfr_div(r41254, r41247, r41253, MPFR_RNDN);
        mpfr_mul(r41255, r41252, r41254, MPFR_RNDN);
        ;
        mpfr_set_si(r41257, mpfr_cmp(r41247, r41256) <= 0, MPFR_RNDN);
        mpfr_mul(r41258, r41250, r41247, MPFR_RNDN);
        ;
        mpfr_mul(r41260, r41251, r41253, MPFR_RNDN);
        mpfr_div(r41261, r41259, r41260, MPFR_RNDN);
        mpfr_mul(r41262, r41258, r41261, MPFR_RNDN);
        ;
        mpfr_set_si(r41264, mpfr_cmp(r41247, r41263) <= 0, MPFR_RNDN);
        mpfr_div(r41265, r41251, r41247, MPFR_RNDN);
        mpfr_div(r41266, r41250, r41265, MPFR_RNDN);
        mpfr_div(r41267, r41266, r41253, MPFR_RNDN);
        ;
        mpfr_set_si(r41269, mpfr_cmp(r41247, r41268) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r41271, mpfr_cmp(r41247, r41270) <= 0, MPFR_RNDN);
        mpfr_div(r41272, r41258, r41251, MPFR_RNDN);
        mpfr_div(r41273, r41253, r41272, MPFR_RNDN);
        mpfr_div(r41274, r41259, r41273, MPFR_RNDN);
        if (mpfr_get_si(r41271, MPFR_RNDN)) { mpfr_set(r41275, r41274, MPFR_RNDN); } else { mpfr_set(r41275, r41267, MPFR_RNDN); };
        if (mpfr_get_si(r41269, MPFR_RNDN)) { mpfr_set(r41276, r41255, MPFR_RNDN); } else { mpfr_set(r41276, r41275, MPFR_RNDN); };
        if (mpfr_get_si(r41264, MPFR_RNDN)) { mpfr_set(r41277, r41267, MPFR_RNDN); } else { mpfr_set(r41277, r41276, MPFR_RNDN); };
        if (mpfr_get_si(r41257, MPFR_RNDN)) { mpfr_set(r41278, r41262, MPFR_RNDN); } else { mpfr_set(r41278, r41277, MPFR_RNDN); };
        if (mpfr_get_si(r41249, MPFR_RNDN)) { mpfr_set(r41279, r41255, MPFR_RNDN); } else { mpfr_set(r41279, r41278, MPFR_RNDN); };
        return mpfr_get_d(r41279, MPFR_RNDN);
}

