#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 r11193 = a1;
        float r11194 = a2;
        float r11195 = r11193 * r11194;
        float r11196 = b1;
        float r11197 = b2;
        float r11198 = r11196 * r11197;
        float r11199 = r11195 / r11198;
        return r11199;
}

double f_id(double a1, double a2, double b1, double b2) {
        double r11200 = a1;
        double r11201 = a2;
        double r11202 = r11200 * r11201;
        double r11203 = b1;
        double r11204 = b2;
        double r11205 = r11203 * r11204;
        double r11206 = r11202 / r11205;
        return r11206;
}


double f_of(float a1, float a2, float b1, float b2) {
        float r11207 = a1;
        float r11208 = a2;
        float r11209 = r11207 * r11208;
        float r11210 = b1;
        float r11211 = b2;
        float r11212 = r11210 * r11211;
        float r11213 = r11209 / r11212;
        float r11214 = -3.299015055999917e+294;
        bool r11215 = r11213 <= r11214;
        float r11216 = r11207 / r11210;
        float r11217 = r11208 / r11211;
        float r11218 = r11216 * r11217;
        float r11219 = -2.495598836304291e-308;
        bool r11220 = r11213 <= r11219;
        float r11221 = 1;
        float r11222 = r11221 / r11212;
        float r11223 = r11209 * r11222;
        float r11224 = 1.2197391025701286e-308;
        bool r11225 = r11213 <= r11224;
        float r11226 = r11210 / r11209;
        float r11227 = r11221 / r11226;
        float r11228 = r11227 / r11211;
        float r11229 = 2.1300160425759017e+281;
        bool r11230 = r11213 <= r11229;
        float r11231 = r11230 ? r11223 : r11218;
        float r11232 = r11225 ? r11228 : r11231;
        float r11233 = r11220 ? r11223 : r11232;
        float r11234 = r11215 ? r11218 : r11233;
        return r11234;
}

double f_od(double a1, double a2, double b1, double b2) {
        double r11235 = a1;
        double r11236 = a2;
        double r11237 = r11235 * r11236;
        double r11238 = b1;
        double r11239 = b2;
        double r11240 = r11238 * r11239;
        double r11241 = r11237 / r11240;
        double r11242 = -3.299015055999917e+294;
        bool r11243 = r11241 <= r11242;
        double r11244 = r11235 / r11238;
        double r11245 = r11236 / r11239;
        double r11246 = r11244 * r11245;
        double r11247 = -2.495598836304291e-308;
        bool r11248 = r11241 <= r11247;
        double r11249 = 1;
        double r11250 = r11249 / r11240;
        double r11251 = r11237 * r11250;
        double r11252 = 1.2197391025701286e-308;
        bool r11253 = r11241 <= r11252;
        double r11254 = r11238 / r11237;
        double r11255 = r11249 / r11254;
        double r11256 = r11255 / r11239;
        double r11257 = 2.1300160425759017e+281;
        bool r11258 = r11241 <= r11257;
        double r11259 = r11258 ? r11251 : r11246;
        double r11260 = r11253 ? r11256 : r11259;
        double r11261 = r11248 ? r11251 : r11260;
        double r11262 = r11243 ? r11246 : r11261;
        return r11262;
}

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 r11263, r11264, r11265, r11266, r11267, r11268, r11269;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r11263);
        mpfr_init(r11264);
        mpfr_init(r11265);
        mpfr_init(r11266);
        mpfr_init(r11267);
        mpfr_init(r11268);
        mpfr_init(r11269);
}

double f_im(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r11263, a1, MPFR_RNDN);
        mpfr_set_d(r11264, a2, MPFR_RNDN);
        mpfr_mul(r11265, r11263, r11264, MPFR_RNDN);
        mpfr_set_d(r11266, b1, MPFR_RNDN);
        mpfr_set_d(r11267, b2, MPFR_RNDN);
        mpfr_mul(r11268, r11266, r11267, MPFR_RNDN);
        mpfr_div(r11269, r11265, r11268, MPFR_RNDN);
        return mpfr_get_d(r11269, MPFR_RNDN);
}

