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

double f_if(float x, float y, float z, float t, float a) {
        float r41466 = x;
        float r41467 = y;
        float r41468 = z;
        float r41469 = t;
        float r41470 = r41468 - r41469;
        float r41471 = r41467 * r41470;
        float r41472 = a;
        float r41473 = r41471 / r41472;
        float r41474 = r41466 + r41473;
        return r41474;
}

double f_id(double x, double y, double z, double t, double a) {
        double r41475 = x;
        double r41476 = y;
        double r41477 = z;
        double r41478 = t;
        double r41479 = r41477 - r41478;
        double r41480 = r41476 * r41479;
        double r41481 = a;
        double r41482 = r41480 / r41481;
        double r41483 = r41475 + r41482;
        return r41483;
}


double f_of(float x, float y, float z, float t, float a) {
        float r41484 = a;
        float r41485 = -1.6525860513176112e-34;
        bool r41486 = r41484 <= r41485;
        float r41487 = x;
        float r41488 = y;
        float r41489 = z;
        float r41490 = t;
        float r41491 = r41489 - r41490;
        float r41492 = r41484 / r41491;
        float r41493 = r41488 / r41492;
        float r41494 = r41487 + r41493;
        float r41495 = 1.6074385201853777e-22;
        bool r41496 = r41484 <= r41495;
        float r41497 = r41488 * r41491;
        float r41498 = r41497 / r41484;
        float r41499 = r41487 + r41498;
        float r41500 = r41484 / r41488;
        float r41501 = r41489 / r41500;
        float r41502 = r41490 / r41500;
        float r41503 = r41501 - r41502;
        float r41504 = r41503 + r41487;
        float r41505 = r41496 ? r41499 : r41504;
        float r41506 = r41486 ? r41494 : r41505;
        return r41506;
}

double f_od(double x, double y, double z, double t, double a) {
        double r41507 = a;
        double r41508 = -1.6525860513176112e-34;
        bool r41509 = r41507 <= r41508;
        double r41510 = x;
        double r41511 = y;
        double r41512 = z;
        double r41513 = t;
        double r41514 = r41512 - r41513;
        double r41515 = r41507 / r41514;
        double r41516 = r41511 / r41515;
        double r41517 = r41510 + r41516;
        double r41518 = 1.6074385201853777e-22;
        bool r41519 = r41507 <= r41518;
        double r41520 = r41511 * r41514;
        double r41521 = r41520 / r41507;
        double r41522 = r41510 + r41521;
        double r41523 = r41507 / r41511;
        double r41524 = r41512 / r41523;
        double r41525 = r41513 / r41523;
        double r41526 = r41524 - r41525;
        double r41527 = r41526 + r41510;
        double r41528 = r41519 ? r41522 : r41527;
        double r41529 = r41509 ? r41517 : r41528;
        return r41529;
}

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 r41530, r41531, r41532, r41533, r41534, r41535, r41536, r41537, r41538;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r41530);
        mpfr_init(r41531);
        mpfr_init(r41532);
        mpfr_init(r41533);
        mpfr_init(r41534);
        mpfr_init(r41535);
        mpfr_init(r41536);
        mpfr_init(r41537);
        mpfr_init(r41538);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41530, x, MPFR_RNDN);
        mpfr_set_d(r41531, y, MPFR_RNDN);
        mpfr_set_d(r41532, z, MPFR_RNDN);
        mpfr_set_d(r41533, t, MPFR_RNDN);
        mpfr_sub(r41534, r41532, r41533, MPFR_RNDN);
        mpfr_mul(r41535, r41531, r41534, MPFR_RNDN);
        mpfr_set_d(r41536, a, MPFR_RNDN);
        mpfr_div(r41537, r41535, r41536, MPFR_RNDN);
        mpfr_add(r41538, r41530, r41537, MPFR_RNDN);
        return mpfr_get_d(r41538, MPFR_RNDN);
}

