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

char *name = "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, E";

double f_if(float x, float y, float z, float t, float a) {
        float r41649 = x;
        float r41650 = y;
        float r41651 = z;
        float r41652 = t;
        float r41653 = r41651 - r41652;
        float r41654 = r41650 * r41653;
        float r41655 = a;
        float r41656 = r41654 / r41655;
        float r41657 = r41649 + r41656;
        return r41657;
}

double f_id(double x, double y, double z, double t, double a) {
        double r41658 = x;
        double r41659 = y;
        double r41660 = z;
        double r41661 = t;
        double r41662 = r41660 - r41661;
        double r41663 = r41659 * r41662;
        double r41664 = a;
        double r41665 = r41663 / r41664;
        double r41666 = r41658 + r41665;
        return r41666;
}


double f_of(float x, float y, float z, float t, float a) {
        float r41667 = a;
        float r41668 = -5.273243369695188e-34;
        bool r41669 = r41667 <= r41668;
        float r41670 = x;
        float r41671 = y;
        float r41672 = z;
        float r41673 = t;
        float r41674 = r41672 - r41673;
        float r41675 = r41667 / r41674;
        float r41676 = r41671 / r41675;
        float r41677 = r41670 + r41676;
        float r41678 = 1.4912760646799497e-24;
        bool r41679 = r41667 <= r41678;
        float r41680 = r41671 * r41674;
        float r41681 = r41680 / r41667;
        float r41682 = r41670 + r41681;
        float r41683 = r41667 / r41671;
        float r41684 = r41672 / r41683;
        float r41685 = r41673 / r41683;
        float r41686 = r41684 - r41685;
        float r41687 = r41686 + r41670;
        float r41688 = r41679 ? r41682 : r41687;
        float r41689 = r41669 ? r41677 : r41688;
        return r41689;
}

double f_od(double x, double y, double z, double t, double a) {
        double r41690 = a;
        double r41691 = -5.273243369695188e-34;
        bool r41692 = r41690 <= r41691;
        double r41693 = x;
        double r41694 = y;
        double r41695 = z;
        double r41696 = t;
        double r41697 = r41695 - r41696;
        double r41698 = r41690 / r41697;
        double r41699 = r41694 / r41698;
        double r41700 = r41693 + r41699;
        double r41701 = 1.4912760646799497e-24;
        bool r41702 = r41690 <= r41701;
        double r41703 = r41694 * r41697;
        double r41704 = r41703 / r41690;
        double r41705 = r41693 + r41704;
        double r41706 = r41690 / r41694;
        double r41707 = r41695 / r41706;
        double r41708 = r41696 / r41706;
        double r41709 = r41707 - r41708;
        double r41710 = r41709 + r41693;
        double r41711 = r41702 ? r41705 : r41710;
        double r41712 = r41692 ? r41700 : r41711;
        return r41712;
}

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

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r41713);
        mpfr_init(r41714);
        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 x, double y, double z, double t, double a) {
        mpfr_set_d(r41713, x, MPFR_RNDN);
        mpfr_set_d(r41714, y, MPFR_RNDN);
        mpfr_set_d(r41715, z, MPFR_RNDN);
        mpfr_set_d(r41716, t, MPFR_RNDN);
        mpfr_sub(r41717, r41715, r41716, MPFR_RNDN);
        mpfr_mul(r41718, r41714, r41717, MPFR_RNDN);
        mpfr_set_d(r41719, a, MPFR_RNDN);
        mpfr_div(r41720, r41718, r41719, MPFR_RNDN);
        mpfr_add(r41721, r41713, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41722);
        mpfr_init_set_str(r41723, "-5.273243369695188e-34", 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(r41731);
        mpfr_init(r41732);
        mpfr_init_set_str(r41733, "1.4912760646799497e-24", 10, MPFR_RNDN);
        mpfr_init(r41734);
        mpfr_init(r41735);
        mpfr_init(r41736);
        mpfr_init(r41737);
        mpfr_init(r41738);
        mpfr_init(r41739);
        mpfr_init(r41740);
        mpfr_init(r41741);
        mpfr_init(r41742);
        mpfr_init(r41743);
        mpfr_init(r41744);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41722, a, MPFR_RNDN);
        ;
        mpfr_set_si(r41724, mpfr_cmp(r41722, r41723) <= 0, MPFR_RNDN);
        mpfr_set_d(r41725, x, MPFR_RNDN);
        mpfr_set_d(r41726, y, MPFR_RNDN);
        mpfr_set_d(r41727, z, MPFR_RNDN);
        mpfr_set_d(r41728, t, MPFR_RNDN);
        mpfr_sub(r41729, r41727, r41728, MPFR_RNDN);
        mpfr_div(r41730, r41722, r41729, MPFR_RNDN);
        mpfr_div(r41731, r41726, r41730, MPFR_RNDN);
        mpfr_add(r41732, r41725, r41731, MPFR_RNDN);
        ;
        mpfr_set_si(r41734, mpfr_cmp(r41722, r41733) <= 0, MPFR_RNDN);
        mpfr_mul(r41735, r41726, r41729, MPFR_RNDN);
        mpfr_div(r41736, r41735, r41722, MPFR_RNDN);
        mpfr_add(r41737, r41725, r41736, MPFR_RNDN);
        mpfr_div(r41738, r41722, r41726, MPFR_RNDN);
        mpfr_div(r41739, r41727, r41738, MPFR_RNDN);
        mpfr_div(r41740, r41728, r41738, MPFR_RNDN);
        mpfr_sub(r41741, r41739, r41740, MPFR_RNDN);
        mpfr_add(r41742, r41741, r41725, MPFR_RNDN);
        if (mpfr_get_si(r41734, MPFR_RNDN)) { mpfr_set(r41743, r41737, MPFR_RNDN); } else { mpfr_set(r41743, r41742, MPFR_RNDN); };
        if (mpfr_get_si(r41724, MPFR_RNDN)) { mpfr_set(r41744, r41732, MPFR_RNDN); } else { mpfr_set(r41744, r41743, MPFR_RNDN); };
        return mpfr_get_d(r41744, MPFR_RNDN);
}

