#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, D";

double f_if(float x, float y, float z, float t) {
        float r41657 = x;
        float r41658 = y;
        float r41659 = z;
        float r41660 = r41659 - r41657;
        float r41661 = r41658 * r41660;
        float r41662 = t;
        float r41663 = r41661 / r41662;
        float r41664 = r41657 + r41663;
        return r41664;
}

double f_id(double x, double y, double z, double t) {
        double r41665 = x;
        double r41666 = y;
        double r41667 = z;
        double r41668 = r41667 - r41665;
        double r41669 = r41666 * r41668;
        double r41670 = t;
        double r41671 = r41669 / r41670;
        double r41672 = r41665 + r41671;
        return r41672;
}


double f_of(float x, float y, float z, float t) {
        float r41673 = x;
        float r41674 = -3.325266212781834e-104;
        bool r41675 = r41673 <= r41674;
        float r41676 = z;
        float r41677 = r41676 - r41673;
        float r41678 = t;
        float r41679 = y;
        float r41680 = r41678 / r41679;
        float r41681 = r41677 / r41680;
        float r41682 = r41673 + r41681;
        float r41683 = -9.987366539497674e-252;
        bool r41684 = r41673 <= r41683;
        float r41685 = r41679 * r41677;
        float r41686 = r41685 / r41678;
        float r41687 = r41673 + r41686;
        float r41688 = r41684 ? r41687 : r41682;
        float r41689 = r41675 ? r41682 : r41688;
        return r41689;
}

double f_od(double x, double y, double z, double t) {
        double r41690 = x;
        double r41691 = -3.325266212781834e-104;
        bool r41692 = r41690 <= r41691;
        double r41693 = z;
        double r41694 = r41693 - r41690;
        double r41695 = t;
        double r41696 = y;
        double r41697 = r41695 / r41696;
        double r41698 = r41694 / r41697;
        double r41699 = r41690 + r41698;
        double r41700 = -9.987366539497674e-252;
        bool r41701 = r41690 <= r41700;
        double r41702 = r41696 * r41694;
        double r41703 = r41702 / r41695;
        double r41704 = r41690 + r41703;
        double r41705 = r41701 ? r41704 : r41699;
        double r41706 = r41692 ? r41699 : r41705;
        return r41706;
}

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 r41707, r41708, r41709, r41710, r41711, r41712, r41713, r41714;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r41707);
        mpfr_init(r41708);
        mpfr_init(r41709);
        mpfr_init(r41710);
        mpfr_init(r41711);
        mpfr_init(r41712);
        mpfr_init(r41713);
        mpfr_init(r41714);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r41707, x, MPFR_RNDN);
        mpfr_set_d(r41708, y, MPFR_RNDN);
        mpfr_set_d(r41709, z, MPFR_RNDN);
        mpfr_sub(r41710, r41709, r41707, MPFR_RNDN);
        mpfr_mul(r41711, r41708, r41710, MPFR_RNDN);
        mpfr_set_d(r41712, t, MPFR_RNDN);
        mpfr_div(r41713, r41711, r41712, MPFR_RNDN);
        mpfr_add(r41714, r41707, r41713, MPFR_RNDN);
        return mpfr_get_d(r41714, MPFR_RNDN);
}

