#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 r41193 = x;
        float r41194 = y;
        float r41195 = z;
        float r41196 = t;
        float r41197 = r41195 - r41196;
        float r41198 = r41194 * r41197;
        float r41199 = a;
        float r41200 = r41198 / r41199;
        float r41201 = r41193 - r41200;
        return r41201;
}

double f_id(double x, double y, double z, double t, double a) {
        double r41202 = x;
        double r41203 = y;
        double r41204 = z;
        double r41205 = t;
        double r41206 = r41204 - r41205;
        double r41207 = r41203 * r41206;
        double r41208 = a;
        double r41209 = r41207 / r41208;
        double r41210 = r41202 - r41209;
        return r41210;
}


double f_of(float x, float y, float z, float t, float a) {
        float r41211 = a;
        float r41212 = -5.273243369695188e-34;
        bool r41213 = r41211 <= r41212;
        float r41214 = x;
        float r41215 = y;
        float r41216 = z;
        float r41217 = t;
        float r41218 = r41216 - r41217;
        float r41219 = r41211 / r41218;
        float r41220 = r41215 / r41219;
        float r41221 = r41214 - r41220;
        float r41222 = 3.833302372270341e-33;
        bool r41223 = r41211 <= r41222;
        float r41224 = r41215 * r41218;
        float r41225 = r41224 / r41211;
        float r41226 = r41214 - r41225;
        float r41227 = r41215 / r41211;
        float r41228 = r41227 * r41216;
        float r41229 = -r41217;
        float r41230 = r41227 * r41229;
        float r41231 = r41228 + r41230;
        float r41232 = r41214 - r41231;
        float r41233 = r41223 ? r41226 : r41232;
        float r41234 = r41213 ? r41221 : r41233;
        return r41234;
}

double f_od(double x, double y, double z, double t, double a) {
        double r41235 = a;
        double r41236 = -5.273243369695188e-34;
        bool r41237 = r41235 <= r41236;
        double r41238 = x;
        double r41239 = y;
        double r41240 = z;
        double r41241 = t;
        double r41242 = r41240 - r41241;
        double r41243 = r41235 / r41242;
        double r41244 = r41239 / r41243;
        double r41245 = r41238 - r41244;
        double r41246 = 3.833302372270341e-33;
        bool r41247 = r41235 <= r41246;
        double r41248 = r41239 * r41242;
        double r41249 = r41248 / r41235;
        double r41250 = r41238 - r41249;
        double r41251 = r41239 / r41235;
        double r41252 = r41251 * r41240;
        double r41253 = -r41241;
        double r41254 = r41251 * r41253;
        double r41255 = r41252 + r41254;
        double r41256 = r41238 - r41255;
        double r41257 = r41247 ? r41250 : r41256;
        double r41258 = r41237 ? r41245 : r41257;
        return r41258;
}

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 r41259, r41260, r41261, r41262, r41263, r41264, r41265, r41266, r41267;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r41259);
        mpfr_init(r41260);
        mpfr_init(r41261);
        mpfr_init(r41262);
        mpfr_init(r41263);
        mpfr_init(r41264);
        mpfr_init(r41265);
        mpfr_init(r41266);
        mpfr_init(r41267);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41259, x, MPFR_RNDN);
        mpfr_set_d(r41260, y, MPFR_RNDN);
        mpfr_set_d(r41261, z, MPFR_RNDN);
        mpfr_set_d(r41262, t, MPFR_RNDN);
        mpfr_sub(r41263, r41261, r41262, MPFR_RNDN);
        mpfr_mul(r41264, r41260, r41263, MPFR_RNDN);
        mpfr_set_d(r41265, a, MPFR_RNDN);
        mpfr_div(r41266, r41264, r41265, MPFR_RNDN);
        mpfr_sub(r41267, r41259, r41266, MPFR_RNDN);
        return mpfr_get_d(r41267, MPFR_RNDN);
}

