#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 r41881 = x;
        float r41882 = y;
        float r41883 = z;
        float r41884 = r41883 - r41881;
        float r41885 = r41882 * r41884;
        float r41886 = t;
        float r41887 = r41885 / r41886;
        float r41888 = r41881 + r41887;
        return r41888;
}

double f_id(double x, double y, double z, double t) {
        double r41889 = x;
        double r41890 = y;
        double r41891 = z;
        double r41892 = r41891 - r41889;
        double r41893 = r41890 * r41892;
        double r41894 = t;
        double r41895 = r41893 / r41894;
        double r41896 = r41889 + r41895;
        return r41896;
}


double f_of(float x, float y, float z, float t) {
        float r41897 = x;
        float r41898 = -3.325266212781834e-104;
        bool r41899 = r41897 <= r41898;
        float r41900 = z;
        float r41901 = r41900 - r41897;
        float r41902 = t;
        float r41903 = y;
        float r41904 = r41902 / r41903;
        float r41905 = r41901 / r41904;
        float r41906 = r41897 + r41905;
        float r41907 = -9.987366539497674e-252;
        bool r41908 = r41897 <= r41907;
        float r41909 = r41903 * r41901;
        float r41910 = r41909 / r41902;
        float r41911 = r41897 + r41910;
        float r41912 = r41908 ? r41911 : r41906;
        float r41913 = r41899 ? r41906 : r41912;
        return r41913;
}

double f_od(double x, double y, double z, double t) {
        double r41914 = x;
        double r41915 = -3.325266212781834e-104;
        bool r41916 = r41914 <= r41915;
        double r41917 = z;
        double r41918 = r41917 - r41914;
        double r41919 = t;
        double r41920 = y;
        double r41921 = r41919 / r41920;
        double r41922 = r41918 / r41921;
        double r41923 = r41914 + r41922;
        double r41924 = -9.987366539497674e-252;
        bool r41925 = r41914 <= r41924;
        double r41926 = r41920 * r41918;
        double r41927 = r41926 / r41919;
        double r41928 = r41914 + r41927;
        double r41929 = r41925 ? r41928 : r41923;
        double r41930 = r41916 ? r41923 : r41929;
        return r41930;
}

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 r41931, r41932, r41933, r41934, r41935, r41936, r41937, r41938;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r41931);
        mpfr_init(r41932);
        mpfr_init(r41933);
        mpfr_init(r41934);
        mpfr_init(r41935);
        mpfr_init(r41936);
        mpfr_init(r41937);
        mpfr_init(r41938);
}

double f_im(double x, double y, double z, double t) {
        mpfr_set_d(r41931, x, MPFR_RNDN);
        mpfr_set_d(r41932, y, MPFR_RNDN);
        mpfr_set_d(r41933, z, MPFR_RNDN);
        mpfr_sub(r41934, r41933, r41931, MPFR_RNDN);
        mpfr_mul(r41935, r41932, r41934, MPFR_RNDN);
        mpfr_set_d(r41936, t, MPFR_RNDN);
        mpfr_div(r41937, r41935, r41936, MPFR_RNDN);
        mpfr_add(r41938, r41931, r41937, MPFR_RNDN);
        return mpfr_get_d(r41938, MPFR_RNDN);
}

static mpfr_t r41939, r41940, r41941, r41942, r41943, r41944, r41945, r41946, r41947, r41948, r41949, r41950, r41951, r41952, r41953, r41954, r41955;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41939);
        mpfr_init_set_str(r41940, "-3.325266212781834e-104", 10, MPFR_RNDN);
        mpfr_init(r41941);
        mpfr_init(r41942);
        mpfr_init(r41943);
        mpfr_init(r41944);
        mpfr_init(r41945);
        mpfr_init(r41946);
        mpfr_init(r41947);
        mpfr_init(r41948);
        mpfr_init_set_str(r41949, "-9.987366539497674e-252", 10, MPFR_RNDN);
        mpfr_init(r41950);
        mpfr_init(r41951);
        mpfr_init(r41952);
        mpfr_init(r41953);
        mpfr_init(r41954);
        mpfr_init(r41955);
}

