#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 r41635 = a1;
        float r41636 = a2;
        float r41637 = r41635 * r41636;
        float r41638 = b1;
        float r41639 = b2;
        float r41640 = r41638 * r41639;
        float r41641 = r41637 / r41640;
        return r41641;
}

double f_id(double a1, double a2, double b1, double b2) {
        double r41642 = a1;
        double r41643 = a2;
        double r41644 = r41642 * r41643;
        double r41645 = b1;
        double r41646 = b2;
        double r41647 = r41645 * r41646;
        double r41648 = r41644 / r41647;
        return r41648;
}


double f_of(float a1, float a2, float b1, float b2) {
        float r41649 = a2;
        float r41650 = -6.045083951305319e+266;
        bool r41651 = r41649 <= r41650;
        float r41652 = a1;
        float r41653 = b1;
        float r41654 = r41652 / r41653;
        float r41655 = b2;
        float r41656 = r41649 / r41655;
        float r41657 = r41654 * r41656;
        float r41658 = -5.414745926231163e+82;
        bool r41659 = r41649 <= r41658;
        float r41660 = r41652 * r41649;
        float r41661 = 1;
        float r41662 = r41653 * r41655;
        float r41663 = r41661 / r41662;
        float r41664 = r41660 * r41663;
        float r41665 = 2.449520349025656e-107;
        bool r41666 = r41649 <= r41665;
        float r41667 = r41653 / r41649;
        float r41668 = r41652 / r41667;
        float r41669 = r41668 / r41655;
        float r41670 = 4.900372329870422e+156;
        bool r41671 = r41649 <= r41670;
        float r41672 = 5.746979328945049e+206;
        bool r41673 = r41649 <= r41672;
        float r41674 = r41660 / r41653;
        float r41675 = r41655 / r41674;
        float r41676 = r41661 / r41675;
        float r41677 = r41673 ? r41676 : r41669;
        float r41678 = r41671 ? r41657 : r41677;
        float r41679 = r41666 ? r41669 : r41678;
        float r41680 = r41659 ? r41664 : r41679;
        float r41681 = r41651 ? r41657 : r41680;
        return r41681;
}

double f_od(double a1, double a2, double b1, double b2) {
        double r41682 = a2;
        double r41683 = -6.045083951305319e+266;
        bool r41684 = r41682 <= r41683;
        double r41685 = a1;
        double r41686 = b1;
        double r41687 = r41685 / r41686;
        double r41688 = b2;
        double r41689 = r41682 / r41688;
        double r41690 = r41687 * r41689;
        double r41691 = -5.414745926231163e+82;
        bool r41692 = r41682 <= r41691;
        double r41693 = r41685 * r41682;
        double r41694 = 1;
        double r41695 = r41686 * r41688;
        double r41696 = r41694 / r41695;
        double r41697 = r41693 * r41696;
        double r41698 = 2.449520349025656e-107;
        bool r41699 = r41682 <= r41698;
        double r41700 = r41686 / r41682;
        double r41701 = r41685 / r41700;
        double r41702 = r41701 / r41688;
        double r41703 = 4.900372329870422e+156;
        bool r41704 = r41682 <= r41703;
        double r41705 = 5.746979328945049e+206;
        bool r41706 = r41682 <= r41705;
        double r41707 = r41693 / r41686;
        double r41708 = r41688 / r41707;
        double r41709 = r41694 / r41708;
        double r41710 = r41706 ? r41709 : r41702;
        double r41711 = r41704 ? r41690 : r41710;
        double r41712 = r41699 ? r41702 : r41711;
        double r41713 = r41692 ? r41697 : r41712;
        double r41714 = r41684 ? r41690 : r41713;
        return r41714;
}

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 r41715, r41716, r41717, r41718, r41719, r41720, r41721;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r41715);
        mpfr_init(r41716);
        mpfr_init(r41717);
        mpfr_init(r41718);
        mpfr_init(r41719);
        mpfr_init(r41720);
        mpfr_init(r41721);
}

double f_im(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r41715, a1, MPFR_RNDN);
        mpfr_set_d(r41716, a2, MPFR_RNDN);
        mpfr_mul(r41717, r41715, r41716, MPFR_RNDN);
        mpfr_set_d(r41718, b1, MPFR_RNDN);
        mpfr_set_d(r41719, b2, MPFR_RNDN);
        mpfr_mul(r41720, r41718, r41719, MPFR_RNDN);
        mpfr_div(r41721, r41717, r41720, MPFR_RNDN);
        return mpfr_get_d(r41721, MPFR_RNDN);
}