static mpfr_t r11270, r11271, r11272, r11273, r11274, r11275, r11276, r11277, r11278, r11279, r11280, r11281, r11282, r11283, r11284, r11285, r11286, r11287, r11288, r11289, r11290, r11291, r11292, r11293, r11294, r11295, r11296, r11297;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11270);
        mpfr_init(r11271);
        mpfr_init(r11272);
        mpfr_init(r11273);
        mpfr_init(r11274);
        mpfr_init(r11275);
        mpfr_init(r11276);
        mpfr_init_set_str(r11277, "-3.299015055999917e+294", 10, MPFR_RNDN);
        mpfr_init(r11278);
        mpfr_init(r11279);
        mpfr_init(r11280);
        mpfr_init(r11281);
        mpfr_init_set_str(r11282, "-2.495598836304291e-308", 10, MPFR_RNDN);
        mpfr_init(r11283);
        mpfr_init_set_str(r11284, "1", 10, MPFR_RNDN);
        mpfr_init(r11285);
        mpfr_init(r11286);
        mpfr_init_set_str(r11287, "1.2197391025701286e-308", 10, MPFR_RNDN);
        mpfr_init(r11288);
        mpfr_init(r11289);
        mpfr_init(r11290);
        mpfr_init(r11291);
        mpfr_init_set_str(r11292, "2.1300160425759017e+281", 10, MPFR_RNDN);
        mpfr_init(r11293);
        mpfr_init(r11294);
        mpfr_init(r11295);
        mpfr_init(r11296);
        mpfr_init(r11297);
}

double f_fm(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r11270, a1, MPFR_RNDN);
        mpfr_set_d(r11271, a2, MPFR_RNDN);
        mpfr_mul(r11272, r11270, r11271, MPFR_RNDN);
        mpfr_set_d(r11273, b1, MPFR_RNDN);
        mpfr_set_d(r11274, b2, MPFR_RNDN);
        mpfr_mul(r11275, r11273, r11274, MPFR_RNDN);
        mpfr_div(r11276, r11272, r11275, MPFR_RNDN);
        ;
        mpfr_set_si(r11278, mpfr_cmp(r11276, r11277) <= 0, MPFR_RNDN);
        mpfr_div(r11279, r11270, r11273, MPFR_RNDN);
        mpfr_div(r11280, r11271, r11274, MPFR_RNDN);
        mpfr_mul(r11281, r11279, r11280, MPFR_RNDN);
        ;
        mpfr_set_si(r11283, mpfr_cmp(r11276, r11282) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r11285, r11284, r11275, MPFR_RNDN);
        mpfr_mul(r11286, r11272, r11285, MPFR_RNDN);
        ;
        mpfr_set_si(r11288, mpfr_cmp(r11276, r11287) <= 0, MPFR_RNDN);
        mpfr_div(r11289, r11273, r11272, MPFR_RNDN);
        mpfr_div(r11290, r11284, r11289, MPFR_RNDN);
        mpfr_div(r11291, r11290, r11274, MPFR_RNDN);
        ;
        mpfr_set_si(r11293, mpfr_cmp(r11276, r11292) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r11293, MPFR_RNDN)) { mpfr_set(r11294, r11286, MPFR_RNDN); } else { mpfr_set(r11294, r11281, MPFR_RNDN); };
        if (mpfr_get_si(r11288, MPFR_RNDN)) { mpfr_set(r11295, r11291, MPFR_RNDN); } else { mpfr_set(r11295, r11294, MPFR_RNDN); };
        if (mpfr_get_si(r11283, MPFR_RNDN)) { mpfr_set(r11296, r11286, MPFR_RNDN); } else { mpfr_set(r11296, r11295, MPFR_RNDN); };
        if (mpfr_get_si(r11278, MPFR_RNDN)) { mpfr_set(r11297, r11281, MPFR_RNDN); } else { mpfr_set(r11297, r11296, MPFR_RNDN); };
        return mpfr_get_d(r11297, MPFR_RNDN);
}