double f_fm(double x, double y, double z, double t) {
        mpfr_set_d(r41939, x, MPFR_RNDN);
        ;
        mpfr_set_si(r41941, mpfr_cmp(r41939, r41940) <= 0, MPFR_RNDN);
        mpfr_set_d(r41942, z, MPFR_RNDN);
        mpfr_sub(r41943, r41942, r41939, MPFR_RNDN);
        mpfr_set_d(r41944, t, MPFR_RNDN);
        mpfr_set_d(r41945, y, MPFR_RNDN);
        mpfr_div(r41946, r41944, r41945, MPFR_RNDN);
        mpfr_div(r41947, r41943, r41946, MPFR_RNDN);
        mpfr_add(r41948, r41939, r41947, MPFR_RNDN);
        ;
        mpfr_set_si(r41950, mpfr_cmp(r41939, r41949) <= 0, MPFR_RNDN);
        mpfr_mul(r41951, r41945, r41943, MPFR_RNDN);
        mpfr_div(r41952, r41951, r41944, MPFR_RNDN);
        mpfr_add(r41953, r41939, r41952, MPFR_RNDN);
        if (mpfr_get_si(r41950, MPFR_RNDN)) { mpfr_set(r41954, r41953, MPFR_RNDN); } else { mpfr_set(r41954, r41948, MPFR_RNDN); };
        if (mpfr_get_si(r41941, MPFR_RNDN)) { mpfr_set(r41955, r41948, MPFR_RNDN); } else { mpfr_set(r41955, r41954, MPFR_RNDN); };
        return mpfr_get_d(r41955, MPFR_RNDN);
}

static mpfr_t r41956, r41957, r41958, r41959, r41960, r41961, r41962, r41963, r41964, r41965, r41966, r41967, r41968, r41969, r41970, r41971, r41972;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41956);
        mpfr_init_set_str(r41957, "-3.325266212781834e-104", 10, MPFR_RNDN);
        mpfr_init(r41958);
        mpfr_init(r41959);
        mpfr_init(r41960);
        mpfr_init(r41961);
        mpfr_init(r41962);
        mpfr_init(r41963);
        mpfr_init(r41964);
        mpfr_init(r41965);
        mpfr_init_set_str(r41966, "-9.987366539497674e-252", 10, MPFR_RNDN);
        mpfr_init(r41967);
        mpfr_init(r41968);
        mpfr_init(r41969);
        mpfr_init(r41970);
        mpfr_init(r41971);
        mpfr_init(r41972);
}

double f_dm(double x, double y, double z, double t) {
        mpfr_set_d(r41956, x, MPFR_RNDN);
        ;
        mpfr_set_si(r41958, mpfr_cmp(r41956, r41957) <= 0, MPFR_RNDN);
        mpfr_set_d(r41959, z, MPFR_RNDN);
        mpfr_sub(r41960, r41959, r41956, MPFR_RNDN);
        mpfr_set_d(r41961, t, MPFR_RNDN);
        mpfr_set_d(r41962, y, MPFR_RNDN);
        mpfr_div(r41963, r41961, r41962, MPFR_RNDN);
        mpfr_div(r41964, r41960, r41963, MPFR_RNDN);
        mpfr_add(r41965, r41956, r41964, MPFR_RNDN);
        ;
        mpfr_set_si(r41967, mpfr_cmp(r41956, r41966) <= 0, MPFR_RNDN);
        mpfr_mul(r41968, r41962, r41960, MPFR_RNDN);
        mpfr_div(r41969, r41968, r41961, MPFR_RNDN);
        mpfr_add(r41970, r41956, r41969, MPFR_RNDN);
        if (mpfr_get_si(r41967, MPFR_RNDN)) { mpfr_set(r41971, r41970, MPFR_RNDN); } else { mpfr_set(r41971, r41965, MPFR_RNDN); };
        if (mpfr_get_si(r41958, MPFR_RNDN)) { mpfr_set(r41972, r41965, MPFR_RNDN); } else { mpfr_set(r41972, r41971, MPFR_RNDN); };
        return mpfr_get_d(r41972, MPFR_RNDN);
}

