#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 r41768 = x;
        float r41769 = y;
        float r41770 = z;
        float r41771 = r41770 - r41768;
        float r41772 = r41769 * r41771;
        float r41773 = t;
        float r41774 = r41772 / r41773;
        float r41775 = r41768 + r41774;
        return r41775;
}

double f_id(double x, double y, double z, double t) {
        double r41776 = x;
        double r41777 = y;
        double r41778 = z;
        double r41779 = r41778 - r41776;
        double r41780 = r41777 * r41779;
        double r41781 = t;
        double r41782 = r41780 / r41781;
        double r41783 = r41776 + r41782;
        return r41783;
}


double f_of(float x, float y, float z, float t) {
        float r41784 = x;
        float r41785 = -3.325266212781834e-104;
        bool r41786 = r41784 <= r41785;
        float r41787 = z;
        float r41788 = r41787 - r41784;
        float r41789 = t;
        float r41790 = y;
        float r41791 = r41789 / r41790;
        float r41792 = r41788 / r41791;
        float r41793 = r41784 + r41792;
        float r41794 = -9.987366539497674e-252;
        bool r41795 = r41784 <= r41794;
        float r41796 = r41790 * r41788;
        float r41797 = r41796 / r41789;
        float r41798 = r41784 + r41797;
        float r41799 = r41795 ? r41798 : r41793;
        float r41800 = r41786 ? r41793 : r41799;
        return r41800;
}

double f_od(double x, double y, double z, double t) {
        double r41801 = x;
        double r41802 = -3.325266212781834e-104;
        bool r41803 = r41801 <= r41802;
        double r41804 = z;
        double r41805 = r41804 - r41801;
        double r41806 = t;
        double r41807 = y;
        double r41808 = r41806 / r41807;
        double r41809 = r41805 / r41808;
        double r41810 = r41801 + r41809;
        double r41811 = -9.987366539497674e-252;
        bool r41812 = r41801 <= r41811;
        double r41813 = r41807 * r41805;
        double r41814 = r41813 / r41806;
        double r41815 = r41801 + r41814;
        double r41816 = r41812 ? r41815 : r41810;
        double r41817 = r41803 ? r41810 : r41816;
        return r41817;
}

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 r41818, r41819, r41820, r41821, r41822, r41823, r41824, r41825;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r41818);
        mpfr_init(r41819);
        mpfr_init(r41820);
        mpfr_init(r41821);
        mpfr_init(r41822);
        mpfr_init(r41823);
        mpfr_init(r41824);
        mpfr_init(r41825);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r41818, x, MPFR_RNDN);
        mpfr_set_d(r41819, y, MPFR_RNDN);
        mpfr_set_d(r41820, z, MPFR_RNDN);
        mpfr_sub(r41821, r41820, r41818, MPFR_RNDN);
        mpfr_mul(r41822, r41819, r41821, MPFR_RNDN);
        mpfr_set_d(r41823, t, MPFR_RNDN);
        mpfr_div(r41824, r41822, r41823, MPFR_RNDN);
        mpfr_add(r41825, r41818, r41824, MPFR_RNDN);
        return mpfr_get_d(r41825, MPFR_RNDN);
}