static mpfr_t r11298, r11299, r11300, r11301, r11302, r11303, r11304, r11305, r11306, r11307, r11308, r11309, r11310, r11311, r11312, r11313, r11314, r11315, r11316, r11317, r11318, r11319, r11320, r11321, r11322, r11323, r11324, r11325;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11298);
        mpfr_init(r11299);
        mpfr_init(r11300);
        mpfr_init(r11301);
        mpfr_init(r11302);
        mpfr_init(r11303);
        mpfr_init(r11304);
        mpfr_init_set_str(r11305, "-3.299015055999917e+294", 10, MPFR_RNDN);
        mpfr_init(r11306);
        mpfr_init(r11307);
        mpfr_init(r11308);
        mpfr_init(r11309);
        mpfr_init_set_str(r11310, "-2.495598836304291e-308", 10, MPFR_RNDN);
        mpfr_init(r11311);
        mpfr_init_set_str(r11312, "1", 10, MPFR_RNDN);
        mpfr_init(r11313);
        mpfr_init(r11314);
        mpfr_init_set_str(r11315, "1.2197391025701286e-308", 10, MPFR_RNDN);
        mpfr_init(r11316);
        mpfr_init(r11317);
        mpfr_init(r11318);
        mpfr_init(r11319);
        mpfr_init_set_str(r11320, "2.1300160425759017e+281", 10, MPFR_RNDN);
        mpfr_init(r11321);
        mpfr_init(r11322);
        mpfr_init(r11323);
        mpfr_init(r11324);
        mpfr_init(r11325);
}

double f_dm(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r11298, a1, MPFR_RNDN);
        mpfr_set_d(r11299, a2, MPFR_RNDN);
        mpfr_mul(r11300, r11298, r11299, MPFR_RNDN);
        mpfr_set_d(r11301, b1, MPFR_RNDN);
        mpfr_set_d(r11302, b2, MPFR_RNDN);
        mpfr_mul(r11303, r11301, r11302, MPFR_RNDN);
        mpfr_div(r11304, r11300, r11303, MPFR_RNDN);
        ;
        mpfr_set_si(r11306, mpfr_cmp(r11304, r11305) <= 0, MPFR_RNDN);
        mpfr_div(r11307, r11298, r11301, MPFR_RNDN);
        mpfr_div(r11308, r11299, r11302, MPFR_RNDN);
        mpfr_mul(r11309, r11307, r11308, MPFR_RNDN);
        ;
        mpfr_set_si(r11311, mpfr_cmp(r11304, r11310) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r11313, r11312, r11303, MPFR_RNDN);
        mpfr_mul(r11314, r11300, r11313, MPFR_RNDN);
        ;
        mpfr_set_si(r11316, mpfr_cmp(r11304, r11315) <= 0, MPFR_RNDN);
        mpfr_div(r11317, r11301, r11300, MPFR_RNDN);
        mpfr_div(r11318, r11312, r11317, MPFR_RNDN);
        mpfr_div(r11319, r11318, r11302, MPFR_RNDN);
        ;
        mpfr_set_si(r11321, mpfr_cmp(r11304, r11320) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r11321, MPFR_RNDN)) { mpfr_set(r11322, r11314, MPFR_RNDN); } else { mpfr_set(r11322, r11309, MPFR_RNDN); };
        if (mpfr_get_si(r11316, MPFR_RNDN)) { mpfr_set(r11323, r11319, MPFR_RNDN); } else { mpfr_set(r11323, r11322, MPFR_RNDN); };
        if (mpfr_get_si(r11311, MPFR_RNDN)) { mpfr_set(r11324, r11314, MPFR_RNDN); } else { mpfr_set(r11324, r11323, MPFR_RNDN); };
        if (mpfr_get_si(r11306, MPFR_RNDN)) { mpfr_set(r11325, r11309, MPFR_RNDN); } else { mpfr_set(r11325, r11324, MPFR_RNDN); };
        return mpfr_get_d(r11325, MPFR_RNDN);
}

