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

double f_if(float x, float y, float z, float t, float a) {
        float r41639 = x;
        float r41640 = y;
        float r41641 = z;
        float r41642 = t;
        float r41643 = r41641 - r41642;
        float r41644 = r41640 * r41643;
        float r41645 = a;
        float r41646 = r41644 / r41645;
        float r41647 = r41639 - r41646;
        return r41647;
}

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


double f_of(float x, float y, float z, float t, float a) {
        float r41657 = a;
        float r41658 = -5.273243369695188e-34;
        bool r41659 = r41657 <= r41658;
        float r41660 = x;
        float r41661 = y;
        float r41662 = z;
        float r41663 = t;
        float r41664 = r41662 - r41663;
        float r41665 = r41657 / r41664;
        float r41666 = r41661 / r41665;
        float r41667 = r41660 - r41666;
        float r41668 = 3.833302372270341e-33;
        bool r41669 = r41657 <= r41668;
        float r41670 = r41661 * r41664;
        float r41671 = r41670 / r41657;
        float r41672 = r41660 - r41671;
        float r41673 = r41661 / r41657;
        float r41674 = r41673 * r41662;
        float r41675 = -r41663;
        float r41676 = r41673 * r41675;
        float r41677 = r41674 + r41676;
        float r41678 = r41660 - r41677;
        float r41679 = r41669 ? r41672 : r41678;
        float r41680 = r41659 ? r41667 : r41679;
        return r41680;
}

double f_od(double x, double y, double z, double t, double a) {
        double r41681 = a;
        double r41682 = -5.273243369695188e-34;
        bool r41683 = r41681 <= r41682;
        double r41684 = x;
        double r41685 = y;
        double r41686 = z;
        double r41687 = t;
        double r41688 = r41686 - r41687;
        double r41689 = r41681 / r41688;
        double r41690 = r41685 / r41689;
        double r41691 = r41684 - r41690;
        double r41692 = 3.833302372270341e-33;
        bool r41693 = r41681 <= r41692;
        double r41694 = r41685 * r41688;
        double r41695 = r41694 / r41681;
        double r41696 = r41684 - r41695;
        double r41697 = r41685 / r41681;
        double r41698 = r41697 * r41686;
        double r41699 = -r41687;
        double r41700 = r41697 * r41699;
        double r41701 = r41698 + r41700;
        double r41702 = r41684 - r41701;
        double r41703 = r41693 ? r41696 : r41702;
        double r41704 = r41683 ? r41691 : r41703;
        return r41704;
}

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

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

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

static mpfr_t r41714, r41715, r41716, r41717, r41718, r41719, r41720, r41721, r41722, r41723, r41724, r41725, r41726, r41727, r41728, r41729, r41730, r41731, r41732, r41733, r41734, r41735, r41736, r41737;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41714);
        mpfr_init_set_str(r41715, "-5.273243369695188e-34", 10, MPFR_RNDN);
        mpfr_init(r41716);
        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, "3.833302372270341e-33", 10, MPFR_RNDN);
        mpfr_init(r41726);
        mpfr_init(r41727);
        mpfr_init(r41728);
        mpfr_init(r41729);
        mpfr_init(r41730);
        mpfr_init(r41731);
        mpfr_init(r41732);
        mpfr_init(r41733);
        mpfr_init(r41734);
        mpfr_init(r41735);
        mpfr_init(r41736);
        mpfr_init(r41737);
}

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

static mpfr_t r41738, r41739, r41740, r41741, r41742, r41743, r41744, r41745, r41746, r41747, r41748, r41749, r41750, r41751, r41752, r41753, r41754, r41755, r41756, r41757, r41758, r41759, r41760, r41761;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41738);
        mpfr_init_set_str(r41739, "-5.273243369695188e-34", 10, MPFR_RNDN);
        mpfr_init(r41740);
        mpfr_init(r41741);
        mpfr_init(r41742);
        mpfr_init(r41743);
        mpfr_init(r41744);
        mpfr_init(r41745);
        mpfr_init(r41746);
        mpfr_init(r41747);
        mpfr_init(r41748);
        mpfr_init_set_str(r41749, "3.833302372270341e-33", 10, MPFR_RNDN);
        mpfr_init(r41750);
        mpfr_init(r41751);
        mpfr_init(r41752);
        mpfr_init(r41753);
        mpfr_init(r41754);
        mpfr_init(r41755);
        mpfr_init(r41756);
        mpfr_init(r41757);
        mpfr_init(r41758);
        mpfr_init(r41759);
        mpfr_init(r41760);
        mpfr_init(r41761);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41738, a, MPFR_RNDN);
        ;
        mpfr_set_si(r41740, mpfr_cmp(r41738, r41739) <= 0, MPFR_RNDN);
        mpfr_set_d(r41741, x, MPFR_RNDN);
        mpfr_set_d(r41742, y, MPFR_RNDN);
        mpfr_set_d(r41743, z, MPFR_RNDN);
        mpfr_set_d(r41744, t, MPFR_RNDN);
        mpfr_sub(r41745, r41743, r41744, MPFR_RNDN);
        mpfr_div(r41746, r41738, r41745, MPFR_RNDN);
        mpfr_div(r41747, r41742, r41746, MPFR_RNDN);
        mpfr_sub(r41748, r41741, r41747, MPFR_RNDN);
        ;
        mpfr_set_si(r41750, mpfr_cmp(r41738, r41749) <= 0, MPFR_RNDN);
        mpfr_mul(r41751, r41742, r41745, MPFR_RNDN);
        mpfr_div(r41752, r41751, r41738, MPFR_RNDN);
        mpfr_sub(r41753, r41741, r41752, MPFR_RNDN);
        mpfr_div(r41754, r41742, r41738, MPFR_RNDN);
        mpfr_mul(r41755, r41754, r41743, MPFR_RNDN);
        mpfr_neg(r41756, r41744, MPFR_RNDN);
        mpfr_mul(r41757, r41754, r41756, MPFR_RNDN);
        mpfr_add(r41758, r41755, r41757, MPFR_RNDN);
        mpfr_sub(r41759, r41741, r41758, MPFR_RNDN);
        if (mpfr_get_si(r41750, MPFR_RNDN)) { mpfr_set(r41760, r41753, MPFR_RNDN); } else { mpfr_set(r41760, r41759, MPFR_RNDN); };
        if (mpfr_get_si(r41740, MPFR_RNDN)) { mpfr_set(r41761, r41748, MPFR_RNDN); } else { mpfr_set(r41761, r41760, MPFR_RNDN); };
        return mpfr_get_d(r41761, MPFR_RNDN);
}

