#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 r11120 = a1;
        float r11121 = a2;
        float r11122 = r11120 * r11121;
        float r11123 = b1;
        float r11124 = b2;
        float r11125 = r11123 * r11124;
        float r11126 = r11122 / r11125;
        return r11126;
}

double f_id(double a1, double a2, double b1, double b2) {
        double r11127 = a1;
        double r11128 = a2;
        double r11129 = r11127 * r11128;
        double r11130 = b1;
        double r11131 = b2;
        double r11132 = r11130 * r11131;
        double r11133 = r11129 / r11132;
        return r11133;
}


double f_of(float a1, float a2, float b1, float b2) {
        float r11134 = a1;
        float r11135 = a2;
        float r11136 = r11134 * r11135;
        float r11137 = b1;
        float r11138 = b2;
        float r11139 = r11137 * r11138;
        float r11140 = r11136 / r11139;
        float r11141 = -3.299015055999917e+294;
        bool r11142 = r11140 <= r11141;
        float r11143 = r11134 / r11137;
        float r11144 = r11135 / r11138;
        float r11145 = r11143 * r11144;
        float r11146 = -2.495598836304291e-308;
        bool r11147 = r11140 <= r11146;
        float r11148 = 1;
        float r11149 = r11148 / r11139;
        float r11150 = r11136 * r11149;
        float r11151 = 1.2197391025701286e-308;
        bool r11152 = r11140 <= r11151;
        float r11153 = r11137 / r11136;
        float r11154 = r11148 / r11153;
        float r11155 = r11154 / r11138;
        float r11156 = 2.1300160425759017e+281;
        bool r11157 = r11140 <= r11156;
        float r11158 = r11157 ? r11150 : r11145;
        float r11159 = r11152 ? r11155 : r11158;
        float r11160 = r11147 ? r11150 : r11159;
        float r11161 = r11142 ? r11145 : r11160;
        return r11161;
}

double f_od(double a1, double a2, double b1, double b2) {
        double r11162 = a1;
        double r11163 = a2;
        double r11164 = r11162 * r11163;
        double r11165 = b1;
        double r11166 = b2;
        double r11167 = r11165 * r11166;
        double r11168 = r11164 / r11167;
        double r11169 = -3.299015055999917e+294;
        bool r11170 = r11168 <= r11169;
        double r11171 = r11162 / r11165;
        double r11172 = r11163 / r11166;
        double r11173 = r11171 * r11172;
        double r11174 = -2.495598836304291e-308;
        bool r11175 = r11168 <= r11174;
        double r11176 = 1;
        double r11177 = r11176 / r11167;
        double r11178 = r11164 * r11177;
        double r11179 = 1.2197391025701286e-308;
        bool r11180 = r11168 <= r11179;
        double r11181 = r11165 / r11164;
        double r11182 = r11176 / r11181;
        double r11183 = r11182 / r11166;
        double r11184 = 2.1300160425759017e+281;
        bool r11185 = r11168 <= r11184;
        double r11186 = r11185 ? r11178 : r11173;
        double r11187 = r11180 ? r11183 : r11186;
        double r11188 = r11175 ? r11178 : r11187;
        double r11189 = r11170 ? r11173 : r11188;
        return r11189;
}

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 r11190, r11191, r11192, r11193, r11194, r11195, r11196;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r11190);
        mpfr_init(r11191);
        mpfr_init(r11192);
        mpfr_init(r11193);
        mpfr_init(r11194);
        mpfr_init(r11195);
        mpfr_init(r11196);
}

double f_im(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r11190, a1, MPFR_RNDN);
        mpfr_set_d(r11191, a2, MPFR_RNDN);
        mpfr_mul(r11192, r11190, r11191, MPFR_RNDN);
        mpfr_set_d(r11193, b1, MPFR_RNDN);
        mpfr_set_d(r11194, b2, MPFR_RNDN);
        mpfr_mul(r11195, r11193, r11194, MPFR_RNDN);
        mpfr_div(r11196, r11192, r11195, MPFR_RNDN);
        return mpfr_get_d(r11196, MPFR_RNDN);
}