static mpfr_t r41715, r41716, r41717, r41718, r41719, r41720, r41721, r41722, r41723, r41724, r41725, r41726, r41727, r41728, r41729, r41730, r41731;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41715);
        mpfr_init_set_str(r41716, "-3.325266212781834e-104", 10, MPFR_RNDN);
        mpfr_init(r41717);
        mpfr_init(r41718);
        mpfr_init(r41719);
        mpfr_init(r41720);
        mpfr_init(r41721);
        mpfr_init(r41722);
        mpfr_init(r41723);
        mpfr_init(r41724);
        mpfr_init_set_str(r41725, "-9.987366539497674e-252", 10, MPFR_RNDN);
        mpfr_init(r41726);
        mpfr_init(r41727);
        mpfr_init(r41728);
        mpfr_init(r41729);
        mpfr_init(r41730);
        mpfr_init(r41731);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r41715, x, MPFR_RNDN);
        ;
        mpfr_set_si(r41717, mpfr_cmp(r41715, r41716) <= 0, MPFR_RNDN);
        mpfr_set_d(r41718, z, MPFR_RNDN);
        mpfr_sub(r41719, r41718, r41715, MPFR_RNDN);
        mpfr_set_d(r41720, t, MPFR_RNDN);
        mpfr_set_d(r41721, y, MPFR_RNDN);
        mpfr_div(r41722, r41720, r41721, MPFR_RNDN);
        mpfr_div(r41723, r41719, r41722, MPFR_RNDN);
        mpfr_add(r41724, r41715, r41723, MPFR_RNDN);
        ;
        mpfr_set_si(r41726, mpfr_cmp(r41715, r41725) <= 0, MPFR_RNDN);
        mpfr_mul(r41727, r41721, r41719, MPFR_RNDN);
        mpfr_div(r41728, r41727, r41720, MPFR_RNDN);
        mpfr_add(r41729, r41715, r41728, MPFR_RNDN);
        if (mpfr_get_si(r41726, MPFR_RNDN)) { mpfr_set(r41730, r41729, MPFR_RNDN); } else { mpfr_set(r41730, r41724, MPFR_RNDN); };
        if (mpfr_get_si(r41717, MPFR_RNDN)) { mpfr_set(r41731, r41724, MPFR_RNDN); } else { mpfr_set(r41731, r41730, MPFR_RNDN); };
        return mpfr_get_d(r41731, MPFR_RNDN);
}

static mpfr_t r41732, r41733, r41734, r41735, r41736, r41737, r41738, r41739, r41740, r41741, r41742, r41743, r41744, r41745, r41746, r41747, r41748;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41732);
        mpfr_init_set_str(r41733, "-3.325266212781834e-104", 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_set_str(r41742, "-9.987366539497674e-252", 10, MPFR_RNDN);
        mpfr_init(r41743);
        mpfr_init(r41744);
        mpfr_init(r41745);
        mpfr_init(r41746);
        mpfr_init(r41747);
        mpfr_init(r41748);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r41732, x, MPFR_RNDN);
        ;
        mpfr_set_si(r41734, mpfr_cmp(r41732, r41733) <= 0, MPFR_RNDN);
        mpfr_set_d(r41735, z, MPFR_RNDN);
        mpfr_sub(r41736, r41735, r41732, MPFR_RNDN);
        mpfr_set_d(r41737, t, MPFR_RNDN);
        mpfr_set_d(r41738, y, MPFR_RNDN);
        mpfr_div(r41739, r41737, r41738, MPFR_RNDN);
        mpfr_div(r41740, r41736, r41739, MPFR_RNDN);
        mpfr_add(r41741, r41732, r41740, MPFR_RNDN);
        ;
        mpfr_set_si(r41743, mpfr_cmp(r41732, r41742) <= 0, MPFR_RNDN);
        mpfr_mul(r41744, r41738, r41736, MPFR_RNDN);
        mpfr_div(r41745, r41744, r41737, MPFR_RNDN);
        mpfr_add(r41746, r41732, r41745, MPFR_RNDN);
        if (mpfr_get_si(r41743, MPFR_RNDN)) { mpfr_set(r41747, r41746, MPFR_RNDN); } else { mpfr_set(r41747, r41741, MPFR_RNDN); };
        if (mpfr_get_si(r41734, MPFR_RNDN)) { mpfr_set(r41748, r41741, MPFR_RNDN); } else { mpfr_set(r41748, r41747, MPFR_RNDN); };
        return mpfr_get_d(r41748, MPFR_RNDN);
}