static mpfr_t r41539, r41540, r41541, r41542, r41543, r41544, r41545, r41546, r41547, r41548, r41549, r41550, r41551, r41552, r41553, r41554, r41555, r41556, r41557, r41558, r41559, r41560, r41561;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41539);
        mpfr_init_set_str(r41540, "-1.6525860513176112e-34", 10, MPFR_RNDN);
        mpfr_init(r41541);
        mpfr_init(r41542);
        mpfr_init(r41543);
        mpfr_init(r41544);
        mpfr_init(r41545);
        mpfr_init(r41546);
        mpfr_init(r41547);
        mpfr_init(r41548);
        mpfr_init(r41549);
        mpfr_init_set_str(r41550, "1.6074385201853777e-22", 10, MPFR_RNDN);
        mpfr_init(r41551);
        mpfr_init(r41552);
        mpfr_init(r41553);
        mpfr_init(r41554);
        mpfr_init(r41555);
        mpfr_init(r41556);
        mpfr_init(r41557);
        mpfr_init(r41558);
        mpfr_init(r41559);
        mpfr_init(r41560);
        mpfr_init(r41561);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41539, a, MPFR_RNDN);
        ;
        mpfr_set_si(r41541, mpfr_cmp(r41539, r41540) <= 0, MPFR_RNDN);
        mpfr_set_d(r41542, x, MPFR_RNDN);
        mpfr_set_d(r41543, y, MPFR_RNDN);
        mpfr_set_d(r41544, z, MPFR_RNDN);
        mpfr_set_d(r41545, t, MPFR_RNDN);
        mpfr_sub(r41546, r41544, r41545, MPFR_RNDN);
        mpfr_div(r41547, r41539, r41546, MPFR_RNDN);
        mpfr_div(r41548, r41543, r41547, MPFR_RNDN);
        mpfr_add(r41549, r41542, r41548, MPFR_RNDN);
        ;
        mpfr_set_si(r41551, mpfr_cmp(r41539, r41550) <= 0, MPFR_RNDN);
        mpfr_mul(r41552, r41543, r41546, MPFR_RNDN);
        mpfr_div(r41553, r41552, r41539, MPFR_RNDN);
        mpfr_add(r41554, r41542, r41553, MPFR_RNDN);
        mpfr_div(r41555, r41539, r41543, MPFR_RNDN);
        mpfr_div(r41556, r41544, r41555, MPFR_RNDN);
        mpfr_div(r41557, r41545, r41555, MPFR_RNDN);
        mpfr_sub(r41558, r41556, r41557, MPFR_RNDN);
        mpfr_add(r41559, r41558, r41542, MPFR_RNDN);
        if (mpfr_get_si(r41551, MPFR_RNDN)) { mpfr_set(r41560, r41554, MPFR_RNDN); } else { mpfr_set(r41560, r41559, MPFR_RNDN); };
        if (mpfr_get_si(r41541, MPFR_RNDN)) { mpfr_set(r41561, r41549, MPFR_RNDN); } else { mpfr_set(r41561, r41560, MPFR_RNDN); };
        return mpfr_get_d(r41561, MPFR_RNDN);
}

static mpfr_t r41562, r41563, r41564, r41565, r41566, r41567, r41568, r41569, r41570, r41571, r41572, r41573, r41574, r41575, r41576, r41577, r41578, r41579, r41580, r41581, r41582, r41583, r41584;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41562);
        mpfr_init_set_str(r41563, "-1.6525860513176112e-34", 10, MPFR_RNDN);
        mpfr_init(r41564);
        mpfr_init(r41565);
        mpfr_init(r41566);
        mpfr_init(r41567);
        mpfr_init(r41568);
        mpfr_init(r41569);
        mpfr_init(r41570);
        mpfr_init(r41571);
        mpfr_init(r41572);
        mpfr_init_set_str(r41573, "1.6074385201853777e-22", 10, MPFR_RNDN);
        mpfr_init(r41574);
        mpfr_init(r41575);
        mpfr_init(r41576);
        mpfr_init(r41577);
        mpfr_init(r41578);
        mpfr_init(r41579);
        mpfr_init(r41580);
        mpfr_init(r41581);
        mpfr_init(r41582);
        mpfr_init(r41583);
        mpfr_init(r41584);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41562, a, MPFR_RNDN);
        ;
        mpfr_set_si(r41564, mpfr_cmp(r41562, r41563) <= 0, MPFR_RNDN);
        mpfr_set_d(r41565, x, MPFR_RNDN);
        mpfr_set_d(r41566, y, MPFR_RNDN);
        mpfr_set_d(r41567, z, MPFR_RNDN);
        mpfr_set_d(r41568, t, MPFR_RNDN);
        mpfr_sub(r41569, r41567, r41568, MPFR_RNDN);
        mpfr_div(r41570, r41562, r41569, MPFR_RNDN);
        mpfr_div(r41571, r41566, r41570, MPFR_RNDN);
        mpfr_add(r41572, r41565, r41571, MPFR_RNDN);
        ;
        mpfr_set_si(r41574, mpfr_cmp(r41562, r41573) <= 0, MPFR_RNDN);
        mpfr_mul(r41575, r41566, r41569, MPFR_RNDN);
        mpfr_div(r41576, r41575, r41562, MPFR_RNDN);
        mpfr_add(r41577, r41565, r41576, MPFR_RNDN);
        mpfr_div(r41578, r41562, r41566, MPFR_RNDN);
        mpfr_div(r41579, r41567, r41578, MPFR_RNDN);
        mpfr_div(r41580, r41568, r41578, MPFR_RNDN);
        mpfr_sub(r41581, r41579, r41580, MPFR_RNDN);
        mpfr_add(r41582, r41581, r41565, MPFR_RNDN);
        if (mpfr_get_si(r41574, MPFR_RNDN)) { mpfr_set(r41583, r41577, MPFR_RNDN); } else { mpfr_set(r41583, r41582, MPFR_RNDN); };
        if (mpfr_get_si(r41564, MPFR_RNDN)) { mpfr_set(r41584, r41572, MPFR_RNDN); } else { mpfr_set(r41584, r41583, MPFR_RNDN); };
        return mpfr_get_d(r41584, MPFR_RNDN);
}

