#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 r41762 = x;
        float r41763 = y;
        float r41764 = z;
        float r41765 = t;
        float r41766 = r41764 - r41765;
        float r41767 = r41763 * r41766;
        float r41768 = a;
        float r41769 = r41767 / r41768;
        float r41770 = r41762 + r41769;
        return r41770;
}

double f_id(double x, double y, double z, double t, double a) {
        double r41771 = x;
        double r41772 = y;
        double r41773 = z;
        double r41774 = t;
        double r41775 = r41773 - r41774;
        double r41776 = r41772 * r41775;
        double r41777 = a;
        double r41778 = r41776 / r41777;
        double r41779 = r41771 + r41778;
        return r41779;
}


double f_of(float x, float y, float z, float t, float a) {
        float r41780 = a;
        float r41781 = -5.273243369695188e-34;
        bool r41782 = r41780 <= r41781;
        float r41783 = x;
        float r41784 = y;
        float r41785 = z;
        float r41786 = t;
        float r41787 = r41785 - r41786;
        float r41788 = r41780 / r41787;
        float r41789 = r41784 / r41788;
        float r41790 = r41783 + r41789;
        float r41791 = 1.4912760646799497e-24;
        bool r41792 = r41780 <= r41791;
        float r41793 = r41784 * r41787;
        float r41794 = r41793 / r41780;
        float r41795 = r41783 + r41794;
        float r41796 = r41780 / r41784;
        float r41797 = r41785 / r41796;
        float r41798 = r41786 / r41796;
        float r41799 = r41797 - r41798;
        float r41800 = r41799 + r41783;
        float r41801 = r41792 ? r41795 : r41800;
        float r41802 = r41782 ? r41790 : r41801;
        return r41802;
}

double f_od(double x, double y, double z, double t, double a) {
        double r41803 = a;
        double r41804 = -5.273243369695188e-34;
        bool r41805 = r41803 <= r41804;
        double r41806 = x;
        double r41807 = y;
        double r41808 = z;
        double r41809 = t;
        double r41810 = r41808 - r41809;
        double r41811 = r41803 / r41810;
        double r41812 = r41807 / r41811;
        double r41813 = r41806 + r41812;
        double r41814 = 1.4912760646799497e-24;
        bool r41815 = r41803 <= r41814;
        double r41816 = r41807 * r41810;
        double r41817 = r41816 / r41803;
        double r41818 = r41806 + r41817;
        double r41819 = r41803 / r41807;
        double r41820 = r41808 / r41819;
        double r41821 = r41809 / r41819;
        double r41822 = r41820 - r41821;
        double r41823 = r41822 + r41806;
        double r41824 = r41815 ? r41818 : r41823;
        double r41825 = r41805 ? r41813 : r41824;
        return r41825;
}

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 r41826, r41827, r41828, r41829, r41830, r41831, r41832, r41833, r41834;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r41826);
        mpfr_init(r41827);
        mpfr_init(r41828);
        mpfr_init(r41829);
        mpfr_init(r41830);
        mpfr_init(r41831);
        mpfr_init(r41832);
        mpfr_init(r41833);
        mpfr_init(r41834);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41826, x, MPFR_RNDN);
        mpfr_set_d(r41827, y, MPFR_RNDN);
        mpfr_set_d(r41828, z, MPFR_RNDN);
        mpfr_set_d(r41829, t, MPFR_RNDN);
        mpfr_sub(r41830, r41828, r41829, MPFR_RNDN);
        mpfr_mul(r41831, r41827, r41830, MPFR_RNDN);
        mpfr_set_d(r41832, a, MPFR_RNDN);
        mpfr_div(r41833, r41831, r41832, MPFR_RNDN);
        mpfr_add(r41834, r41826, r41833, MPFR_RNDN);
        return mpfr_get_d(r41834, MPFR_RNDN);
}

