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

char *name = "Graphics.Rendering.Chart.Plot.Pie:renderPie from Chart-1.5.3";

double f_if(float x, float y) {
        float r50208 = x;
        float r50209 = y;
        float r50210 = r50208 + r50209;
        float r50211 = r50210 - r50208;
        return r50211;
}

double f_id(double x, double y) {
        double r50212 = x;
        double r50213 = y;
        double r50214 = r50212 + r50213;
        double r50215 = r50214 - r50212;
        return r50215;
}


double f_of(float __attribute__((unused)) x, float y) {
        float r50216 = y;
        float r50217 = 0;
        float r50218 = r50216 - r50217;
        return r50218;
}

double f_od(double __attribute__((unused)) x, double y) {
        double r50219 = y;
        double r50220 = 0;
        double r50221 = r50219 - r50220;
        return r50221;
}

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 r50222, r50223, r50224, r50225;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2448);
        mpfr_init(r50222);
        mpfr_init(r50223);
        mpfr_init(r50224);
        mpfr_init(r50225);
}

double f_im(double x, double y) {
        mpfr_set_d(r50222, x, MPFR_RNDN);
        mpfr_set_d(r50223, y, MPFR_RNDN);
        mpfr_add(r50224, r50222, r50223, MPFR_RNDN);
        mpfr_sub(r50225, r50224, r50222, MPFR_RNDN);
        return mpfr_get_d(r50225, MPFR_RNDN);
}

static mpfr_t r50226, r50227, r50228;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r50226);
        mpfr_init_set_str(r50227, "0", 10, MPFR_RNDN);
        mpfr_init(r50228);
}

double f_fm(double __attribute__((unused)) x, double y) {
        mpfr_set_d(r50226, y, MPFR_RNDN);
        ;
        mpfr_sub(r50228, r50226, r50227, MPFR_RNDN);
        return mpfr_get_d(r50228, MPFR_RNDN);
}

static mpfr_t r50229, r50230, r50231;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r50229);
        mpfr_init_set_str(r50230, "0", 10, MPFR_RNDN);
        mpfr_init(r50231);
}

double f_dm(double __attribute__((unused)) x, double y) {
        mpfr_set_d(r50229, y, MPFR_RNDN);
        ;
        mpfr_sub(r50231, r50229, r50230, MPFR_RNDN);
        return mpfr_get_d(r50231, MPFR_RNDN);
}