static mpfr_t r41722, r41723, r41724, r41725, r41726, r41727, r41728, r41729, r41730, r41731, r41732, r41733, r41734, r41735, r41736, r41737, r41738, r41739, r41740, r41741, r41742, r41743, r41744, r41745, r41746, r41747, r41748, r41749, r41750, r41751, r41752, r41753, r41754;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41722);
        mpfr_init_set_str(r41723, "-6.045083951305319e+266", 10, MPFR_RNDN);
        mpfr_init(r41724);
        mpfr_init(r41725);
        mpfr_init(r41726);
        mpfr_init(r41727);
        mpfr_init(r41728);
        mpfr_init(r41729);
        mpfr_init(r41730);
        mpfr_init_set_str(r41731, "-5.414745926231163e+82", 10, MPFR_RNDN);
        mpfr_init(r41732);
        mpfr_init(r41733);
        mpfr_init_set_str(r41734, "1", 10, MPFR_RNDN);
        mpfr_init(r41735);
        mpfr_init(r41736);
        mpfr_init(r41737);
        mpfr_init_set_str(r41738, "2.449520349025656e-107", 10, MPFR_RNDN);
        mpfr_init(r41739);
        mpfr_init(r41740);
        mpfr_init(r41741);
        mpfr_init(r41742);
        mpfr_init_set_str(r41743, "4.900372329870422e+156", 10, MPFR_RNDN);
        mpfr_init(r41744);
        mpfr_init_set_str(r41745, "5.746979328945049e+206", 10, MPFR_RNDN);
        mpfr_init(r41746);
        mpfr_init(r41747);
        mpfr_init(r41748);
        mpfr_init(r41749);
        mpfr_init(r41750);
        mpfr_init(r41751);
        mpfr_init(r41752);
        mpfr_init(r41753);
        mpfr_init(r41754);
}

double f_fm(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r41722, a2, MPFR_RNDN);
        ;
        mpfr_set_si(r41724, mpfr_cmp(r41722, r41723) <= 0, MPFR_RNDN);
        mpfr_set_d(r41725, a1, MPFR_RNDN);
        mpfr_set_d(r41726, b1, MPFR_RNDN);
        mpfr_div(r41727, r41725, r41726, MPFR_RNDN);
        mpfr_set_d(r41728, b2, MPFR_RNDN);
        mpfr_div(r41729, r41722, r41728, MPFR_RNDN);
        mpfr_mul(r41730, r41727, r41729, MPFR_RNDN);
        ;
        mpfr_set_si(r41732, mpfr_cmp(r41722, r41731) <= 0, MPFR_RNDN);
        mpfr_mul(r41733, r41725, r41722, MPFR_RNDN);
        ;
        mpfr_mul(r41735, r41726, r41728, MPFR_RNDN);
        mpfr_div(r41736, r41734, r41735, MPFR_RNDN);
        mpfr_mul(r41737, r41733, r41736, MPFR_RNDN);
        ;
        mpfr_set_si(r41739, mpfr_cmp(r41722, r41738) <= 0, MPFR_RNDN);
        mpfr_div(r41740, r41726, r41722, MPFR_RNDN);
        mpfr_div(r41741, r41725, r41740, MPFR_RNDN);
        mpfr_div(r41742, r41741, r41728, MPFR_RNDN);
        ;
        mpfr_set_si(r41744, mpfr_cmp(r41722, r41743) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r41746, mpfr_cmp(r41722, r41745) <= 0, MPFR_RNDN);
        mpfr_div(r41747, r41733, r41726, MPFR_RNDN);
        mpfr_div(r41748, r41728, r41747, MPFR_RNDN);
        mpfr_div(r41749, r41734, r41748, MPFR_RNDN);
        if (mpfr_get_si(r41746, MPFR_RNDN)) { mpfr_set(r41750, r41749, MPFR_RNDN); } else { mpfr_set(r41750, r41742, MPFR_RNDN); };
        if (mpfr_get_si(r41744, MPFR_RNDN)) { mpfr_set(r41751, r41730, MPFR_RNDN); } else { mpfr_set(r41751, r41750, MPFR_RNDN); };
        if (mpfr_get_si(r41739, MPFR_RNDN)) { mpfr_set(r41752, r41742, MPFR_RNDN); } else { mpfr_set(r41752, r41751, MPFR_RNDN); };
        if (mpfr_get_si(r41732, MPFR_RNDN)) { mpfr_set(r41753, r41737, MPFR_RNDN); } else { mpfr_set(r41753, r41752, MPFR_RNDN); };
        if (mpfr_get_si(r41724, MPFR_RNDN)) { mpfr_set(r41754, r41730, MPFR_RNDN); } else { mpfr_set(r41754, r41753, MPFR_RNDN); };
        return mpfr_get_d(r41754, MPFR_RNDN);
}