static mpfr_t r41826, r41827, r41828, r41829, r41830, r41831, r41832, r41833, r41834, r41835, r41836, r41837, r41838, r41839, r41840, r41841, r41842;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41826);
        mpfr_init_set_str(r41827, "-3.325266212781834e-104", 10, MPFR_RNDN);
        mpfr_init(r41828);
        mpfr_init(r41829);
        mpfr_init(r41830);
        mpfr_init(r41831);
        mpfr_init(r41832);
        mpfr_init(r41833);
        mpfr_init(r41834);
        mpfr_init(r41835);
        mpfr_init_set_str(r41836, "-9.987366539497674e-252", 10, MPFR_RNDN);
        mpfr_init(r41837);
        mpfr_init(r41838);
        mpfr_init(r41839);
        mpfr_init(r41840);
        mpfr_init(r41841);
        mpfr_init(r41842);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r41826, x, MPFR_RNDN);
        ;
        mpfr_set_si(r41828, mpfr_cmp(r41826, r41827) <= 0, MPFR_RNDN);
        mpfr_set_d(r41829, z, MPFR_RNDN);
        mpfr_sub(r41830, r41829, r41826, MPFR_RNDN);
        mpfr_set_d(r41831, t, MPFR_RNDN);
        mpfr_set_d(r41832, y, MPFR_RNDN);
        mpfr_div(r41833, r41831, r41832, MPFR_RNDN);
        mpfr_div(r41834, r41830, r41833, MPFR_RNDN);
        mpfr_add(r41835, r41826, r41834, MPFR_RNDN);
        ;
        mpfr_set_si(r41837, mpfr_cmp(r41826, r41836) <= 0, MPFR_RNDN);
        mpfr_mul(r41838, r41832, r41830, MPFR_RNDN);
        mpfr_div(r41839, r41838, r41831, MPFR_RNDN);
        mpfr_add(r41840, r41826, r41839, MPFR_RNDN);
        if (mpfr_get_si(r41837, MPFR_RNDN)) { mpfr_set(r41841, r41840, MPFR_RNDN); } else { mpfr_set(r41841, r41835, MPFR_RNDN); };
        if (mpfr_get_si(r41828, MPFR_RNDN)) { mpfr_set(r41842, r41835, MPFR_RNDN); } else { mpfr_set(r41842, r41841, MPFR_RNDN); };
        return mpfr_get_d(r41842, MPFR_RNDN);
}

static mpfr_t r41843, r41844, r41845, r41846, r41847, r41848, r41849, r41850, r41851, r41852, r41853, r41854, r41855, r41856, r41857, r41858, r41859;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41843);
        mpfr_init_set_str(r41844, "-3.325266212781834e-104", 10, MPFR_RNDN);
        mpfr_init(r41845);
        mpfr_init(r41846);
        mpfr_init(r41847);
        mpfr_init(r41848);
        mpfr_init(r41849);
        mpfr_init(r41850);
        mpfr_init(r41851);
        mpfr_init(r41852);
        mpfr_init_set_str(r41853, "-9.987366539497674e-252", 10, MPFR_RNDN);
        mpfr_init(r41854);
        mpfr_init(r41855);
        mpfr_init(r41856);
        mpfr_init(r41857);
        mpfr_init(r41858);
        mpfr_init(r41859);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r41843, x, MPFR_RNDN);
        ;
        mpfr_set_si(r41845, mpfr_cmp(r41843, r41844) <= 0, MPFR_RNDN);
        mpfr_set_d(r41846, z, MPFR_RNDN);
        mpfr_sub(r41847, r41846, r41843, MPFR_RNDN);
        mpfr_set_d(r41848, t, MPFR_RNDN);
        mpfr_set_d(r41849, y, MPFR_RNDN);
        mpfr_div(r41850, r41848, r41849, MPFR_RNDN);
        mpfr_div(r41851, r41847, r41850, MPFR_RNDN);
        mpfr_add(r41852, r41843, r41851, MPFR_RNDN);
        ;
        mpfr_set_si(r41854, mpfr_cmp(r41843, r41853) <= 0, MPFR_RNDN);
        mpfr_mul(r41855, r41849, r41847, MPFR_RNDN);
        mpfr_div(r41856, r41855, r41848, MPFR_RNDN);
        mpfr_add(r41857, r41843, r41856, MPFR_RNDN);
        if (mpfr_get_si(r41854, MPFR_RNDN)) { mpfr_set(r41858, r41857, MPFR_RNDN); } else { mpfr_set(r41858, r41852, MPFR_RNDN); };
        if (mpfr_get_si(r41845, MPFR_RNDN)) { mpfr_set(r41859, r41852, MPFR_RNDN); } else { mpfr_set(r41859, r41858, MPFR_RNDN); };
        return mpfr_get_d(r41859, MPFR_RNDN);
}