static mpfr_t r11197, r11198, r11199, r11200, r11201, r11202, r11203, r11204, r11205, r11206, r11207, r11208, r11209, r11210, r11211, r11212, r11213, r11214, r11215, r11216, r11217, r11218, r11219, r11220, r11221, r11222, r11223, r11224;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11197);
        mpfr_init(r11198);
        mpfr_init(r11199);
        mpfr_init(r11200);
        mpfr_init(r11201);
        mpfr_init(r11202);
        mpfr_init(r11203);
        mpfr_init_set_str(r11204, "-3.299015055999917e+294", 10, MPFR_RNDN);
        mpfr_init(r11205);
        mpfr_init(r11206);
        mpfr_init(r11207);
        mpfr_init(r11208);
        mpfr_init_set_str(r11209, "-2.495598836304291e-308", 10, MPFR_RNDN);
        mpfr_init(r11210);
        mpfr_init_set_str(r11211, "1", 10, MPFR_RNDN);
        mpfr_init(r11212);
        mpfr_init(r11213);
        mpfr_init_set_str(r11214, "1.2197391025701286e-308", 10, MPFR_RNDN);
        mpfr_init(r11215);
        mpfr_init(r11216);
        mpfr_init(r11217);
        mpfr_init(r11218);
        mpfr_init_set_str(r11219, "2.1300160425759017e+281", 10, MPFR_RNDN);
        mpfr_init(r11220);
        mpfr_init(r11221);
        mpfr_init(r11222);
        mpfr_init(r11223);
        mpfr_init(r11224);
}

double f_fm(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r11197, a1, MPFR_RNDN);
        mpfr_set_d(r11198, a2, MPFR_RNDN);
        mpfr_mul(r11199, r11197, r11198, MPFR_RNDN);
        mpfr_set_d(r11200, b1, MPFR_RNDN);
        mpfr_set_d(r11201, b2, MPFR_RNDN);
        mpfr_mul(r11202, r11200, r11201, MPFR_RNDN);
        mpfr_div(r11203, r11199, r11202, MPFR_RNDN);
        ;
        mpfr_set_si(r11205, mpfr_cmp(r11203, r11204) <= 0, MPFR_RNDN);
        mpfr_div(r11206, r11197, r11200, MPFR_RNDN);
        mpfr_div(r11207, r11198, r11201, MPFR_RNDN);
        mpfr_mul(r11208, r11206, r11207, MPFR_RNDN);
        ;
        mpfr_set_si(r11210, mpfr_cmp(r11203, r11209) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r11212, r11211, r11202, MPFR_RNDN);
        mpfr_mul(r11213, r11199, r11212, MPFR_RNDN);
        ;
        mpfr_set_si(r11215, mpfr_cmp(r11203, r11214) <= 0, MPFR_RNDN);
        mpfr_div(r11216, r11200, r11199, MPFR_RNDN);
        mpfr_div(r11217, r11211, r11216, MPFR_RNDN);
        mpfr_div(r11218, r11217, r11201, MPFR_RNDN);
        ;
        mpfr_set_si(r11220, mpfr_cmp(r11203, r11219) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r11220, MPFR_RNDN)) { mpfr_set(r11221, r11213, MPFR_RNDN); } else { mpfr_set(r11221, r11208, MPFR_RNDN); };
        if (mpfr_get_si(r11215, MPFR_RNDN)) { mpfr_set(r11222, r11218, MPFR_RNDN); } else { mpfr_set(r11222, r11221, MPFR_RNDN); };
        if (mpfr_get_si(r11210, MPFR_RNDN)) { mpfr_set(r11223, r11213, MPFR_RNDN); } else { mpfr_set(r11223, r11222, MPFR_RNDN); };
        if (mpfr_get_si(r11205, MPFR_RNDN)) { mpfr_set(r11224, r11208, MPFR_RNDN); } else { mpfr_set(r11224, r11223, MPFR_RNDN); };
        return mpfr_get_d(r11224, MPFR_RNDN);
}