static mpfr_t r41755, r41756, r41757, r41758, r41759, r41760, r41761, r41762, r41763, r41764, r41765, r41766, r41767, r41768, r41769, r41770, r41771, r41772, r41773, r41774, r41775, r41776, r41777, r41778, r41779, r41780, r41781, r41782, r41783, r41784, r41785, r41786, r41787;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41755);
        mpfr_init_set_str(r41756, "-6.045083951305319e+266", 10, MPFR_RNDN);
        mpfr_init(r41757);
        mpfr_init(r41758);
        mpfr_init(r41759);
        mpfr_init(r41760);
        mpfr_init(r41761);
        mpfr_init(r41762);
        mpfr_init(r41763);
        mpfr_init_set_str(r41764, "-5.414745926231163e+82", 10, MPFR_RNDN);
        mpfr_init(r41765);
        mpfr_init(r41766);
        mpfr_init_set_str(r41767, "1", 10, MPFR_RNDN);
        mpfr_init(r41768);
        mpfr_init(r41769);
        mpfr_init(r41770);
        mpfr_init_set_str(r41771, "2.449520349025656e-107", 10, MPFR_RNDN);
        mpfr_init(r41772);
        mpfr_init(r41773);
        mpfr_init(r41774);
        mpfr_init(r41775);
        mpfr_init_set_str(r41776, "4.900372329870422e+156", 10, MPFR_RNDN);
        mpfr_init(r41777);
        mpfr_init_set_str(r41778, "5.746979328945049e+206", 10, MPFR_RNDN);
        mpfr_init(r41779);
        mpfr_init(r41780);
        mpfr_init(r41781);
        mpfr_init(r41782);
        mpfr_init(r41783);
        mpfr_init(r41784);
        mpfr_init(r41785);
        mpfr_init(r41786);
        mpfr_init(r41787);
}

double f_dm(double a1, double a2, double b1, double b2) {
        mpfr_set_d(r41755, a2, MPFR_RNDN);
        ;
        mpfr_set_si(r41757, mpfr_cmp(r41755, r41756) <= 0, MPFR_RNDN);
        mpfr_set_d(r41758, a1, MPFR_RNDN);
        mpfr_set_d(r41759, b1, MPFR_RNDN);
        mpfr_div(r41760, r41758, r41759, MPFR_RNDN);
        mpfr_set_d(r41761, b2, MPFR_RNDN);
        mpfr_div(r41762, r41755, r41761, MPFR_RNDN);
        mpfr_mul(r41763, r41760, r41762, MPFR_RNDN);
        ;
        mpfr_set_si(r41765, mpfr_cmp(r41755, r41764) <= 0, MPFR_RNDN);
        mpfr_mul(r41766, r41758, r41755, MPFR_RNDN);
        ;
        mpfr_mul(r41768, r41759, r41761, MPFR_RNDN);
        mpfr_div(r41769, r41767, r41768, MPFR_RNDN);
        mpfr_mul(r41770, r41766, r41769, MPFR_RNDN);
        ;
        mpfr_set_si(r41772, mpfr_cmp(r41755, r41771) <= 0, MPFR_RNDN);
        mpfr_div(r41773, r41759, r41755, MPFR_RNDN);
        mpfr_div(r41774, r41758, r41773, MPFR_RNDN);
        mpfr_div(r41775, r41774, r41761, MPFR_RNDN);
        ;
        mpfr_set_si(r41777, mpfr_cmp(r41755, r41776) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r41779, mpfr_cmp(r41755, r41778) <= 0, MPFR_RNDN);
        mpfr_div(r41780, r41766, r41759, MPFR_RNDN);
        mpfr_div(r41781, r41761, r41780, MPFR_RNDN);
        mpfr_div(r41782, r41767, r41781, MPFR_RNDN);
        if (mpfr_get_si(r41779, MPFR_RNDN)) { mpfr_set(r41783, r41782, MPFR_RNDN); } else { mpfr_set(r41783, r41775, MPFR_RNDN); };
        if (mpfr_get_si(r41777, MPFR_RNDN)) { mpfr_set(r41784, r41763, MPFR_RNDN); } else { mpfr_set(r41784, r41783, MPFR_RNDN); };
        if (mpfr_get_si(r41772, MPFR_RNDN)) { mpfr_set(r41785, r41775, MPFR_RNDN); } else { mpfr_set(r41785, r41784, MPFR_RNDN); };
        if (mpfr_get_si(r41765, MPFR_RNDN)) { mpfr_set(r41786, r41770, MPFR_RNDN); } else { mpfr_set(r41786, r41785, MPFR_RNDN); };
        if (mpfr_get_si(r41757, MPFR_RNDN)) { mpfr_set(r41787, r41763, MPFR_RNDN); } else { mpfr_set(r41787, r41786, MPFR_RNDN); };
        return mpfr_get_d(r41787, MPFR_RNDN);
}