static mpfr_t r41835, r41836, r41837, r41838, r41839, r41840, r41841, r41842, r41843, r41844, r41845, r41846, r41847, r41848, r41849, r41850, r41851, r41852, r41853, r41854, r41855, r41856, r41857;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41835);
        mpfr_init_set_str(r41836, "-5.273243369695188e-34", 10, MPFR_RNDN);
        mpfr_init(r41837);
        mpfr_init(r41838);
        mpfr_init(r41839);
        mpfr_init(r41840);
        mpfr_init(r41841);
        mpfr_init(r41842);
        mpfr_init(r41843);
        mpfr_init(r41844);
        mpfr_init(r41845);
        mpfr_init_set_str(r41846, "1.4912760646799497e-24", 10, MPFR_RNDN);
        mpfr_init(r41847);
        mpfr_init(r41848);
        mpfr_init(r41849);
        mpfr_init(r41850);
        mpfr_init(r41851);
        mpfr_init(r41852);
        mpfr_init(r41853);
        mpfr_init(r41854);
        mpfr_init(r41855);
        mpfr_init(r41856);
        mpfr_init(r41857);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41835, a, MPFR_RNDN);
        ;
        mpfr_set_si(r41837, mpfr_cmp(r41835, r41836) <= 0, MPFR_RNDN);
        mpfr_set_d(r41838, x, MPFR_RNDN);
        mpfr_set_d(r41839, y, MPFR_RNDN);
        mpfr_set_d(r41840, z, MPFR_RNDN);
        mpfr_set_d(r41841, t, MPFR_RNDN);
        mpfr_sub(r41842, r41840, r41841, MPFR_RNDN);
        mpfr_div(r41843, r41835, r41842, MPFR_RNDN);
        mpfr_div(r41844, r41839, r41843, MPFR_RNDN);
        mpfr_add(r41845, r41838, r41844, MPFR_RNDN);
        ;
        mpfr_set_si(r41847, mpfr_cmp(r41835, r41846) <= 0, MPFR_RNDN);
        mpfr_mul(r41848, r41839, r41842, MPFR_RNDN);
        mpfr_div(r41849, r41848, r41835, MPFR_RNDN);
        mpfr_add(r41850, r41838, r41849, MPFR_RNDN);
        mpfr_div(r41851, r41835, r41839, MPFR_RNDN);
        mpfr_div(r41852, r41840, r41851, MPFR_RNDN);
        mpfr_div(r41853, r41841, r41851, MPFR_RNDN);
        mpfr_sub(r41854, r41852, r41853, MPFR_RNDN);
        mpfr_add(r41855, r41854, r41838, MPFR_RNDN);
        if (mpfr_get_si(r41847, MPFR_RNDN)) { mpfr_set(r41856, r41850, MPFR_RNDN); } else { mpfr_set(r41856, r41855, MPFR_RNDN); };
        if (mpfr_get_si(r41837, MPFR_RNDN)) { mpfr_set(r41857, r41845, MPFR_RNDN); } else { mpfr_set(r41857, r41856, MPFR_RNDN); };
        return mpfr_get_d(r41857, MPFR_RNDN);
}

static mpfr_t r41858, r41859, r41860, r41861, r41862, r41863, r41864, r41865, r41866, r41867, r41868, r41869, r41870, r41871, r41872, r41873, r41874, r41875, r41876, r41877, r41878, r41879, r41880;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r41858);
        mpfr_init_set_str(r41859, "-5.273243369695188e-34", 10, MPFR_RNDN);
        mpfr_init(r41860);
        mpfr_init(r41861);
        mpfr_init(r41862);
        mpfr_init(r41863);
        mpfr_init(r41864);
        mpfr_init(r41865);
        mpfr_init(r41866);
        mpfr_init(r41867);
        mpfr_init(r41868);
        mpfr_init_set_str(r41869, "1.4912760646799497e-24", 10, MPFR_RNDN);
        mpfr_init(r41870);
        mpfr_init(r41871);
        mpfr_init(r41872);
        mpfr_init(r41873);
        mpfr_init(r41874);
        mpfr_init(r41875);
        mpfr_init(r41876);
        mpfr_init(r41877);
        mpfr_init(r41878);
        mpfr_init(r41879);
        mpfr_init(r41880);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r41858, a, MPFR_RNDN);
        ;
        mpfr_set_si(r41860, mpfr_cmp(r41858, r41859) <= 0, MPFR_RNDN);
        mpfr_set_d(r41861, x, MPFR_RNDN);
        mpfr_set_d(r41862, y, MPFR_RNDN);
        mpfr_set_d(r41863, z, MPFR_RNDN);
        mpfr_set_d(r41864, t, MPFR_RNDN);
        mpfr_sub(r41865, r41863, r41864, MPFR_RNDN);
        mpfr_div(r41866, r41858, r41865, MPFR_RNDN);
        mpfr_div(r41867, r41862, r41866, MPFR_RNDN);
        mpfr_add(r41868, r41861, r41867, MPFR_RNDN);
        ;
        mpfr_set_si(r41870, mpfr_cmp(r41858, r41869) <= 0, MPFR_RNDN);
        mpfr_mul(r41871, r41862, r41865, MPFR_RNDN);
        mpfr_div(r41872, r41871, r41858, MPFR_RNDN);
        mpfr_add(r41873, r41861, r41872, MPFR_RNDN);
        mpfr_div(r41874, r41858, r41862, MPFR_RNDN);
        mpfr_div(r41875, r41863, r41874, MPFR_RNDN);
        mpfr_div(r41876, r41864, r41874, MPFR_RNDN);
        mpfr_sub(r41877, r41875, r41876, MPFR_RNDN);
        mpfr_add(r41878, r41877, r41861, MPFR_RNDN);
        if (mpfr_get_si(r41870, MPFR_RNDN)) { mpfr_set(r41879, r41873, MPFR_RNDN); } else { mpfr_set(r41879, r41878, MPFR_RNDN); };
        if (mpfr_get_si(r41860, MPFR_RNDN)) { mpfr_set(r41880, r41868, MPFR_RNDN); } else { mpfr_set(r41880, r41879, MPFR_RNDN); };
        return mpfr_get_d(r41880, MPFR_RNDN);
}