static mpfr_t r11225, r11226, r11227, r11228, r11229, r11230, r11231, r11232, r11233, r11234, r11235, r11236, r11237, r11238, r11239, r11240, r11241, r11242, r11243, r11244, r11245, r11246, r11247, r11248, r11249, r11250, r11251, r11252;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11225);
        mpfr_init(r11226);
        mpfr_init(r11227);
        mpfr_init(r11228);
        mpfr_init(r11229);
        mpfr_init(r11230);
        mpfr_init(r11231);
        mpfr_init_set_str(r11232, "-3.299015055999917e+294", 10, MPFR_RNDN);
        mpfr_init(r11233);
        mpfr_init(r11234);
        mpfr_init(r11235);
        mpfr_init(r11236);
        mpfr_init_set_str(r11237, "-2.495598836304291e-308", 10, MPFR_RNDN);
        mpfr_init(r11238);
        mpfr_init_set_str(r11239, "1", 10, MPFR_RNDN);
        mpfr_init(r11240);
        mpfr_init(r11241);
        mpfr_init_set_str(r11242, "1.2197391025701286e-308", 10, MPFR_RNDN);
        mpfr_init(r11243);
        mpfr_init(r11244);
        mpfr_init(r11245);
        mpfr_init(r11246);
        mpfr_init_set_str(r11247, "2.1300160425759017e+281", 10, MPFR_RNDN);
        mpfr_init(r11248);
        mpfr_init(r11249);
        mpfr_init(r11250);
        mpfr_init(r11251);
        mpfr_init(r11252);
}

double f_dm(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r11225, a1, MPFR_RNDN);
        mpfr_set_d(r11226, a2, MPFR_RNDN);
        mpfr_mul(r11227, r11225, r11226, MPFR_RNDN);
        mpfr_set_d(r11228, b1, MPFR_RNDN);
        mpfr_set_d(r11229, b2, MPFR_RNDN);
        mpfr_mul(r11230, r11228, r11229, MPFR_RNDN);
        mpfr_div(r11231, r11227, r11230, MPFR_RNDN);
        ;
        mpfr_set_si(r11233, mpfr_cmp(r11231, r11232) <= 0, MPFR_RNDN);
        mpfr_div(r11234, r11225, r11228, MPFR_RNDN);
        mpfr_div(r11235, r11226, r11229, MPFR_RNDN);
        mpfr_mul(r11236, r11234, r11235, MPFR_RNDN);
        ;
        mpfr_set_si(r11238, mpfr_cmp(r11231, r11237) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r11240, r11239, r11230, MPFR_RNDN);
        mpfr_mul(r11241, r11227, r11240, MPFR_RNDN);
        ;
        mpfr_set_si(r11243, mpfr_cmp(r11231, r11242) <= 0, MPFR_RNDN);
        mpfr_div(r11244, r11228, r11227, MPFR_RNDN);
        mpfr_div(r11245, r11239, r11244, MPFR_RNDN);
        mpfr_div(r11246, r11245, r11229, MPFR_RNDN);
        ;
        mpfr_set_si(r11248, mpfr_cmp(r11231, r11247) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r11248, MPFR_RNDN)) { mpfr_set(r11249, r11241, MPFR_RNDN); } else { mpfr_set(r11249, r11236, MPFR_RNDN); };
        if (mpfr_get_si(r11243, MPFR_RNDN)) { mpfr_set(r11250, r11246, MPFR_RNDN); } else { mpfr_set(r11250, r11249, MPFR_RNDN); };
        if (mpfr_get_si(r11238, MPFR_RNDN)) { mpfr_set(r11251, r11241, MPFR_RNDN); } else { mpfr_set(r11251, r11250, MPFR_RNDN); };
        if (mpfr_get_si(r11233, MPFR_RNDN)) { mpfr_set(r11252, r11236, MPFR_RNDN); } else { mpfr_set(r11252, r11251, MPFR_RNDN); };
        return mpfr_get_d(r11252, MPFR_RNDN);
}

