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

double f_if(float x, float y) {
        float r38204 = x;
        float r38205 = y;
        float r38206 = r38204 - r38205;
        float r38207 = fabs(r38206);
        float r38208 = sqrt(r38207);
        return r38208;
}

double f_id(double x, double y) {
        double r38209 = x;
        double r38210 = y;
        double r38211 = r38209 - r38210;
        double r38212 = fabs(r38211);
        double r38213 = sqrt(r38212);
        return r38213;
}


double f_of(float x, float y) {
        float r38214 = x;
        float r38215 = y;
        float r38216 = r38214 - r38215;
        float r38217 = fabs(r38216);
        float r38218 = sqrt(r38217);
        return r38218;
}

double f_od(double x, double y) {
        double r38219 = x;
        double r38220 = y;
        double r38221 = r38219 - r38220;
        double r38222 = fabs(r38221);
        double r38223 = sqrt(r38222);
        return r38223;
}

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 r38224, r38225, r38226, r38227, r38228;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r38224);
        mpfr_init(r38225);
        mpfr_init(r38226);
        mpfr_init(r38227);
        mpfr_init(r38228);
}

double f_im(double x, double y) {
        mpfr_set_d(r38224, x, MPFR_RNDN);
        mpfr_set_d(r38225, y, MPFR_RNDN);
        mpfr_sub(r38226, r38224, r38225, MPFR_RNDN);
        mpfr_abs(r38227, r38226, MPFR_RNDN);
        mpfr_sqrt(r38228, r38227, MPFR_RNDN);
        return mpfr_get_d(r38228, MPFR_RNDN);
}

static mpfr_t r38229, r38230, r38231, r38232, r38233;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r38229);
        mpfr_init(r38230);
        mpfr_init(r38231);
        mpfr_init(r38232);
        mpfr_init(r38233);
}

double f_fm(double x, double y) {
        mpfr_set_d(r38229, x, MPFR_RNDN);
        mpfr_set_d(r38230, y, MPFR_RNDN);
        mpfr_sub(r38231, r38229, r38230, MPFR_RNDN);
        mpfr_abs(r38232, r38231, MPFR_RNDN);
        mpfr_sqrt(r38233, r38232, MPFR_RNDN);
        return mpfr_get_d(r38233, MPFR_RNDN);
}

static mpfr_t r38234, r38235, r38236, r38237, r38238;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r38234);
        mpfr_init(r38235);
        mpfr_init(r38236);
        mpfr_init(r38237);
        mpfr_init(r38238);
}

double f_dm(double x, double y) {
        mpfr_set_d(r38234, x, MPFR_RNDN);
        mpfr_set_d(r38235, y, MPFR_RNDN);
        mpfr_sub(r38236, r38234, r38235, MPFR_RNDN);
        mpfr_abs(r38237, r38236, MPFR_RNDN);
        mpfr_sqrt(r38238, r38237, MPFR_RNDN);
        return mpfr_get_d(r38238, MPFR_RNDN);
}