static mpfr_t r41745, r41746, r41747, r41748, r41749, r41750, r41751, r41752, r41753, r41754, r41755, r41756, r41757, r41758, r41759, r41760, r41761, r41762, r41763, r41764, r41765, r41766, r41767;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41745);
        mpfr_init_set_str(r41746, "-5.273243369695188e-34", 10, MPFR_RNDN);
        mpfr_init(r41747);
        mpfr_init(r41748);
        mpfr_init(r41749);
        mpfr_init(r41750);
        mpfr_init(r41751);
        mpfr_init(r41752);
        mpfr_init(r41753);
        mpfr_init(r41754);
        mpfr_init(r41755);
        mpfr_init_set_str(r41756, "1.4912760646799497e-24", 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(r41764);
        mpfr_init(r41765);
        mpfr_init(r41766);
        mpfr_init(r41767);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41745, a, MPFR_RNDN);
        ;
        mpfr_set_si(r41747, mpfr_cmp(r41745, r41746) <= 0, MPFR_RNDN);
        mpfr_set_d(r41748, x, MPFR_RNDN);
        mpfr_set_d(r41749, y, MPFR_RNDN);
        mpfr_set_d(r41750, z, MPFR_RNDN);
        mpfr_set_d(r41751, t, MPFR_RNDN);
        mpfr_sub(r41752, r41750, r41751, MPFR_RNDN);
        mpfr_div(r41753, r41745, r41752, MPFR_RNDN);
        mpfr_div(r41754, r41749, r41753, MPFR_RNDN);
        mpfr_add(r41755, r41748, r41754, MPFR_RNDN);
        ;
        mpfr_set_si(r41757, mpfr_cmp(r41745, r41756) <= 0, MPFR_RNDN);
        mpfr_mul(r41758, r41749, r41752, MPFR_RNDN);
        mpfr_div(r41759, r41758, r41745, MPFR_RNDN);
        mpfr_add(r41760, r41748, r41759, MPFR_RNDN);
        mpfr_div(r41761, r41745, r41749, MPFR_RNDN);
        mpfr_div(r41762, r41750, r41761, MPFR_RNDN);
        mpfr_div(r41763, r41751, r41761, MPFR_RNDN);
        mpfr_sub(r41764, r41762, r41763, MPFR_RNDN);
        mpfr_add(r41765, r41764, r41748, MPFR_RNDN);
        if (mpfr_get_si(r41757, MPFR_RNDN)) { mpfr_set(r41766, r41760, MPFR_RNDN); } else { mpfr_set(r41766, r41765, MPFR_RNDN); };
        if (mpfr_get_si(r41747, MPFR_RNDN)) { mpfr_set(r41767, r41755, MPFR_RNDN); } else { mpfr_set(r41767, r41766, MPFR_RNDN); };
        return mpfr_get_d(r41767, MPFR_RNDN);
}