static mpfr_t r41268, r41269, r41270, r41271, r41272, r41273, r41274, r41275, r41276, r41277, r41278, r41279, r41280, r41281, r41282, r41283, r41284, r41285, r41286, r41287, r41288, r41289, r41290, r41291;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41268);
        mpfr_init_set_str(r41269, "-5.273243369695188e-34", 10, MPFR_RNDN);
        mpfr_init(r41270);
        mpfr_init(r41271);
        mpfr_init(r41272);
        mpfr_init(r41273);
        mpfr_init(r41274);
        mpfr_init(r41275);
        mpfr_init(r41276);
        mpfr_init(r41277);
        mpfr_init(r41278);
        mpfr_init_set_str(r41279, "3.833302372270341e-33", 10, MPFR_RNDN);
        mpfr_init(r41280);
        mpfr_init(r41281);
        mpfr_init(r41282);
        mpfr_init(r41283);
        mpfr_init(r41284);
        mpfr_init(r41285);
        mpfr_init(r41286);
        mpfr_init(r41287);
        mpfr_init(r41288);
        mpfr_init(r41289);
        mpfr_init(r41290);
        mpfr_init(r41291);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41268, a, MPFR_RNDN);
        ;
        mpfr_set_si(r41270, mpfr_cmp(r41268, r41269) <= 0, MPFR_RNDN);
        mpfr_set_d(r41271, x, MPFR_RNDN);
        mpfr_set_d(r41272, y, MPFR_RNDN);
        mpfr_set_d(r41273, z, MPFR_RNDN);
        mpfr_set_d(r41274, t, MPFR_RNDN);
        mpfr_sub(r41275, r41273, r41274, MPFR_RNDN);
        mpfr_div(r41276, r41268, r41275, MPFR_RNDN);
        mpfr_div(r41277, r41272, r41276, MPFR_RNDN);
        mpfr_sub(r41278, r41271, r41277, MPFR_RNDN);
        ;
        mpfr_set_si(r41280, mpfr_cmp(r41268, r41279) <= 0, MPFR_RNDN);
        mpfr_mul(r41281, r41272, r41275, MPFR_RNDN);
        mpfr_div(r41282, r41281, r41268, MPFR_RNDN);
        mpfr_sub(r41283, r41271, r41282, MPFR_RNDN);
        mpfr_div(r41284, r41272, r41268, MPFR_RNDN);
        mpfr_mul(r41285, r41284, r41273, MPFR_RNDN);
        mpfr_neg(r41286, r41274, MPFR_RNDN);
        mpfr_mul(r41287, r41284, r41286, MPFR_RNDN);
        mpfr_add(r41288, r41285, r41287, MPFR_RNDN);
        mpfr_sub(r41289, r41271, r41288, MPFR_RNDN);
        if (mpfr_get_si(r41280, MPFR_RNDN)) { mpfr_set(r41290, r41283, MPFR_RNDN); } else { mpfr_set(r41290, r41289, MPFR_RNDN); };
        if (mpfr_get_si(r41270, MPFR_RNDN)) { mpfr_set(r41291, r41278, MPFR_RNDN); } else { mpfr_set(r41291, r41290, MPFR_RNDN); };
        return mpfr_get_d(r41291, MPFR_RNDN);
}

static mpfr_t r41292, r41293, r41294, r41295, r41296, r41297, r41298, r41299, r41300, r41301, r41302, r41303, r41304, r41305, r41306, r41307, r41308, r41309, r41310, r41311, r41312, r41313, r41314, r41315;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41292);
        mpfr_init_set_str(r41293, "-5.273243369695188e-34", 10, MPFR_RNDN);
        mpfr_init(r41294);
        mpfr_init(r41295);
        mpfr_init(r41296);
        mpfr_init(r41297);
        mpfr_init(r41298);
        mpfr_init(r41299);
        mpfr_init(r41300);
        mpfr_init(r41301);
        mpfr_init(r41302);
        mpfr_init_set_str(r41303, "3.833302372270341e-33", 10, MPFR_RNDN);
        mpfr_init(r41304);
        mpfr_init(r41305);
        mpfr_init(r41306);
        mpfr_init(r41307);
        mpfr_init(r41308);
        mpfr_init(r41309);
        mpfr_init(r41310);
        mpfr_init(r41311);
        mpfr_init(r41312);
        mpfr_init(r41313);
        mpfr_init(r41314);
        mpfr_init(r41315);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41292, a, MPFR_RNDN);
        ;
        mpfr_set_si(r41294, mpfr_cmp(r41292, r41293) <= 0, MPFR_RNDN);
        mpfr_set_d(r41295, x, MPFR_RNDN);
        mpfr_set_d(r41296, y, MPFR_RNDN);
        mpfr_set_d(r41297, z, MPFR_RNDN);
        mpfr_set_d(r41298, t, MPFR_RNDN);
        mpfr_sub(r41299, r41297, r41298, MPFR_RNDN);
        mpfr_div(r41300, r41292, r41299, MPFR_RNDN);
        mpfr_div(r41301, r41296, r41300, MPFR_RNDN);
        mpfr_sub(r41302, r41295, r41301, MPFR_RNDN);
        ;
        mpfr_set_si(r41304, mpfr_cmp(r41292, r41303) <= 0, MPFR_RNDN);
        mpfr_mul(r41305, r41296, r41299, MPFR_RNDN);
        mpfr_div(r41306, r41305, r41292, MPFR_RNDN);
        mpfr_sub(r41307, r41295, r41306, MPFR_RNDN);
        mpfr_div(r41308, r41296, r41292, MPFR_RNDN);
        mpfr_mul(r41309, r41308, r41297, MPFR_RNDN);
        mpfr_neg(r41310, r41298, MPFR_RNDN);
        mpfr_mul(r41311, r41308, r41310, MPFR_RNDN);
        mpfr_add(r41312, r41309, r41311, MPFR_RNDN);
        mpfr_sub(r41313, r41295, r41312, MPFR_RNDN);
        if (mpfr_get_si(r41304, MPFR_RNDN)) { mpfr_set(r41314, r41307, MPFR_RNDN); } else { mpfr_set(r41314, r41313, MPFR_RNDN); };
        if (mpfr_get_si(r41294, MPFR_RNDN)) { mpfr_set(r41315, r41302, MPFR_RNDN); } else { mpfr_set(r41315, r41314, MPFR_RNDN); };
        return mpfr_get_d(r41315, MPFR_RNDN);
}

