#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Diagrams.TwoD.Layout.CirclePacking:approxRadius from diagrams-contrib-1.3.0.5";

double f_if(float x, float y) {
        float r52385 = x;
        float r52386 = y;
        float r52387 = 2.0;
        float r52388 = r52386 * r52387;
        float r52389 = r52385 / r52388;
        float r52390 = tan(r52389);
        float r52391 = sin(r52389);
        float r52392 = r52390 / r52391;
        return r52392;
}

double f_id(double x, double y) {
        double r52393 = x;
        double r52394 = y;
        double r52395 = 2.0;
        double r52396 = r52394 * r52395;
        double r52397 = r52393 / r52396;
        double r52398 = tan(r52397);
        double r52399 = sin(r52397);
        double r52400 = r52398 / r52399;
        return r52400;
}


double f_of(float __attribute__((unused)) x, float __attribute__((unused)) y) {
        float r52401 = 1.0;
        return r52401;
}

double f_od(double __attribute__((unused)) x, double __attribute__((unused)) y) {
        double r52402 = 1.0;
        return r52402;
}

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 r52403, r52404, r52405, r52406, r52407, r52408, r52409, r52410;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2448);
        mpfr_init(r52403);
        mpfr_init(r52404);
        mpfr_init_set_str(r52405, "2.0", 10, MPFR_RNDN);
        mpfr_init(r52406);
        mpfr_init(r52407);
        mpfr_init(r52408);
        mpfr_init(r52409);
        mpfr_init(r52410);
}

double f_im(double x, double y) {
        mpfr_set_d(r52403, x, MPFR_RNDN);
        mpfr_set_d(r52404, y, MPFR_RNDN);
        ;
        mpfr_mul(r52406, r52404, r52405, MPFR_RNDN);
        mpfr_div(r52407, r52403, r52406, MPFR_RNDN);
        mpfr_tan(r52408, r52407, MPFR_RNDN);
        mpfr_sin(r52409, r52407, MPFR_RNDN);
        mpfr_div(r52410, r52408, r52409, MPFR_RNDN);
        return mpfr_get_d(r52410, MPFR_RNDN);
}

static mpfr_t r52411;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2448);
        mpfr_init_set_str(r52411, "1.0", 10, MPFR_RNDN);
}

double f_fm(double __attribute__((unused)) x, double __attribute__((unused)) y) {
        ;
        return mpfr_get_d(r52411, MPFR_RNDN);
}

static mpfr_t r52412;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2448);
        mpfr_init_set_str(r52412, "1.0", 10, MPFR_RNDN);
}

double f_dm(double __attribute__((unused)) x, double __attribute__((unused)) y) {
        ;
        return mpfr_get_d(r52412, MPFR_RNDN);
}

